1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(serde::Serialize, serde::Deserialize)]
22 #[derive(Default, Debug, PartialEq, Eq, Hash)]
23 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
24 #[derive(Clone)]
25 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
26 const _: () = {
27 use alloy::sol_types as alloy_sol_types;
28 #[automatically_derived]
29 impl alloy_sol_types::private::SolTypeValue<BaseField>
30 for alloy::sol_types::private::primitives::aliases::U256 {
31 #[inline]
32 fn stv_to_tokens(
33 &self,
34 ) -> <alloy::sol_types::sol_data::Uint<
35 256,
36 > as alloy_sol_types::SolType>::Token<'_> {
37 alloy_sol_types::private::SolTypeValue::<
38 alloy::sol_types::sol_data::Uint<256>,
39 >::stv_to_tokens(self)
40 }
41 #[inline]
42 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
43 <alloy::sol_types::sol_data::Uint<
44 256,
45 > as alloy_sol_types::SolType>::tokenize(self)
46 .0
47 }
48 #[inline]
49 fn stv_abi_encode_packed_to(
50 &self,
51 out: &mut alloy_sol_types::private::Vec<u8>,
52 ) {
53 <alloy::sol_types::sol_data::Uint<
54 256,
55 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
56 }
57 #[inline]
58 fn stv_abi_packed_encoded_size(&self) -> usize {
59 <alloy::sol_types::sol_data::Uint<
60 256,
61 > as alloy_sol_types::SolType>::abi_encoded_size(self)
62 }
63 }
64 #[automatically_derived]
65 impl BaseField {
66 pub const NAME: &'static str = stringify!(@ name);
68 #[inline]
70 pub const fn from_underlying(
71 value: alloy::sol_types::private::primitives::aliases::U256,
72 ) -> Self {
73 Self(value)
74 }
75 #[inline]
77 pub const fn into_underlying(
78 self,
79 ) -> alloy::sol_types::private::primitives::aliases::U256 {
80 self.0
81 }
82 #[inline]
85 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
86 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
87 }
88 #[inline]
91 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
92 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
93 }
94 }
95 #[automatically_derived]
96 impl From<alloy::sol_types::private::primitives::aliases::U256> for BaseField {
97 fn from(
98 value: alloy::sol_types::private::primitives::aliases::U256,
99 ) -> Self {
100 Self::from_underlying(value)
101 }
102 }
103 #[automatically_derived]
104 impl From<BaseField> for alloy::sol_types::private::primitives::aliases::U256 {
105 fn from(value: BaseField) -> Self {
106 value.into_underlying()
107 }
108 }
109 #[automatically_derived]
110 impl alloy_sol_types::SolType for BaseField {
111 type RustType = alloy::sol_types::private::primitives::aliases::U256;
112 type Token<'a> = <alloy::sol_types::sol_data::Uint<
113 256,
114 > as alloy_sol_types::SolType>::Token<'a>;
115 const SOL_NAME: &'static str = Self::NAME;
116 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
117 256,
118 > as alloy_sol_types::SolType>::ENCODED_SIZE;
119 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
120 256,
121 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
122 #[inline]
123 fn valid_token(token: &Self::Token<'_>) -> bool {
124 Self::type_check(token).is_ok()
125 }
126 #[inline]
127 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
128 <alloy::sol_types::sol_data::Uint<
129 256,
130 > as alloy_sol_types::SolType>::type_check(token)
131 }
132 #[inline]
133 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
134 <alloy::sol_types::sol_data::Uint<
135 256,
136 > as alloy_sol_types::SolType>::detokenize(token)
137 }
138 }
139 #[automatically_derived]
140 impl alloy_sol_types::EventTopic for BaseField {
141 #[inline]
142 fn topic_preimage_length(rust: &Self::RustType) -> usize {
143 <alloy::sol_types::sol_data::Uint<
144 256,
145 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
146 }
147 #[inline]
148 fn encode_topic_preimage(
149 rust: &Self::RustType,
150 out: &mut alloy_sol_types::private::Vec<u8>,
151 ) {
152 <alloy::sol_types::sol_data::Uint<
153 256,
154 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
155 }
156 #[inline]
157 fn encode_topic(
158 rust: &Self::RustType,
159 ) -> alloy_sol_types::abi::token::WordToken {
160 <alloy::sol_types::sol_data::Uint<
161 256,
162 > as alloy_sol_types::EventTopic>::encode_topic(rust)
163 }
164 }
165 };
166 #[derive(serde::Serialize, serde::Deserialize)]
167 #[derive(Default, Debug, PartialEq, Eq, Hash)]
168 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
169 #[derive(Clone)]
170 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
171 const _: () = {
172 use alloy::sol_types as alloy_sol_types;
173 #[automatically_derived]
174 impl alloy_sol_types::private::SolTypeValue<ScalarField>
175 for alloy::sol_types::private::primitives::aliases::U256 {
176 #[inline]
177 fn stv_to_tokens(
178 &self,
179 ) -> <alloy::sol_types::sol_data::Uint<
180 256,
181 > as alloy_sol_types::SolType>::Token<'_> {
182 alloy_sol_types::private::SolTypeValue::<
183 alloy::sol_types::sol_data::Uint<256>,
184 >::stv_to_tokens(self)
185 }
186 #[inline]
187 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
188 <alloy::sol_types::sol_data::Uint<
189 256,
190 > as alloy_sol_types::SolType>::tokenize(self)
191 .0
192 }
193 #[inline]
194 fn stv_abi_encode_packed_to(
195 &self,
196 out: &mut alloy_sol_types::private::Vec<u8>,
197 ) {
198 <alloy::sol_types::sol_data::Uint<
199 256,
200 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
201 }
202 #[inline]
203 fn stv_abi_packed_encoded_size(&self) -> usize {
204 <alloy::sol_types::sol_data::Uint<
205 256,
206 > as alloy_sol_types::SolType>::abi_encoded_size(self)
207 }
208 }
209 #[automatically_derived]
210 impl ScalarField {
211 pub const NAME: &'static str = stringify!(@ name);
213 #[inline]
215 pub const fn from_underlying(
216 value: alloy::sol_types::private::primitives::aliases::U256,
217 ) -> Self {
218 Self(value)
219 }
220 #[inline]
222 pub const fn into_underlying(
223 self,
224 ) -> alloy::sol_types::private::primitives::aliases::U256 {
225 self.0
226 }
227 #[inline]
230 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
231 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
232 }
233 #[inline]
236 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
237 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
238 }
239 }
240 #[automatically_derived]
241 impl From<alloy::sol_types::private::primitives::aliases::U256> for ScalarField {
242 fn from(
243 value: alloy::sol_types::private::primitives::aliases::U256,
244 ) -> Self {
245 Self::from_underlying(value)
246 }
247 }
248 #[automatically_derived]
249 impl From<ScalarField> for alloy::sol_types::private::primitives::aliases::U256 {
250 fn from(value: ScalarField) -> Self {
251 value.into_underlying()
252 }
253 }
254 #[automatically_derived]
255 impl alloy_sol_types::SolType for ScalarField {
256 type RustType = alloy::sol_types::private::primitives::aliases::U256;
257 type Token<'a> = <alloy::sol_types::sol_data::Uint<
258 256,
259 > as alloy_sol_types::SolType>::Token<'a>;
260 const SOL_NAME: &'static str = Self::NAME;
261 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
262 256,
263 > as alloy_sol_types::SolType>::ENCODED_SIZE;
264 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
265 256,
266 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
267 #[inline]
268 fn valid_token(token: &Self::Token<'_>) -> bool {
269 Self::type_check(token).is_ok()
270 }
271 #[inline]
272 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
273 <alloy::sol_types::sol_data::Uint<
274 256,
275 > as alloy_sol_types::SolType>::type_check(token)
276 }
277 #[inline]
278 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
279 <alloy::sol_types::sol_data::Uint<
280 256,
281 > as alloy_sol_types::SolType>::detokenize(token)
282 }
283 }
284 #[automatically_derived]
285 impl alloy_sol_types::EventTopic for ScalarField {
286 #[inline]
287 fn topic_preimage_length(rust: &Self::RustType) -> usize {
288 <alloy::sol_types::sol_data::Uint<
289 256,
290 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
291 }
292 #[inline]
293 fn encode_topic_preimage(
294 rust: &Self::RustType,
295 out: &mut alloy_sol_types::private::Vec<u8>,
296 ) {
297 <alloy::sol_types::sol_data::Uint<
298 256,
299 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
300 }
301 #[inline]
302 fn encode_topic(
303 rust: &Self::RustType,
304 ) -> alloy_sol_types::abi::token::WordToken {
305 <alloy::sol_types::sol_data::Uint<
306 256,
307 > as alloy_sol_types::EventTopic>::encode_topic(rust)
308 }
309 }
310 };
311 #[derive(serde::Serialize, serde::Deserialize)]
312 #[derive(Default, Debug, PartialEq, Eq, Hash)]
313 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
317 #[derive(Clone)]
318 pub struct G1Point {
319 #[allow(missing_docs)]
320 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
321 #[allow(missing_docs)]
322 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
323 }
324 #[allow(
325 non_camel_case_types,
326 non_snake_case,
327 clippy::pub_underscore_fields,
328 clippy::style
329 )]
330 const _: () = {
331 use alloy::sol_types as alloy_sol_types;
332 #[doc(hidden)]
333 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
334 #[doc(hidden)]
335 type UnderlyingRustTuple<'a> = (
336 <BaseField as alloy::sol_types::SolType>::RustType,
337 <BaseField as alloy::sol_types::SolType>::RustType,
338 );
339 #[cfg(test)]
340 #[allow(dead_code, unreachable_patterns)]
341 fn _type_assertion(
342 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
343 ) {
344 match _t {
345 alloy_sol_types::private::AssertTypeEq::<
346 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
347 >(_) => {}
348 }
349 }
350 #[automatically_derived]
351 #[doc(hidden)]
352 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
353 fn from(value: G1Point) -> Self {
354 (value.x, value.y)
355 }
356 }
357 #[automatically_derived]
358 #[doc(hidden)]
359 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
360 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
361 Self { x: tuple.0, y: tuple.1 }
362 }
363 }
364 #[automatically_derived]
365 impl alloy_sol_types::SolValue for G1Point {
366 type SolType = Self;
367 }
368 #[automatically_derived]
369 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
370 #[inline]
371 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
372 (
373 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
374 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
375 )
376 }
377 #[inline]
378 fn stv_abi_encoded_size(&self) -> usize {
379 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
380 return size;
381 }
382 let tuple = <UnderlyingRustTuple<
383 '_,
384 > as ::core::convert::From<Self>>::from(self.clone());
385 <UnderlyingSolTuple<
386 '_,
387 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
388 }
389 #[inline]
390 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
391 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
392 }
393 #[inline]
394 fn stv_abi_encode_packed_to(
395 &self,
396 out: &mut alloy_sol_types::private::Vec<u8>,
397 ) {
398 let tuple = <UnderlyingRustTuple<
399 '_,
400 > as ::core::convert::From<Self>>::from(self.clone());
401 <UnderlyingSolTuple<
402 '_,
403 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
404 }
405 #[inline]
406 fn stv_abi_packed_encoded_size(&self) -> usize {
407 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
408 return size;
409 }
410 let tuple = <UnderlyingRustTuple<
411 '_,
412 > as ::core::convert::From<Self>>::from(self.clone());
413 <UnderlyingSolTuple<
414 '_,
415 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
416 }
417 }
418 #[automatically_derived]
419 impl alloy_sol_types::SolType for G1Point {
420 type RustType = Self;
421 type Token<'a> = <UnderlyingSolTuple<
422 'a,
423 > as alloy_sol_types::SolType>::Token<'a>;
424 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
425 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
426 '_,
427 > as alloy_sol_types::SolType>::ENCODED_SIZE;
428 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
429 '_,
430 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
431 #[inline]
432 fn valid_token(token: &Self::Token<'_>) -> bool {
433 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
434 }
435 #[inline]
436 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
437 let tuple = <UnderlyingSolTuple<
438 '_,
439 > as alloy_sol_types::SolType>::detokenize(token);
440 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
441 }
442 }
443 #[automatically_derived]
444 impl alloy_sol_types::SolStruct for G1Point {
445 const NAME: &'static str = "G1Point";
446 #[inline]
447 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
448 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
449 }
450 #[inline]
451 fn eip712_components() -> alloy_sol_types::private::Vec<
452 alloy_sol_types::private::Cow<'static, str>,
453 > {
454 alloy_sol_types::private::Vec::new()
455 }
456 #[inline]
457 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
458 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
459 }
460 #[inline]
461 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
462 [
463 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
464 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
465 ]
466 .concat()
467 }
468 }
469 #[automatically_derived]
470 impl alloy_sol_types::EventTopic for G1Point {
471 #[inline]
472 fn topic_preimage_length(rust: &Self::RustType) -> usize {
473 0usize
474 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
475 &rust.x,
476 )
477 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
478 &rust.y,
479 )
480 }
481 #[inline]
482 fn encode_topic_preimage(
483 rust: &Self::RustType,
484 out: &mut alloy_sol_types::private::Vec<u8>,
485 ) {
486 out.reserve(
487 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
488 );
489 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
490 &rust.x,
491 out,
492 );
493 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
494 &rust.y,
495 out,
496 );
497 }
498 #[inline]
499 fn encode_topic(
500 rust: &Self::RustType,
501 ) -> alloy_sol_types::abi::token::WordToken {
502 let mut out = alloy_sol_types::private::Vec::new();
503 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
504 rust,
505 &mut out,
506 );
507 alloy_sol_types::abi::token::WordToken(
508 alloy_sol_types::private::keccak256(out),
509 )
510 }
511 }
512 };
513 use alloy::contract as alloy_contract;
514 #[inline]
518 pub const fn new<
519 P: alloy_contract::private::Provider<N>,
520 N: alloy_contract::private::Network,
521 >(address: alloy_sol_types::private::Address, provider: P) -> BN254Instance<P, N> {
522 BN254Instance::<P, N>::new(address, provider)
523 }
524 #[derive(Clone)]
536 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
537 address: alloy_sol_types::private::Address,
538 provider: P,
539 _network: ::core::marker::PhantomData<N>,
540 }
541 #[automatically_derived]
542 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
543 #[inline]
544 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
545 f.debug_tuple("BN254Instance").field(&self.address).finish()
546 }
547 }
548 #[automatically_derived]
550 impl<
551 P: alloy_contract::private::Provider<N>,
552 N: alloy_contract::private::Network,
553 > BN254Instance<P, N> {
554 #[inline]
558 pub const fn new(
559 address: alloy_sol_types::private::Address,
560 provider: P,
561 ) -> Self {
562 Self {
563 address,
564 provider,
565 _network: ::core::marker::PhantomData,
566 }
567 }
568 #[inline]
570 pub const fn address(&self) -> &alloy_sol_types::private::Address {
571 &self.address
572 }
573 #[inline]
575 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
576 self.address = address;
577 }
578 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
580 self.set_address(address);
581 self
582 }
583 #[inline]
585 pub const fn provider(&self) -> &P {
586 &self.provider
587 }
588 }
589 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
590 #[inline]
592 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
593 BN254Instance {
594 address: self.address,
595 provider: ::core::clone::Clone::clone(&self.provider),
596 _network: ::core::marker::PhantomData,
597 }
598 }
599 }
600 #[automatically_derived]
602 impl<
603 P: alloy_contract::private::Provider<N>,
604 N: alloy_contract::private::Network,
605 > BN254Instance<P, N> {
606 pub fn call_builder<C: alloy_sol_types::SolCall>(
611 &self,
612 call: &C,
613 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
614 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
615 }
616 }
617 #[automatically_derived]
619 impl<
620 P: alloy_contract::private::Provider<N>,
621 N: alloy_contract::private::Network,
622 > BN254Instance<P, N> {
623 pub fn event_filter<E: alloy_sol_types::SolEvent>(
628 &self,
629 ) -> alloy_contract::Event<&P, E, N> {
630 alloy_contract::Event::new_sol(&self.provider, &self.address)
631 }
632 }
633}
634#[allow(
644 non_camel_case_types,
645 non_snake_case,
646 clippy::pub_underscore_fields,
647 clippy::style,
648 clippy::empty_structs_with_brackets
649)]
650pub mod IPlonkVerifier {
651 use super::*;
652 use alloy::sol_types as alloy_sol_types;
653 #[derive(serde::Serialize, serde::Deserialize)]
654 #[derive()]
655 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
659 #[derive(Clone)]
660 pub struct PlonkProof {
661 #[allow(missing_docs)]
662 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
663 #[allow(missing_docs)]
664 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
665 #[allow(missing_docs)]
666 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
667 #[allow(missing_docs)]
668 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
669 #[allow(missing_docs)]
670 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
671 #[allow(missing_docs)]
672 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
673 #[allow(missing_docs)]
674 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
675 #[allow(missing_docs)]
676 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
677 #[allow(missing_docs)]
678 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
679 #[allow(missing_docs)]
680 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
681 #[allow(missing_docs)]
682 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
683 #[allow(missing_docs)]
684 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
685 #[allow(missing_docs)]
686 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
687 #[allow(missing_docs)]
688 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
689 #[allow(missing_docs)]
690 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
691 #[allow(missing_docs)]
692 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
693 #[allow(missing_docs)]
694 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
695 #[allow(missing_docs)]
696 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
697 #[allow(missing_docs)]
698 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
699 #[allow(missing_docs)]
700 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
701 #[allow(missing_docs)]
702 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
703 #[allow(missing_docs)]
704 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
705 #[allow(missing_docs)]
706 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
707 }
708 #[allow(
709 non_camel_case_types,
710 non_snake_case,
711 clippy::pub_underscore_fields,
712 clippy::style
713 )]
714 const _: () = {
715 use alloy::sol_types as alloy_sol_types;
716 #[doc(hidden)]
717 type UnderlyingSolTuple<'a> = (
718 BN254::G1Point,
719 BN254::G1Point,
720 BN254::G1Point,
721 BN254::G1Point,
722 BN254::G1Point,
723 BN254::G1Point,
724 BN254::G1Point,
725 BN254::G1Point,
726 BN254::G1Point,
727 BN254::G1Point,
728 BN254::G1Point,
729 BN254::G1Point,
730 BN254::G1Point,
731 BN254::ScalarField,
732 BN254::ScalarField,
733 BN254::ScalarField,
734 BN254::ScalarField,
735 BN254::ScalarField,
736 BN254::ScalarField,
737 BN254::ScalarField,
738 BN254::ScalarField,
739 BN254::ScalarField,
740 BN254::ScalarField,
741 );
742 #[doc(hidden)]
743 type UnderlyingRustTuple<'a> = (
744 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
745 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
746 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
747 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
748 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
749 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
750 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
751 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
752 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
753 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
754 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
755 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
756 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
757 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
758 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
759 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
760 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
761 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
762 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
763 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
764 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
765 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
766 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
767 );
768 #[cfg(test)]
769 #[allow(dead_code, unreachable_patterns)]
770 fn _type_assertion(
771 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
772 ) {
773 match _t {
774 alloy_sol_types::private::AssertTypeEq::<
775 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
776 >(_) => {}
777 }
778 }
779 #[automatically_derived]
780 #[doc(hidden)]
781 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
782 fn from(value: PlonkProof) -> Self {
783 (
784 value.wire0,
785 value.wire1,
786 value.wire2,
787 value.wire3,
788 value.wire4,
789 value.prodPerm,
790 value.split0,
791 value.split1,
792 value.split2,
793 value.split3,
794 value.split4,
795 value.zeta,
796 value.zetaOmega,
797 value.wireEval0,
798 value.wireEval1,
799 value.wireEval2,
800 value.wireEval3,
801 value.wireEval4,
802 value.sigmaEval0,
803 value.sigmaEval1,
804 value.sigmaEval2,
805 value.sigmaEval3,
806 value.prodPermZetaOmegaEval,
807 )
808 }
809 }
810 #[automatically_derived]
811 #[doc(hidden)]
812 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
813 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
814 Self {
815 wire0: tuple.0,
816 wire1: tuple.1,
817 wire2: tuple.2,
818 wire3: tuple.3,
819 wire4: tuple.4,
820 prodPerm: tuple.5,
821 split0: tuple.6,
822 split1: tuple.7,
823 split2: tuple.8,
824 split3: tuple.9,
825 split4: tuple.10,
826 zeta: tuple.11,
827 zetaOmega: tuple.12,
828 wireEval0: tuple.13,
829 wireEval1: tuple.14,
830 wireEval2: tuple.15,
831 wireEval3: tuple.16,
832 wireEval4: tuple.17,
833 sigmaEval0: tuple.18,
834 sigmaEval1: tuple.19,
835 sigmaEval2: tuple.20,
836 sigmaEval3: tuple.21,
837 prodPermZetaOmegaEval: tuple.22,
838 }
839 }
840 }
841 #[automatically_derived]
842 impl alloy_sol_types::SolValue for PlonkProof {
843 type SolType = Self;
844 }
845 #[automatically_derived]
846 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
847 #[inline]
848 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
849 (
850 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
851 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
852 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
853 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
854 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
855 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
856 &self.prodPerm,
857 ),
858 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
859 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
860 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
861 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
862 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
863 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
864 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
865 &self.zetaOmega,
866 ),
867 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
868 &self.wireEval0,
869 ),
870 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
871 &self.wireEval1,
872 ),
873 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
874 &self.wireEval2,
875 ),
876 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
877 &self.wireEval3,
878 ),
879 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
880 &self.wireEval4,
881 ),
882 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
883 &self.sigmaEval0,
884 ),
885 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
886 &self.sigmaEval1,
887 ),
888 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
889 &self.sigmaEval2,
890 ),
891 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
892 &self.sigmaEval3,
893 ),
894 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
895 &self.prodPermZetaOmegaEval,
896 ),
897 )
898 }
899 #[inline]
900 fn stv_abi_encoded_size(&self) -> usize {
901 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
902 return size;
903 }
904 let tuple = <UnderlyingRustTuple<
905 '_,
906 > as ::core::convert::From<Self>>::from(self.clone());
907 <UnderlyingSolTuple<
908 '_,
909 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
910 }
911 #[inline]
912 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
913 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
914 }
915 #[inline]
916 fn stv_abi_encode_packed_to(
917 &self,
918 out: &mut alloy_sol_types::private::Vec<u8>,
919 ) {
920 let tuple = <UnderlyingRustTuple<
921 '_,
922 > as ::core::convert::From<Self>>::from(self.clone());
923 <UnderlyingSolTuple<
924 '_,
925 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
926 }
927 #[inline]
928 fn stv_abi_packed_encoded_size(&self) -> usize {
929 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
930 return size;
931 }
932 let tuple = <UnderlyingRustTuple<
933 '_,
934 > as ::core::convert::From<Self>>::from(self.clone());
935 <UnderlyingSolTuple<
936 '_,
937 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
938 }
939 }
940 #[automatically_derived]
941 impl alloy_sol_types::SolType for PlonkProof {
942 type RustType = Self;
943 type Token<'a> = <UnderlyingSolTuple<
944 'a,
945 > as alloy_sol_types::SolType>::Token<'a>;
946 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
947 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
948 '_,
949 > as alloy_sol_types::SolType>::ENCODED_SIZE;
950 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
951 '_,
952 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
953 #[inline]
954 fn valid_token(token: &Self::Token<'_>) -> bool {
955 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
956 }
957 #[inline]
958 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
959 let tuple = <UnderlyingSolTuple<
960 '_,
961 > as alloy_sol_types::SolType>::detokenize(token);
962 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
963 }
964 }
965 #[automatically_derived]
966 impl alloy_sol_types::SolStruct for PlonkProof {
967 const NAME: &'static str = "PlonkProof";
968 #[inline]
969 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
970 alloy_sol_types::private::Cow::Borrowed(
971 "PlonkProof(G1Point wire0,G1Point wire1,G1Point wire2,G1Point wire3,G1Point wire4,G1Point prodPerm,G1Point split0,G1Point split1,G1Point split2,G1Point split3,G1Point split4,G1Point zeta,G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
972 )
973 }
974 #[inline]
975 fn eip712_components() -> alloy_sol_types::private::Vec<
976 alloy_sol_types::private::Cow<'static, str>,
977 > {
978 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
979 components
980 .push(
981 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
982 );
983 components
984 .extend(
985 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
986 );
987 components
988 .push(
989 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
990 );
991 components
992 .extend(
993 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
994 );
995 components
996 .push(
997 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
998 );
999 components
1000 .extend(
1001 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1002 );
1003 components
1004 .push(
1005 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1006 );
1007 components
1008 .extend(
1009 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1010 );
1011 components
1012 .push(
1013 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1014 );
1015 components
1016 .extend(
1017 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1018 );
1019 components
1020 .push(
1021 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1022 );
1023 components
1024 .extend(
1025 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1026 );
1027 components
1028 .push(
1029 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1030 );
1031 components
1032 .extend(
1033 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1034 );
1035 components
1036 .push(
1037 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1038 );
1039 components
1040 .extend(
1041 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1042 );
1043 components
1044 .push(
1045 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1046 );
1047 components
1048 .extend(
1049 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1050 );
1051 components
1052 .push(
1053 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1054 );
1055 components
1056 .extend(
1057 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1058 );
1059 components
1060 .push(
1061 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1062 );
1063 components
1064 .extend(
1065 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1066 );
1067 components
1068 .push(
1069 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1070 );
1071 components
1072 .extend(
1073 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1074 );
1075 components
1076 .push(
1077 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1078 );
1079 components
1080 .extend(
1081 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1082 );
1083 components
1084 }
1085 #[inline]
1086 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1087 [
1088 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1089 &self.wire0,
1090 )
1091 .0,
1092 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1093 &self.wire1,
1094 )
1095 .0,
1096 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1097 &self.wire2,
1098 )
1099 .0,
1100 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1101 &self.wire3,
1102 )
1103 .0,
1104 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1105 &self.wire4,
1106 )
1107 .0,
1108 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1109 &self.prodPerm,
1110 )
1111 .0,
1112 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1113 &self.split0,
1114 )
1115 .0,
1116 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1117 &self.split1,
1118 )
1119 .0,
1120 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1121 &self.split2,
1122 )
1123 .0,
1124 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1125 &self.split3,
1126 )
1127 .0,
1128 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1129 &self.split4,
1130 )
1131 .0,
1132 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1133 &self.zeta,
1134 )
1135 .0,
1136 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1137 &self.zetaOmega,
1138 )
1139 .0,
1140 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1141 &self.wireEval0,
1142 )
1143 .0,
1144 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1145 &self.wireEval1,
1146 )
1147 .0,
1148 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1149 &self.wireEval2,
1150 )
1151 .0,
1152 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1153 &self.wireEval3,
1154 )
1155 .0,
1156 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1157 &self.wireEval4,
1158 )
1159 .0,
1160 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1161 &self.sigmaEval0,
1162 )
1163 .0,
1164 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1165 &self.sigmaEval1,
1166 )
1167 .0,
1168 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1169 &self.sigmaEval2,
1170 )
1171 .0,
1172 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1173 &self.sigmaEval3,
1174 )
1175 .0,
1176 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1177 &self.prodPermZetaOmegaEval,
1178 )
1179 .0,
1180 ]
1181 .concat()
1182 }
1183 }
1184 #[automatically_derived]
1185 impl alloy_sol_types::EventTopic for PlonkProof {
1186 #[inline]
1187 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1188 0usize
1189 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1190 &rust.wire0,
1191 )
1192 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1193 &rust.wire1,
1194 )
1195 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1196 &rust.wire2,
1197 )
1198 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1199 &rust.wire3,
1200 )
1201 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1202 &rust.wire4,
1203 )
1204 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1205 &rust.prodPerm,
1206 )
1207 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1208 &rust.split0,
1209 )
1210 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1211 &rust.split1,
1212 )
1213 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1214 &rust.split2,
1215 )
1216 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1217 &rust.split3,
1218 )
1219 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1220 &rust.split4,
1221 )
1222 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1223 &rust.zeta,
1224 )
1225 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1226 &rust.zetaOmega,
1227 )
1228 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1229 &rust.wireEval0,
1230 )
1231 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1232 &rust.wireEval1,
1233 )
1234 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1235 &rust.wireEval2,
1236 )
1237 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1238 &rust.wireEval3,
1239 )
1240 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1241 &rust.wireEval4,
1242 )
1243 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1244 &rust.sigmaEval0,
1245 )
1246 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1247 &rust.sigmaEval1,
1248 )
1249 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1250 &rust.sigmaEval2,
1251 )
1252 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1253 &rust.sigmaEval3,
1254 )
1255 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1256 &rust.prodPermZetaOmegaEval,
1257 )
1258 }
1259 #[inline]
1260 fn encode_topic_preimage(
1261 rust: &Self::RustType,
1262 out: &mut alloy_sol_types::private::Vec<u8>,
1263 ) {
1264 out.reserve(
1265 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1266 );
1267 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1268 &rust.wire0,
1269 out,
1270 );
1271 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1272 &rust.wire1,
1273 out,
1274 );
1275 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1276 &rust.wire2,
1277 out,
1278 );
1279 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1280 &rust.wire3,
1281 out,
1282 );
1283 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1284 &rust.wire4,
1285 out,
1286 );
1287 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1288 &rust.prodPerm,
1289 out,
1290 );
1291 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1292 &rust.split0,
1293 out,
1294 );
1295 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1296 &rust.split1,
1297 out,
1298 );
1299 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1300 &rust.split2,
1301 out,
1302 );
1303 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1304 &rust.split3,
1305 out,
1306 );
1307 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1308 &rust.split4,
1309 out,
1310 );
1311 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1312 &rust.zeta,
1313 out,
1314 );
1315 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1316 &rust.zetaOmega,
1317 out,
1318 );
1319 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1320 &rust.wireEval0,
1321 out,
1322 );
1323 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1324 &rust.wireEval1,
1325 out,
1326 );
1327 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1328 &rust.wireEval2,
1329 out,
1330 );
1331 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1332 &rust.wireEval3,
1333 out,
1334 );
1335 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1336 &rust.wireEval4,
1337 out,
1338 );
1339 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1340 &rust.sigmaEval0,
1341 out,
1342 );
1343 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1344 &rust.sigmaEval1,
1345 out,
1346 );
1347 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1348 &rust.sigmaEval2,
1349 out,
1350 );
1351 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1352 &rust.sigmaEval3,
1353 out,
1354 );
1355 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1356 &rust.prodPermZetaOmegaEval,
1357 out,
1358 );
1359 }
1360 #[inline]
1361 fn encode_topic(
1362 rust: &Self::RustType,
1363 ) -> alloy_sol_types::abi::token::WordToken {
1364 let mut out = alloy_sol_types::private::Vec::new();
1365 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1366 rust,
1367 &mut out,
1368 );
1369 alloy_sol_types::abi::token::WordToken(
1370 alloy_sol_types::private::keccak256(out),
1371 )
1372 }
1373 }
1374 };
1375 #[derive(serde::Serialize, serde::Deserialize)]
1376 #[derive()]
1377 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1381 #[derive(Clone)]
1382 pub struct VerifyingKey {
1383 #[allow(missing_docs)]
1384 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1385 #[allow(missing_docs)]
1386 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1387 #[allow(missing_docs)]
1388 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1389 #[allow(missing_docs)]
1390 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1391 #[allow(missing_docs)]
1392 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1393 #[allow(missing_docs)]
1394 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1395 #[allow(missing_docs)]
1396 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1397 #[allow(missing_docs)]
1398 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1399 #[allow(missing_docs)]
1400 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1401 #[allow(missing_docs)]
1402 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1403 #[allow(missing_docs)]
1404 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1405 #[allow(missing_docs)]
1406 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1407 #[allow(missing_docs)]
1408 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1409 #[allow(missing_docs)]
1410 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1411 #[allow(missing_docs)]
1412 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1413 #[allow(missing_docs)]
1414 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1415 #[allow(missing_docs)]
1416 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1417 #[allow(missing_docs)]
1418 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1419 #[allow(missing_docs)]
1420 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1421 #[allow(missing_docs)]
1422 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1423 #[allow(missing_docs)]
1424 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1425 #[allow(missing_docs)]
1426 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1427 }
1428 #[allow(
1429 non_camel_case_types,
1430 non_snake_case,
1431 clippy::pub_underscore_fields,
1432 clippy::style
1433 )]
1434 const _: () = {
1435 use alloy::sol_types as alloy_sol_types;
1436 #[doc(hidden)]
1437 type UnderlyingSolTuple<'a> = (
1438 alloy::sol_types::sol_data::Uint<256>,
1439 alloy::sol_types::sol_data::Uint<256>,
1440 BN254::G1Point,
1441 BN254::G1Point,
1442 BN254::G1Point,
1443 BN254::G1Point,
1444 BN254::G1Point,
1445 BN254::G1Point,
1446 BN254::G1Point,
1447 BN254::G1Point,
1448 BN254::G1Point,
1449 BN254::G1Point,
1450 BN254::G1Point,
1451 BN254::G1Point,
1452 BN254::G1Point,
1453 BN254::G1Point,
1454 BN254::G1Point,
1455 BN254::G1Point,
1456 BN254::G1Point,
1457 BN254::G1Point,
1458 alloy::sol_types::sol_data::FixedBytes<32>,
1459 alloy::sol_types::sol_data::FixedBytes<32>,
1460 );
1461 #[doc(hidden)]
1462 type UnderlyingRustTuple<'a> = (
1463 alloy::sol_types::private::primitives::aliases::U256,
1464 alloy::sol_types::private::primitives::aliases::U256,
1465 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1466 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1467 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1468 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1469 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1470 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1471 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1472 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1473 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1474 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1475 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1476 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1477 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1478 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1479 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1480 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1481 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1482 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1483 alloy::sol_types::private::FixedBytes<32>,
1484 alloy::sol_types::private::FixedBytes<32>,
1485 );
1486 #[cfg(test)]
1487 #[allow(dead_code, unreachable_patterns)]
1488 fn _type_assertion(
1489 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1490 ) {
1491 match _t {
1492 alloy_sol_types::private::AssertTypeEq::<
1493 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1494 >(_) => {}
1495 }
1496 }
1497 #[automatically_derived]
1498 #[doc(hidden)]
1499 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1500 fn from(value: VerifyingKey) -> Self {
1501 (
1502 value.domainSize,
1503 value.numInputs,
1504 value.sigma0,
1505 value.sigma1,
1506 value.sigma2,
1507 value.sigma3,
1508 value.sigma4,
1509 value.q1,
1510 value.q2,
1511 value.q3,
1512 value.q4,
1513 value.qM12,
1514 value.qM34,
1515 value.qO,
1516 value.qC,
1517 value.qH1,
1518 value.qH2,
1519 value.qH3,
1520 value.qH4,
1521 value.qEcc,
1522 value.g2LSB,
1523 value.g2MSB,
1524 )
1525 }
1526 }
1527 #[automatically_derived]
1528 #[doc(hidden)]
1529 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1530 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1531 Self {
1532 domainSize: tuple.0,
1533 numInputs: tuple.1,
1534 sigma0: tuple.2,
1535 sigma1: tuple.3,
1536 sigma2: tuple.4,
1537 sigma3: tuple.5,
1538 sigma4: tuple.6,
1539 q1: tuple.7,
1540 q2: tuple.8,
1541 q3: tuple.9,
1542 q4: tuple.10,
1543 qM12: tuple.11,
1544 qM34: tuple.12,
1545 qO: tuple.13,
1546 qC: tuple.14,
1547 qH1: tuple.15,
1548 qH2: tuple.16,
1549 qH3: tuple.17,
1550 qH4: tuple.18,
1551 qEcc: tuple.19,
1552 g2LSB: tuple.20,
1553 g2MSB: tuple.21,
1554 }
1555 }
1556 }
1557 #[automatically_derived]
1558 impl alloy_sol_types::SolValue for VerifyingKey {
1559 type SolType = Self;
1560 }
1561 #[automatically_derived]
1562 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1563 #[inline]
1564 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1565 (
1566 <alloy::sol_types::sol_data::Uint<
1567 256,
1568 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1569 <alloy::sol_types::sol_data::Uint<
1570 256,
1571 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1572 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1573 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1574 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1576 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1577 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1578 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1579 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1580 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1581 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1582 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1583 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1584 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1585 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1586 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1587 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1588 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1589 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1590 <alloy::sol_types::sol_data::FixedBytes<
1591 32,
1592 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1593 <alloy::sol_types::sol_data::FixedBytes<
1594 32,
1595 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1596 )
1597 }
1598 #[inline]
1599 fn stv_abi_encoded_size(&self) -> usize {
1600 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1601 return size;
1602 }
1603 let tuple = <UnderlyingRustTuple<
1604 '_,
1605 > as ::core::convert::From<Self>>::from(self.clone());
1606 <UnderlyingSolTuple<
1607 '_,
1608 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1609 }
1610 #[inline]
1611 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1612 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1613 }
1614 #[inline]
1615 fn stv_abi_encode_packed_to(
1616 &self,
1617 out: &mut alloy_sol_types::private::Vec<u8>,
1618 ) {
1619 let tuple = <UnderlyingRustTuple<
1620 '_,
1621 > as ::core::convert::From<Self>>::from(self.clone());
1622 <UnderlyingSolTuple<
1623 '_,
1624 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1625 }
1626 #[inline]
1627 fn stv_abi_packed_encoded_size(&self) -> usize {
1628 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1629 return size;
1630 }
1631 let tuple = <UnderlyingRustTuple<
1632 '_,
1633 > as ::core::convert::From<Self>>::from(self.clone());
1634 <UnderlyingSolTuple<
1635 '_,
1636 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1637 }
1638 }
1639 #[automatically_derived]
1640 impl alloy_sol_types::SolType for VerifyingKey {
1641 type RustType = Self;
1642 type Token<'a> = <UnderlyingSolTuple<
1643 'a,
1644 > as alloy_sol_types::SolType>::Token<'a>;
1645 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1646 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1647 '_,
1648 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1649 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1650 '_,
1651 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1652 #[inline]
1653 fn valid_token(token: &Self::Token<'_>) -> bool {
1654 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1655 }
1656 #[inline]
1657 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1658 let tuple = <UnderlyingSolTuple<
1659 '_,
1660 > as alloy_sol_types::SolType>::detokenize(token);
1661 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1662 }
1663 }
1664 #[automatically_derived]
1665 impl alloy_sol_types::SolStruct for VerifyingKey {
1666 const NAME: &'static str = "VerifyingKey";
1667 #[inline]
1668 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1669 alloy_sol_types::private::Cow::Borrowed(
1670 "VerifyingKey(uint256 domainSize,uint256 numInputs,G1Point sigma0,G1Point sigma1,G1Point sigma2,G1Point sigma3,G1Point sigma4,G1Point q1,G1Point q2,G1Point q3,G1Point q4,G1Point qM12,G1Point qM34,G1Point qO,G1Point qC,G1Point qH1,G1Point qH2,G1Point qH3,G1Point qH4,G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1671 )
1672 }
1673 #[inline]
1674 fn eip712_components() -> alloy_sol_types::private::Vec<
1675 alloy_sol_types::private::Cow<'static, str>,
1676 > {
1677 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1678 components
1679 .push(
1680 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1681 );
1682 components
1683 .extend(
1684 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1685 );
1686 components
1687 .push(
1688 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1689 );
1690 components
1691 .extend(
1692 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1693 );
1694 components
1695 .push(
1696 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1697 );
1698 components
1699 .extend(
1700 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1701 );
1702 components
1703 .push(
1704 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1705 );
1706 components
1707 .extend(
1708 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1709 );
1710 components
1711 .push(
1712 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1713 );
1714 components
1715 .extend(
1716 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1717 );
1718 components
1719 .push(
1720 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1721 );
1722 components
1723 .extend(
1724 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1725 );
1726 components
1727 .push(
1728 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1729 );
1730 components
1731 .extend(
1732 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1733 );
1734 components
1735 .push(
1736 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1737 );
1738 components
1739 .extend(
1740 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1741 );
1742 components
1743 .push(
1744 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1745 );
1746 components
1747 .extend(
1748 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1749 );
1750 components
1751 .push(
1752 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1753 );
1754 components
1755 .extend(
1756 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1757 );
1758 components
1759 .push(
1760 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1761 );
1762 components
1763 .extend(
1764 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1765 );
1766 components
1767 .push(
1768 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1769 );
1770 components
1771 .extend(
1772 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1773 );
1774 components
1775 .push(
1776 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1777 );
1778 components
1779 .extend(
1780 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1781 );
1782 components
1783 .push(
1784 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1785 );
1786 components
1787 .extend(
1788 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1789 );
1790 components
1791 .push(
1792 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1793 );
1794 components
1795 .extend(
1796 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1797 );
1798 components
1799 .push(
1800 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1801 );
1802 components
1803 .extend(
1804 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1805 );
1806 components
1807 .push(
1808 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1809 );
1810 components
1811 .extend(
1812 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1813 );
1814 components
1815 .push(
1816 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1817 );
1818 components
1819 .extend(
1820 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1821 );
1822 components
1823 }
1824 #[inline]
1825 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1826 [
1827 <alloy::sol_types::sol_data::Uint<
1828 256,
1829 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1830 .0,
1831 <alloy::sol_types::sol_data::Uint<
1832 256,
1833 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1834 .0,
1835 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1836 &self.sigma0,
1837 )
1838 .0,
1839 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1840 &self.sigma1,
1841 )
1842 .0,
1843 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1844 &self.sigma2,
1845 )
1846 .0,
1847 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1848 &self.sigma3,
1849 )
1850 .0,
1851 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1852 &self.sigma4,
1853 )
1854 .0,
1855 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1856 &self.q1,
1857 )
1858 .0,
1859 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1860 &self.q2,
1861 )
1862 .0,
1863 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1864 &self.q3,
1865 )
1866 .0,
1867 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1868 &self.q4,
1869 )
1870 .0,
1871 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1872 &self.qM12,
1873 )
1874 .0,
1875 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1876 &self.qM34,
1877 )
1878 .0,
1879 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1880 &self.qO,
1881 )
1882 .0,
1883 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1884 &self.qC,
1885 )
1886 .0,
1887 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1888 &self.qH1,
1889 )
1890 .0,
1891 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1892 &self.qH2,
1893 )
1894 .0,
1895 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1896 &self.qH3,
1897 )
1898 .0,
1899 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1900 &self.qH4,
1901 )
1902 .0,
1903 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1904 &self.qEcc,
1905 )
1906 .0,
1907 <alloy::sol_types::sol_data::FixedBytes<
1908 32,
1909 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1910 .0,
1911 <alloy::sol_types::sol_data::FixedBytes<
1912 32,
1913 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1914 .0,
1915 ]
1916 .concat()
1917 }
1918 }
1919 #[automatically_derived]
1920 impl alloy_sol_types::EventTopic for VerifyingKey {
1921 #[inline]
1922 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1923 0usize
1924 + <alloy::sol_types::sol_data::Uint<
1925 256,
1926 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1927 &rust.domainSize,
1928 )
1929 + <alloy::sol_types::sol_data::Uint<
1930 256,
1931 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1932 &rust.numInputs,
1933 )
1934 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1935 &rust.sigma0,
1936 )
1937 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1938 &rust.sigma1,
1939 )
1940 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1941 &rust.sigma2,
1942 )
1943 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1944 &rust.sigma3,
1945 )
1946 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1947 &rust.sigma4,
1948 )
1949 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1950 &rust.q1,
1951 )
1952 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1953 &rust.q2,
1954 )
1955 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1956 &rust.q3,
1957 )
1958 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1959 &rust.q4,
1960 )
1961 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1962 &rust.qM12,
1963 )
1964 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1965 &rust.qM34,
1966 )
1967 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1968 &rust.qO,
1969 )
1970 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1971 &rust.qC,
1972 )
1973 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1974 &rust.qH1,
1975 )
1976 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1977 &rust.qH2,
1978 )
1979 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1980 &rust.qH3,
1981 )
1982 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1983 &rust.qH4,
1984 )
1985 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1986 &rust.qEcc,
1987 )
1988 + <alloy::sol_types::sol_data::FixedBytes<
1989 32,
1990 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1991 + <alloy::sol_types::sol_data::FixedBytes<
1992 32,
1993 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1994 }
1995 #[inline]
1996 fn encode_topic_preimage(
1997 rust: &Self::RustType,
1998 out: &mut alloy_sol_types::private::Vec<u8>,
1999 ) {
2000 out.reserve(
2001 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2002 );
2003 <alloy::sol_types::sol_data::Uint<
2004 256,
2005 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2006 &rust.domainSize,
2007 out,
2008 );
2009 <alloy::sol_types::sol_data::Uint<
2010 256,
2011 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2012 &rust.numInputs,
2013 out,
2014 );
2015 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2016 &rust.sigma0,
2017 out,
2018 );
2019 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2020 &rust.sigma1,
2021 out,
2022 );
2023 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2024 &rust.sigma2,
2025 out,
2026 );
2027 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2028 &rust.sigma3,
2029 out,
2030 );
2031 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2032 &rust.sigma4,
2033 out,
2034 );
2035 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2036 &rust.q1,
2037 out,
2038 );
2039 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2040 &rust.q2,
2041 out,
2042 );
2043 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2044 &rust.q3,
2045 out,
2046 );
2047 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2048 &rust.q4,
2049 out,
2050 );
2051 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2052 &rust.qM12,
2053 out,
2054 );
2055 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2056 &rust.qM34,
2057 out,
2058 );
2059 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2060 &rust.qO,
2061 out,
2062 );
2063 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2064 &rust.qC,
2065 out,
2066 );
2067 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2068 &rust.qH1,
2069 out,
2070 );
2071 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2072 &rust.qH2,
2073 out,
2074 );
2075 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2076 &rust.qH3,
2077 out,
2078 );
2079 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2080 &rust.qH4,
2081 out,
2082 );
2083 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2084 &rust.qEcc,
2085 out,
2086 );
2087 <alloy::sol_types::sol_data::FixedBytes<
2088 32,
2089 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2090 &rust.g2LSB,
2091 out,
2092 );
2093 <alloy::sol_types::sol_data::FixedBytes<
2094 32,
2095 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2096 &rust.g2MSB,
2097 out,
2098 );
2099 }
2100 #[inline]
2101 fn encode_topic(
2102 rust: &Self::RustType,
2103 ) -> alloy_sol_types::abi::token::WordToken {
2104 let mut out = alloy_sol_types::private::Vec::new();
2105 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2106 rust,
2107 &mut out,
2108 );
2109 alloy_sol_types::abi::token::WordToken(
2110 alloy_sol_types::private::keccak256(out),
2111 )
2112 }
2113 }
2114 };
2115 use alloy::contract as alloy_contract;
2116 #[inline]
2120 pub const fn new<
2121 P: alloy_contract::private::Provider<N>,
2122 N: alloy_contract::private::Network,
2123 >(
2124 address: alloy_sol_types::private::Address,
2125 provider: P,
2126 ) -> IPlonkVerifierInstance<P, N> {
2127 IPlonkVerifierInstance::<P, N>::new(address, provider)
2128 }
2129 #[derive(Clone)]
2141 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
2142 address: alloy_sol_types::private::Address,
2143 provider: P,
2144 _network: ::core::marker::PhantomData<N>,
2145 }
2146 #[automatically_derived]
2147 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
2148 #[inline]
2149 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2150 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2151 }
2152 }
2153 #[automatically_derived]
2155 impl<
2156 P: alloy_contract::private::Provider<N>,
2157 N: alloy_contract::private::Network,
2158 > IPlonkVerifierInstance<P, N> {
2159 #[inline]
2163 pub const fn new(
2164 address: alloy_sol_types::private::Address,
2165 provider: P,
2166 ) -> Self {
2167 Self {
2168 address,
2169 provider,
2170 _network: ::core::marker::PhantomData,
2171 }
2172 }
2173 #[inline]
2175 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2176 &self.address
2177 }
2178 #[inline]
2180 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2181 self.address = address;
2182 }
2183 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2185 self.set_address(address);
2186 self
2187 }
2188 #[inline]
2190 pub const fn provider(&self) -> &P {
2191 &self.provider
2192 }
2193 }
2194 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
2195 #[inline]
2197 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
2198 IPlonkVerifierInstance {
2199 address: self.address,
2200 provider: ::core::clone::Clone::clone(&self.provider),
2201 _network: ::core::marker::PhantomData,
2202 }
2203 }
2204 }
2205 #[automatically_derived]
2207 impl<
2208 P: alloy_contract::private::Provider<N>,
2209 N: alloy_contract::private::Network,
2210 > IPlonkVerifierInstance<P, N> {
2211 pub fn call_builder<C: alloy_sol_types::SolCall>(
2216 &self,
2217 call: &C,
2218 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2219 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2220 }
2221 }
2222 #[automatically_derived]
2224 impl<
2225 P: alloy_contract::private::Provider<N>,
2226 N: alloy_contract::private::Network,
2227 > IPlonkVerifierInstance<P, N> {
2228 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2233 &self,
2234 ) -> alloy_contract::Event<&P, E, N> {
2235 alloy_contract::Event::new_sol(&self.provider, &self.address)
2236 }
2237 }
2238}
2239#[allow(
3118 non_camel_case_types,
3119 non_snake_case,
3120 clippy::pub_underscore_fields,
3121 clippy::style,
3122 clippy::empty_structs_with_brackets
3123)]
3124pub mod PlonkVerifierV2 {
3125 use super::*;
3126 use alloy::sol_types as alloy_sol_types;
3127 #[rustfmt::skip]
3133 #[allow(clippy::all)]
3134 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3135 b"a%Ta\x004`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`(WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a\"\xE2V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04\x17V[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06\x0BV[a\x02\xC2\x81` \x01Qa\x06\x0BV[a\x02\xCF\x81`@\x01Qa\x06\x0BV[a\x02\xDC\x81``\x01Qa\x06\x0BV[a\x02\xE9\x81`\x80\x01Qa\x06\x0BV[a\x02\xF6\x81`\xA0\x01Qa\x06\x0BV[a\x03\x03\x81`\xC0\x01Qa\x06\x0BV[a\x03\x10\x81`\xE0\x01Qa\x06\x0BV[a\x03\x1E\x81a\x01\0\x01Qa\x06\x0BV[a\x03,\x81a\x01 \x01Qa\x06\x0BV[a\x03:\x81a\x01@\x01Qa\x06\x0BV[a\x03H\x81a\x01`\x01Qa\x06\x0BV[a\x03V\x81a\x01\x80\x01Qa\x06\x0BV[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a%(_9_Q\x90_R\x81\x10\x80a\x04\x13W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04=W`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04I\x85\x85\x85a\x06\x8AV[\x90P_a\x04X\x86_\x01Qa\x0C\x19V[\x90P_a\x04j\x82\x84`\xA0\x01Q\x88a\x11\xC0V[\x90Pa\x04\x87`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xBB\x87a\x01`\x01Qa\x04\xB6\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x1DV[a\x12\x80V[\x91P__a\x04\xCB\x8B\x88\x87\x8Ca\x12\xE7V[\x91P\x91Pa\x04\xDC\x81a\x04\xB6\x84a\x15\x1FV[\x92Pa\x04\xF5\x83a\x04\xB6\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x1DV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a%(_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x058\x85a\x04\xB6\x8Da\x01\x80\x01Q\x84a\x12\x1DV[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xF9\x87\x82a\x05\xEC\x89a\x15\x1FV[a\x05\xF4a\x15\xBCV[a\x16\x89V[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06DWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\x85W`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\xCA`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a%(_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C!a\x1F\xBCV[\x81b\x01\0\0\x03a\r\xF8W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0F\xD1W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x11\xA7W`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\xE1`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x11\xEB\x84\x84a\x17:V[\x80\x82Ra\x11\xFB\x90\x85\x90\x85\x90a\x17\x8BV[` \x82\x01R\x80Qa\x12\x11\x90\x85\x90\x84\x90\x86\x90a\x17\xFAV[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x128a\x1F\xE0V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x12xW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba\x1F\xFEV[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x12xW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\x1A\x87\x87\x87\x87a\x19IV[\x90P_Q` a%(_9_Q\x90_R_a\x136\x88\x87\x89a\x1E\x13V[\x90Pa\x13B\x81\x83a$\xCFV[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x13n\x85a\x04\xB6\x8A_\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\x96\x86a\x04\xB6\x8A` \x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xBE\x86a\x04\xB6\x8A`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xE6\x86a\x04\xB6\x8A``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x0E\x86a\x04\xB6\x8A`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x146\x86a\x04\xB6\x8D`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x14^\x86a\x04\xB6\x8D``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x86\x86a\x04\xB6\x8D`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xAE\x86a\x04\xB6\x8D`\xA0\x01Q\x84a\x12\x1DV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x14\xD8\x87a\x04\xB6\x8B`\xA0\x01Q\x84a\x12\x1DV[\x96Pa\x15\x0Ea\x15\x08`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x1DV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x15FWP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x15\x8A\x91\x90a%\x08V[a\x15\xB4\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa$\xCFV[\x90R\x92\x91PPV[a\x15\xE3`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x17,W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a%(_9_Q\x90_R\x90\x83\x80\x15a\x17{W\x84\x93P_[\x82\x81\x10\x15a\x17oW\x83\x85\x86\t\x94P`\x01\x01a\x17YV[P`\x01\x84\x03\x93Pa\x17\x82V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x17\x9CWP`\x01a\x02\xA3V[\x81_\x03a\x17\xAAWP_a\x02\xA3V[` \x84\x01Q_Q` a%(_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x17\xD8W`\x01\x87\x03\x92Pa\x17\xDFV[`\x01\x84\x03\x92P[Pa\x17\xE9\x82a\x1E\xFEV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a%(_9_Q\x90_R\x82\x82\x03a\x18sW`\x01_[`\x0B\x81\x10\x15a\x18hW\x81\x86\x03a\x18EW\x86\x81`\x0B\x81\x10a\x186Wa\x186a$\xBBV[` \x02\x01Q\x93PPPPa\x172V[\x82\x80a\x18SWa\x18Sa$\xF4V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x18\x14V[P_\x92PPPa\x172V[a\x18{a \x1CV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x18\xBDW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x18\x90V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x19\x11W\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x18\xD1V[PPPP\x80\x92PP_a\x19#\x83a\x1E\xFEV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a%(_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1A\xB6\x87`\xA0\x01Q\x86a\x12\x1DV[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1B}\x86a\x04\xB6\x8C`\xC0\x01Q\x88\x85a\x1Bx\x91\x90a$\xCFV[a\x12\x1DV[\x95Pa\x1B\x96\x86a\x04\xB6\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x1DV[\x95Pa\x1B\xB0\x86a\x04\xB6\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x1DV[\x95Pa\x1B\xCA\x86a\x04\xB6\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x1DV[\x95Pa\x1B\xE4\x86a\x04\xB6\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x1DV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1C\t\x86a\x04\xB6\x8Ca\x01`\x01Q\x86a\x12\x1DV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1C.\x86a\x04\xB6\x8Ca\x01\x80\x01Q\x86a\x12\x1DV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C]\x86a\x04\xB6\x8Ca\x01\xE0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\x8C\x86a\x04\xB6\x8Ca\x02\0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xBB\x86a\x04\xB6\x8Ca\x02 \x01Q\x86a\x12\x1DV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xEA\x86a\x04\xB6\x8Ca\x02@\x01Q\x86a\x12\x1DV[\x95Pa\x1D\x07\x86a\x04\xB6\x8Ca\x01\xA0\x01Qa\x1Bx\x8Ba\x02 \x01Qa\x1F\x90V[\x95Pa\x1D\x18\x86\x8Ba\x01\xC0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1D^\x86a\x04\xB6\x8Ca\x02`\x01Q\x86a\x12\x1DV[\x95Pa\x1Dl\x88_\x01Qa\x1F\x90V[\x94Pa\x1D\x80\x86a\x04\xB6\x89`\xC0\x01Q\x88a\x12\x1DV[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1D\xB4\x86a\x04\xB6\x89`\xE0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xCF\x86a\x04\xB6\x89a\x01\0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xEA\x86a\x04\xB6\x89a\x01 \x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1E\x05\x86a\x04\xB6\x89a\x01@\x01Q\x88a\x12\x1DV[\x9A\x99PPPPPPPPPPV[___Q` a%(_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1F\x1FW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a%(_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1F\x89W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a%(_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1F\xB3W\x83\x82\x03\x92Pa\x1F\x89V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1F\xDBa \x1CV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[_`@\x82\x84\x03\x12\x15a \xADW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a \xD0Wa \xD0a ;V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a \xF9W__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x1DWa!\x1Da ;V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a!2W__\xFD[\x84[\x81\x81\x10\x15a!LW\x805\x83R` \x92\x83\x01\x92\x01a!4V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a!hW__\xFD[a!pa OV[\x90Pa!|\x83\x83a \x9DV[\x81Ra!\x8B\x83`@\x84\x01a \x9DV[` \x82\x01Ra!\x9D\x83`\x80\x84\x01a \x9DV[`@\x82\x01Ra!\xAF\x83`\xC0\x84\x01a \x9DV[``\x82\x01Ra!\xC2\x83a\x01\0\x84\x01a \x9DV[`\x80\x82\x01Ra!\xD5\x83a\x01@\x84\x01a \x9DV[`\xA0\x82\x01Ra!\xE8\x83a\x01\x80\x84\x01a \x9DV[`\xC0\x82\x01Ra!\xFB\x83a\x01\xC0\x84\x01a \x9DV[`\xE0\x82\x01Ra\"\x0E\x83a\x02\0\x84\x01a \x9DV[a\x01\0\x82\x01Ra\"\"\x83a\x02@\x84\x01a \x9DV[a\x01 \x82\x01Ra\"6\x83a\x02\x80\x84\x01a \x9DV[a\x01@\x82\x01Ra\"J\x83a\x02\xC0\x84\x01a \x9DV[a\x01`\x82\x01Ra\"^\x83a\x03\0\x84\x01a \x9DV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a\"\xF6W__\xFD[a\x05\0\x81\x12\x15a#\x04W__\xFD[Pa#\ra yV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra#(\x86`@\x87\x01a \x9DV[`@\x82\x01Ra#:\x86`\x80\x87\x01a \x9DV[``\x82\x01Ra#L\x86`\xC0\x87\x01a \x9DV[`\x80\x82\x01Ra#_\x86a\x01\0\x87\x01a \x9DV[`\xA0\x82\x01Ra#r\x86a\x01@\x87\x01a \x9DV[`\xC0\x82\x01Ra#\x85\x86a\x01\x80\x87\x01a \x9DV[`\xE0\x82\x01Ra#\x98\x86a\x01\xC0\x87\x01a \x9DV[a\x01\0\x82\x01Ra#\xAC\x86a\x02\0\x87\x01a \x9DV[a\x01 \x82\x01Ra#\xC0\x86a\x02@\x87\x01a \x9DV[a\x01@\x82\x01Ra#\xD4\x86a\x02\x80\x87\x01a \x9DV[a\x01`\x82\x01Ra#\xE8\x86a\x02\xC0\x87\x01a \x9DV[a\x01\x80\x82\x01Ra#\xFC\x86a\x03\0\x87\x01a \x9DV[a\x01\xA0\x82\x01Ra$\x10\x86a\x03@\x87\x01a \x9DV[a\x01\xC0\x82\x01Ra$$\x86a\x03\x80\x87\x01a \x9DV[a\x01\xE0\x82\x01Ra$8\x86a\x03\xC0\x87\x01a \x9DV[a\x02\0\x82\x01Ra$L\x86a\x04\0\x87\x01a \x9DV[a\x02 \x82\x01Ra$`\x86a\x04@\x87\x01a \x9DV[a\x02@\x82\x01Ra$t\x86a\x04\x80\x87\x01a \x9DV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa$\xA2\x85a\x05\0\x86\x01a \xEAV[\x91Pa$\xB2\x85a\x06`\x86\x01a!WV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a$\xEEWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a%\"WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3136 );
3137 #[rustfmt::skip]
3143 #[allow(clippy::all)]
3144 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3145 b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a\"\xE2V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04\x17V[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06\x0BV[a\x02\xC2\x81` \x01Qa\x06\x0BV[a\x02\xCF\x81`@\x01Qa\x06\x0BV[a\x02\xDC\x81``\x01Qa\x06\x0BV[a\x02\xE9\x81`\x80\x01Qa\x06\x0BV[a\x02\xF6\x81`\xA0\x01Qa\x06\x0BV[a\x03\x03\x81`\xC0\x01Qa\x06\x0BV[a\x03\x10\x81`\xE0\x01Qa\x06\x0BV[a\x03\x1E\x81a\x01\0\x01Qa\x06\x0BV[a\x03,\x81a\x01 \x01Qa\x06\x0BV[a\x03:\x81a\x01@\x01Qa\x06\x0BV[a\x03H\x81a\x01`\x01Qa\x06\x0BV[a\x03V\x81a\x01\x80\x01Qa\x06\x0BV[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a%(_9_Q\x90_R\x81\x10\x80a\x04\x13W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04=W`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04I\x85\x85\x85a\x06\x8AV[\x90P_a\x04X\x86_\x01Qa\x0C\x19V[\x90P_a\x04j\x82\x84`\xA0\x01Q\x88a\x11\xC0V[\x90Pa\x04\x87`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xBB\x87a\x01`\x01Qa\x04\xB6\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x1DV[a\x12\x80V[\x91P__a\x04\xCB\x8B\x88\x87\x8Ca\x12\xE7V[\x91P\x91Pa\x04\xDC\x81a\x04\xB6\x84a\x15\x1FV[\x92Pa\x04\xF5\x83a\x04\xB6\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x1DV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a%(_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x058\x85a\x04\xB6\x8Da\x01\x80\x01Q\x84a\x12\x1DV[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x05\xF9\x87\x82a\x05\xEC\x89a\x15\x1FV[a\x05\xF4a\x15\xBCV[a\x16\x89V[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06DWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\x85W`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x06\xCA`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a%(_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C!a\x1F\xBCV[\x81b\x01\0\0\x03a\r\xF8W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0F\xD1W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x11\xA7W`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x11\xE1`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x11\xEB\x84\x84a\x17:V[\x80\x82Ra\x11\xFB\x90\x85\x90\x85\x90a\x17\x8BV[` \x82\x01R\x80Qa\x12\x11\x90\x85\x90\x84\x90\x86\x90a\x17\xFAV[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x128a\x1F\xE0V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x12xW`@Qc\x03;qM`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba\x1F\xFEV[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x80\x84\x01\x91\x90\x91R\x90\x84\x01Q``\x83\x01R_\x90\x83`\x80\x84`\x06Z\xFA\x90P\x80a\x12xW`@Qc0*\xED\xB5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\x1A\x87\x87\x87\x87a\x19IV[\x90P_Q` a%(_9_Q\x90_R_a\x136\x88\x87\x89a\x1E\x13V[\x90Pa\x13B\x81\x83a$\xCFV[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x13n\x85a\x04\xB6\x8A_\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\x96\x86a\x04\xB6\x8A` \x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xBE\x86a\x04\xB6\x8A`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x13\xE6\x86a\x04\xB6\x8A``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x0E\x86a\x04\xB6\x8A`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x146\x86a\x04\xB6\x8D`@\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x14^\x86a\x04\xB6\x8D``\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x86\x86a\x04\xB6\x8D`\x80\x01Q\x84a\x12\x1DV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xAE\x86a\x04\xB6\x8D`\xA0\x01Q\x84a\x12\x1DV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x14\xD8\x87a\x04\xB6\x8B`\xA0\x01Q\x84a\x12\x1DV[\x96Pa\x15\x0Ea\x15\x08`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x1DV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x15FWP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x15\x8A\x91\x90a%\x08V[a\x15\xB4\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa$\xCFV[\x90R\x92\x91PPV[a\x15\xE3`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x17,W`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a%(_9_Q\x90_R\x90\x83\x80\x15a\x17{W\x84\x93P_[\x82\x81\x10\x15a\x17oW\x83\x85\x86\t\x94P`\x01\x01a\x17YV[P`\x01\x84\x03\x93Pa\x17\x82V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x17\x9CWP`\x01a\x02\xA3V[\x81_\x03a\x17\xAAWP_a\x02\xA3V[` \x84\x01Q_Q` a%(_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x17\xD8W`\x01\x87\x03\x92Pa\x17\xDFV[`\x01\x84\x03\x92P[Pa\x17\xE9\x82a\x1E\xFEV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a%(_9_Q\x90_R\x82\x82\x03a\x18sW`\x01_[`\x0B\x81\x10\x15a\x18hW\x81\x86\x03a\x18EW\x86\x81`\x0B\x81\x10a\x186Wa\x186a$\xBBV[` \x02\x01Q\x93PPPPa\x172V[\x82\x80a\x18SWa\x18Sa$\xF4V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x18\x14V[P_\x92PPPa\x172V[a\x18{a \x1CV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x18\xBDW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x18\x90V[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x19\x11W\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x18\xD1V[PPPP\x80\x92PP_a\x19#\x83a\x1E\xFEV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a%(_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1A\xB6\x87`\xA0\x01Q\x86a\x12\x1DV[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1B}\x86a\x04\xB6\x8C`\xC0\x01Q\x88\x85a\x1Bx\x91\x90a$\xCFV[a\x12\x1DV[\x95Pa\x1B\x96\x86a\x04\xB6\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x1DV[\x95Pa\x1B\xB0\x86a\x04\xB6\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x1DV[\x95Pa\x1B\xCA\x86a\x04\xB6\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x1DV[\x95Pa\x1B\xE4\x86a\x04\xB6\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x1DV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1C\t\x86a\x04\xB6\x8Ca\x01`\x01Q\x86a\x12\x1DV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1C.\x86a\x04\xB6\x8Ca\x01\x80\x01Q\x86a\x12\x1DV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C]\x86a\x04\xB6\x8Ca\x01\xE0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\x8C\x86a\x04\xB6\x8Ca\x02\0\x01Q\x86a\x12\x1DV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xBB\x86a\x04\xB6\x8Ca\x02 \x01Q\x86a\x12\x1DV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1C\xEA\x86a\x04\xB6\x8Ca\x02@\x01Q\x86a\x12\x1DV[\x95Pa\x1D\x07\x86a\x04\xB6\x8Ca\x01\xA0\x01Qa\x1Bx\x8Ba\x02 \x01Qa\x1F\x90V[\x95Pa\x1D\x18\x86\x8Ba\x01\xC0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1D^\x86a\x04\xB6\x8Ca\x02`\x01Q\x86a\x12\x1DV[\x95Pa\x1Dl\x88_\x01Qa\x1F\x90V[\x94Pa\x1D\x80\x86a\x04\xB6\x89`\xC0\x01Q\x88a\x12\x1DV[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1D\xB4\x86a\x04\xB6\x89`\xE0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xCF\x86a\x04\xB6\x89a\x01\0\x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1D\xEA\x86a\x04\xB6\x89a\x01 \x01Q\x88a\x12\x1DV[\x95P\x80\x83\x86\t\x94Pa\x1E\x05\x86a\x04\xB6\x89a\x01@\x01Q\x88a\x12\x1DV[\x9A\x99PPPPPPPPPPV[___Q` a%(_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[_\x81_\x03a\x1F\x1FW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a%(_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a\x1F\x89W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a%(_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1F\xB3W\x83\x82\x03\x92Pa\x1F\x89V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1F\xDBa \x1CV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a sWa sa ;V[_`@\x82\x84\x03\x12\x15a \xADW__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a \xD0Wa \xD0a ;V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a \xF9W__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x1DWa!\x1Da ;V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a!2W__\xFD[\x84[\x81\x81\x10\x15a!LW\x805\x83R` \x92\x83\x01\x92\x01a!4V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a!hW__\xFD[a!pa OV[\x90Pa!|\x83\x83a \x9DV[\x81Ra!\x8B\x83`@\x84\x01a \x9DV[` \x82\x01Ra!\x9D\x83`\x80\x84\x01a \x9DV[`@\x82\x01Ra!\xAF\x83`\xC0\x84\x01a \x9DV[``\x82\x01Ra!\xC2\x83a\x01\0\x84\x01a \x9DV[`\x80\x82\x01Ra!\xD5\x83a\x01@\x84\x01a \x9DV[`\xA0\x82\x01Ra!\xE8\x83a\x01\x80\x84\x01a \x9DV[`\xC0\x82\x01Ra!\xFB\x83a\x01\xC0\x84\x01a \x9DV[`\xE0\x82\x01Ra\"\x0E\x83a\x02\0\x84\x01a \x9DV[a\x01\0\x82\x01Ra\"\"\x83a\x02@\x84\x01a \x9DV[a\x01 \x82\x01Ra\"6\x83a\x02\x80\x84\x01a \x9DV[a\x01@\x82\x01Ra\"J\x83a\x02\xC0\x84\x01a \x9DV[a\x01`\x82\x01Ra\"^\x83a\x03\0\x84\x01a \x9DV[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a\"\xF6W__\xFD[a\x05\0\x81\x12\x15a#\x04W__\xFD[Pa#\ra yV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra#(\x86`@\x87\x01a \x9DV[`@\x82\x01Ra#:\x86`\x80\x87\x01a \x9DV[``\x82\x01Ra#L\x86`\xC0\x87\x01a \x9DV[`\x80\x82\x01Ra#_\x86a\x01\0\x87\x01a \x9DV[`\xA0\x82\x01Ra#r\x86a\x01@\x87\x01a \x9DV[`\xC0\x82\x01Ra#\x85\x86a\x01\x80\x87\x01a \x9DV[`\xE0\x82\x01Ra#\x98\x86a\x01\xC0\x87\x01a \x9DV[a\x01\0\x82\x01Ra#\xAC\x86a\x02\0\x87\x01a \x9DV[a\x01 \x82\x01Ra#\xC0\x86a\x02@\x87\x01a \x9DV[a\x01@\x82\x01Ra#\xD4\x86a\x02\x80\x87\x01a \x9DV[a\x01`\x82\x01Ra#\xE8\x86a\x02\xC0\x87\x01a \x9DV[a\x01\x80\x82\x01Ra#\xFC\x86a\x03\0\x87\x01a \x9DV[a\x01\xA0\x82\x01Ra$\x10\x86a\x03@\x87\x01a \x9DV[a\x01\xC0\x82\x01Ra$$\x86a\x03\x80\x87\x01a \x9DV[a\x01\xE0\x82\x01Ra$8\x86a\x03\xC0\x87\x01a \x9DV[a\x02\0\x82\x01Ra$L\x86a\x04\0\x87\x01a \x9DV[a\x02 \x82\x01Ra$`\x86a\x04@\x87\x01a \x9DV[a\x02@\x82\x01Ra$t\x86a\x04\x80\x87\x01a \x9DV[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa$\xA2\x85a\x05\0\x86\x01a \xEAV[\x91Pa$\xB2\x85a\x06`\x86\x01a!WV[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a$\xEEWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a%\"WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3146 );
3147 #[derive(serde::Serialize, serde::Deserialize)]
3148 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3149 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3154 #[derive(Clone)]
3155 pub struct BN254G1AddFailed;
3156 #[allow(
3157 non_camel_case_types,
3158 non_snake_case,
3159 clippy::pub_underscore_fields,
3160 clippy::style
3161 )]
3162 const _: () = {
3163 use alloy::sol_types as alloy_sol_types;
3164 #[doc(hidden)]
3165 type UnderlyingSolTuple<'a> = ();
3166 #[doc(hidden)]
3167 type UnderlyingRustTuple<'a> = ();
3168 #[cfg(test)]
3169 #[allow(dead_code, unreachable_patterns)]
3170 fn _type_assertion(
3171 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3172 ) {
3173 match _t {
3174 alloy_sol_types::private::AssertTypeEq::<
3175 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3176 >(_) => {}
3177 }
3178 }
3179 #[automatically_derived]
3180 #[doc(hidden)]
3181 impl ::core::convert::From<BN254G1AddFailed> for UnderlyingRustTuple<'_> {
3182 fn from(value: BN254G1AddFailed) -> Self {
3183 ()
3184 }
3185 }
3186 #[automatically_derived]
3187 #[doc(hidden)]
3188 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254G1AddFailed {
3189 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3190 Self
3191 }
3192 }
3193 #[automatically_derived]
3194 impl alloy_sol_types::SolError for BN254G1AddFailed {
3195 type Parameters<'a> = UnderlyingSolTuple<'a>;
3196 type Token<'a> = <Self::Parameters<
3197 'a,
3198 > as alloy_sol_types::SolType>::Token<'a>;
3199 const SIGNATURE: &'static str = "BN254G1AddFailed()";
3200 const SELECTOR: [u8; 4] = [96u8, 85u8, 219u8, 106u8];
3201 #[inline]
3202 fn new<'a>(
3203 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3204 ) -> Self {
3205 tuple.into()
3206 }
3207 #[inline]
3208 fn tokenize(&self) -> Self::Token<'_> {
3209 ()
3210 }
3211 #[inline]
3212 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3213 <Self::Parameters<
3214 '_,
3215 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3216 .map(Self::new)
3217 }
3218 }
3219 };
3220 #[derive(serde::Serialize, serde::Deserialize)]
3221 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3222 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3227 #[derive(Clone)]
3228 pub struct BN254PairingProdFailed;
3229 #[allow(
3230 non_camel_case_types,
3231 non_snake_case,
3232 clippy::pub_underscore_fields,
3233 clippy::style
3234 )]
3235 const _: () = {
3236 use alloy::sol_types as alloy_sol_types;
3237 #[doc(hidden)]
3238 type UnderlyingSolTuple<'a> = ();
3239 #[doc(hidden)]
3240 type UnderlyingRustTuple<'a> = ();
3241 #[cfg(test)]
3242 #[allow(dead_code, unreachable_patterns)]
3243 fn _type_assertion(
3244 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3245 ) {
3246 match _t {
3247 alloy_sol_types::private::AssertTypeEq::<
3248 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3249 >(_) => {}
3250 }
3251 }
3252 #[automatically_derived]
3253 #[doc(hidden)]
3254 impl ::core::convert::From<BN254PairingProdFailed> for UnderlyingRustTuple<'_> {
3255 fn from(value: BN254PairingProdFailed) -> Self {
3256 ()
3257 }
3258 }
3259 #[automatically_derived]
3260 #[doc(hidden)]
3261 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254PairingProdFailed {
3262 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3263 Self
3264 }
3265 }
3266 #[automatically_derived]
3267 impl alloy_sol_types::SolError for BN254PairingProdFailed {
3268 type Parameters<'a> = UnderlyingSolTuple<'a>;
3269 type Token<'a> = <Self::Parameters<
3270 'a,
3271 > as alloy_sol_types::SolType>::Token<'a>;
3272 const SIGNATURE: &'static str = "BN254PairingProdFailed()";
3273 const SELECTOR: [u8; 4] = [194u8, 6u8, 51u8, 79u8];
3274 #[inline]
3275 fn new<'a>(
3276 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3277 ) -> Self {
3278 tuple.into()
3279 }
3280 #[inline]
3281 fn tokenize(&self) -> Self::Token<'_> {
3282 ()
3283 }
3284 #[inline]
3285 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3286 <Self::Parameters<
3287 '_,
3288 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3289 .map(Self::new)
3290 }
3291 }
3292 };
3293 #[derive(serde::Serialize, serde::Deserialize)]
3294 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3295 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3300 #[derive(Clone)]
3301 pub struct BN254ScalarInvZero;
3302 #[allow(
3303 non_camel_case_types,
3304 non_snake_case,
3305 clippy::pub_underscore_fields,
3306 clippy::style
3307 )]
3308 const _: () = {
3309 use alloy::sol_types as alloy_sol_types;
3310 #[doc(hidden)]
3311 type UnderlyingSolTuple<'a> = ();
3312 #[doc(hidden)]
3313 type UnderlyingRustTuple<'a> = ();
3314 #[cfg(test)]
3315 #[allow(dead_code, unreachable_patterns)]
3316 fn _type_assertion(
3317 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3318 ) {
3319 match _t {
3320 alloy_sol_types::private::AssertTypeEq::<
3321 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3322 >(_) => {}
3323 }
3324 }
3325 #[automatically_derived]
3326 #[doc(hidden)]
3327 impl ::core::convert::From<BN254ScalarInvZero> for UnderlyingRustTuple<'_> {
3328 fn from(value: BN254ScalarInvZero) -> Self {
3329 ()
3330 }
3331 }
3332 #[automatically_derived]
3333 #[doc(hidden)]
3334 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarInvZero {
3335 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3336 Self
3337 }
3338 }
3339 #[automatically_derived]
3340 impl alloy_sol_types::SolError for BN254ScalarInvZero {
3341 type Parameters<'a> = UnderlyingSolTuple<'a>;
3342 type Token<'a> = <Self::Parameters<
3343 'a,
3344 > as alloy_sol_types::SolType>::Token<'a>;
3345 const SIGNATURE: &'static str = "BN254ScalarInvZero()";
3346 const SELECTOR: [u8; 4] = [214u8, 219u8, 187u8, 13u8];
3347 #[inline]
3348 fn new<'a>(
3349 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3350 ) -> Self {
3351 tuple.into()
3352 }
3353 #[inline]
3354 fn tokenize(&self) -> Self::Token<'_> {
3355 ()
3356 }
3357 #[inline]
3358 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3359 <Self::Parameters<
3360 '_,
3361 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3362 .map(Self::new)
3363 }
3364 }
3365 };
3366 #[derive(serde::Serialize, serde::Deserialize)]
3367 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3368 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3373 #[derive(Clone)]
3374 pub struct BN254ScalarMulFailed;
3375 #[allow(
3376 non_camel_case_types,
3377 non_snake_case,
3378 clippy::pub_underscore_fields,
3379 clippy::style
3380 )]
3381 const _: () = {
3382 use alloy::sol_types as alloy_sol_types;
3383 #[doc(hidden)]
3384 type UnderlyingSolTuple<'a> = ();
3385 #[doc(hidden)]
3386 type UnderlyingRustTuple<'a> = ();
3387 #[cfg(test)]
3388 #[allow(dead_code, unreachable_patterns)]
3389 fn _type_assertion(
3390 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3391 ) {
3392 match _t {
3393 alloy_sol_types::private::AssertTypeEq::<
3394 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3395 >(_) => {}
3396 }
3397 }
3398 #[automatically_derived]
3399 #[doc(hidden)]
3400 impl ::core::convert::From<BN254ScalarMulFailed> for UnderlyingRustTuple<'_> {
3401 fn from(value: BN254ScalarMulFailed) -> Self {
3402 ()
3403 }
3404 }
3405 #[automatically_derived]
3406 #[doc(hidden)]
3407 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarMulFailed {
3408 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3409 Self
3410 }
3411 }
3412 #[automatically_derived]
3413 impl alloy_sol_types::SolError for BN254ScalarMulFailed {
3414 type Parameters<'a> = UnderlyingSolTuple<'a>;
3415 type Token<'a> = <Self::Parameters<
3416 'a,
3417 > as alloy_sol_types::SolType>::Token<'a>;
3418 const SIGNATURE: &'static str = "BN254ScalarMulFailed()";
3419 const SELECTOR: [u8; 4] = [25u8, 219u8, 138u8, 104u8];
3420 #[inline]
3421 fn new<'a>(
3422 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3423 ) -> Self {
3424 tuple.into()
3425 }
3426 #[inline]
3427 fn tokenize(&self) -> Self::Token<'_> {
3428 ()
3429 }
3430 #[inline]
3431 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3432 <Self::Parameters<
3433 '_,
3434 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3435 .map(Self::new)
3436 }
3437 }
3438 };
3439 #[derive(serde::Serialize, serde::Deserialize)]
3440 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3441 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3446 #[derive(Clone)]
3447 pub struct InvalidG1;
3448 #[allow(
3449 non_camel_case_types,
3450 non_snake_case,
3451 clippy::pub_underscore_fields,
3452 clippy::style
3453 )]
3454 const _: () = {
3455 use alloy::sol_types as alloy_sol_types;
3456 #[doc(hidden)]
3457 type UnderlyingSolTuple<'a> = ();
3458 #[doc(hidden)]
3459 type UnderlyingRustTuple<'a> = ();
3460 #[cfg(test)]
3461 #[allow(dead_code, unreachable_patterns)]
3462 fn _type_assertion(
3463 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3464 ) {
3465 match _t {
3466 alloy_sol_types::private::AssertTypeEq::<
3467 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3468 >(_) => {}
3469 }
3470 }
3471 #[automatically_derived]
3472 #[doc(hidden)]
3473 impl ::core::convert::From<InvalidG1> for UnderlyingRustTuple<'_> {
3474 fn from(value: InvalidG1) -> Self {
3475 ()
3476 }
3477 }
3478 #[automatically_derived]
3479 #[doc(hidden)]
3480 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidG1 {
3481 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3482 Self
3483 }
3484 }
3485 #[automatically_derived]
3486 impl alloy_sol_types::SolError for InvalidG1 {
3487 type Parameters<'a> = UnderlyingSolTuple<'a>;
3488 type Token<'a> = <Self::Parameters<
3489 'a,
3490 > as alloy_sol_types::SolType>::Token<'a>;
3491 const SIGNATURE: &'static str = "InvalidG1()";
3492 const SELECTOR: [u8; 4] = [158u8, 120u8, 209u8, 76u8];
3493 #[inline]
3494 fn new<'a>(
3495 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3496 ) -> Self {
3497 tuple.into()
3498 }
3499 #[inline]
3500 fn tokenize(&self) -> Self::Token<'_> {
3501 ()
3502 }
3503 #[inline]
3504 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3505 <Self::Parameters<
3506 '_,
3507 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3508 .map(Self::new)
3509 }
3510 }
3511 };
3512 #[derive(serde::Serialize, serde::Deserialize)]
3513 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3514 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3519 #[derive(Clone)]
3520 pub struct InvalidPlonkArgs;
3521 #[allow(
3522 non_camel_case_types,
3523 non_snake_case,
3524 clippy::pub_underscore_fields,
3525 clippy::style
3526 )]
3527 const _: () = {
3528 use alloy::sol_types as alloy_sol_types;
3529 #[doc(hidden)]
3530 type UnderlyingSolTuple<'a> = ();
3531 #[doc(hidden)]
3532 type UnderlyingRustTuple<'a> = ();
3533 #[cfg(test)]
3534 #[allow(dead_code, unreachable_patterns)]
3535 fn _type_assertion(
3536 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3537 ) {
3538 match _t {
3539 alloy_sol_types::private::AssertTypeEq::<
3540 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3541 >(_) => {}
3542 }
3543 }
3544 #[automatically_derived]
3545 #[doc(hidden)]
3546 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3547 fn from(value: InvalidPlonkArgs) -> Self {
3548 ()
3549 }
3550 }
3551 #[automatically_derived]
3552 #[doc(hidden)]
3553 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3554 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3555 Self
3556 }
3557 }
3558 #[automatically_derived]
3559 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3560 type Parameters<'a> = UnderlyingSolTuple<'a>;
3561 type Token<'a> = <Self::Parameters<
3562 'a,
3563 > as alloy_sol_types::SolType>::Token<'a>;
3564 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3565 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3566 #[inline]
3567 fn new<'a>(
3568 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3569 ) -> Self {
3570 tuple.into()
3571 }
3572 #[inline]
3573 fn tokenize(&self) -> Self::Token<'_> {
3574 ()
3575 }
3576 #[inline]
3577 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3578 <Self::Parameters<
3579 '_,
3580 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3581 .map(Self::new)
3582 }
3583 }
3584 };
3585 #[derive(serde::Serialize, serde::Deserialize)]
3586 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3587 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3592 #[derive(Clone)]
3593 pub struct InvalidScalar;
3594 #[allow(
3595 non_camel_case_types,
3596 non_snake_case,
3597 clippy::pub_underscore_fields,
3598 clippy::style
3599 )]
3600 const _: () = {
3601 use alloy::sol_types as alloy_sol_types;
3602 #[doc(hidden)]
3603 type UnderlyingSolTuple<'a> = ();
3604 #[doc(hidden)]
3605 type UnderlyingRustTuple<'a> = ();
3606 #[cfg(test)]
3607 #[allow(dead_code, unreachable_patterns)]
3608 fn _type_assertion(
3609 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3610 ) {
3611 match _t {
3612 alloy_sol_types::private::AssertTypeEq::<
3613 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3614 >(_) => {}
3615 }
3616 }
3617 #[automatically_derived]
3618 #[doc(hidden)]
3619 impl ::core::convert::From<InvalidScalar> for UnderlyingRustTuple<'_> {
3620 fn from(value: InvalidScalar) -> Self {
3621 ()
3622 }
3623 }
3624 #[automatically_derived]
3625 #[doc(hidden)]
3626 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidScalar {
3627 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3628 Self
3629 }
3630 }
3631 #[automatically_derived]
3632 impl alloy_sol_types::SolError for InvalidScalar {
3633 type Parameters<'a> = UnderlyingSolTuple<'a>;
3634 type Token<'a> = <Self::Parameters<
3635 'a,
3636 > as alloy_sol_types::SolType>::Token<'a>;
3637 const SIGNATURE: &'static str = "InvalidScalar()";
3638 const SELECTOR: [u8; 4] = [5u8, 176u8, 92u8, 204u8];
3639 #[inline]
3640 fn new<'a>(
3641 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3642 ) -> Self {
3643 tuple.into()
3644 }
3645 #[inline]
3646 fn tokenize(&self) -> Self::Token<'_> {
3647 ()
3648 }
3649 #[inline]
3650 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3651 <Self::Parameters<
3652 '_,
3653 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3654 .map(Self::new)
3655 }
3656 }
3657 };
3658 #[derive(serde::Serialize, serde::Deserialize)]
3659 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3660 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3665 #[derive(Clone)]
3666 pub struct PowPrecompileFailed;
3667 #[allow(
3668 non_camel_case_types,
3669 non_snake_case,
3670 clippy::pub_underscore_fields,
3671 clippy::style
3672 )]
3673 const _: () = {
3674 use alloy::sol_types as alloy_sol_types;
3675 #[doc(hidden)]
3676 type UnderlyingSolTuple<'a> = ();
3677 #[doc(hidden)]
3678 type UnderlyingRustTuple<'a> = ();
3679 #[cfg(test)]
3680 #[allow(dead_code, unreachable_patterns)]
3681 fn _type_assertion(
3682 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3683 ) {
3684 match _t {
3685 alloy_sol_types::private::AssertTypeEq::<
3686 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3687 >(_) => {}
3688 }
3689 }
3690 #[automatically_derived]
3691 #[doc(hidden)]
3692 impl ::core::convert::From<PowPrecompileFailed> for UnderlyingRustTuple<'_> {
3693 fn from(value: PowPrecompileFailed) -> Self {
3694 ()
3695 }
3696 }
3697 #[automatically_derived]
3698 #[doc(hidden)]
3699 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PowPrecompileFailed {
3700 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3701 Self
3702 }
3703 }
3704 #[automatically_derived]
3705 impl alloy_sol_types::SolError for PowPrecompileFailed {
3706 type Parameters<'a> = UnderlyingSolTuple<'a>;
3707 type Token<'a> = <Self::Parameters<
3708 'a,
3709 > as alloy_sol_types::SolType>::Token<'a>;
3710 const SIGNATURE: &'static str = "PowPrecompileFailed()";
3711 const SELECTOR: [u8; 4] = [50u8, 116u8, 250u8, 100u8];
3712 #[inline]
3713 fn new<'a>(
3714 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3715 ) -> Self {
3716 tuple.into()
3717 }
3718 #[inline]
3719 fn tokenize(&self) -> Self::Token<'_> {
3720 ()
3721 }
3722 #[inline]
3723 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3724 <Self::Parameters<
3725 '_,
3726 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3727 .map(Self::new)
3728 }
3729 }
3730 };
3731 #[derive(serde::Serialize, serde::Deserialize)]
3732 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3733 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3738 #[derive(Clone)]
3739 pub struct UnsupportedDegree;
3740 #[allow(
3741 non_camel_case_types,
3742 non_snake_case,
3743 clippy::pub_underscore_fields,
3744 clippy::style
3745 )]
3746 const _: () = {
3747 use alloy::sol_types as alloy_sol_types;
3748 #[doc(hidden)]
3749 type UnderlyingSolTuple<'a> = ();
3750 #[doc(hidden)]
3751 type UnderlyingRustTuple<'a> = ();
3752 #[cfg(test)]
3753 #[allow(dead_code, unreachable_patterns)]
3754 fn _type_assertion(
3755 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3756 ) {
3757 match _t {
3758 alloy_sol_types::private::AssertTypeEq::<
3759 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3760 >(_) => {}
3761 }
3762 }
3763 #[automatically_derived]
3764 #[doc(hidden)]
3765 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3766 fn from(value: UnsupportedDegree) -> Self {
3767 ()
3768 }
3769 }
3770 #[automatically_derived]
3771 #[doc(hidden)]
3772 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3773 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3774 Self
3775 }
3776 }
3777 #[automatically_derived]
3778 impl alloy_sol_types::SolError for UnsupportedDegree {
3779 type Parameters<'a> = UnderlyingSolTuple<'a>;
3780 type Token<'a> = <Self::Parameters<
3781 'a,
3782 > as alloy_sol_types::SolType>::Token<'a>;
3783 const SIGNATURE: &'static str = "UnsupportedDegree()";
3784 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3785 #[inline]
3786 fn new<'a>(
3787 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3788 ) -> Self {
3789 tuple.into()
3790 }
3791 #[inline]
3792 fn tokenize(&self) -> Self::Token<'_> {
3793 ()
3794 }
3795 #[inline]
3796 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3797 <Self::Parameters<
3798 '_,
3799 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3800 .map(Self::new)
3801 }
3802 }
3803 };
3804 #[derive(serde::Serialize, serde::Deserialize)]
3805 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3806 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3811 #[derive(Clone)]
3812 pub struct WrongPlonkVK;
3813 #[allow(
3814 non_camel_case_types,
3815 non_snake_case,
3816 clippy::pub_underscore_fields,
3817 clippy::style
3818 )]
3819 const _: () = {
3820 use alloy::sol_types as alloy_sol_types;
3821 #[doc(hidden)]
3822 type UnderlyingSolTuple<'a> = ();
3823 #[doc(hidden)]
3824 type UnderlyingRustTuple<'a> = ();
3825 #[cfg(test)]
3826 #[allow(dead_code, unreachable_patterns)]
3827 fn _type_assertion(
3828 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3829 ) {
3830 match _t {
3831 alloy_sol_types::private::AssertTypeEq::<
3832 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3833 >(_) => {}
3834 }
3835 }
3836 #[automatically_derived]
3837 #[doc(hidden)]
3838 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3839 fn from(value: WrongPlonkVK) -> Self {
3840 ()
3841 }
3842 }
3843 #[automatically_derived]
3844 #[doc(hidden)]
3845 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3846 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3847 Self
3848 }
3849 }
3850 #[automatically_derived]
3851 impl alloy_sol_types::SolError for WrongPlonkVK {
3852 type Parameters<'a> = UnderlyingSolTuple<'a>;
3853 type Token<'a> = <Self::Parameters<
3854 'a,
3855 > as alloy_sol_types::SolType>::Token<'a>;
3856 const SIGNATURE: &'static str = "WrongPlonkVK()";
3857 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3858 #[inline]
3859 fn new<'a>(
3860 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3861 ) -> Self {
3862 tuple.into()
3863 }
3864 #[inline]
3865 fn tokenize(&self) -> Self::Token<'_> {
3866 ()
3867 }
3868 #[inline]
3869 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3870 <Self::Parameters<
3871 '_,
3872 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3873 .map(Self::new)
3874 }
3875 }
3876 };
3877 #[derive(serde::Serialize, serde::Deserialize)]
3878 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3879 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3884 #[derive(Clone)]
3885 pub struct BETA_H_X0Call;
3886 #[derive(serde::Serialize, serde::Deserialize)]
3887 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3888 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3890 #[derive(Clone)]
3891 pub struct BETA_H_X0Return {
3892 #[allow(missing_docs)]
3893 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3894 }
3895 #[allow(
3896 non_camel_case_types,
3897 non_snake_case,
3898 clippy::pub_underscore_fields,
3899 clippy::style
3900 )]
3901 const _: () = {
3902 use alloy::sol_types as alloy_sol_types;
3903 {
3904 #[doc(hidden)]
3905 type UnderlyingSolTuple<'a> = ();
3906 #[doc(hidden)]
3907 type UnderlyingRustTuple<'a> = ();
3908 #[cfg(test)]
3909 #[allow(dead_code, unreachable_patterns)]
3910 fn _type_assertion(
3911 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3912 ) {
3913 match _t {
3914 alloy_sol_types::private::AssertTypeEq::<
3915 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3916 >(_) => {}
3917 }
3918 }
3919 #[automatically_derived]
3920 #[doc(hidden)]
3921 impl ::core::convert::From<BETA_H_X0Call> for UnderlyingRustTuple<'_> {
3922 fn from(value: BETA_H_X0Call) -> Self {
3923 ()
3924 }
3925 }
3926 #[automatically_derived]
3927 #[doc(hidden)]
3928 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Call {
3929 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3930 Self
3931 }
3932 }
3933 }
3934 {
3935 #[doc(hidden)]
3936 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3937 #[doc(hidden)]
3938 type UnderlyingRustTuple<'a> = (
3939 alloy::sol_types::private::primitives::aliases::U256,
3940 );
3941 #[cfg(test)]
3942 #[allow(dead_code, unreachable_patterns)]
3943 fn _type_assertion(
3944 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3945 ) {
3946 match _t {
3947 alloy_sol_types::private::AssertTypeEq::<
3948 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3949 >(_) => {}
3950 }
3951 }
3952 #[automatically_derived]
3953 #[doc(hidden)]
3954 impl ::core::convert::From<BETA_H_X0Return> for UnderlyingRustTuple<'_> {
3955 fn from(value: BETA_H_X0Return) -> Self {
3956 (value._0,)
3957 }
3958 }
3959 #[automatically_derived]
3960 #[doc(hidden)]
3961 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Return {
3962 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3963 Self { _0: tuple.0 }
3964 }
3965 }
3966 }
3967 #[automatically_derived]
3968 impl alloy_sol_types::SolCall for BETA_H_X0Call {
3969 type Parameters<'a> = ();
3970 type Token<'a> = <Self::Parameters<
3971 'a,
3972 > as alloy_sol_types::SolType>::Token<'a>;
3973 type Return = alloy::sol_types::private::primitives::aliases::U256;
3974 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3975 type ReturnToken<'a> = <Self::ReturnTuple<
3976 'a,
3977 > as alloy_sol_types::SolType>::Token<'a>;
3978 const SIGNATURE: &'static str = "BETA_H_X0()";
3979 const SELECTOR: [u8; 4] = [131u8, 76u8, 69u8, 42u8];
3980 #[inline]
3981 fn new<'a>(
3982 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3983 ) -> Self {
3984 tuple.into()
3985 }
3986 #[inline]
3987 fn tokenize(&self) -> Self::Token<'_> {
3988 ()
3989 }
3990 #[inline]
3991 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3992 (
3993 <alloy::sol_types::sol_data::Uint<
3994 256,
3995 > as alloy_sol_types::SolType>::tokenize(ret),
3996 )
3997 }
3998 #[inline]
3999 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4000 <Self::ReturnTuple<
4001 '_,
4002 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4003 .map(|r| {
4004 let r: BETA_H_X0Return = r.into();
4005 r._0
4006 })
4007 }
4008 #[inline]
4009 fn abi_decode_returns_validate(
4010 data: &[u8],
4011 ) -> alloy_sol_types::Result<Self::Return> {
4012 <Self::ReturnTuple<
4013 '_,
4014 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4015 .map(|r| {
4016 let r: BETA_H_X0Return = r.into();
4017 r._0
4018 })
4019 }
4020 }
4021 };
4022 #[derive(serde::Serialize, serde::Deserialize)]
4023 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4024 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4029 #[derive(Clone)]
4030 pub struct BETA_H_X1Call;
4031 #[derive(serde::Serialize, serde::Deserialize)]
4032 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4033 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4035 #[derive(Clone)]
4036 pub struct BETA_H_X1Return {
4037 #[allow(missing_docs)]
4038 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4039 }
4040 #[allow(
4041 non_camel_case_types,
4042 non_snake_case,
4043 clippy::pub_underscore_fields,
4044 clippy::style
4045 )]
4046 const _: () = {
4047 use alloy::sol_types as alloy_sol_types;
4048 {
4049 #[doc(hidden)]
4050 type UnderlyingSolTuple<'a> = ();
4051 #[doc(hidden)]
4052 type UnderlyingRustTuple<'a> = ();
4053 #[cfg(test)]
4054 #[allow(dead_code, unreachable_patterns)]
4055 fn _type_assertion(
4056 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4057 ) {
4058 match _t {
4059 alloy_sol_types::private::AssertTypeEq::<
4060 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4061 >(_) => {}
4062 }
4063 }
4064 #[automatically_derived]
4065 #[doc(hidden)]
4066 impl ::core::convert::From<BETA_H_X1Call> for UnderlyingRustTuple<'_> {
4067 fn from(value: BETA_H_X1Call) -> Self {
4068 ()
4069 }
4070 }
4071 #[automatically_derived]
4072 #[doc(hidden)]
4073 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Call {
4074 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4075 Self
4076 }
4077 }
4078 }
4079 {
4080 #[doc(hidden)]
4081 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4082 #[doc(hidden)]
4083 type UnderlyingRustTuple<'a> = (
4084 alloy::sol_types::private::primitives::aliases::U256,
4085 );
4086 #[cfg(test)]
4087 #[allow(dead_code, unreachable_patterns)]
4088 fn _type_assertion(
4089 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4090 ) {
4091 match _t {
4092 alloy_sol_types::private::AssertTypeEq::<
4093 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4094 >(_) => {}
4095 }
4096 }
4097 #[automatically_derived]
4098 #[doc(hidden)]
4099 impl ::core::convert::From<BETA_H_X1Return> for UnderlyingRustTuple<'_> {
4100 fn from(value: BETA_H_X1Return) -> Self {
4101 (value._0,)
4102 }
4103 }
4104 #[automatically_derived]
4105 #[doc(hidden)]
4106 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Return {
4107 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4108 Self { _0: tuple.0 }
4109 }
4110 }
4111 }
4112 #[automatically_derived]
4113 impl alloy_sol_types::SolCall for BETA_H_X1Call {
4114 type Parameters<'a> = ();
4115 type Token<'a> = <Self::Parameters<
4116 'a,
4117 > as alloy_sol_types::SolType>::Token<'a>;
4118 type Return = alloy::sol_types::private::primitives::aliases::U256;
4119 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4120 type ReturnToken<'a> = <Self::ReturnTuple<
4121 'a,
4122 > as alloy_sol_types::SolType>::Token<'a>;
4123 const SIGNATURE: &'static str = "BETA_H_X1()";
4124 const SELECTOR: [u8; 4] = [175u8, 25u8, 107u8, 162u8];
4125 #[inline]
4126 fn new<'a>(
4127 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4128 ) -> Self {
4129 tuple.into()
4130 }
4131 #[inline]
4132 fn tokenize(&self) -> Self::Token<'_> {
4133 ()
4134 }
4135 #[inline]
4136 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4137 (
4138 <alloy::sol_types::sol_data::Uint<
4139 256,
4140 > as alloy_sol_types::SolType>::tokenize(ret),
4141 )
4142 }
4143 #[inline]
4144 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4145 <Self::ReturnTuple<
4146 '_,
4147 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4148 .map(|r| {
4149 let r: BETA_H_X1Return = r.into();
4150 r._0
4151 })
4152 }
4153 #[inline]
4154 fn abi_decode_returns_validate(
4155 data: &[u8],
4156 ) -> alloy_sol_types::Result<Self::Return> {
4157 <Self::ReturnTuple<
4158 '_,
4159 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4160 .map(|r| {
4161 let r: BETA_H_X1Return = r.into();
4162 r._0
4163 })
4164 }
4165 }
4166 };
4167 #[derive(serde::Serialize, serde::Deserialize)]
4168 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4169 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4174 #[derive(Clone)]
4175 pub struct BETA_H_Y0Call;
4176 #[derive(serde::Serialize, serde::Deserialize)]
4177 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4178 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4180 #[derive(Clone)]
4181 pub struct BETA_H_Y0Return {
4182 #[allow(missing_docs)]
4183 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4184 }
4185 #[allow(
4186 non_camel_case_types,
4187 non_snake_case,
4188 clippy::pub_underscore_fields,
4189 clippy::style
4190 )]
4191 const _: () = {
4192 use alloy::sol_types as alloy_sol_types;
4193 {
4194 #[doc(hidden)]
4195 type UnderlyingSolTuple<'a> = ();
4196 #[doc(hidden)]
4197 type UnderlyingRustTuple<'a> = ();
4198 #[cfg(test)]
4199 #[allow(dead_code, unreachable_patterns)]
4200 fn _type_assertion(
4201 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4202 ) {
4203 match _t {
4204 alloy_sol_types::private::AssertTypeEq::<
4205 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4206 >(_) => {}
4207 }
4208 }
4209 #[automatically_derived]
4210 #[doc(hidden)]
4211 impl ::core::convert::From<BETA_H_Y0Call> for UnderlyingRustTuple<'_> {
4212 fn from(value: BETA_H_Y0Call) -> Self {
4213 ()
4214 }
4215 }
4216 #[automatically_derived]
4217 #[doc(hidden)]
4218 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Call {
4219 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4220 Self
4221 }
4222 }
4223 }
4224 {
4225 #[doc(hidden)]
4226 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4227 #[doc(hidden)]
4228 type UnderlyingRustTuple<'a> = (
4229 alloy::sol_types::private::primitives::aliases::U256,
4230 );
4231 #[cfg(test)]
4232 #[allow(dead_code, unreachable_patterns)]
4233 fn _type_assertion(
4234 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4235 ) {
4236 match _t {
4237 alloy_sol_types::private::AssertTypeEq::<
4238 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4239 >(_) => {}
4240 }
4241 }
4242 #[automatically_derived]
4243 #[doc(hidden)]
4244 impl ::core::convert::From<BETA_H_Y0Return> for UnderlyingRustTuple<'_> {
4245 fn from(value: BETA_H_Y0Return) -> Self {
4246 (value._0,)
4247 }
4248 }
4249 #[automatically_derived]
4250 #[doc(hidden)]
4251 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Return {
4252 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4253 Self { _0: tuple.0 }
4254 }
4255 }
4256 }
4257 #[automatically_derived]
4258 impl alloy_sol_types::SolCall for BETA_H_Y0Call {
4259 type Parameters<'a> = ();
4260 type Token<'a> = <Self::Parameters<
4261 'a,
4262 > as alloy_sol_types::SolType>::Token<'a>;
4263 type Return = alloy::sol_types::private::primitives::aliases::U256;
4264 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4265 type ReturnToken<'a> = <Self::ReturnTuple<
4266 'a,
4267 > as alloy_sol_types::SolType>::Token<'a>;
4268 const SIGNATURE: &'static str = "BETA_H_Y0()";
4269 const SELECTOR: [u8; 4] = [245u8, 20u8, 67u8, 38u8];
4270 #[inline]
4271 fn new<'a>(
4272 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4273 ) -> Self {
4274 tuple.into()
4275 }
4276 #[inline]
4277 fn tokenize(&self) -> Self::Token<'_> {
4278 ()
4279 }
4280 #[inline]
4281 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4282 (
4283 <alloy::sol_types::sol_data::Uint<
4284 256,
4285 > as alloy_sol_types::SolType>::tokenize(ret),
4286 )
4287 }
4288 #[inline]
4289 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4290 <Self::ReturnTuple<
4291 '_,
4292 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4293 .map(|r| {
4294 let r: BETA_H_Y0Return = r.into();
4295 r._0
4296 })
4297 }
4298 #[inline]
4299 fn abi_decode_returns_validate(
4300 data: &[u8],
4301 ) -> alloy_sol_types::Result<Self::Return> {
4302 <Self::ReturnTuple<
4303 '_,
4304 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4305 .map(|r| {
4306 let r: BETA_H_Y0Return = r.into();
4307 r._0
4308 })
4309 }
4310 }
4311 };
4312 #[derive(serde::Serialize, serde::Deserialize)]
4313 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4314 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4319 #[derive(Clone)]
4320 pub struct BETA_H_Y1Call;
4321 #[derive(serde::Serialize, serde::Deserialize)]
4322 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4323 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4325 #[derive(Clone)]
4326 pub struct BETA_H_Y1Return {
4327 #[allow(missing_docs)]
4328 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4329 }
4330 #[allow(
4331 non_camel_case_types,
4332 non_snake_case,
4333 clippy::pub_underscore_fields,
4334 clippy::style
4335 )]
4336 const _: () = {
4337 use alloy::sol_types as alloy_sol_types;
4338 {
4339 #[doc(hidden)]
4340 type UnderlyingSolTuple<'a> = ();
4341 #[doc(hidden)]
4342 type UnderlyingRustTuple<'a> = ();
4343 #[cfg(test)]
4344 #[allow(dead_code, unreachable_patterns)]
4345 fn _type_assertion(
4346 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4347 ) {
4348 match _t {
4349 alloy_sol_types::private::AssertTypeEq::<
4350 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4351 >(_) => {}
4352 }
4353 }
4354 #[automatically_derived]
4355 #[doc(hidden)]
4356 impl ::core::convert::From<BETA_H_Y1Call> for UnderlyingRustTuple<'_> {
4357 fn from(value: BETA_H_Y1Call) -> Self {
4358 ()
4359 }
4360 }
4361 #[automatically_derived]
4362 #[doc(hidden)]
4363 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Call {
4364 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4365 Self
4366 }
4367 }
4368 }
4369 {
4370 #[doc(hidden)]
4371 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4372 #[doc(hidden)]
4373 type UnderlyingRustTuple<'a> = (
4374 alloy::sol_types::private::primitives::aliases::U256,
4375 );
4376 #[cfg(test)]
4377 #[allow(dead_code, unreachable_patterns)]
4378 fn _type_assertion(
4379 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4380 ) {
4381 match _t {
4382 alloy_sol_types::private::AssertTypeEq::<
4383 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4384 >(_) => {}
4385 }
4386 }
4387 #[automatically_derived]
4388 #[doc(hidden)]
4389 impl ::core::convert::From<BETA_H_Y1Return> for UnderlyingRustTuple<'_> {
4390 fn from(value: BETA_H_Y1Return) -> Self {
4391 (value._0,)
4392 }
4393 }
4394 #[automatically_derived]
4395 #[doc(hidden)]
4396 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Return {
4397 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4398 Self { _0: tuple.0 }
4399 }
4400 }
4401 }
4402 #[automatically_derived]
4403 impl alloy_sol_types::SolCall for BETA_H_Y1Call {
4404 type Parameters<'a> = ();
4405 type Token<'a> = <Self::Parameters<
4406 'a,
4407 > as alloy_sol_types::SolType>::Token<'a>;
4408 type Return = alloy::sol_types::private::primitives::aliases::U256;
4409 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4410 type ReturnToken<'a> = <Self::ReturnTuple<
4411 'a,
4412 > as alloy_sol_types::SolType>::Token<'a>;
4413 const SIGNATURE: &'static str = "BETA_H_Y1()";
4414 const SELECTOR: [u8; 4] = [75u8, 71u8, 52u8, 227u8];
4415 #[inline]
4416 fn new<'a>(
4417 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4418 ) -> Self {
4419 tuple.into()
4420 }
4421 #[inline]
4422 fn tokenize(&self) -> Self::Token<'_> {
4423 ()
4424 }
4425 #[inline]
4426 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4427 (
4428 <alloy::sol_types::sol_data::Uint<
4429 256,
4430 > as alloy_sol_types::SolType>::tokenize(ret),
4431 )
4432 }
4433 #[inline]
4434 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4435 <Self::ReturnTuple<
4436 '_,
4437 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4438 .map(|r| {
4439 let r: BETA_H_Y1Return = r.into();
4440 r._0
4441 })
4442 }
4443 #[inline]
4444 fn abi_decode_returns_validate(
4445 data: &[u8],
4446 ) -> alloy_sol_types::Result<Self::Return> {
4447 <Self::ReturnTuple<
4448 '_,
4449 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4450 .map(|r| {
4451 let r: BETA_H_Y1Return = r.into();
4452 r._0
4453 })
4454 }
4455 }
4456 };
4457 #[derive(serde::Serialize, serde::Deserialize)]
4458 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4459 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4464 #[derive(Clone)]
4465 pub struct COSET_K1Call;
4466 #[derive(serde::Serialize, serde::Deserialize)]
4467 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4468 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4470 #[derive(Clone)]
4471 pub struct COSET_K1Return {
4472 #[allow(missing_docs)]
4473 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4474 }
4475 #[allow(
4476 non_camel_case_types,
4477 non_snake_case,
4478 clippy::pub_underscore_fields,
4479 clippy::style
4480 )]
4481 const _: () = {
4482 use alloy::sol_types as alloy_sol_types;
4483 {
4484 #[doc(hidden)]
4485 type UnderlyingSolTuple<'a> = ();
4486 #[doc(hidden)]
4487 type UnderlyingRustTuple<'a> = ();
4488 #[cfg(test)]
4489 #[allow(dead_code, unreachable_patterns)]
4490 fn _type_assertion(
4491 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4492 ) {
4493 match _t {
4494 alloy_sol_types::private::AssertTypeEq::<
4495 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4496 >(_) => {}
4497 }
4498 }
4499 #[automatically_derived]
4500 #[doc(hidden)]
4501 impl ::core::convert::From<COSET_K1Call> for UnderlyingRustTuple<'_> {
4502 fn from(value: COSET_K1Call) -> Self {
4503 ()
4504 }
4505 }
4506 #[automatically_derived]
4507 #[doc(hidden)]
4508 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Call {
4509 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4510 Self
4511 }
4512 }
4513 }
4514 {
4515 #[doc(hidden)]
4516 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4517 #[doc(hidden)]
4518 type UnderlyingRustTuple<'a> = (
4519 alloy::sol_types::private::primitives::aliases::U256,
4520 );
4521 #[cfg(test)]
4522 #[allow(dead_code, unreachable_patterns)]
4523 fn _type_assertion(
4524 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4525 ) {
4526 match _t {
4527 alloy_sol_types::private::AssertTypeEq::<
4528 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4529 >(_) => {}
4530 }
4531 }
4532 #[automatically_derived]
4533 #[doc(hidden)]
4534 impl ::core::convert::From<COSET_K1Return> for UnderlyingRustTuple<'_> {
4535 fn from(value: COSET_K1Return) -> Self {
4536 (value._0,)
4537 }
4538 }
4539 #[automatically_derived]
4540 #[doc(hidden)]
4541 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Return {
4542 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4543 Self { _0: tuple.0 }
4544 }
4545 }
4546 }
4547 #[automatically_derived]
4548 impl alloy_sol_types::SolCall for COSET_K1Call {
4549 type Parameters<'a> = ();
4550 type Token<'a> = <Self::Parameters<
4551 'a,
4552 > as alloy_sol_types::SolType>::Token<'a>;
4553 type Return = alloy::sol_types::private::primitives::aliases::U256;
4554 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4555 type ReturnToken<'a> = <Self::ReturnTuple<
4556 'a,
4557 > as alloy_sol_types::SolType>::Token<'a>;
4558 const SIGNATURE: &'static str = "COSET_K1()";
4559 const SELECTOR: [u8; 4] = [227u8, 81u8, 45u8, 86u8];
4560 #[inline]
4561 fn new<'a>(
4562 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4563 ) -> Self {
4564 tuple.into()
4565 }
4566 #[inline]
4567 fn tokenize(&self) -> Self::Token<'_> {
4568 ()
4569 }
4570 #[inline]
4571 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4572 (
4573 <alloy::sol_types::sol_data::Uint<
4574 256,
4575 > as alloy_sol_types::SolType>::tokenize(ret),
4576 )
4577 }
4578 #[inline]
4579 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4580 <Self::ReturnTuple<
4581 '_,
4582 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4583 .map(|r| {
4584 let r: COSET_K1Return = r.into();
4585 r._0
4586 })
4587 }
4588 #[inline]
4589 fn abi_decode_returns_validate(
4590 data: &[u8],
4591 ) -> alloy_sol_types::Result<Self::Return> {
4592 <Self::ReturnTuple<
4593 '_,
4594 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4595 .map(|r| {
4596 let r: COSET_K1Return = r.into();
4597 r._0
4598 })
4599 }
4600 }
4601 };
4602 #[derive(serde::Serialize, serde::Deserialize)]
4603 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4604 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4609 #[derive(Clone)]
4610 pub struct COSET_K2Call;
4611 #[derive(serde::Serialize, serde::Deserialize)]
4612 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4613 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4615 #[derive(Clone)]
4616 pub struct COSET_K2Return {
4617 #[allow(missing_docs)]
4618 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4619 }
4620 #[allow(
4621 non_camel_case_types,
4622 non_snake_case,
4623 clippy::pub_underscore_fields,
4624 clippy::style
4625 )]
4626 const _: () = {
4627 use alloy::sol_types as alloy_sol_types;
4628 {
4629 #[doc(hidden)]
4630 type UnderlyingSolTuple<'a> = ();
4631 #[doc(hidden)]
4632 type UnderlyingRustTuple<'a> = ();
4633 #[cfg(test)]
4634 #[allow(dead_code, unreachable_patterns)]
4635 fn _type_assertion(
4636 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4637 ) {
4638 match _t {
4639 alloy_sol_types::private::AssertTypeEq::<
4640 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4641 >(_) => {}
4642 }
4643 }
4644 #[automatically_derived]
4645 #[doc(hidden)]
4646 impl ::core::convert::From<COSET_K2Call> for UnderlyingRustTuple<'_> {
4647 fn from(value: COSET_K2Call) -> Self {
4648 ()
4649 }
4650 }
4651 #[automatically_derived]
4652 #[doc(hidden)]
4653 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Call {
4654 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4655 Self
4656 }
4657 }
4658 }
4659 {
4660 #[doc(hidden)]
4661 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4662 #[doc(hidden)]
4663 type UnderlyingRustTuple<'a> = (
4664 alloy::sol_types::private::primitives::aliases::U256,
4665 );
4666 #[cfg(test)]
4667 #[allow(dead_code, unreachable_patterns)]
4668 fn _type_assertion(
4669 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4670 ) {
4671 match _t {
4672 alloy_sol_types::private::AssertTypeEq::<
4673 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4674 >(_) => {}
4675 }
4676 }
4677 #[automatically_derived]
4678 #[doc(hidden)]
4679 impl ::core::convert::From<COSET_K2Return> for UnderlyingRustTuple<'_> {
4680 fn from(value: COSET_K2Return) -> Self {
4681 (value._0,)
4682 }
4683 }
4684 #[automatically_derived]
4685 #[doc(hidden)]
4686 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Return {
4687 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4688 Self { _0: tuple.0 }
4689 }
4690 }
4691 }
4692 #[automatically_derived]
4693 impl alloy_sol_types::SolCall for COSET_K2Call {
4694 type Parameters<'a> = ();
4695 type Token<'a> = <Self::Parameters<
4696 'a,
4697 > as alloy_sol_types::SolType>::Token<'a>;
4698 type Return = alloy::sol_types::private::primitives::aliases::U256;
4699 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4700 type ReturnToken<'a> = <Self::ReturnTuple<
4701 'a,
4702 > as alloy_sol_types::SolType>::Token<'a>;
4703 const SIGNATURE: &'static str = "COSET_K2()";
4704 const SELECTOR: [u8; 4] = [12u8, 85u8, 31u8, 63u8];
4705 #[inline]
4706 fn new<'a>(
4707 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4708 ) -> Self {
4709 tuple.into()
4710 }
4711 #[inline]
4712 fn tokenize(&self) -> Self::Token<'_> {
4713 ()
4714 }
4715 #[inline]
4716 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4717 (
4718 <alloy::sol_types::sol_data::Uint<
4719 256,
4720 > as alloy_sol_types::SolType>::tokenize(ret),
4721 )
4722 }
4723 #[inline]
4724 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4725 <Self::ReturnTuple<
4726 '_,
4727 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4728 .map(|r| {
4729 let r: COSET_K2Return = r.into();
4730 r._0
4731 })
4732 }
4733 #[inline]
4734 fn abi_decode_returns_validate(
4735 data: &[u8],
4736 ) -> alloy_sol_types::Result<Self::Return> {
4737 <Self::ReturnTuple<
4738 '_,
4739 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4740 .map(|r| {
4741 let r: COSET_K2Return = r.into();
4742 r._0
4743 })
4744 }
4745 }
4746 };
4747 #[derive(serde::Serialize, serde::Deserialize)]
4748 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4749 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4754 #[derive(Clone)]
4755 pub struct COSET_K3Call;
4756 #[derive(serde::Serialize, serde::Deserialize)]
4757 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4758 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4760 #[derive(Clone)]
4761 pub struct COSET_K3Return {
4762 #[allow(missing_docs)]
4763 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4764 }
4765 #[allow(
4766 non_camel_case_types,
4767 non_snake_case,
4768 clippy::pub_underscore_fields,
4769 clippy::style
4770 )]
4771 const _: () = {
4772 use alloy::sol_types as alloy_sol_types;
4773 {
4774 #[doc(hidden)]
4775 type UnderlyingSolTuple<'a> = ();
4776 #[doc(hidden)]
4777 type UnderlyingRustTuple<'a> = ();
4778 #[cfg(test)]
4779 #[allow(dead_code, unreachable_patterns)]
4780 fn _type_assertion(
4781 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4782 ) {
4783 match _t {
4784 alloy_sol_types::private::AssertTypeEq::<
4785 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4786 >(_) => {}
4787 }
4788 }
4789 #[automatically_derived]
4790 #[doc(hidden)]
4791 impl ::core::convert::From<COSET_K3Call> for UnderlyingRustTuple<'_> {
4792 fn from(value: COSET_K3Call) -> Self {
4793 ()
4794 }
4795 }
4796 #[automatically_derived]
4797 #[doc(hidden)]
4798 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Call {
4799 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4800 Self
4801 }
4802 }
4803 }
4804 {
4805 #[doc(hidden)]
4806 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4807 #[doc(hidden)]
4808 type UnderlyingRustTuple<'a> = (
4809 alloy::sol_types::private::primitives::aliases::U256,
4810 );
4811 #[cfg(test)]
4812 #[allow(dead_code, unreachable_patterns)]
4813 fn _type_assertion(
4814 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4815 ) {
4816 match _t {
4817 alloy_sol_types::private::AssertTypeEq::<
4818 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4819 >(_) => {}
4820 }
4821 }
4822 #[automatically_derived]
4823 #[doc(hidden)]
4824 impl ::core::convert::From<COSET_K3Return> for UnderlyingRustTuple<'_> {
4825 fn from(value: COSET_K3Return) -> Self {
4826 (value._0,)
4827 }
4828 }
4829 #[automatically_derived]
4830 #[doc(hidden)]
4831 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Return {
4832 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4833 Self { _0: tuple.0 }
4834 }
4835 }
4836 }
4837 #[automatically_derived]
4838 impl alloy_sol_types::SolCall for COSET_K3Call {
4839 type Parameters<'a> = ();
4840 type Token<'a> = <Self::Parameters<
4841 'a,
4842 > as alloy_sol_types::SolType>::Token<'a>;
4843 type Return = alloy::sol_types::private::primitives::aliases::U256;
4844 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4845 type ReturnToken<'a> = <Self::ReturnTuple<
4846 'a,
4847 > as alloy_sol_types::SolType>::Token<'a>;
4848 const SIGNATURE: &'static str = "COSET_K3()";
4849 const SELECTOR: [u8; 4] = [90u8, 20u8, 192u8, 254u8];
4850 #[inline]
4851 fn new<'a>(
4852 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4853 ) -> Self {
4854 tuple.into()
4855 }
4856 #[inline]
4857 fn tokenize(&self) -> Self::Token<'_> {
4858 ()
4859 }
4860 #[inline]
4861 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4862 (
4863 <alloy::sol_types::sol_data::Uint<
4864 256,
4865 > as alloy_sol_types::SolType>::tokenize(ret),
4866 )
4867 }
4868 #[inline]
4869 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4870 <Self::ReturnTuple<
4871 '_,
4872 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4873 .map(|r| {
4874 let r: COSET_K3Return = r.into();
4875 r._0
4876 })
4877 }
4878 #[inline]
4879 fn abi_decode_returns_validate(
4880 data: &[u8],
4881 ) -> alloy_sol_types::Result<Self::Return> {
4882 <Self::ReturnTuple<
4883 '_,
4884 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4885 .map(|r| {
4886 let r: COSET_K3Return = r.into();
4887 r._0
4888 })
4889 }
4890 }
4891 };
4892 #[derive(serde::Serialize, serde::Deserialize)]
4893 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4894 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4899 #[derive(Clone)]
4900 pub struct COSET_K4Call;
4901 #[derive(serde::Serialize, serde::Deserialize)]
4902 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4903 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4905 #[derive(Clone)]
4906 pub struct COSET_K4Return {
4907 #[allow(missing_docs)]
4908 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4909 }
4910 #[allow(
4911 non_camel_case_types,
4912 non_snake_case,
4913 clippy::pub_underscore_fields,
4914 clippy::style
4915 )]
4916 const _: () = {
4917 use alloy::sol_types as alloy_sol_types;
4918 {
4919 #[doc(hidden)]
4920 type UnderlyingSolTuple<'a> = ();
4921 #[doc(hidden)]
4922 type UnderlyingRustTuple<'a> = ();
4923 #[cfg(test)]
4924 #[allow(dead_code, unreachable_patterns)]
4925 fn _type_assertion(
4926 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4927 ) {
4928 match _t {
4929 alloy_sol_types::private::AssertTypeEq::<
4930 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4931 >(_) => {}
4932 }
4933 }
4934 #[automatically_derived]
4935 #[doc(hidden)]
4936 impl ::core::convert::From<COSET_K4Call> for UnderlyingRustTuple<'_> {
4937 fn from(value: COSET_K4Call) -> Self {
4938 ()
4939 }
4940 }
4941 #[automatically_derived]
4942 #[doc(hidden)]
4943 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Call {
4944 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4945 Self
4946 }
4947 }
4948 }
4949 {
4950 #[doc(hidden)]
4951 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4952 #[doc(hidden)]
4953 type UnderlyingRustTuple<'a> = (
4954 alloy::sol_types::private::primitives::aliases::U256,
4955 );
4956 #[cfg(test)]
4957 #[allow(dead_code, unreachable_patterns)]
4958 fn _type_assertion(
4959 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4960 ) {
4961 match _t {
4962 alloy_sol_types::private::AssertTypeEq::<
4963 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4964 >(_) => {}
4965 }
4966 }
4967 #[automatically_derived]
4968 #[doc(hidden)]
4969 impl ::core::convert::From<COSET_K4Return> for UnderlyingRustTuple<'_> {
4970 fn from(value: COSET_K4Return) -> Self {
4971 (value._0,)
4972 }
4973 }
4974 #[automatically_derived]
4975 #[doc(hidden)]
4976 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Return {
4977 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4978 Self { _0: tuple.0 }
4979 }
4980 }
4981 }
4982 #[automatically_derived]
4983 impl alloy_sol_types::SolCall for COSET_K4Call {
4984 type Parameters<'a> = ();
4985 type Token<'a> = <Self::Parameters<
4986 'a,
4987 > as alloy_sol_types::SolType>::Token<'a>;
4988 type Return = alloy::sol_types::private::primitives::aliases::U256;
4989 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4990 type ReturnToken<'a> = <Self::ReturnTuple<
4991 'a,
4992 > as alloy_sol_types::SolType>::Token<'a>;
4993 const SIGNATURE: &'static str = "COSET_K4()";
4994 const SELECTOR: [u8; 4] = [222u8, 36u8, 172u8, 15u8];
4995 #[inline]
4996 fn new<'a>(
4997 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4998 ) -> Self {
4999 tuple.into()
5000 }
5001 #[inline]
5002 fn tokenize(&self) -> Self::Token<'_> {
5003 ()
5004 }
5005 #[inline]
5006 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5007 (
5008 <alloy::sol_types::sol_data::Uint<
5009 256,
5010 > as alloy_sol_types::SolType>::tokenize(ret),
5011 )
5012 }
5013 #[inline]
5014 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5015 <Self::ReturnTuple<
5016 '_,
5017 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5018 .map(|r| {
5019 let r: COSET_K4Return = r.into();
5020 r._0
5021 })
5022 }
5023 #[inline]
5024 fn abi_decode_returns_validate(
5025 data: &[u8],
5026 ) -> alloy_sol_types::Result<Self::Return> {
5027 <Self::ReturnTuple<
5028 '_,
5029 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5030 .map(|r| {
5031 let r: COSET_K4Return = r.into();
5032 r._0
5033 })
5034 }
5035 }
5036 };
5037 #[derive(serde::Serialize, serde::Deserialize)]
5038 #[derive()]
5039 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5044 #[derive(Clone)]
5045 pub struct verifyCall {
5046 #[allow(missing_docs)]
5047 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5048 #[allow(missing_docs)]
5049 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
5050 #[allow(missing_docs)]
5051 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5052 }
5053 #[derive(serde::Serialize, serde::Deserialize)]
5054 #[derive(Default, Debug, PartialEq, Eq, Hash)]
5055 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5057 #[derive(Clone)]
5058 pub struct verifyReturn {
5059 #[allow(missing_docs)]
5060 pub _0: bool,
5061 }
5062 #[allow(
5063 non_camel_case_types,
5064 non_snake_case,
5065 clippy::pub_underscore_fields,
5066 clippy::style
5067 )]
5068 const _: () = {
5069 use alloy::sol_types as alloy_sol_types;
5070 {
5071 #[doc(hidden)]
5072 type UnderlyingSolTuple<'a> = (
5073 IPlonkVerifier::VerifyingKey,
5074 alloy::sol_types::sol_data::FixedArray<
5075 alloy::sol_types::sol_data::Uint<256>,
5076 11usize,
5077 >,
5078 IPlonkVerifier::PlonkProof,
5079 );
5080 #[doc(hidden)]
5081 type UnderlyingRustTuple<'a> = (
5082 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5083 [alloy::sol_types::private::primitives::aliases::U256; 11usize],
5084 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5085 );
5086 #[cfg(test)]
5087 #[allow(dead_code, unreachable_patterns)]
5088 fn _type_assertion(
5089 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5090 ) {
5091 match _t {
5092 alloy_sol_types::private::AssertTypeEq::<
5093 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5094 >(_) => {}
5095 }
5096 }
5097 #[automatically_derived]
5098 #[doc(hidden)]
5099 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
5100 fn from(value: verifyCall) -> Self {
5101 (value.verifyingKey, value.publicInput, value.proof)
5102 }
5103 }
5104 #[automatically_derived]
5105 #[doc(hidden)]
5106 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
5107 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5108 Self {
5109 verifyingKey: tuple.0,
5110 publicInput: tuple.1,
5111 proof: tuple.2,
5112 }
5113 }
5114 }
5115 }
5116 {
5117 #[doc(hidden)]
5118 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5119 #[doc(hidden)]
5120 type UnderlyingRustTuple<'a> = (bool,);
5121 #[cfg(test)]
5122 #[allow(dead_code, unreachable_patterns)]
5123 fn _type_assertion(
5124 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5125 ) {
5126 match _t {
5127 alloy_sol_types::private::AssertTypeEq::<
5128 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5129 >(_) => {}
5130 }
5131 }
5132 #[automatically_derived]
5133 #[doc(hidden)]
5134 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
5135 fn from(value: verifyReturn) -> Self {
5136 (value._0,)
5137 }
5138 }
5139 #[automatically_derived]
5140 #[doc(hidden)]
5141 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
5142 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5143 Self { _0: tuple.0 }
5144 }
5145 }
5146 }
5147 #[automatically_derived]
5148 impl alloy_sol_types::SolCall for verifyCall {
5149 type Parameters<'a> = (
5150 IPlonkVerifier::VerifyingKey,
5151 alloy::sol_types::sol_data::FixedArray<
5152 alloy::sol_types::sol_data::Uint<256>,
5153 11usize,
5154 >,
5155 IPlonkVerifier::PlonkProof,
5156 );
5157 type Token<'a> = <Self::Parameters<
5158 'a,
5159 > as alloy_sol_types::SolType>::Token<'a>;
5160 type Return = bool;
5161 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5162 type ReturnToken<'a> = <Self::ReturnTuple<
5163 'a,
5164 > as alloy_sol_types::SolType>::Token<'a>;
5165 const SIGNATURE: &'static str = "verify((uint256,uint256,(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),bytes32,bytes32),uint256[11],((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))";
5166 const SELECTOR: [u8; 4] = [171u8, 149u8, 158u8, 227u8];
5167 #[inline]
5168 fn new<'a>(
5169 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5170 ) -> Self {
5171 tuple.into()
5172 }
5173 #[inline]
5174 fn tokenize(&self) -> Self::Token<'_> {
5175 (
5176 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
5177 &self.verifyingKey,
5178 ),
5179 <alloy::sol_types::sol_data::FixedArray<
5180 alloy::sol_types::sol_data::Uint<256>,
5181 11usize,
5182 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
5183 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
5184 &self.proof,
5185 ),
5186 )
5187 }
5188 #[inline]
5189 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5190 (
5191 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
5192 ret,
5193 ),
5194 )
5195 }
5196 #[inline]
5197 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5198 <Self::ReturnTuple<
5199 '_,
5200 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5201 .map(|r| {
5202 let r: verifyReturn = r.into();
5203 r._0
5204 })
5205 }
5206 #[inline]
5207 fn abi_decode_returns_validate(
5208 data: &[u8],
5209 ) -> alloy_sol_types::Result<Self::Return> {
5210 <Self::ReturnTuple<
5211 '_,
5212 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5213 .map(|r| {
5214 let r: verifyReturn = r.into();
5215 r._0
5216 })
5217 }
5218 }
5219 };
5220 #[derive(serde::Serialize, serde::Deserialize)]
5222 #[derive()]
5223 pub enum PlonkVerifierV2Calls {
5224 #[allow(missing_docs)]
5225 BETA_H_X0(BETA_H_X0Call),
5226 #[allow(missing_docs)]
5227 BETA_H_X1(BETA_H_X1Call),
5228 #[allow(missing_docs)]
5229 BETA_H_Y0(BETA_H_Y0Call),
5230 #[allow(missing_docs)]
5231 BETA_H_Y1(BETA_H_Y1Call),
5232 #[allow(missing_docs)]
5233 COSET_K1(COSET_K1Call),
5234 #[allow(missing_docs)]
5235 COSET_K2(COSET_K2Call),
5236 #[allow(missing_docs)]
5237 COSET_K3(COSET_K3Call),
5238 #[allow(missing_docs)]
5239 COSET_K4(COSET_K4Call),
5240 #[allow(missing_docs)]
5241 verify(verifyCall),
5242 }
5243 #[automatically_derived]
5244 impl PlonkVerifierV2Calls {
5245 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5252 [12u8, 85u8, 31u8, 63u8],
5253 [75u8, 71u8, 52u8, 227u8],
5254 [90u8, 20u8, 192u8, 254u8],
5255 [131u8, 76u8, 69u8, 42u8],
5256 [171u8, 149u8, 158u8, 227u8],
5257 [175u8, 25u8, 107u8, 162u8],
5258 [222u8, 36u8, 172u8, 15u8],
5259 [227u8, 81u8, 45u8, 86u8],
5260 [245u8, 20u8, 67u8, 38u8],
5261 ];
5262 }
5263 #[automatically_derived]
5264 impl alloy_sol_types::SolInterface for PlonkVerifierV2Calls {
5265 const NAME: &'static str = "PlonkVerifierV2Calls";
5266 const MIN_DATA_LENGTH: usize = 0usize;
5267 const COUNT: usize = 9usize;
5268 #[inline]
5269 fn selector(&self) -> [u8; 4] {
5270 match self {
5271 Self::BETA_H_X0(_) => {
5272 <BETA_H_X0Call as alloy_sol_types::SolCall>::SELECTOR
5273 }
5274 Self::BETA_H_X1(_) => {
5275 <BETA_H_X1Call as alloy_sol_types::SolCall>::SELECTOR
5276 }
5277 Self::BETA_H_Y0(_) => {
5278 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SELECTOR
5279 }
5280 Self::BETA_H_Y1(_) => {
5281 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SELECTOR
5282 }
5283 Self::COSET_K1(_) => <COSET_K1Call as alloy_sol_types::SolCall>::SELECTOR,
5284 Self::COSET_K2(_) => <COSET_K2Call as alloy_sol_types::SolCall>::SELECTOR,
5285 Self::COSET_K3(_) => <COSET_K3Call as alloy_sol_types::SolCall>::SELECTOR,
5286 Self::COSET_K4(_) => <COSET_K4Call as alloy_sol_types::SolCall>::SELECTOR,
5287 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
5288 }
5289 }
5290 #[inline]
5291 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5292 Self::SELECTORS.get(i).copied()
5293 }
5294 #[inline]
5295 fn valid_selector(selector: [u8; 4]) -> bool {
5296 Self::SELECTORS.binary_search(&selector).is_ok()
5297 }
5298 #[inline]
5299 #[allow(non_snake_case)]
5300 fn abi_decode_raw(
5301 selector: [u8; 4],
5302 data: &[u8],
5303 ) -> alloy_sol_types::Result<Self> {
5304 static DECODE_SHIMS: &[fn(
5305 &[u8],
5306 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
5307 {
5308 fn COSET_K2(
5309 data: &[u8],
5310 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5311 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5312 .map(PlonkVerifierV2Calls::COSET_K2)
5313 }
5314 COSET_K2
5315 },
5316 {
5317 fn BETA_H_Y1(
5318 data: &[u8],
5319 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5320 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5321 .map(PlonkVerifierV2Calls::BETA_H_Y1)
5322 }
5323 BETA_H_Y1
5324 },
5325 {
5326 fn COSET_K3(
5327 data: &[u8],
5328 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5329 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5330 .map(PlonkVerifierV2Calls::COSET_K3)
5331 }
5332 COSET_K3
5333 },
5334 {
5335 fn BETA_H_X0(
5336 data: &[u8],
5337 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5338 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5339 .map(PlonkVerifierV2Calls::BETA_H_X0)
5340 }
5341 BETA_H_X0
5342 },
5343 {
5344 fn verify(
5345 data: &[u8],
5346 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5347 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
5348 .map(PlonkVerifierV2Calls::verify)
5349 }
5350 verify
5351 },
5352 {
5353 fn BETA_H_X1(
5354 data: &[u8],
5355 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5356 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5357 .map(PlonkVerifierV2Calls::BETA_H_X1)
5358 }
5359 BETA_H_X1
5360 },
5361 {
5362 fn COSET_K4(
5363 data: &[u8],
5364 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5365 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5366 .map(PlonkVerifierV2Calls::COSET_K4)
5367 }
5368 COSET_K4
5369 },
5370 {
5371 fn COSET_K1(
5372 data: &[u8],
5373 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5374 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5375 .map(PlonkVerifierV2Calls::COSET_K1)
5376 }
5377 COSET_K1
5378 },
5379 {
5380 fn BETA_H_Y0(
5381 data: &[u8],
5382 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5383 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
5384 .map(PlonkVerifierV2Calls::BETA_H_Y0)
5385 }
5386 BETA_H_Y0
5387 },
5388 ];
5389 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5390 return Err(
5391 alloy_sol_types::Error::unknown_selector(
5392 <Self as alloy_sol_types::SolInterface>::NAME,
5393 selector,
5394 ),
5395 );
5396 };
5397 DECODE_SHIMS[idx](data)
5398 }
5399 #[inline]
5400 #[allow(non_snake_case)]
5401 fn abi_decode_raw_validate(
5402 selector: [u8; 4],
5403 data: &[u8],
5404 ) -> alloy_sol_types::Result<Self> {
5405 static DECODE_VALIDATE_SHIMS: &[fn(
5406 &[u8],
5407 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
5408 {
5409 fn COSET_K2(
5410 data: &[u8],
5411 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5412 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5413 data,
5414 )
5415 .map(PlonkVerifierV2Calls::COSET_K2)
5416 }
5417 COSET_K2
5418 },
5419 {
5420 fn BETA_H_Y1(
5421 data: &[u8],
5422 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5423 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5424 data,
5425 )
5426 .map(PlonkVerifierV2Calls::BETA_H_Y1)
5427 }
5428 BETA_H_Y1
5429 },
5430 {
5431 fn COSET_K3(
5432 data: &[u8],
5433 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5434 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5435 data,
5436 )
5437 .map(PlonkVerifierV2Calls::COSET_K3)
5438 }
5439 COSET_K3
5440 },
5441 {
5442 fn BETA_H_X0(
5443 data: &[u8],
5444 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5445 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5446 data,
5447 )
5448 .map(PlonkVerifierV2Calls::BETA_H_X0)
5449 }
5450 BETA_H_X0
5451 },
5452 {
5453 fn verify(
5454 data: &[u8],
5455 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5456 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5457 data,
5458 )
5459 .map(PlonkVerifierV2Calls::verify)
5460 }
5461 verify
5462 },
5463 {
5464 fn BETA_H_X1(
5465 data: &[u8],
5466 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5467 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5468 data,
5469 )
5470 .map(PlonkVerifierV2Calls::BETA_H_X1)
5471 }
5472 BETA_H_X1
5473 },
5474 {
5475 fn COSET_K4(
5476 data: &[u8],
5477 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5478 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5479 data,
5480 )
5481 .map(PlonkVerifierV2Calls::COSET_K4)
5482 }
5483 COSET_K4
5484 },
5485 {
5486 fn COSET_K1(
5487 data: &[u8],
5488 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5489 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5490 data,
5491 )
5492 .map(PlonkVerifierV2Calls::COSET_K1)
5493 }
5494 COSET_K1
5495 },
5496 {
5497 fn BETA_H_Y0(
5498 data: &[u8],
5499 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
5500 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(
5501 data,
5502 )
5503 .map(PlonkVerifierV2Calls::BETA_H_Y0)
5504 }
5505 BETA_H_Y0
5506 },
5507 ];
5508 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5509 return Err(
5510 alloy_sol_types::Error::unknown_selector(
5511 <Self as alloy_sol_types::SolInterface>::NAME,
5512 selector,
5513 ),
5514 );
5515 };
5516 DECODE_VALIDATE_SHIMS[idx](data)
5517 }
5518 #[inline]
5519 fn abi_encoded_size(&self) -> usize {
5520 match self {
5521 Self::BETA_H_X0(inner) => {
5522 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5523 }
5524 Self::BETA_H_X1(inner) => {
5525 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5526 }
5527 Self::BETA_H_Y0(inner) => {
5528 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5529 }
5530 Self::BETA_H_Y1(inner) => {
5531 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5532 }
5533 Self::COSET_K1(inner) => {
5534 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5535 }
5536 Self::COSET_K2(inner) => {
5537 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5538 }
5539 Self::COSET_K3(inner) => {
5540 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5541 }
5542 Self::COSET_K4(inner) => {
5543 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5544 }
5545 Self::verify(inner) => {
5546 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
5547 }
5548 }
5549 }
5550 #[inline]
5551 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
5552 match self {
5553 Self::BETA_H_X0(inner) => {
5554 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5555 inner,
5556 out,
5557 )
5558 }
5559 Self::BETA_H_X1(inner) => {
5560 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5561 inner,
5562 out,
5563 )
5564 }
5565 Self::BETA_H_Y0(inner) => {
5566 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encode_raw(
5567 inner,
5568 out,
5569 )
5570 }
5571 Self::BETA_H_Y1(inner) => {
5572 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5573 inner,
5574 out,
5575 )
5576 }
5577 Self::COSET_K1(inner) => {
5578 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encode_raw(
5579 inner,
5580 out,
5581 )
5582 }
5583 Self::COSET_K2(inner) => {
5584 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encode_raw(
5585 inner,
5586 out,
5587 )
5588 }
5589 Self::COSET_K3(inner) => {
5590 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encode_raw(
5591 inner,
5592 out,
5593 )
5594 }
5595 Self::COSET_K4(inner) => {
5596 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encode_raw(
5597 inner,
5598 out,
5599 )
5600 }
5601 Self::verify(inner) => {
5602 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
5603 }
5604 }
5605 }
5606 }
5607 #[derive(serde::Serialize, serde::Deserialize)]
5609 #[derive(Debug, PartialEq, Eq, Hash)]
5610 pub enum PlonkVerifierV2Errors {
5611 #[allow(missing_docs)]
5612 BN254G1AddFailed(BN254G1AddFailed),
5613 #[allow(missing_docs)]
5614 BN254PairingProdFailed(BN254PairingProdFailed),
5615 #[allow(missing_docs)]
5616 BN254ScalarInvZero(BN254ScalarInvZero),
5617 #[allow(missing_docs)]
5618 BN254ScalarMulFailed(BN254ScalarMulFailed),
5619 #[allow(missing_docs)]
5620 InvalidG1(InvalidG1),
5621 #[allow(missing_docs)]
5622 InvalidPlonkArgs(InvalidPlonkArgs),
5623 #[allow(missing_docs)]
5624 InvalidScalar(InvalidScalar),
5625 #[allow(missing_docs)]
5626 PowPrecompileFailed(PowPrecompileFailed),
5627 #[allow(missing_docs)]
5628 UnsupportedDegree(UnsupportedDegree),
5629 #[allow(missing_docs)]
5630 WrongPlonkVK(WrongPlonkVK),
5631 }
5632 #[automatically_derived]
5633 impl PlonkVerifierV2Errors {
5634 pub const SELECTORS: &'static [[u8; 4usize]] = &[
5641 [5u8, 176u8, 92u8, 204u8],
5642 [25u8, 219u8, 138u8, 104u8],
5643 [50u8, 116u8, 250u8, 100u8],
5644 [65u8, 245u8, 59u8, 18u8],
5645 [96u8, 85u8, 219u8, 106u8],
5646 [158u8, 120u8, 209u8, 76u8],
5647 [194u8, 6u8, 51u8, 79u8],
5648 [214u8, 219u8, 187u8, 13u8],
5649 [226u8, 239u8, 9u8, 229u8],
5650 [253u8, 154u8, 45u8, 27u8],
5651 ];
5652 }
5653 #[automatically_derived]
5654 impl alloy_sol_types::SolInterface for PlonkVerifierV2Errors {
5655 const NAME: &'static str = "PlonkVerifierV2Errors";
5656 const MIN_DATA_LENGTH: usize = 0usize;
5657 const COUNT: usize = 10usize;
5658 #[inline]
5659 fn selector(&self) -> [u8; 4] {
5660 match self {
5661 Self::BN254G1AddFailed(_) => {
5662 <BN254G1AddFailed as alloy_sol_types::SolError>::SELECTOR
5663 }
5664 Self::BN254PairingProdFailed(_) => {
5665 <BN254PairingProdFailed as alloy_sol_types::SolError>::SELECTOR
5666 }
5667 Self::BN254ScalarInvZero(_) => {
5668 <BN254ScalarInvZero as alloy_sol_types::SolError>::SELECTOR
5669 }
5670 Self::BN254ScalarMulFailed(_) => {
5671 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SELECTOR
5672 }
5673 Self::InvalidG1(_) => <InvalidG1 as alloy_sol_types::SolError>::SELECTOR,
5674 Self::InvalidPlonkArgs(_) => {
5675 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
5676 }
5677 Self::InvalidScalar(_) => {
5678 <InvalidScalar as alloy_sol_types::SolError>::SELECTOR
5679 }
5680 Self::PowPrecompileFailed(_) => {
5681 <PowPrecompileFailed as alloy_sol_types::SolError>::SELECTOR
5682 }
5683 Self::UnsupportedDegree(_) => {
5684 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
5685 }
5686 Self::WrongPlonkVK(_) => {
5687 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
5688 }
5689 }
5690 }
5691 #[inline]
5692 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
5693 Self::SELECTORS.get(i).copied()
5694 }
5695 #[inline]
5696 fn valid_selector(selector: [u8; 4]) -> bool {
5697 Self::SELECTORS.binary_search(&selector).is_ok()
5698 }
5699 #[inline]
5700 #[allow(non_snake_case)]
5701 fn abi_decode_raw(
5702 selector: [u8; 4],
5703 data: &[u8],
5704 ) -> alloy_sol_types::Result<Self> {
5705 static DECODE_SHIMS: &[fn(
5706 &[u8],
5707 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
5708 {
5709 fn InvalidScalar(
5710 data: &[u8],
5711 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5712 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw(
5713 data,
5714 )
5715 .map(PlonkVerifierV2Errors::InvalidScalar)
5716 }
5717 InvalidScalar
5718 },
5719 {
5720 fn BN254ScalarMulFailed(
5721 data: &[u8],
5722 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5723 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw(
5724 data,
5725 )
5726 .map(PlonkVerifierV2Errors::BN254ScalarMulFailed)
5727 }
5728 BN254ScalarMulFailed
5729 },
5730 {
5731 fn PowPrecompileFailed(
5732 data: &[u8],
5733 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5734 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw(
5735 data,
5736 )
5737 .map(PlonkVerifierV2Errors::PowPrecompileFailed)
5738 }
5739 PowPrecompileFailed
5740 },
5741 {
5742 fn WrongPlonkVK(
5743 data: &[u8],
5744 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5745 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(data)
5746 .map(PlonkVerifierV2Errors::WrongPlonkVK)
5747 }
5748 WrongPlonkVK
5749 },
5750 {
5751 fn BN254G1AddFailed(
5752 data: &[u8],
5753 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5754 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw(
5755 data,
5756 )
5757 .map(PlonkVerifierV2Errors::BN254G1AddFailed)
5758 }
5759 BN254G1AddFailed
5760 },
5761 {
5762 fn InvalidG1(
5763 data: &[u8],
5764 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5765 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw(data)
5766 .map(PlonkVerifierV2Errors::InvalidG1)
5767 }
5768 InvalidG1
5769 },
5770 {
5771 fn BN254PairingProdFailed(
5772 data: &[u8],
5773 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5774 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw(
5775 data,
5776 )
5777 .map(PlonkVerifierV2Errors::BN254PairingProdFailed)
5778 }
5779 BN254PairingProdFailed
5780 },
5781 {
5782 fn BN254ScalarInvZero(
5783 data: &[u8],
5784 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5785 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw(
5786 data,
5787 )
5788 .map(PlonkVerifierV2Errors::BN254ScalarInvZero)
5789 }
5790 BN254ScalarInvZero
5791 },
5792 {
5793 fn UnsupportedDegree(
5794 data: &[u8],
5795 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5796 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
5797 data,
5798 )
5799 .map(PlonkVerifierV2Errors::UnsupportedDegree)
5800 }
5801 UnsupportedDegree
5802 },
5803 {
5804 fn InvalidPlonkArgs(
5805 data: &[u8],
5806 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5807 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
5808 data,
5809 )
5810 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
5811 }
5812 InvalidPlonkArgs
5813 },
5814 ];
5815 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5816 return Err(
5817 alloy_sol_types::Error::unknown_selector(
5818 <Self as alloy_sol_types::SolInterface>::NAME,
5819 selector,
5820 ),
5821 );
5822 };
5823 DECODE_SHIMS[idx](data)
5824 }
5825 #[inline]
5826 #[allow(non_snake_case)]
5827 fn abi_decode_raw_validate(
5828 selector: [u8; 4],
5829 data: &[u8],
5830 ) -> alloy_sol_types::Result<Self> {
5831 static DECODE_VALIDATE_SHIMS: &[fn(
5832 &[u8],
5833 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
5834 {
5835 fn InvalidScalar(
5836 data: &[u8],
5837 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5838 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw_validate(
5839 data,
5840 )
5841 .map(PlonkVerifierV2Errors::InvalidScalar)
5842 }
5843 InvalidScalar
5844 },
5845 {
5846 fn BN254ScalarMulFailed(
5847 data: &[u8],
5848 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5849 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5850 data,
5851 )
5852 .map(PlonkVerifierV2Errors::BN254ScalarMulFailed)
5853 }
5854 BN254ScalarMulFailed
5855 },
5856 {
5857 fn PowPrecompileFailed(
5858 data: &[u8],
5859 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5860 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5861 data,
5862 )
5863 .map(PlonkVerifierV2Errors::PowPrecompileFailed)
5864 }
5865 PowPrecompileFailed
5866 },
5867 {
5868 fn WrongPlonkVK(
5869 data: &[u8],
5870 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5871 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw_validate(
5872 data,
5873 )
5874 .map(PlonkVerifierV2Errors::WrongPlonkVK)
5875 }
5876 WrongPlonkVK
5877 },
5878 {
5879 fn BN254G1AddFailed(
5880 data: &[u8],
5881 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5882 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5883 data,
5884 )
5885 .map(PlonkVerifierV2Errors::BN254G1AddFailed)
5886 }
5887 BN254G1AddFailed
5888 },
5889 {
5890 fn InvalidG1(
5891 data: &[u8],
5892 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5893 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw_validate(
5894 data,
5895 )
5896 .map(PlonkVerifierV2Errors::InvalidG1)
5897 }
5898 InvalidG1
5899 },
5900 {
5901 fn BN254PairingProdFailed(
5902 data: &[u8],
5903 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5904 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
5905 data,
5906 )
5907 .map(PlonkVerifierV2Errors::BN254PairingProdFailed)
5908 }
5909 BN254PairingProdFailed
5910 },
5911 {
5912 fn BN254ScalarInvZero(
5913 data: &[u8],
5914 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5915 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
5916 data,
5917 )
5918 .map(PlonkVerifierV2Errors::BN254ScalarInvZero)
5919 }
5920 BN254ScalarInvZero
5921 },
5922 {
5923 fn UnsupportedDegree(
5924 data: &[u8],
5925 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5926 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw_validate(
5927 data,
5928 )
5929 .map(PlonkVerifierV2Errors::UnsupportedDegree)
5930 }
5931 UnsupportedDegree
5932 },
5933 {
5934 fn InvalidPlonkArgs(
5935 data: &[u8],
5936 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
5937 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw_validate(
5938 data,
5939 )
5940 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
5941 }
5942 InvalidPlonkArgs
5943 },
5944 ];
5945 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
5946 return Err(
5947 alloy_sol_types::Error::unknown_selector(
5948 <Self as alloy_sol_types::SolInterface>::NAME,
5949 selector,
5950 ),
5951 );
5952 };
5953 DECODE_VALIDATE_SHIMS[idx](data)
5954 }
5955 #[inline]
5956 fn abi_encoded_size(&self) -> usize {
5957 match self {
5958 Self::BN254G1AddFailed(inner) => {
5959 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encoded_size(
5960 inner,
5961 )
5962 }
5963 Self::BN254PairingProdFailed(inner) => {
5964 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encoded_size(
5965 inner,
5966 )
5967 }
5968 Self::BN254ScalarInvZero(inner) => {
5969 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encoded_size(
5970 inner,
5971 )
5972 }
5973 Self::BN254ScalarMulFailed(inner) => {
5974 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encoded_size(
5975 inner,
5976 )
5977 }
5978 Self::InvalidG1(inner) => {
5979 <InvalidG1 as alloy_sol_types::SolError>::abi_encoded_size(inner)
5980 }
5981 Self::InvalidPlonkArgs(inner) => {
5982 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
5983 inner,
5984 )
5985 }
5986 Self::InvalidScalar(inner) => {
5987 <InvalidScalar as alloy_sol_types::SolError>::abi_encoded_size(inner)
5988 }
5989 Self::PowPrecompileFailed(inner) => {
5990 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encoded_size(
5991 inner,
5992 )
5993 }
5994 Self::UnsupportedDegree(inner) => {
5995 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
5996 inner,
5997 )
5998 }
5999 Self::WrongPlonkVK(inner) => {
6000 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
6001 }
6002 }
6003 }
6004 #[inline]
6005 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
6006 match self {
6007 Self::BN254G1AddFailed(inner) => {
6008 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encode_raw(
6009 inner,
6010 out,
6011 )
6012 }
6013 Self::BN254PairingProdFailed(inner) => {
6014 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encode_raw(
6015 inner,
6016 out,
6017 )
6018 }
6019 Self::BN254ScalarInvZero(inner) => {
6020 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encode_raw(
6021 inner,
6022 out,
6023 )
6024 }
6025 Self::BN254ScalarMulFailed(inner) => {
6026 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encode_raw(
6027 inner,
6028 out,
6029 )
6030 }
6031 Self::InvalidG1(inner) => {
6032 <InvalidG1 as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
6033 }
6034 Self::InvalidPlonkArgs(inner) => {
6035 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
6036 inner,
6037 out,
6038 )
6039 }
6040 Self::InvalidScalar(inner) => {
6041 <InvalidScalar as alloy_sol_types::SolError>::abi_encode_raw(
6042 inner,
6043 out,
6044 )
6045 }
6046 Self::PowPrecompileFailed(inner) => {
6047 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encode_raw(
6048 inner,
6049 out,
6050 )
6051 }
6052 Self::UnsupportedDegree(inner) => {
6053 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
6054 inner,
6055 out,
6056 )
6057 }
6058 Self::WrongPlonkVK(inner) => {
6059 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
6060 inner,
6061 out,
6062 )
6063 }
6064 }
6065 }
6066 }
6067 use alloy::contract as alloy_contract;
6068 #[inline]
6072 pub const fn new<
6073 P: alloy_contract::private::Provider<N>,
6074 N: alloy_contract::private::Network,
6075 >(
6076 address: alloy_sol_types::private::Address,
6077 provider: P,
6078 ) -> PlonkVerifierV2Instance<P, N> {
6079 PlonkVerifierV2Instance::<P, N>::new(address, provider)
6080 }
6081 #[inline]
6087 pub fn deploy<
6088 P: alloy_contract::private::Provider<N>,
6089 N: alloy_contract::private::Network,
6090 >(
6091 provider: P,
6092 ) -> impl ::core::future::Future<
6093 Output = alloy_contract::Result<PlonkVerifierV2Instance<P, N>>,
6094 > {
6095 PlonkVerifierV2Instance::<P, N>::deploy(provider)
6096 }
6097 #[inline]
6103 pub fn deploy_builder<
6104 P: alloy_contract::private::Provider<N>,
6105 N: alloy_contract::private::Network,
6106 >(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6107 PlonkVerifierV2Instance::<P, N>::deploy_builder(provider)
6108 }
6109 #[derive(Clone)]
6121 pub struct PlonkVerifierV2Instance<P, N = alloy_contract::private::Ethereum> {
6122 address: alloy_sol_types::private::Address,
6123 provider: P,
6124 _network: ::core::marker::PhantomData<N>,
6125 }
6126 #[automatically_derived]
6127 impl<P, N> ::core::fmt::Debug for PlonkVerifierV2Instance<P, N> {
6128 #[inline]
6129 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6130 f.debug_tuple("PlonkVerifierV2Instance").field(&self.address).finish()
6131 }
6132 }
6133 #[automatically_derived]
6135 impl<
6136 P: alloy_contract::private::Provider<N>,
6137 N: alloy_contract::private::Network,
6138 > PlonkVerifierV2Instance<P, N> {
6139 #[inline]
6143 pub const fn new(
6144 address: alloy_sol_types::private::Address,
6145 provider: P,
6146 ) -> Self {
6147 Self {
6148 address,
6149 provider,
6150 _network: ::core::marker::PhantomData,
6151 }
6152 }
6153 #[inline]
6159 pub async fn deploy(
6160 provider: P,
6161 ) -> alloy_contract::Result<PlonkVerifierV2Instance<P, N>> {
6162 let call_builder = Self::deploy_builder(provider);
6163 let contract_address = call_builder.deploy().await?;
6164 Ok(Self::new(contract_address, call_builder.provider))
6165 }
6166 #[inline]
6172 pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
6173 alloy_contract::RawCallBuilder::new_raw_deploy(
6174 provider,
6175 ::core::clone::Clone::clone(&BYTECODE),
6176 )
6177 }
6178 #[inline]
6180 pub const fn address(&self) -> &alloy_sol_types::private::Address {
6181 &self.address
6182 }
6183 #[inline]
6185 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
6186 self.address = address;
6187 }
6188 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
6190 self.set_address(address);
6191 self
6192 }
6193 #[inline]
6195 pub const fn provider(&self) -> &P {
6196 &self.provider
6197 }
6198 }
6199 impl<P: ::core::clone::Clone, N> PlonkVerifierV2Instance<&P, N> {
6200 #[inline]
6202 pub fn with_cloned_provider(self) -> PlonkVerifierV2Instance<P, N> {
6203 PlonkVerifierV2Instance {
6204 address: self.address,
6205 provider: ::core::clone::Clone::clone(&self.provider),
6206 _network: ::core::marker::PhantomData,
6207 }
6208 }
6209 }
6210 #[automatically_derived]
6212 impl<
6213 P: alloy_contract::private::Provider<N>,
6214 N: alloy_contract::private::Network,
6215 > PlonkVerifierV2Instance<P, N> {
6216 pub fn call_builder<C: alloy_sol_types::SolCall>(
6221 &self,
6222 call: &C,
6223 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
6224 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
6225 }
6226 pub fn BETA_H_X0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X0Call, N> {
6228 self.call_builder(&BETA_H_X0Call)
6229 }
6230 pub fn BETA_H_X1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_X1Call, N> {
6232 self.call_builder(&BETA_H_X1Call)
6233 }
6234 pub fn BETA_H_Y0(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y0Call, N> {
6236 self.call_builder(&BETA_H_Y0Call)
6237 }
6238 pub fn BETA_H_Y1(&self) -> alloy_contract::SolCallBuilder<&P, BETA_H_Y1Call, N> {
6240 self.call_builder(&BETA_H_Y1Call)
6241 }
6242 pub fn COSET_K1(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K1Call, N> {
6244 self.call_builder(&COSET_K1Call)
6245 }
6246 pub fn COSET_K2(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K2Call, N> {
6248 self.call_builder(&COSET_K2Call)
6249 }
6250 pub fn COSET_K3(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K3Call, N> {
6252 self.call_builder(&COSET_K3Call)
6253 }
6254 pub fn COSET_K4(&self) -> alloy_contract::SolCallBuilder<&P, COSET_K4Call, N> {
6256 self.call_builder(&COSET_K4Call)
6257 }
6258 pub fn verify(
6260 &self,
6261 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
6262 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
6263 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
6264 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
6265 self.call_builder(
6266 &verifyCall {
6267 verifyingKey,
6268 publicInput,
6269 proof,
6270 },
6271 )
6272 }
6273 }
6274 #[automatically_derived]
6276 impl<
6277 P: alloy_contract::private::Provider<N>,
6278 N: alloy_contract::private::Network,
6279 > PlonkVerifierV2Instance<P, N> {
6280 pub fn event_filter<E: alloy_sol_types::SolEvent>(
6285 &self,
6286 ) -> alloy_contract::Event<&P, E, N> {
6287 alloy_contract::Event::new_sol(&self.provider, &self.address)
6288 }
6289 }
6290}