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 #[allow(dead_code)]
334 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
335 #[doc(hidden)]
336 type UnderlyingRustTuple<'a> = (
337 <BaseField as alloy::sol_types::SolType>::RustType,
338 <BaseField as alloy::sol_types::SolType>::RustType,
339 );
340 #[cfg(test)]
341 #[allow(dead_code, unreachable_patterns)]
342 fn _type_assertion(
343 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
344 ) {
345 match _t {
346 alloy_sol_types::private::AssertTypeEq::<
347 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
348 >(_) => {}
349 }
350 }
351 #[automatically_derived]
352 #[doc(hidden)]
353 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
354 fn from(value: G1Point) -> Self {
355 (value.x, value.y)
356 }
357 }
358 #[automatically_derived]
359 #[doc(hidden)]
360 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
361 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
362 Self { x: tuple.0, y: tuple.1 }
363 }
364 }
365 #[automatically_derived]
366 impl alloy_sol_types::SolValue for G1Point {
367 type SolType = Self;
368 }
369 #[automatically_derived]
370 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
371 #[inline]
372 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
373 (
374 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
375 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
376 )
377 }
378 #[inline]
379 fn stv_abi_encoded_size(&self) -> usize {
380 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
381 return size;
382 }
383 let tuple = <UnderlyingRustTuple<
384 '_,
385 > as ::core::convert::From<Self>>::from(self.clone());
386 <UnderlyingSolTuple<
387 '_,
388 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
389 }
390 #[inline]
391 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
392 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
393 }
394 #[inline]
395 fn stv_abi_encode_packed_to(
396 &self,
397 out: &mut alloy_sol_types::private::Vec<u8>,
398 ) {
399 let tuple = <UnderlyingRustTuple<
400 '_,
401 > as ::core::convert::From<Self>>::from(self.clone());
402 <UnderlyingSolTuple<
403 '_,
404 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
405 }
406 #[inline]
407 fn stv_abi_packed_encoded_size(&self) -> usize {
408 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
409 return size;
410 }
411 let tuple = <UnderlyingRustTuple<
412 '_,
413 > as ::core::convert::From<Self>>::from(self.clone());
414 <UnderlyingSolTuple<
415 '_,
416 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
417 }
418 }
419 #[automatically_derived]
420 impl alloy_sol_types::SolType for G1Point {
421 type RustType = Self;
422 type Token<'a> = <UnderlyingSolTuple<
423 'a,
424 > as alloy_sol_types::SolType>::Token<'a>;
425 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
426 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
427 '_,
428 > as alloy_sol_types::SolType>::ENCODED_SIZE;
429 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
430 '_,
431 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
432 #[inline]
433 fn valid_token(token: &Self::Token<'_>) -> bool {
434 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
435 }
436 #[inline]
437 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
438 let tuple = <UnderlyingSolTuple<
439 '_,
440 > as alloy_sol_types::SolType>::detokenize(token);
441 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
442 }
443 }
444 #[automatically_derived]
445 impl alloy_sol_types::SolStruct for G1Point {
446 const NAME: &'static str = "G1Point";
447 #[inline]
448 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
449 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
450 }
451 #[inline]
452 fn eip712_components() -> alloy_sol_types::private::Vec<
453 alloy_sol_types::private::Cow<'static, str>,
454 > {
455 alloy_sol_types::private::Vec::new()
456 }
457 #[inline]
458 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
459 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
460 }
461 #[inline]
462 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
463 [
464 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
465 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
466 ]
467 .concat()
468 }
469 }
470 #[automatically_derived]
471 impl alloy_sol_types::EventTopic for G1Point {
472 #[inline]
473 fn topic_preimage_length(rust: &Self::RustType) -> usize {
474 0usize
475 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
476 &rust.x,
477 )
478 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
479 &rust.y,
480 )
481 }
482 #[inline]
483 fn encode_topic_preimage(
484 rust: &Self::RustType,
485 out: &mut alloy_sol_types::private::Vec<u8>,
486 ) {
487 out.reserve(
488 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
489 );
490 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
491 &rust.x,
492 out,
493 );
494 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
495 &rust.y,
496 out,
497 );
498 }
499 #[inline]
500 fn encode_topic(
501 rust: &Self::RustType,
502 ) -> alloy_sol_types::abi::token::WordToken {
503 let mut out = alloy_sol_types::private::Vec::new();
504 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
505 rust,
506 &mut out,
507 );
508 alloy_sol_types::abi::token::WordToken(
509 alloy_sol_types::private::keccak256(out),
510 )
511 }
512 }
513 };
514 use alloy::contract as alloy_contract;
515 #[inline]
519 pub const fn new<
520 P: alloy_contract::private::Provider<N>,
521 N: alloy_contract::private::Network,
522 >(address: alloy_sol_types::private::Address, __provider: P) -> BN254Instance<P, N> {
523 BN254Instance::<P, N>::new(address, __provider)
524 }
525 #[derive(Clone)]
537 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
538 address: alloy_sol_types::private::Address,
539 provider: P,
540 _network: ::core::marker::PhantomData<N>,
541 }
542 #[automatically_derived]
543 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
544 #[inline]
545 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
546 f.debug_tuple("BN254Instance").field(&self.address).finish()
547 }
548 }
549 #[automatically_derived]
551 impl<
552 P: alloy_contract::private::Provider<N>,
553 N: alloy_contract::private::Network,
554 > BN254Instance<P, N> {
555 #[inline]
559 pub const fn new(
560 address: alloy_sol_types::private::Address,
561 __provider: P,
562 ) -> Self {
563 Self {
564 address,
565 provider: __provider,
566 _network: ::core::marker::PhantomData,
567 }
568 }
569 #[inline]
571 pub const fn address(&self) -> &alloy_sol_types::private::Address {
572 &self.address
573 }
574 #[inline]
576 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
577 self.address = address;
578 }
579 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
581 self.set_address(address);
582 self
583 }
584 #[inline]
586 pub const fn provider(&self) -> &P {
587 &self.provider
588 }
589 }
590 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
591 #[inline]
593 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
594 BN254Instance {
595 address: self.address,
596 provider: ::core::clone::Clone::clone(&self.provider),
597 _network: ::core::marker::PhantomData,
598 }
599 }
600 }
601 #[automatically_derived]
603 impl<
604 P: alloy_contract::private::Provider<N>,
605 N: alloy_contract::private::Network,
606 > BN254Instance<P, N> {
607 pub fn call_builder<C: alloy_sol_types::SolCall>(
612 &self,
613 call: &C,
614 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
615 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
616 }
617 }
618 #[automatically_derived]
620 impl<
621 P: alloy_contract::private::Provider<N>,
622 N: alloy_contract::private::Network,
623 > BN254Instance<P, N> {
624 pub fn event_filter<E: alloy_sol_types::SolEvent>(
629 &self,
630 ) -> alloy_contract::Event<&P, E, N> {
631 alloy_contract::Event::new_sol(&self.provider, &self.address)
632 }
633 }
634}
635#[allow(
645 non_camel_case_types,
646 non_snake_case,
647 clippy::pub_underscore_fields,
648 clippy::style,
649 clippy::empty_structs_with_brackets
650)]
651pub mod IPlonkVerifier {
652 use super::*;
653 use alloy::sol_types as alloy_sol_types;
654 #[derive(serde::Serialize, serde::Deserialize)]
655 #[derive()]
656 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
660 #[derive(Clone)]
661 pub struct PlonkProof {
662 #[allow(missing_docs)]
663 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
664 #[allow(missing_docs)]
665 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
666 #[allow(missing_docs)]
667 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
668 #[allow(missing_docs)]
669 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
670 #[allow(missing_docs)]
671 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
672 #[allow(missing_docs)]
673 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
674 #[allow(missing_docs)]
675 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
676 #[allow(missing_docs)]
677 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
678 #[allow(missing_docs)]
679 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
680 #[allow(missing_docs)]
681 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
682 #[allow(missing_docs)]
683 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
684 #[allow(missing_docs)]
685 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
686 #[allow(missing_docs)]
687 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
688 #[allow(missing_docs)]
689 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
690 #[allow(missing_docs)]
691 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
692 #[allow(missing_docs)]
693 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
694 #[allow(missing_docs)]
695 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
696 #[allow(missing_docs)]
697 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
698 #[allow(missing_docs)]
699 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
700 #[allow(missing_docs)]
701 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
702 #[allow(missing_docs)]
703 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
704 #[allow(missing_docs)]
705 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
706 #[allow(missing_docs)]
707 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
708 }
709 #[allow(
710 non_camel_case_types,
711 non_snake_case,
712 clippy::pub_underscore_fields,
713 clippy::style
714 )]
715 const _: () = {
716 use alloy::sol_types as alloy_sol_types;
717 #[doc(hidden)]
718 #[allow(dead_code)]
719 type UnderlyingSolTuple<'a> = (
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::G1Point,
732 BN254::G1Point,
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 BN254::ScalarField,
742 BN254::ScalarField,
743 );
744 #[doc(hidden)]
745 type UnderlyingRustTuple<'a> = (
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::G1Point as alloy::sol_types::SolType>::RustType,
758 <BN254::G1Point 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 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
768 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
769 );
770 #[cfg(test)]
771 #[allow(dead_code, unreachable_patterns)]
772 fn _type_assertion(
773 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
774 ) {
775 match _t {
776 alloy_sol_types::private::AssertTypeEq::<
777 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
778 >(_) => {}
779 }
780 }
781 #[automatically_derived]
782 #[doc(hidden)]
783 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
784 fn from(value: PlonkProof) -> Self {
785 (
786 value.wire0,
787 value.wire1,
788 value.wire2,
789 value.wire3,
790 value.wire4,
791 value.prodPerm,
792 value.split0,
793 value.split1,
794 value.split2,
795 value.split3,
796 value.split4,
797 value.zeta,
798 value.zetaOmega,
799 value.wireEval0,
800 value.wireEval1,
801 value.wireEval2,
802 value.wireEval3,
803 value.wireEval4,
804 value.sigmaEval0,
805 value.sigmaEval1,
806 value.sigmaEval2,
807 value.sigmaEval3,
808 value.prodPermZetaOmegaEval,
809 )
810 }
811 }
812 #[automatically_derived]
813 #[doc(hidden)]
814 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
815 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
816 Self {
817 wire0: tuple.0,
818 wire1: tuple.1,
819 wire2: tuple.2,
820 wire3: tuple.3,
821 wire4: tuple.4,
822 prodPerm: tuple.5,
823 split0: tuple.6,
824 split1: tuple.7,
825 split2: tuple.8,
826 split3: tuple.9,
827 split4: tuple.10,
828 zeta: tuple.11,
829 zetaOmega: tuple.12,
830 wireEval0: tuple.13,
831 wireEval1: tuple.14,
832 wireEval2: tuple.15,
833 wireEval3: tuple.16,
834 wireEval4: tuple.17,
835 sigmaEval0: tuple.18,
836 sigmaEval1: tuple.19,
837 sigmaEval2: tuple.20,
838 sigmaEval3: tuple.21,
839 prodPermZetaOmegaEval: tuple.22,
840 }
841 }
842 }
843 #[automatically_derived]
844 impl alloy_sol_types::SolValue for PlonkProof {
845 type SolType = Self;
846 }
847 #[automatically_derived]
848 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
849 #[inline]
850 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
851 (
852 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
853 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
854 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
855 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
856 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
857 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
858 &self.prodPerm,
859 ),
860 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
861 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
862 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
863 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
864 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
865 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
866 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
867 &self.zetaOmega,
868 ),
869 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
870 &self.wireEval0,
871 ),
872 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
873 &self.wireEval1,
874 ),
875 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
876 &self.wireEval2,
877 ),
878 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
879 &self.wireEval3,
880 ),
881 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
882 &self.wireEval4,
883 ),
884 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
885 &self.sigmaEval0,
886 ),
887 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
888 &self.sigmaEval1,
889 ),
890 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
891 &self.sigmaEval2,
892 ),
893 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
894 &self.sigmaEval3,
895 ),
896 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
897 &self.prodPermZetaOmegaEval,
898 ),
899 )
900 }
901 #[inline]
902 fn stv_abi_encoded_size(&self) -> usize {
903 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
904 return size;
905 }
906 let tuple = <UnderlyingRustTuple<
907 '_,
908 > as ::core::convert::From<Self>>::from(self.clone());
909 <UnderlyingSolTuple<
910 '_,
911 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
912 }
913 #[inline]
914 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
915 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
916 }
917 #[inline]
918 fn stv_abi_encode_packed_to(
919 &self,
920 out: &mut alloy_sol_types::private::Vec<u8>,
921 ) {
922 let tuple = <UnderlyingRustTuple<
923 '_,
924 > as ::core::convert::From<Self>>::from(self.clone());
925 <UnderlyingSolTuple<
926 '_,
927 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
928 }
929 #[inline]
930 fn stv_abi_packed_encoded_size(&self) -> usize {
931 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
932 return size;
933 }
934 let tuple = <UnderlyingRustTuple<
935 '_,
936 > as ::core::convert::From<Self>>::from(self.clone());
937 <UnderlyingSolTuple<
938 '_,
939 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
940 }
941 }
942 #[automatically_derived]
943 impl alloy_sol_types::SolType for PlonkProof {
944 type RustType = Self;
945 type Token<'a> = <UnderlyingSolTuple<
946 'a,
947 > as alloy_sol_types::SolType>::Token<'a>;
948 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
949 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
950 '_,
951 > as alloy_sol_types::SolType>::ENCODED_SIZE;
952 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
953 '_,
954 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
955 #[inline]
956 fn valid_token(token: &Self::Token<'_>) -> bool {
957 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
958 }
959 #[inline]
960 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
961 let tuple = <UnderlyingSolTuple<
962 '_,
963 > as alloy_sol_types::SolType>::detokenize(token);
964 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
965 }
966 }
967 #[automatically_derived]
968 impl alloy_sol_types::SolStruct for PlonkProof {
969 const NAME: &'static str = "PlonkProof";
970 #[inline]
971 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
972 alloy_sol_types::private::Cow::Borrowed(
973 "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)",
974 )
975 }
976 #[inline]
977 fn eip712_components() -> alloy_sol_types::private::Vec<
978 alloy_sol_types::private::Cow<'static, str>,
979 > {
980 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
981 components
982 .push(
983 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
984 );
985 components
986 .extend(
987 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
988 );
989 components
990 .push(
991 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
992 );
993 components
994 .extend(
995 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
996 );
997 components
998 .push(
999 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1000 );
1001 components
1002 .extend(
1003 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1004 );
1005 components
1006 .push(
1007 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1008 );
1009 components
1010 .extend(
1011 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1012 );
1013 components
1014 .push(
1015 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1016 );
1017 components
1018 .extend(
1019 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1020 );
1021 components
1022 .push(
1023 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1024 );
1025 components
1026 .extend(
1027 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1028 );
1029 components
1030 .push(
1031 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1032 );
1033 components
1034 .extend(
1035 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1036 );
1037 components
1038 .push(
1039 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1040 );
1041 components
1042 .extend(
1043 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1044 );
1045 components
1046 .push(
1047 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1048 );
1049 components
1050 .extend(
1051 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1052 );
1053 components
1054 .push(
1055 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1056 );
1057 components
1058 .extend(
1059 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1060 );
1061 components
1062 .push(
1063 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1064 );
1065 components
1066 .extend(
1067 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1068 );
1069 components
1070 .push(
1071 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1072 );
1073 components
1074 .extend(
1075 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1076 );
1077 components
1078 .push(
1079 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1080 );
1081 components
1082 .extend(
1083 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1084 );
1085 components
1086 }
1087 #[inline]
1088 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1089 [
1090 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1091 &self.wire0,
1092 )
1093 .0,
1094 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1095 &self.wire1,
1096 )
1097 .0,
1098 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1099 &self.wire2,
1100 )
1101 .0,
1102 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1103 &self.wire3,
1104 )
1105 .0,
1106 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1107 &self.wire4,
1108 )
1109 .0,
1110 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1111 &self.prodPerm,
1112 )
1113 .0,
1114 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1115 &self.split0,
1116 )
1117 .0,
1118 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1119 &self.split1,
1120 )
1121 .0,
1122 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1123 &self.split2,
1124 )
1125 .0,
1126 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1127 &self.split3,
1128 )
1129 .0,
1130 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1131 &self.split4,
1132 )
1133 .0,
1134 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1135 &self.zeta,
1136 )
1137 .0,
1138 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1139 &self.zetaOmega,
1140 )
1141 .0,
1142 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1143 &self.wireEval0,
1144 )
1145 .0,
1146 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1147 &self.wireEval1,
1148 )
1149 .0,
1150 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1151 &self.wireEval2,
1152 )
1153 .0,
1154 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1155 &self.wireEval3,
1156 )
1157 .0,
1158 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1159 &self.wireEval4,
1160 )
1161 .0,
1162 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1163 &self.sigmaEval0,
1164 )
1165 .0,
1166 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1167 &self.sigmaEval1,
1168 )
1169 .0,
1170 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1171 &self.sigmaEval2,
1172 )
1173 .0,
1174 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1175 &self.sigmaEval3,
1176 )
1177 .0,
1178 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1179 &self.prodPermZetaOmegaEval,
1180 )
1181 .0,
1182 ]
1183 .concat()
1184 }
1185 }
1186 #[automatically_derived]
1187 impl alloy_sol_types::EventTopic for PlonkProof {
1188 #[inline]
1189 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1190 0usize
1191 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1192 &rust.wire0,
1193 )
1194 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1195 &rust.wire1,
1196 )
1197 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1198 &rust.wire2,
1199 )
1200 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1201 &rust.wire3,
1202 )
1203 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1204 &rust.wire4,
1205 )
1206 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1207 &rust.prodPerm,
1208 )
1209 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1210 &rust.split0,
1211 )
1212 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1213 &rust.split1,
1214 )
1215 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1216 &rust.split2,
1217 )
1218 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1219 &rust.split3,
1220 )
1221 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1222 &rust.split4,
1223 )
1224 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1225 &rust.zeta,
1226 )
1227 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1228 &rust.zetaOmega,
1229 )
1230 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1231 &rust.wireEval0,
1232 )
1233 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1234 &rust.wireEval1,
1235 )
1236 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1237 &rust.wireEval2,
1238 )
1239 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1240 &rust.wireEval3,
1241 )
1242 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1243 &rust.wireEval4,
1244 )
1245 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1246 &rust.sigmaEval0,
1247 )
1248 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1249 &rust.sigmaEval1,
1250 )
1251 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1252 &rust.sigmaEval2,
1253 )
1254 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1255 &rust.sigmaEval3,
1256 )
1257 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1258 &rust.prodPermZetaOmegaEval,
1259 )
1260 }
1261 #[inline]
1262 fn encode_topic_preimage(
1263 rust: &Self::RustType,
1264 out: &mut alloy_sol_types::private::Vec<u8>,
1265 ) {
1266 out.reserve(
1267 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1268 );
1269 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1270 &rust.wire0,
1271 out,
1272 );
1273 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1274 &rust.wire1,
1275 out,
1276 );
1277 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1278 &rust.wire2,
1279 out,
1280 );
1281 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1282 &rust.wire3,
1283 out,
1284 );
1285 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1286 &rust.wire4,
1287 out,
1288 );
1289 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1290 &rust.prodPerm,
1291 out,
1292 );
1293 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1294 &rust.split0,
1295 out,
1296 );
1297 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1298 &rust.split1,
1299 out,
1300 );
1301 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1302 &rust.split2,
1303 out,
1304 );
1305 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1306 &rust.split3,
1307 out,
1308 );
1309 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1310 &rust.split4,
1311 out,
1312 );
1313 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1314 &rust.zeta,
1315 out,
1316 );
1317 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1318 &rust.zetaOmega,
1319 out,
1320 );
1321 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1322 &rust.wireEval0,
1323 out,
1324 );
1325 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1326 &rust.wireEval1,
1327 out,
1328 );
1329 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1330 &rust.wireEval2,
1331 out,
1332 );
1333 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1334 &rust.wireEval3,
1335 out,
1336 );
1337 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1338 &rust.wireEval4,
1339 out,
1340 );
1341 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1342 &rust.sigmaEval0,
1343 out,
1344 );
1345 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1346 &rust.sigmaEval1,
1347 out,
1348 );
1349 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1350 &rust.sigmaEval2,
1351 out,
1352 );
1353 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1354 &rust.sigmaEval3,
1355 out,
1356 );
1357 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1358 &rust.prodPermZetaOmegaEval,
1359 out,
1360 );
1361 }
1362 #[inline]
1363 fn encode_topic(
1364 rust: &Self::RustType,
1365 ) -> alloy_sol_types::abi::token::WordToken {
1366 let mut out = alloy_sol_types::private::Vec::new();
1367 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1368 rust,
1369 &mut out,
1370 );
1371 alloy_sol_types::abi::token::WordToken(
1372 alloy_sol_types::private::keccak256(out),
1373 )
1374 }
1375 }
1376 };
1377 #[derive(serde::Serialize, serde::Deserialize)]
1378 #[derive()]
1379 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1383 #[derive(Clone)]
1384 pub struct VerifyingKey {
1385 #[allow(missing_docs)]
1386 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1387 #[allow(missing_docs)]
1388 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1389 #[allow(missing_docs)]
1390 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1391 #[allow(missing_docs)]
1392 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1393 #[allow(missing_docs)]
1394 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1395 #[allow(missing_docs)]
1396 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1397 #[allow(missing_docs)]
1398 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1399 #[allow(missing_docs)]
1400 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1401 #[allow(missing_docs)]
1402 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1403 #[allow(missing_docs)]
1404 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1405 #[allow(missing_docs)]
1406 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1407 #[allow(missing_docs)]
1408 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1409 #[allow(missing_docs)]
1410 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1411 #[allow(missing_docs)]
1412 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1413 #[allow(missing_docs)]
1414 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1415 #[allow(missing_docs)]
1416 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1417 #[allow(missing_docs)]
1418 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1419 #[allow(missing_docs)]
1420 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1421 #[allow(missing_docs)]
1422 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1423 #[allow(missing_docs)]
1424 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1425 #[allow(missing_docs)]
1426 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1427 #[allow(missing_docs)]
1428 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1429 }
1430 #[allow(
1431 non_camel_case_types,
1432 non_snake_case,
1433 clippy::pub_underscore_fields,
1434 clippy::style
1435 )]
1436 const _: () = {
1437 use alloy::sol_types as alloy_sol_types;
1438 #[doc(hidden)]
1439 #[allow(dead_code)]
1440 type UnderlyingSolTuple<'a> = (
1441 alloy::sol_types::sol_data::Uint<256>,
1442 alloy::sol_types::sol_data::Uint<256>,
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 BN254::G1Point,
1459 BN254::G1Point,
1460 BN254::G1Point,
1461 alloy::sol_types::sol_data::FixedBytes<32>,
1462 alloy::sol_types::sol_data::FixedBytes<32>,
1463 );
1464 #[doc(hidden)]
1465 type UnderlyingRustTuple<'a> = (
1466 alloy::sol_types::private::primitives::aliases::U256,
1467 alloy::sol_types::private::primitives::aliases::U256,
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 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1484 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1485 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1486 alloy::sol_types::private::FixedBytes<32>,
1487 alloy::sol_types::private::FixedBytes<32>,
1488 );
1489 #[cfg(test)]
1490 #[allow(dead_code, unreachable_patterns)]
1491 fn _type_assertion(
1492 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1493 ) {
1494 match _t {
1495 alloy_sol_types::private::AssertTypeEq::<
1496 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1497 >(_) => {}
1498 }
1499 }
1500 #[automatically_derived]
1501 #[doc(hidden)]
1502 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1503 fn from(value: VerifyingKey) -> Self {
1504 (
1505 value.domainSize,
1506 value.numInputs,
1507 value.sigma0,
1508 value.sigma1,
1509 value.sigma2,
1510 value.sigma3,
1511 value.sigma4,
1512 value.q1,
1513 value.q2,
1514 value.q3,
1515 value.q4,
1516 value.qM12,
1517 value.qM34,
1518 value.qO,
1519 value.qC,
1520 value.qH1,
1521 value.qH2,
1522 value.qH3,
1523 value.qH4,
1524 value.qEcc,
1525 value.g2LSB,
1526 value.g2MSB,
1527 )
1528 }
1529 }
1530 #[automatically_derived]
1531 #[doc(hidden)]
1532 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1533 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1534 Self {
1535 domainSize: tuple.0,
1536 numInputs: tuple.1,
1537 sigma0: tuple.2,
1538 sigma1: tuple.3,
1539 sigma2: tuple.4,
1540 sigma3: tuple.5,
1541 sigma4: tuple.6,
1542 q1: tuple.7,
1543 q2: tuple.8,
1544 q3: tuple.9,
1545 q4: tuple.10,
1546 qM12: tuple.11,
1547 qM34: tuple.12,
1548 qO: tuple.13,
1549 qC: tuple.14,
1550 qH1: tuple.15,
1551 qH2: tuple.16,
1552 qH3: tuple.17,
1553 qH4: tuple.18,
1554 qEcc: tuple.19,
1555 g2LSB: tuple.20,
1556 g2MSB: tuple.21,
1557 }
1558 }
1559 }
1560 #[automatically_derived]
1561 impl alloy_sol_types::SolValue for VerifyingKey {
1562 type SolType = Self;
1563 }
1564 #[automatically_derived]
1565 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1566 #[inline]
1567 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1568 (
1569 <alloy::sol_types::sol_data::Uint<
1570 256,
1571 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1572 <alloy::sol_types::sol_data::Uint<
1573 256,
1574 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1576 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1577 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1578 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1579 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1580 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1581 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1582 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1583 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1584 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1585 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1586 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1587 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1588 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1589 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1590 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1591 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1592 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1593 <alloy::sol_types::sol_data::FixedBytes<
1594 32,
1595 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1596 <alloy::sol_types::sol_data::FixedBytes<
1597 32,
1598 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1599 )
1600 }
1601 #[inline]
1602 fn stv_abi_encoded_size(&self) -> usize {
1603 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1604 return size;
1605 }
1606 let tuple = <UnderlyingRustTuple<
1607 '_,
1608 > as ::core::convert::From<Self>>::from(self.clone());
1609 <UnderlyingSolTuple<
1610 '_,
1611 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1612 }
1613 #[inline]
1614 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1615 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1616 }
1617 #[inline]
1618 fn stv_abi_encode_packed_to(
1619 &self,
1620 out: &mut alloy_sol_types::private::Vec<u8>,
1621 ) {
1622 let tuple = <UnderlyingRustTuple<
1623 '_,
1624 > as ::core::convert::From<Self>>::from(self.clone());
1625 <UnderlyingSolTuple<
1626 '_,
1627 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1628 }
1629 #[inline]
1630 fn stv_abi_packed_encoded_size(&self) -> usize {
1631 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1632 return size;
1633 }
1634 let tuple = <UnderlyingRustTuple<
1635 '_,
1636 > as ::core::convert::From<Self>>::from(self.clone());
1637 <UnderlyingSolTuple<
1638 '_,
1639 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1640 }
1641 }
1642 #[automatically_derived]
1643 impl alloy_sol_types::SolType for VerifyingKey {
1644 type RustType = Self;
1645 type Token<'a> = <UnderlyingSolTuple<
1646 'a,
1647 > as alloy_sol_types::SolType>::Token<'a>;
1648 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1649 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1650 '_,
1651 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1652 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1653 '_,
1654 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1655 #[inline]
1656 fn valid_token(token: &Self::Token<'_>) -> bool {
1657 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1658 }
1659 #[inline]
1660 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1661 let tuple = <UnderlyingSolTuple<
1662 '_,
1663 > as alloy_sol_types::SolType>::detokenize(token);
1664 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1665 }
1666 }
1667 #[automatically_derived]
1668 impl alloy_sol_types::SolStruct for VerifyingKey {
1669 const NAME: &'static str = "VerifyingKey";
1670 #[inline]
1671 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1672 alloy_sol_types::private::Cow::Borrowed(
1673 "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)",
1674 )
1675 }
1676 #[inline]
1677 fn eip712_components() -> alloy_sol_types::private::Vec<
1678 alloy_sol_types::private::Cow<'static, str>,
1679 > {
1680 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1681 components
1682 .push(
1683 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1684 );
1685 components
1686 .extend(
1687 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1688 );
1689 components
1690 .push(
1691 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1692 );
1693 components
1694 .extend(
1695 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1696 );
1697 components
1698 .push(
1699 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1700 );
1701 components
1702 .extend(
1703 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1704 );
1705 components
1706 .push(
1707 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1708 );
1709 components
1710 .extend(
1711 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1712 );
1713 components
1714 .push(
1715 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1716 );
1717 components
1718 .extend(
1719 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1720 );
1721 components
1722 .push(
1723 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1724 );
1725 components
1726 .extend(
1727 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1728 );
1729 components
1730 .push(
1731 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1732 );
1733 components
1734 .extend(
1735 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1736 );
1737 components
1738 .push(
1739 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1740 );
1741 components
1742 .extend(
1743 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1744 );
1745 components
1746 .push(
1747 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1748 );
1749 components
1750 .extend(
1751 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1752 );
1753 components
1754 .push(
1755 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1756 );
1757 components
1758 .extend(
1759 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1760 );
1761 components
1762 .push(
1763 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1764 );
1765 components
1766 .extend(
1767 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1768 );
1769 components
1770 .push(
1771 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1772 );
1773 components
1774 .extend(
1775 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1776 );
1777 components
1778 .push(
1779 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1780 );
1781 components
1782 .extend(
1783 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1784 );
1785 components
1786 .push(
1787 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1788 );
1789 components
1790 .extend(
1791 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1792 );
1793 components
1794 .push(
1795 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1796 );
1797 components
1798 .extend(
1799 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1800 );
1801 components
1802 .push(
1803 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1804 );
1805 components
1806 .extend(
1807 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1808 );
1809 components
1810 .push(
1811 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1812 );
1813 components
1814 .extend(
1815 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1816 );
1817 components
1818 .push(
1819 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1820 );
1821 components
1822 .extend(
1823 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1824 );
1825 components
1826 }
1827 #[inline]
1828 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1829 [
1830 <alloy::sol_types::sol_data::Uint<
1831 256,
1832 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1833 .0,
1834 <alloy::sol_types::sol_data::Uint<
1835 256,
1836 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1837 .0,
1838 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1839 &self.sigma0,
1840 )
1841 .0,
1842 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1843 &self.sigma1,
1844 )
1845 .0,
1846 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1847 &self.sigma2,
1848 )
1849 .0,
1850 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1851 &self.sigma3,
1852 )
1853 .0,
1854 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1855 &self.sigma4,
1856 )
1857 .0,
1858 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1859 &self.q1,
1860 )
1861 .0,
1862 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1863 &self.q2,
1864 )
1865 .0,
1866 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1867 &self.q3,
1868 )
1869 .0,
1870 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1871 &self.q4,
1872 )
1873 .0,
1874 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1875 &self.qM12,
1876 )
1877 .0,
1878 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1879 &self.qM34,
1880 )
1881 .0,
1882 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1883 &self.qO,
1884 )
1885 .0,
1886 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1887 &self.qC,
1888 )
1889 .0,
1890 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1891 &self.qH1,
1892 )
1893 .0,
1894 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1895 &self.qH2,
1896 )
1897 .0,
1898 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1899 &self.qH3,
1900 )
1901 .0,
1902 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1903 &self.qH4,
1904 )
1905 .0,
1906 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1907 &self.qEcc,
1908 )
1909 .0,
1910 <alloy::sol_types::sol_data::FixedBytes<
1911 32,
1912 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1913 .0,
1914 <alloy::sol_types::sol_data::FixedBytes<
1915 32,
1916 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1917 .0,
1918 ]
1919 .concat()
1920 }
1921 }
1922 #[automatically_derived]
1923 impl alloy_sol_types::EventTopic for VerifyingKey {
1924 #[inline]
1925 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1926 0usize
1927 + <alloy::sol_types::sol_data::Uint<
1928 256,
1929 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1930 &rust.domainSize,
1931 )
1932 + <alloy::sol_types::sol_data::Uint<
1933 256,
1934 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1935 &rust.numInputs,
1936 )
1937 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1938 &rust.sigma0,
1939 )
1940 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1941 &rust.sigma1,
1942 )
1943 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1944 &rust.sigma2,
1945 )
1946 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1947 &rust.sigma3,
1948 )
1949 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1950 &rust.sigma4,
1951 )
1952 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1953 &rust.q1,
1954 )
1955 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1956 &rust.q2,
1957 )
1958 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1959 &rust.q3,
1960 )
1961 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1962 &rust.q4,
1963 )
1964 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1965 &rust.qM12,
1966 )
1967 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1968 &rust.qM34,
1969 )
1970 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1971 &rust.qO,
1972 )
1973 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1974 &rust.qC,
1975 )
1976 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1977 &rust.qH1,
1978 )
1979 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1980 &rust.qH2,
1981 )
1982 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1983 &rust.qH3,
1984 )
1985 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1986 &rust.qH4,
1987 )
1988 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1989 &rust.qEcc,
1990 )
1991 + <alloy::sol_types::sol_data::FixedBytes<
1992 32,
1993 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1994 + <alloy::sol_types::sol_data::FixedBytes<
1995 32,
1996 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1997 }
1998 #[inline]
1999 fn encode_topic_preimage(
2000 rust: &Self::RustType,
2001 out: &mut alloy_sol_types::private::Vec<u8>,
2002 ) {
2003 out.reserve(
2004 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2005 );
2006 <alloy::sol_types::sol_data::Uint<
2007 256,
2008 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2009 &rust.domainSize,
2010 out,
2011 );
2012 <alloy::sol_types::sol_data::Uint<
2013 256,
2014 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2015 &rust.numInputs,
2016 out,
2017 );
2018 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2019 &rust.sigma0,
2020 out,
2021 );
2022 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2023 &rust.sigma1,
2024 out,
2025 );
2026 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2027 &rust.sigma2,
2028 out,
2029 );
2030 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2031 &rust.sigma3,
2032 out,
2033 );
2034 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2035 &rust.sigma4,
2036 out,
2037 );
2038 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2039 &rust.q1,
2040 out,
2041 );
2042 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2043 &rust.q2,
2044 out,
2045 );
2046 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2047 &rust.q3,
2048 out,
2049 );
2050 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2051 &rust.q4,
2052 out,
2053 );
2054 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2055 &rust.qM12,
2056 out,
2057 );
2058 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2059 &rust.qM34,
2060 out,
2061 );
2062 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2063 &rust.qO,
2064 out,
2065 );
2066 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2067 &rust.qC,
2068 out,
2069 );
2070 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2071 &rust.qH1,
2072 out,
2073 );
2074 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2075 &rust.qH2,
2076 out,
2077 );
2078 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2079 &rust.qH3,
2080 out,
2081 );
2082 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2083 &rust.qH4,
2084 out,
2085 );
2086 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2087 &rust.qEcc,
2088 out,
2089 );
2090 <alloy::sol_types::sol_data::FixedBytes<
2091 32,
2092 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2093 &rust.g2LSB,
2094 out,
2095 );
2096 <alloy::sol_types::sol_data::FixedBytes<
2097 32,
2098 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2099 &rust.g2MSB,
2100 out,
2101 );
2102 }
2103 #[inline]
2104 fn encode_topic(
2105 rust: &Self::RustType,
2106 ) -> alloy_sol_types::abi::token::WordToken {
2107 let mut out = alloy_sol_types::private::Vec::new();
2108 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2109 rust,
2110 &mut out,
2111 );
2112 alloy_sol_types::abi::token::WordToken(
2113 alloy_sol_types::private::keccak256(out),
2114 )
2115 }
2116 }
2117 };
2118 use alloy::contract as alloy_contract;
2119 #[inline]
2123 pub const fn new<
2124 P: alloy_contract::private::Provider<N>,
2125 N: alloy_contract::private::Network,
2126 >(
2127 address: alloy_sol_types::private::Address,
2128 __provider: P,
2129 ) -> IPlonkVerifierInstance<P, N> {
2130 IPlonkVerifierInstance::<P, N>::new(address, __provider)
2131 }
2132 #[derive(Clone)]
2144 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
2145 address: alloy_sol_types::private::Address,
2146 provider: P,
2147 _network: ::core::marker::PhantomData<N>,
2148 }
2149 #[automatically_derived]
2150 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
2151 #[inline]
2152 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2153 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2154 }
2155 }
2156 #[automatically_derived]
2158 impl<
2159 P: alloy_contract::private::Provider<N>,
2160 N: alloy_contract::private::Network,
2161 > IPlonkVerifierInstance<P, N> {
2162 #[inline]
2166 pub const fn new(
2167 address: alloy_sol_types::private::Address,
2168 __provider: P,
2169 ) -> Self {
2170 Self {
2171 address,
2172 provider: __provider,
2173 _network: ::core::marker::PhantomData,
2174 }
2175 }
2176 #[inline]
2178 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2179 &self.address
2180 }
2181 #[inline]
2183 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2184 self.address = address;
2185 }
2186 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2188 self.set_address(address);
2189 self
2190 }
2191 #[inline]
2193 pub const fn provider(&self) -> &P {
2194 &self.provider
2195 }
2196 }
2197 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
2198 #[inline]
2200 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
2201 IPlonkVerifierInstance {
2202 address: self.address,
2203 provider: ::core::clone::Clone::clone(&self.provider),
2204 _network: ::core::marker::PhantomData,
2205 }
2206 }
2207 }
2208 #[automatically_derived]
2210 impl<
2211 P: alloy_contract::private::Provider<N>,
2212 N: alloy_contract::private::Network,
2213 > IPlonkVerifierInstance<P, N> {
2214 pub fn call_builder<C: alloy_sol_types::SolCall>(
2219 &self,
2220 call: &C,
2221 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2222 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2223 }
2224 }
2225 #[automatically_derived]
2227 impl<
2228 P: alloy_contract::private::Provider<N>,
2229 N: alloy_contract::private::Network,
2230 > IPlonkVerifierInstance<P, N> {
2231 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2236 &self,
2237 ) -> alloy_contract::Event<&P, E, N> {
2238 alloy_contract::Event::new_sol(&self.provider, &self.address)
2239 }
2240 }
2241}
2242#[allow(
3009 non_camel_case_types,
3010 non_snake_case,
3011 clippy::pub_underscore_fields,
3012 clippy::style,
3013 clippy::empty_structs_with_brackets
3014)]
3015pub mod PlonkVerifier {
3016 use super::*;
3017 use alloy::sol_types as alloy_sol_types;
3018 #[rustfmt::skip]
3024 #[allow(clippy::all)]
3025 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3026 b"a!~a\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\x004W_5`\xE0\x1C\x80c\xCESzw\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x1F\x0CV[a\0_V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[_a\0i\x82a\0\xD0V[a\0y\x83_[` \x02\x01Qa\x02\x0BV[a\0\x84\x83`\x01a\0oV[a\0\x8F\x83`\x02a\0oV[a\0\x9A\x83`\x03a\0oV[a\0\xA5\x83`\x04a\0oV[a\0\xB0\x83`\x05a\0oV[a\0\xBB\x83`\x06a\0oV[a\0\xC6\x84\x84\x84a\x02=V[\x90P[\x93\x92PPPV[\x80Qa\0\xDB\x90a\x041V[a\0\xE8\x81` \x01Qa\x041V[a\0\xF5\x81`@\x01Qa\x041V[a\x01\x02\x81``\x01Qa\x041V[a\x01\x0F\x81`\x80\x01Qa\x041V[a\x01\x1C\x81`\xA0\x01Qa\x041V[a\x01)\x81`\xC0\x01Qa\x041V[a\x016\x81`\xE0\x01Qa\x041V[a\x01D\x81a\x01\0\x01Qa\x041V[a\x01R\x81a\x01 \x01Qa\x041V[a\x01`\x81a\x01@\x01Qa\x041V[a\x01n\x81a\x01`\x01Qa\x041V[a\x01|\x81a\x01\x80\x01Qa\x041V[a\x01\x8A\x81a\x01\xA0\x01Qa\x02\x0BV[a\x01\x98\x81a\x01\xC0\x01Qa\x02\x0BV[a\x01\xA6\x81a\x01\xE0\x01Qa\x02\x0BV[a\x01\xB4\x81a\x02\0\x01Qa\x02\x0BV[a\x01\xC2\x81a\x02 \x01Qa\x02\x0BV[a\x01\xD0\x81a\x02@\x01Qa\x02\x0BV[a\x01\xDE\x81a\x02`\x01Qa\x02\x0BV[a\x01\xEC\x81a\x02\x80\x01Qa\x02\x0BV[a\x01\xFA\x81a\x02\xA0\x01Qa\x02\x0BV[a\x02\x08\x81a\x02\xC0\x01Qa\x02\x0BV[PV[_Q` a!R_9_Q\x90_R\x81\x10\x80a\x029W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x07\x14a\x02cW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x02o\x85\x85\x85a\x04\xB0V[\x90P_a\x02~\x86_\x01Qa\n\x10V[\x90P_a\x02\x90\x82\x84`\xA0\x01Q\x88a\r\xEEV[\x90Pa\x02\xAD`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x02\xE1\x87a\x01`\x01Qa\x02\xDC\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0EKV[a\x0E\xAEV[\x91P__a\x02\xF1\x8B\x88\x87\x8Ca\x0F\x15V[\x91P\x91Pa\x03\x02\x81a\x02\xDC\x84a\x11MV[\x92Pa\x03\x1B\x83a\x02\xDC\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0EKV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!R_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x03^\x85a\x02\xDC\x8Da\x01\x80\x01Q\x84a\x0EKV[\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\x04\x1F\x87\x82a\x04\x12\x89a\x11MV[a\x04\x1Aa\x11\xEAV[a\x12\xB7V[\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\x04jWPPPV[\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\x04\xABW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x04\xF0`@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!R_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\x84Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP` \x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP`@\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP``\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`\x80\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP_\x82Ra\x07\xC0\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\n\x18a\x1B\xE9V[\x81b\x01\0\0\x03a\x0BWW`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0C\x97W`@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\x80`\xE0\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\\\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\r\xD5W`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x0F`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\x19\x84\x84a\x13hV[\x80\x82Ra\x0E)\x90\x85\x90\x85\x90a\x13\xB9V[` \x82\x01R\x80Qa\x0E?\x90\x85\x90\x84\x90\x86\x90a\x14(V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Efa\x1C\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0E\xA6W`@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\x0E\xC9a\x1C+V[\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\x0E\xA6W`@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\x0FH\x87\x87\x87\x87a\x15vV[\x90P_Q` a!R_9_Q\x90_R_a\x0Fd\x88\x87\x89a\x1A@V[\x90Pa\x0Fp\x81\x83a \xF9V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x0F\x9C\x85a\x02\xDC\x8A_\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xC4\x86a\x02\xDC\x8A` \x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xEC\x86a\x02\xDC\x8A`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x14\x86a\x02\xDC\x8A``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10<\x86a\x02\xDC\x8A`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x10d\x86a\x02\xDC\x8D`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8C\x86a\x02\xDC\x8D``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB4\x86a\x02\xDC\x8D`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDC\x86a\x02\xDC\x8D`\xA0\x01Q\x84a\x0EKV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\x06\x87a\x02\xDC\x8B`\xA0\x01Q\x84a\x0EKV[\x96Pa\x11<a\x116`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0EKV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x11tWP\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\x11\xB8\x91\x90a!2V[a\x11\xE2\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa \xF9V[\x90R\x92\x91PPV[a\x12\x11`@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\x13ZW`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!R_9_Q\x90_R\x90\x83\x80\x15a\x13\xA9W\x84\x93P_[\x82\x81\x10\x15a\x13\x9DW\x83\x85\x86\t\x94P`\x01\x01a\x13\x87V[P`\x01\x84\x03\x93Pa\x13\xB0V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x13\xCAWP`\x01a\0\xC9V[\x81_\x03a\x13\xD8WP_a\0\xC9V[` \x84\x01Q_Q` a!R_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\x06W`\x01\x87\x03\x92Pa\x14\rV[`\x01\x84\x03\x92P[Pa\x14\x17\x82a\x1B+V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!R_9_Q\x90_R\x82\x82\x03a\x14\xA1W`\x01_[`\x07\x81\x10\x15a\x14\x96W\x81\x86\x03a\x14sW\x86\x81`\x07\x81\x10a\x14dWa\x14da \xE5V[` \x02\x01Q\x93PPPPa\x13`V[\x82\x80a\x14\x81Wa\x14\x81a!\x1EV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14BV[P_\x92PPPa\x13`V[a\x14\xA9a\x1CIV[`@\x87\x01Q`\x01`\xC0\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x07\x81\x10\x15a\x14\xEAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x14\xBDV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x07\x81\x10\x15a\x15>W\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\x14\xFEV[PPPP\x80\x92PP_a\x15P\x83a\x1B+V[\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!R_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\x16\xE3\x87`\xA0\x01Q\x86a\x0EKV[\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\x17\xAA\x86a\x02\xDC\x8C`\xC0\x01Q\x88\x85a\x17\xA5\x91\x90a \xF9V[a\x0EKV[\x95Pa\x17\xC3\x86a\x02\xDC\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0EKV[\x95Pa\x17\xDD\x86a\x02\xDC\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0EKV[\x95Pa\x17\xF7\x86a\x02\xDC\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0EKV[\x95Pa\x18\x11\x86a\x02\xDC\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0EKV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x186\x86a\x02\xDC\x8Ca\x01`\x01Q\x86a\x0EKV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18[\x86a\x02\xDC\x8Ca\x01\x80\x01Q\x86a\x0EKV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\x8A\x86a\x02\xDC\x8Ca\x01\xE0\x01Q\x86a\x0EKV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xB9\x86a\x02\xDC\x8Ca\x02\0\x01Q\x86a\x0EKV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xE8\x86a\x02\xDC\x8Ca\x02 \x01Q\x86a\x0EKV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x17\x86a\x02\xDC\x8Ca\x02@\x01Q\x86a\x0EKV[\x95Pa\x194\x86a\x02\xDC\x8Ca\x01\xA0\x01Qa\x17\xA5\x8Ba\x02 \x01Qa\x1B\xBDV[\x95Pa\x19E\x86\x8Ba\x01\xC0\x01Qa\x0E\xAEV[\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\x19\x8B\x86a\x02\xDC\x8Ca\x02`\x01Q\x86a\x0EKV[\x95Pa\x19\x99\x88_\x01Qa\x1B\xBDV[\x94Pa\x19\xAD\x86a\x02\xDC\x89`\xC0\x01Q\x88a\x0EKV[\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\x19\xE1\x86a\x02\xDC\x89`\xE0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x19\xFC\x86a\x02\xDC\x89a\x01\0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A\x17\x86a\x02\xDC\x89a\x01 \x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A2\x86a\x02\xDC\x89a\x01@\x01Q\x88a\x0EKV[\x9A\x99PPPPPPPPPPV[___Q` a!R_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\x1BLW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!R_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\x1B\xB6W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!R_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1B\xE0W\x83\x82\x03\x92Pa\x1B\xB6V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\x08a\x1CIV[\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\x80`\xE0\x01`@R\x80`\x07\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\x1C\x9FWa\x1C\x9Fa\x1CgV[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\x9FWa\x1C\x9Fa\x1CgV[_`@\x82\x84\x03\x12\x15a\x1C\xD9W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\xFCWa\x1C\xFCa\x1CgV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D%W__\xFD[`@Q`\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1DHWa\x1DHa\x1CgV[`@R\x80`\xE0\x84\x01\x85\x81\x11\x15a\x1D\\W__\xFD[\x84[\x81\x81\x10\x15a\x1DvW\x805\x83R` \x92\x83\x01\x92\x01a\x1D^V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1D\x92W__\xFD[a\x1D\x9Aa\x1C{V[\x90Pa\x1D\xA6\x83\x83a\x1C\xC9V[\x81Ra\x1D\xB5\x83`@\x84\x01a\x1C\xC9V[` \x82\x01Ra\x1D\xC7\x83`\x80\x84\x01a\x1C\xC9V[`@\x82\x01Ra\x1D\xD9\x83`\xC0\x84\x01a\x1C\xC9V[``\x82\x01Ra\x1D\xEC\x83a\x01\0\x84\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1D\xFF\x83a\x01@\x84\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1E\x12\x83a\x01\x80\x84\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1E%\x83a\x01\xC0\x84\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1E8\x83a\x02\0\x84\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1EL\x83a\x02@\x84\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1E`\x83a\x02\x80\x84\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1Et\x83a\x02\xC0\x84\x01a\x1C\xC9V[a\x01`\x82\x01Ra\x1E\x88\x83a\x03\0\x84\x01a\x1C\xC9V[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`\x81\x12\x15a\x1F W__\xFD[a\x05\0\x81\x12\x15a\x1F.W__\xFD[Pa\x1F7a\x1C\xA5V[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1FR\x86`@\x87\x01a\x1C\xC9V[`@\x82\x01Ra\x1Fd\x86`\x80\x87\x01a\x1C\xC9V[``\x82\x01Ra\x1Fv\x86`\xC0\x87\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1F\x89\x86a\x01\0\x87\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1F\x9C\x86a\x01@\x87\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1F\xAF\x86a\x01\x80\x87\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1F\xC2\x86a\x01\xC0\x87\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1F\xD6\x86a\x02\0\x87\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1F\xEA\x86a\x02@\x87\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1F\xFE\x86a\x02\x80\x87\x01a\x1C\xC9V[a\x01`\x82\x01Ra \x12\x86a\x02\xC0\x87\x01a\x1C\xC9V[a\x01\x80\x82\x01Ra &\x86a\x03\0\x87\x01a\x1C\xC9V[a\x01\xA0\x82\x01Ra :\x86a\x03@\x87\x01a\x1C\xC9V[a\x01\xC0\x82\x01Ra N\x86a\x03\x80\x87\x01a\x1C\xC9V[a\x01\xE0\x82\x01Ra b\x86a\x03\xC0\x87\x01a\x1C\xC9V[a\x02\0\x82\x01Ra v\x86a\x04\0\x87\x01a\x1C\xC9V[a\x02 \x82\x01Ra \x8A\x86a\x04@\x87\x01a\x1C\xC9V[a\x02@\x82\x01Ra \x9E\x86a\x04\x80\x87\x01a\x1C\xC9V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa \xCC\x85a\x05\0\x86\x01a\x1D\x16V[\x91Pa \xDC\x85a\x05\xE0\x86\x01a\x1D\x81V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\x18WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!LWcNH{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",
3027 );
3028 #[rustfmt::skip]
3034 #[allow(clippy::all)]
3035 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3036 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\x004W_5`\xE0\x1C\x80c\xCESzw\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x1F\x0CV[a\0_V[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[_a\0i\x82a\0\xD0V[a\0y\x83_[` \x02\x01Qa\x02\x0BV[a\0\x84\x83`\x01a\0oV[a\0\x8F\x83`\x02a\0oV[a\0\x9A\x83`\x03a\0oV[a\0\xA5\x83`\x04a\0oV[a\0\xB0\x83`\x05a\0oV[a\0\xBB\x83`\x06a\0oV[a\0\xC6\x84\x84\x84a\x02=V[\x90P[\x93\x92PPPV[\x80Qa\0\xDB\x90a\x041V[a\0\xE8\x81` \x01Qa\x041V[a\0\xF5\x81`@\x01Qa\x041V[a\x01\x02\x81``\x01Qa\x041V[a\x01\x0F\x81`\x80\x01Qa\x041V[a\x01\x1C\x81`\xA0\x01Qa\x041V[a\x01)\x81`\xC0\x01Qa\x041V[a\x016\x81`\xE0\x01Qa\x041V[a\x01D\x81a\x01\0\x01Qa\x041V[a\x01R\x81a\x01 \x01Qa\x041V[a\x01`\x81a\x01@\x01Qa\x041V[a\x01n\x81a\x01`\x01Qa\x041V[a\x01|\x81a\x01\x80\x01Qa\x041V[a\x01\x8A\x81a\x01\xA0\x01Qa\x02\x0BV[a\x01\x98\x81a\x01\xC0\x01Qa\x02\x0BV[a\x01\xA6\x81a\x01\xE0\x01Qa\x02\x0BV[a\x01\xB4\x81a\x02\0\x01Qa\x02\x0BV[a\x01\xC2\x81a\x02 \x01Qa\x02\x0BV[a\x01\xD0\x81a\x02@\x01Qa\x02\x0BV[a\x01\xDE\x81a\x02`\x01Qa\x02\x0BV[a\x01\xEC\x81a\x02\x80\x01Qa\x02\x0BV[a\x01\xFA\x81a\x02\xA0\x01Qa\x02\x0BV[a\x02\x08\x81a\x02\xC0\x01Qa\x02\x0BV[PV[_Q` a!R_9_Q\x90_R\x81\x10\x80a\x029W`@Qc\x01l\x173`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x07\x14a\x02cW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x02o\x85\x85\x85a\x04\xB0V[\x90P_a\x02~\x86_\x01Qa\n\x10V[\x90P_a\x02\x90\x82\x84`\xA0\x01Q\x88a\r\xEEV[\x90Pa\x02\xAD`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x02\xE1\x87a\x01`\x01Qa\x02\xDC\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x0EKV[a\x0E\xAEV[\x91P__a\x02\xF1\x8B\x88\x87\x8Ca\x0F\x15V[\x91P\x91Pa\x03\x02\x81a\x02\xDC\x84a\x11MV[\x92Pa\x03\x1B\x83a\x02\xDC\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x0EKV[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a!R_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x03^\x85a\x02\xDC\x8Da\x01\x80\x01Q\x84a\x0EKV[\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\x04\x1F\x87\x82a\x04\x12\x89a\x11MV[a\x04\x1Aa\x11\xEAV[a\x12\xB7V[\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\x04jWPPPV[\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\x04\xABW`@Qc'\x9E4S`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[a\x04\xF0`@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!R_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\x84Q\x80Qa\x06`\x83\x01R` \x81\x01Qa\x06\x80\x83\x01RP` \x85\x01Q\x80Qa\x06\xA0\x83\x01R` \x81\x01Qa\x06\xC0\x83\x01RP`@\x85\x01Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP``\x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`\x80\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP_\x82Ra\x07\xC0\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\n\x18a\x1B\xE9V[\x81b\x01\0\0\x03a\x0BWW`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x0C\x97W`@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\x80`\xE0\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\\\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\r\xD5W`@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\x80`\xE0\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\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\x0F`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x0E\x19\x84\x84a\x13hV[\x80\x82Ra\x0E)\x90\x85\x90\x85\x90a\x13\xB9V[` \x82\x01R\x80Qa\x0E?\x90\x85\x90\x84\x90\x86\x90a\x14(V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0Efa\x1C\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x80\x82\x01\x84\x90R_\x90\x83``\x84`\x07Z\xFA\x90P\x80a\x0E\xA6W`@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\x0E\xC9a\x1C+V[\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\x0E\xA6W`@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\x0FH\x87\x87\x87\x87a\x15vV[\x90P_Q` a!R_9_Q\x90_R_a\x0Fd\x88\x87\x89a\x1A@V[\x90Pa\x0Fp\x81\x83a \xF9V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x0F\x9C\x85a\x02\xDC\x8A_\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xC4\x86a\x02\xDC\x8A` \x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x0F\xEC\x86a\x02\xDC\x8A`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x14\x86a\x02\xDC\x8A``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x10<\x86a\x02\xDC\x8A`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x10d\x86a\x02\xDC\x8D`@\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\x8C\x86a\x02\xDC\x8D``\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xB4\x86a\x02\xDC\x8D`\x80\x01Q\x84a\x0EKV[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x10\xDC\x86a\x02\xDC\x8D`\xA0\x01Q\x84a\x0EKV[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x11\x06\x87a\x02\xDC\x8B`\xA0\x01Q\x84a\x0EKV[\x96Pa\x11<a\x116`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x0EKV[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x11tWP\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\x11\xB8\x91\x90a!2V[a\x11\xE2\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa \xF9V[\x90R\x92\x91PPV[a\x12\x11`@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\x13ZW`@Qc\xC2\x063O`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a!R_9_Q\x90_R\x90\x83\x80\x15a\x13\xA9W\x84\x93P_[\x82\x81\x10\x15a\x13\x9DW\x83\x85\x86\t\x94P`\x01\x01a\x13\x87V[P`\x01\x84\x03\x93Pa\x13\xB0V[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x13\xCAWP`\x01a\0\xC9V[\x81_\x03a\x13\xD8WP_a\0\xC9V[` \x84\x01Q_Q` a!R_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x14\x06W`\x01\x87\x03\x92Pa\x14\rV[`\x01\x84\x03\x92P[Pa\x14\x17\x82a\x1B+V[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a!R_9_Q\x90_R\x82\x82\x03a\x14\xA1W`\x01_[`\x07\x81\x10\x15a\x14\x96W\x81\x86\x03a\x14sW\x86\x81`\x07\x81\x10a\x14dWa\x14da \xE5V[` \x02\x01Q\x93PPPPa\x13`V[\x82\x80a\x14\x81Wa\x14\x81a!\x1EV[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x14BV[P_\x92PPPa\x13`V[a\x14\xA9a\x1CIV[`@\x87\x01Q`\x01`\xC0\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x07\x81\x10\x15a\x14\xEAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x14\xBDV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x07\x81\x10\x15a\x15>W\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\x14\xFEV[PPPP\x80\x92PP_a\x15P\x83a\x1B+V[\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!R_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\x16\xE3\x87`\xA0\x01Q\x86a\x0EKV[\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\x17\xAA\x86a\x02\xDC\x8C`\xC0\x01Q\x88\x85a\x17\xA5\x91\x90a \xF9V[a\x0EKV[\x95Pa\x17\xC3\x86a\x02\xDC\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x0EKV[\x95Pa\x17\xDD\x86a\x02\xDC\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x0EKV[\x95Pa\x17\xF7\x86a\x02\xDC\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x0EKV[\x95Pa\x18\x11\x86a\x02\xDC\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x0EKV[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x186\x86a\x02\xDC\x8Ca\x01`\x01Q\x86a\x0EKV[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x18[\x86a\x02\xDC\x8Ca\x01\x80\x01Q\x86a\x0EKV[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\x8A\x86a\x02\xDC\x8Ca\x01\xE0\x01Q\x86a\x0EKV[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xB9\x86a\x02\xDC\x8Ca\x02\0\x01Q\x86a\x0EKV[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x18\xE8\x86a\x02\xDC\x8Ca\x02 \x01Q\x86a\x0EKV[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x19\x17\x86a\x02\xDC\x8Ca\x02@\x01Q\x86a\x0EKV[\x95Pa\x194\x86a\x02\xDC\x8Ca\x01\xA0\x01Qa\x17\xA5\x8Ba\x02 \x01Qa\x1B\xBDV[\x95Pa\x19E\x86\x8Ba\x01\xC0\x01Qa\x0E\xAEV[\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\x19\x8B\x86a\x02\xDC\x8Ca\x02`\x01Q\x86a\x0EKV[\x95Pa\x19\x99\x88_\x01Qa\x1B\xBDV[\x94Pa\x19\xAD\x86a\x02\xDC\x89`\xC0\x01Q\x88a\x0EKV[\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\x19\xE1\x86a\x02\xDC\x89`\xE0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x19\xFC\x86a\x02\xDC\x89a\x01\0\x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A\x17\x86a\x02\xDC\x89a\x01 \x01Q\x88a\x0EKV[\x95P\x80\x83\x86\t\x94Pa\x1A2\x86a\x02\xDC\x89a\x01@\x01Q\x88a\x0EKV[\x9A\x99PPPPPPPPPPV[___Q` a!R_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\x1BLW`@Qc\xD6\xDB\xBB\r`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[___Q` a!R_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\x1B\xB6W`@Qc\x0C\x9D>\x99`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PP\x91\x90PV[__Q` a!R_9_Q\x90_R\x82\x15`\x01\x81\x14a\x1B\xE0W\x83\x82\x03\x92Pa\x1B\xB6V[P_\x93\x92PPPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a\x1C\x08a\x1CIV[\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\x80`\xE0\x01`@R\x80`\x07\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\x1C\x9FWa\x1C\x9Fa\x1CgV[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\x9FWa\x1C\x9Fa\x1CgV[_`@\x82\x84\x03\x12\x15a\x1C\xD9W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1C\xFCWa\x1C\xFCa\x1CgV[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\x1D%W__\xFD[`@Q`\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x1DHWa\x1DHa\x1CgV[`@R\x80`\xE0\x84\x01\x85\x81\x11\x15a\x1D\\W__\xFD[\x84[\x81\x81\x10\x15a\x1DvW\x805\x83R` \x92\x83\x01\x92\x01a\x1D^V[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\x1D\x92W__\xFD[a\x1D\x9Aa\x1C{V[\x90Pa\x1D\xA6\x83\x83a\x1C\xC9V[\x81Ra\x1D\xB5\x83`@\x84\x01a\x1C\xC9V[` \x82\x01Ra\x1D\xC7\x83`\x80\x84\x01a\x1C\xC9V[`@\x82\x01Ra\x1D\xD9\x83`\xC0\x84\x01a\x1C\xC9V[``\x82\x01Ra\x1D\xEC\x83a\x01\0\x84\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1D\xFF\x83a\x01@\x84\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1E\x12\x83a\x01\x80\x84\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1E%\x83a\x01\xC0\x84\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1E8\x83a\x02\0\x84\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1EL\x83a\x02@\x84\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1E`\x83a\x02\x80\x84\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1Et\x83a\x02\xC0\x84\x01a\x1C\xC9V[a\x01`\x82\x01Ra\x1E\x88\x83a\x03\0\x84\x01a\x1C\xC9V[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`\x81\x12\x15a\x1F W__\xFD[a\x05\0\x81\x12\x15a\x1F.W__\xFD[Pa\x1F7a\x1C\xA5V[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra\x1FR\x86`@\x87\x01a\x1C\xC9V[`@\x82\x01Ra\x1Fd\x86`\x80\x87\x01a\x1C\xC9V[``\x82\x01Ra\x1Fv\x86`\xC0\x87\x01a\x1C\xC9V[`\x80\x82\x01Ra\x1F\x89\x86a\x01\0\x87\x01a\x1C\xC9V[`\xA0\x82\x01Ra\x1F\x9C\x86a\x01@\x87\x01a\x1C\xC9V[`\xC0\x82\x01Ra\x1F\xAF\x86a\x01\x80\x87\x01a\x1C\xC9V[`\xE0\x82\x01Ra\x1F\xC2\x86a\x01\xC0\x87\x01a\x1C\xC9V[a\x01\0\x82\x01Ra\x1F\xD6\x86a\x02\0\x87\x01a\x1C\xC9V[a\x01 \x82\x01Ra\x1F\xEA\x86a\x02@\x87\x01a\x1C\xC9V[a\x01@\x82\x01Ra\x1F\xFE\x86a\x02\x80\x87\x01a\x1C\xC9V[a\x01`\x82\x01Ra \x12\x86a\x02\xC0\x87\x01a\x1C\xC9V[a\x01\x80\x82\x01Ra &\x86a\x03\0\x87\x01a\x1C\xC9V[a\x01\xA0\x82\x01Ra :\x86a\x03@\x87\x01a\x1C\xC9V[a\x01\xC0\x82\x01Ra N\x86a\x03\x80\x87\x01a\x1C\xC9V[a\x01\xE0\x82\x01Ra b\x86a\x03\xC0\x87\x01a\x1C\xC9V[a\x02\0\x82\x01Ra v\x86a\x04\0\x87\x01a\x1C\xC9V[a\x02 \x82\x01Ra \x8A\x86a\x04@\x87\x01a\x1C\xC9V[a\x02@\x82\x01Ra \x9E\x86a\x04\x80\x87\x01a\x1C\xC9V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa \xCC\x85a\x05\0\x86\x01a\x1D\x16V[\x91Pa \xDC\x85a\x05\xE0\x86\x01a\x1D\x81V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a!\x18WcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x92\x91PPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a!LWcNH{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",
3037 );
3038 #[derive(serde::Serialize, serde::Deserialize)]
3039 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3040 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3045 #[derive(Clone)]
3046 pub struct BN254G1AddFailed;
3047 #[allow(
3048 non_camel_case_types,
3049 non_snake_case,
3050 clippy::pub_underscore_fields,
3051 clippy::style
3052 )]
3053 const _: () = {
3054 use alloy::sol_types as alloy_sol_types;
3055 #[doc(hidden)]
3056 #[allow(dead_code)]
3057 type UnderlyingSolTuple<'a> = ();
3058 #[doc(hidden)]
3059 type UnderlyingRustTuple<'a> = ();
3060 #[cfg(test)]
3061 #[allow(dead_code, unreachable_patterns)]
3062 fn _type_assertion(
3063 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3064 ) {
3065 match _t {
3066 alloy_sol_types::private::AssertTypeEq::<
3067 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3068 >(_) => {}
3069 }
3070 }
3071 #[automatically_derived]
3072 #[doc(hidden)]
3073 impl ::core::convert::From<BN254G1AddFailed> for UnderlyingRustTuple<'_> {
3074 fn from(value: BN254G1AddFailed) -> Self {
3075 ()
3076 }
3077 }
3078 #[automatically_derived]
3079 #[doc(hidden)]
3080 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254G1AddFailed {
3081 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3082 Self
3083 }
3084 }
3085 #[automatically_derived]
3086 impl alloy_sol_types::SolError for BN254G1AddFailed {
3087 type Parameters<'a> = UnderlyingSolTuple<'a>;
3088 type Token<'a> = <Self::Parameters<
3089 'a,
3090 > as alloy_sol_types::SolType>::Token<'a>;
3091 const SIGNATURE: &'static str = "BN254G1AddFailed()";
3092 const SELECTOR: [u8; 4] = [96u8, 85u8, 219u8, 106u8];
3093 #[inline]
3094 fn new<'a>(
3095 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3096 ) -> Self {
3097 tuple.into()
3098 }
3099 #[inline]
3100 fn tokenize(&self) -> Self::Token<'_> {
3101 ()
3102 }
3103 #[inline]
3104 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3105 <Self::Parameters<
3106 '_,
3107 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3108 .map(Self::new)
3109 }
3110 }
3111 };
3112 #[derive(serde::Serialize, serde::Deserialize)]
3113 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3114 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3119 #[derive(Clone)]
3120 pub struct BN254PairingProdFailed;
3121 #[allow(
3122 non_camel_case_types,
3123 non_snake_case,
3124 clippy::pub_underscore_fields,
3125 clippy::style
3126 )]
3127 const _: () = {
3128 use alloy::sol_types as alloy_sol_types;
3129 #[doc(hidden)]
3130 #[allow(dead_code)]
3131 type UnderlyingSolTuple<'a> = ();
3132 #[doc(hidden)]
3133 type UnderlyingRustTuple<'a> = ();
3134 #[cfg(test)]
3135 #[allow(dead_code, unreachable_patterns)]
3136 fn _type_assertion(
3137 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3138 ) {
3139 match _t {
3140 alloy_sol_types::private::AssertTypeEq::<
3141 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3142 >(_) => {}
3143 }
3144 }
3145 #[automatically_derived]
3146 #[doc(hidden)]
3147 impl ::core::convert::From<BN254PairingProdFailed> for UnderlyingRustTuple<'_> {
3148 fn from(value: BN254PairingProdFailed) -> Self {
3149 ()
3150 }
3151 }
3152 #[automatically_derived]
3153 #[doc(hidden)]
3154 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254PairingProdFailed {
3155 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3156 Self
3157 }
3158 }
3159 #[automatically_derived]
3160 impl alloy_sol_types::SolError for BN254PairingProdFailed {
3161 type Parameters<'a> = UnderlyingSolTuple<'a>;
3162 type Token<'a> = <Self::Parameters<
3163 'a,
3164 > as alloy_sol_types::SolType>::Token<'a>;
3165 const SIGNATURE: &'static str = "BN254PairingProdFailed()";
3166 const SELECTOR: [u8; 4] = [194u8, 6u8, 51u8, 79u8];
3167 #[inline]
3168 fn new<'a>(
3169 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3170 ) -> Self {
3171 tuple.into()
3172 }
3173 #[inline]
3174 fn tokenize(&self) -> Self::Token<'_> {
3175 ()
3176 }
3177 #[inline]
3178 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3179 <Self::Parameters<
3180 '_,
3181 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3182 .map(Self::new)
3183 }
3184 }
3185 };
3186 #[derive(serde::Serialize, serde::Deserialize)]
3187 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3188 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3193 #[derive(Clone)]
3194 pub struct BN254ScalarInvZero;
3195 #[allow(
3196 non_camel_case_types,
3197 non_snake_case,
3198 clippy::pub_underscore_fields,
3199 clippy::style
3200 )]
3201 const _: () = {
3202 use alloy::sol_types as alloy_sol_types;
3203 #[doc(hidden)]
3204 #[allow(dead_code)]
3205 type UnderlyingSolTuple<'a> = ();
3206 #[doc(hidden)]
3207 type UnderlyingRustTuple<'a> = ();
3208 #[cfg(test)]
3209 #[allow(dead_code, unreachable_patterns)]
3210 fn _type_assertion(
3211 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3212 ) {
3213 match _t {
3214 alloy_sol_types::private::AssertTypeEq::<
3215 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3216 >(_) => {}
3217 }
3218 }
3219 #[automatically_derived]
3220 #[doc(hidden)]
3221 impl ::core::convert::From<BN254ScalarInvZero> for UnderlyingRustTuple<'_> {
3222 fn from(value: BN254ScalarInvZero) -> Self {
3223 ()
3224 }
3225 }
3226 #[automatically_derived]
3227 #[doc(hidden)]
3228 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarInvZero {
3229 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3230 Self
3231 }
3232 }
3233 #[automatically_derived]
3234 impl alloy_sol_types::SolError for BN254ScalarInvZero {
3235 type Parameters<'a> = UnderlyingSolTuple<'a>;
3236 type Token<'a> = <Self::Parameters<
3237 'a,
3238 > as alloy_sol_types::SolType>::Token<'a>;
3239 const SIGNATURE: &'static str = "BN254ScalarInvZero()";
3240 const SELECTOR: [u8; 4] = [214u8, 219u8, 187u8, 13u8];
3241 #[inline]
3242 fn new<'a>(
3243 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3244 ) -> Self {
3245 tuple.into()
3246 }
3247 #[inline]
3248 fn tokenize(&self) -> Self::Token<'_> {
3249 ()
3250 }
3251 #[inline]
3252 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3253 <Self::Parameters<
3254 '_,
3255 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3256 .map(Self::new)
3257 }
3258 }
3259 };
3260 #[derive(serde::Serialize, serde::Deserialize)]
3261 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3262 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3267 #[derive(Clone)]
3268 pub struct BN254ScalarMulFailed;
3269 #[allow(
3270 non_camel_case_types,
3271 non_snake_case,
3272 clippy::pub_underscore_fields,
3273 clippy::style
3274 )]
3275 const _: () = {
3276 use alloy::sol_types as alloy_sol_types;
3277 #[doc(hidden)]
3278 #[allow(dead_code)]
3279 type UnderlyingSolTuple<'a> = ();
3280 #[doc(hidden)]
3281 type UnderlyingRustTuple<'a> = ();
3282 #[cfg(test)]
3283 #[allow(dead_code, unreachable_patterns)]
3284 fn _type_assertion(
3285 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3286 ) {
3287 match _t {
3288 alloy_sol_types::private::AssertTypeEq::<
3289 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3290 >(_) => {}
3291 }
3292 }
3293 #[automatically_derived]
3294 #[doc(hidden)]
3295 impl ::core::convert::From<BN254ScalarMulFailed> for UnderlyingRustTuple<'_> {
3296 fn from(value: BN254ScalarMulFailed) -> Self {
3297 ()
3298 }
3299 }
3300 #[automatically_derived]
3301 #[doc(hidden)]
3302 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BN254ScalarMulFailed {
3303 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3304 Self
3305 }
3306 }
3307 #[automatically_derived]
3308 impl alloy_sol_types::SolError for BN254ScalarMulFailed {
3309 type Parameters<'a> = UnderlyingSolTuple<'a>;
3310 type Token<'a> = <Self::Parameters<
3311 'a,
3312 > as alloy_sol_types::SolType>::Token<'a>;
3313 const SIGNATURE: &'static str = "BN254ScalarMulFailed()";
3314 const SELECTOR: [u8; 4] = [25u8, 219u8, 138u8, 104u8];
3315 #[inline]
3316 fn new<'a>(
3317 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3318 ) -> Self {
3319 tuple.into()
3320 }
3321 #[inline]
3322 fn tokenize(&self) -> Self::Token<'_> {
3323 ()
3324 }
3325 #[inline]
3326 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3327 <Self::Parameters<
3328 '_,
3329 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3330 .map(Self::new)
3331 }
3332 }
3333 };
3334 #[derive(serde::Serialize, serde::Deserialize)]
3335 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3336 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3341 #[derive(Clone)]
3342 pub struct InvalidG1;
3343 #[allow(
3344 non_camel_case_types,
3345 non_snake_case,
3346 clippy::pub_underscore_fields,
3347 clippy::style
3348 )]
3349 const _: () = {
3350 use alloy::sol_types as alloy_sol_types;
3351 #[doc(hidden)]
3352 #[allow(dead_code)]
3353 type UnderlyingSolTuple<'a> = ();
3354 #[doc(hidden)]
3355 type UnderlyingRustTuple<'a> = ();
3356 #[cfg(test)]
3357 #[allow(dead_code, unreachable_patterns)]
3358 fn _type_assertion(
3359 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3360 ) {
3361 match _t {
3362 alloy_sol_types::private::AssertTypeEq::<
3363 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3364 >(_) => {}
3365 }
3366 }
3367 #[automatically_derived]
3368 #[doc(hidden)]
3369 impl ::core::convert::From<InvalidG1> for UnderlyingRustTuple<'_> {
3370 fn from(value: InvalidG1) -> Self {
3371 ()
3372 }
3373 }
3374 #[automatically_derived]
3375 #[doc(hidden)]
3376 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidG1 {
3377 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3378 Self
3379 }
3380 }
3381 #[automatically_derived]
3382 impl alloy_sol_types::SolError for InvalidG1 {
3383 type Parameters<'a> = UnderlyingSolTuple<'a>;
3384 type Token<'a> = <Self::Parameters<
3385 'a,
3386 > as alloy_sol_types::SolType>::Token<'a>;
3387 const SIGNATURE: &'static str = "InvalidG1()";
3388 const SELECTOR: [u8; 4] = [158u8, 120u8, 209u8, 76u8];
3389 #[inline]
3390 fn new<'a>(
3391 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3392 ) -> Self {
3393 tuple.into()
3394 }
3395 #[inline]
3396 fn tokenize(&self) -> Self::Token<'_> {
3397 ()
3398 }
3399 #[inline]
3400 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3401 <Self::Parameters<
3402 '_,
3403 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3404 .map(Self::new)
3405 }
3406 }
3407 };
3408 #[derive(serde::Serialize, serde::Deserialize)]
3409 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3410 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3415 #[derive(Clone)]
3416 pub struct InvalidPlonkArgs;
3417 #[allow(
3418 non_camel_case_types,
3419 non_snake_case,
3420 clippy::pub_underscore_fields,
3421 clippy::style
3422 )]
3423 const _: () = {
3424 use alloy::sol_types as alloy_sol_types;
3425 #[doc(hidden)]
3426 #[allow(dead_code)]
3427 type UnderlyingSolTuple<'a> = ();
3428 #[doc(hidden)]
3429 type UnderlyingRustTuple<'a> = ();
3430 #[cfg(test)]
3431 #[allow(dead_code, unreachable_patterns)]
3432 fn _type_assertion(
3433 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3434 ) {
3435 match _t {
3436 alloy_sol_types::private::AssertTypeEq::<
3437 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3438 >(_) => {}
3439 }
3440 }
3441 #[automatically_derived]
3442 #[doc(hidden)]
3443 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3444 fn from(value: InvalidPlonkArgs) -> Self {
3445 ()
3446 }
3447 }
3448 #[automatically_derived]
3449 #[doc(hidden)]
3450 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3451 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3452 Self
3453 }
3454 }
3455 #[automatically_derived]
3456 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3457 type Parameters<'a> = UnderlyingSolTuple<'a>;
3458 type Token<'a> = <Self::Parameters<
3459 'a,
3460 > as alloy_sol_types::SolType>::Token<'a>;
3461 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3462 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3463 #[inline]
3464 fn new<'a>(
3465 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3466 ) -> Self {
3467 tuple.into()
3468 }
3469 #[inline]
3470 fn tokenize(&self) -> Self::Token<'_> {
3471 ()
3472 }
3473 #[inline]
3474 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3475 <Self::Parameters<
3476 '_,
3477 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3478 .map(Self::new)
3479 }
3480 }
3481 };
3482 #[derive(serde::Serialize, serde::Deserialize)]
3483 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3484 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3489 #[derive(Clone)]
3490 pub struct InvalidScalar;
3491 #[allow(
3492 non_camel_case_types,
3493 non_snake_case,
3494 clippy::pub_underscore_fields,
3495 clippy::style
3496 )]
3497 const _: () = {
3498 use alloy::sol_types as alloy_sol_types;
3499 #[doc(hidden)]
3500 #[allow(dead_code)]
3501 type UnderlyingSolTuple<'a> = ();
3502 #[doc(hidden)]
3503 type UnderlyingRustTuple<'a> = ();
3504 #[cfg(test)]
3505 #[allow(dead_code, unreachable_patterns)]
3506 fn _type_assertion(
3507 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3508 ) {
3509 match _t {
3510 alloy_sol_types::private::AssertTypeEq::<
3511 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3512 >(_) => {}
3513 }
3514 }
3515 #[automatically_derived]
3516 #[doc(hidden)]
3517 impl ::core::convert::From<InvalidScalar> for UnderlyingRustTuple<'_> {
3518 fn from(value: InvalidScalar) -> Self {
3519 ()
3520 }
3521 }
3522 #[automatically_derived]
3523 #[doc(hidden)]
3524 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidScalar {
3525 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3526 Self
3527 }
3528 }
3529 #[automatically_derived]
3530 impl alloy_sol_types::SolError for InvalidScalar {
3531 type Parameters<'a> = UnderlyingSolTuple<'a>;
3532 type Token<'a> = <Self::Parameters<
3533 'a,
3534 > as alloy_sol_types::SolType>::Token<'a>;
3535 const SIGNATURE: &'static str = "InvalidScalar()";
3536 const SELECTOR: [u8; 4] = [5u8, 176u8, 92u8, 204u8];
3537 #[inline]
3538 fn new<'a>(
3539 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3540 ) -> Self {
3541 tuple.into()
3542 }
3543 #[inline]
3544 fn tokenize(&self) -> Self::Token<'_> {
3545 ()
3546 }
3547 #[inline]
3548 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3549 <Self::Parameters<
3550 '_,
3551 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3552 .map(Self::new)
3553 }
3554 }
3555 };
3556 #[derive(serde::Serialize, serde::Deserialize)]
3557 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3558 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3563 #[derive(Clone)]
3564 pub struct PowPrecompileFailed;
3565 #[allow(
3566 non_camel_case_types,
3567 non_snake_case,
3568 clippy::pub_underscore_fields,
3569 clippy::style
3570 )]
3571 const _: () = {
3572 use alloy::sol_types as alloy_sol_types;
3573 #[doc(hidden)]
3574 #[allow(dead_code)]
3575 type UnderlyingSolTuple<'a> = ();
3576 #[doc(hidden)]
3577 type UnderlyingRustTuple<'a> = ();
3578 #[cfg(test)]
3579 #[allow(dead_code, unreachable_patterns)]
3580 fn _type_assertion(
3581 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3582 ) {
3583 match _t {
3584 alloy_sol_types::private::AssertTypeEq::<
3585 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3586 >(_) => {}
3587 }
3588 }
3589 #[automatically_derived]
3590 #[doc(hidden)]
3591 impl ::core::convert::From<PowPrecompileFailed> for UnderlyingRustTuple<'_> {
3592 fn from(value: PowPrecompileFailed) -> Self {
3593 ()
3594 }
3595 }
3596 #[automatically_derived]
3597 #[doc(hidden)]
3598 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PowPrecompileFailed {
3599 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3600 Self
3601 }
3602 }
3603 #[automatically_derived]
3604 impl alloy_sol_types::SolError for PowPrecompileFailed {
3605 type Parameters<'a> = UnderlyingSolTuple<'a>;
3606 type Token<'a> = <Self::Parameters<
3607 'a,
3608 > as alloy_sol_types::SolType>::Token<'a>;
3609 const SIGNATURE: &'static str = "PowPrecompileFailed()";
3610 const SELECTOR: [u8; 4] = [50u8, 116u8, 250u8, 100u8];
3611 #[inline]
3612 fn new<'a>(
3613 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3614 ) -> Self {
3615 tuple.into()
3616 }
3617 #[inline]
3618 fn tokenize(&self) -> Self::Token<'_> {
3619 ()
3620 }
3621 #[inline]
3622 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3623 <Self::Parameters<
3624 '_,
3625 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3626 .map(Self::new)
3627 }
3628 }
3629 };
3630 #[derive(serde::Serialize, serde::Deserialize)]
3631 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3632 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3637 #[derive(Clone)]
3638 pub struct UnsupportedDegree;
3639 #[allow(
3640 non_camel_case_types,
3641 non_snake_case,
3642 clippy::pub_underscore_fields,
3643 clippy::style
3644 )]
3645 const _: () = {
3646 use alloy::sol_types as alloy_sol_types;
3647 #[doc(hidden)]
3648 #[allow(dead_code)]
3649 type UnderlyingSolTuple<'a> = ();
3650 #[doc(hidden)]
3651 type UnderlyingRustTuple<'a> = ();
3652 #[cfg(test)]
3653 #[allow(dead_code, unreachable_patterns)]
3654 fn _type_assertion(
3655 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3656 ) {
3657 match _t {
3658 alloy_sol_types::private::AssertTypeEq::<
3659 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3660 >(_) => {}
3661 }
3662 }
3663 #[automatically_derived]
3664 #[doc(hidden)]
3665 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3666 fn from(value: UnsupportedDegree) -> Self {
3667 ()
3668 }
3669 }
3670 #[automatically_derived]
3671 #[doc(hidden)]
3672 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3673 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3674 Self
3675 }
3676 }
3677 #[automatically_derived]
3678 impl alloy_sol_types::SolError for UnsupportedDegree {
3679 type Parameters<'a> = UnderlyingSolTuple<'a>;
3680 type Token<'a> = <Self::Parameters<
3681 'a,
3682 > as alloy_sol_types::SolType>::Token<'a>;
3683 const SIGNATURE: &'static str = "UnsupportedDegree()";
3684 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3685 #[inline]
3686 fn new<'a>(
3687 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3688 ) -> Self {
3689 tuple.into()
3690 }
3691 #[inline]
3692 fn tokenize(&self) -> Self::Token<'_> {
3693 ()
3694 }
3695 #[inline]
3696 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3697 <Self::Parameters<
3698 '_,
3699 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3700 .map(Self::new)
3701 }
3702 }
3703 };
3704 #[derive(serde::Serialize, serde::Deserialize)]
3705 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3706 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3711 #[derive(Clone)]
3712 pub struct WrongPlonkVK;
3713 #[allow(
3714 non_camel_case_types,
3715 non_snake_case,
3716 clippy::pub_underscore_fields,
3717 clippy::style
3718 )]
3719 const _: () = {
3720 use alloy::sol_types as alloy_sol_types;
3721 #[doc(hidden)]
3722 #[allow(dead_code)]
3723 type UnderlyingSolTuple<'a> = ();
3724 #[doc(hidden)]
3725 type UnderlyingRustTuple<'a> = ();
3726 #[cfg(test)]
3727 #[allow(dead_code, unreachable_patterns)]
3728 fn _type_assertion(
3729 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3730 ) {
3731 match _t {
3732 alloy_sol_types::private::AssertTypeEq::<
3733 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3734 >(_) => {}
3735 }
3736 }
3737 #[automatically_derived]
3738 #[doc(hidden)]
3739 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3740 fn from(value: WrongPlonkVK) -> Self {
3741 ()
3742 }
3743 }
3744 #[automatically_derived]
3745 #[doc(hidden)]
3746 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3747 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3748 Self
3749 }
3750 }
3751 #[automatically_derived]
3752 impl alloy_sol_types::SolError for WrongPlonkVK {
3753 type Parameters<'a> = UnderlyingSolTuple<'a>;
3754 type Token<'a> = <Self::Parameters<
3755 'a,
3756 > as alloy_sol_types::SolType>::Token<'a>;
3757 const SIGNATURE: &'static str = "WrongPlonkVK()";
3758 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3759 #[inline]
3760 fn new<'a>(
3761 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3762 ) -> Self {
3763 tuple.into()
3764 }
3765 #[inline]
3766 fn tokenize(&self) -> Self::Token<'_> {
3767 ()
3768 }
3769 #[inline]
3770 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
3771 <Self::Parameters<
3772 '_,
3773 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3774 .map(Self::new)
3775 }
3776 }
3777 };
3778 #[derive(serde::Serialize, serde::Deserialize)]
3779 #[derive()]
3780 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3785 #[derive(Clone)]
3786 pub struct verifyCall {
3787 #[allow(missing_docs)]
3788 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3789 #[allow(missing_docs)]
3790 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 7usize],
3791 #[allow(missing_docs)]
3792 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3793 }
3794 #[derive(serde::Serialize, serde::Deserialize)]
3795 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3796 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3798 #[derive(Clone)]
3799 pub struct verifyReturn {
3800 #[allow(missing_docs)]
3801 pub _0: bool,
3802 }
3803 #[allow(
3804 non_camel_case_types,
3805 non_snake_case,
3806 clippy::pub_underscore_fields,
3807 clippy::style
3808 )]
3809 const _: () = {
3810 use alloy::sol_types as alloy_sol_types;
3811 {
3812 #[doc(hidden)]
3813 #[allow(dead_code)]
3814 type UnderlyingSolTuple<'a> = (
3815 IPlonkVerifier::VerifyingKey,
3816 alloy::sol_types::sol_data::FixedArray<
3817 alloy::sol_types::sol_data::Uint<256>,
3818 7usize,
3819 >,
3820 IPlonkVerifier::PlonkProof,
3821 );
3822 #[doc(hidden)]
3823 type UnderlyingRustTuple<'a> = (
3824 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
3825 [alloy::sol_types::private::primitives::aliases::U256; 7usize],
3826 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
3827 );
3828 #[cfg(test)]
3829 #[allow(dead_code, unreachable_patterns)]
3830 fn _type_assertion(
3831 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3832 ) {
3833 match _t {
3834 alloy_sol_types::private::AssertTypeEq::<
3835 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3836 >(_) => {}
3837 }
3838 }
3839 #[automatically_derived]
3840 #[doc(hidden)]
3841 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
3842 fn from(value: verifyCall) -> Self {
3843 (value.verifyingKey, value.publicInput, value.proof)
3844 }
3845 }
3846 #[automatically_derived]
3847 #[doc(hidden)]
3848 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
3849 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3850 Self {
3851 verifyingKey: tuple.0,
3852 publicInput: tuple.1,
3853 proof: tuple.2,
3854 }
3855 }
3856 }
3857 }
3858 {
3859 #[doc(hidden)]
3860 #[allow(dead_code)]
3861 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3862 #[doc(hidden)]
3863 type UnderlyingRustTuple<'a> = (bool,);
3864 #[cfg(test)]
3865 #[allow(dead_code, unreachable_patterns)]
3866 fn _type_assertion(
3867 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3868 ) {
3869 match _t {
3870 alloy_sol_types::private::AssertTypeEq::<
3871 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3872 >(_) => {}
3873 }
3874 }
3875 #[automatically_derived]
3876 #[doc(hidden)]
3877 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
3878 fn from(value: verifyReturn) -> Self {
3879 (value._0,)
3880 }
3881 }
3882 #[automatically_derived]
3883 #[doc(hidden)]
3884 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
3885 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3886 Self { _0: tuple.0 }
3887 }
3888 }
3889 }
3890 #[automatically_derived]
3891 impl alloy_sol_types::SolCall for verifyCall {
3892 type Parameters<'a> = (
3893 IPlonkVerifier::VerifyingKey,
3894 alloy::sol_types::sol_data::FixedArray<
3895 alloy::sol_types::sol_data::Uint<256>,
3896 7usize,
3897 >,
3898 IPlonkVerifier::PlonkProof,
3899 );
3900 type Token<'a> = <Self::Parameters<
3901 'a,
3902 > as alloy_sol_types::SolType>::Token<'a>;
3903 type Return = bool;
3904 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
3905 type ReturnToken<'a> = <Self::ReturnTuple<
3906 'a,
3907 > as alloy_sol_types::SolType>::Token<'a>;
3908 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[7],((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))";
3909 const SELECTOR: [u8; 4] = [119u8, 174u8, 63u8, 7u8];
3910 #[inline]
3911 fn new<'a>(
3912 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3913 ) -> Self {
3914 tuple.into()
3915 }
3916 #[inline]
3917 fn tokenize(&self) -> Self::Token<'_> {
3918 (
3919 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
3920 &self.verifyingKey,
3921 ),
3922 <alloy::sol_types::sol_data::FixedArray<
3923 alloy::sol_types::sol_data::Uint<256>,
3924 7usize,
3925 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
3926 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
3927 &self.proof,
3928 ),
3929 )
3930 }
3931 #[inline]
3932 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
3933 (
3934 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
3935 ret,
3936 ),
3937 )
3938 }
3939 #[inline]
3940 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
3941 <Self::ReturnTuple<
3942 '_,
3943 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
3944 .map(|r| {
3945 let r: verifyReturn = r.into();
3946 r._0
3947 })
3948 }
3949 #[inline]
3950 fn abi_decode_returns_validate(
3951 data: &[u8],
3952 ) -> alloy_sol_types::Result<Self::Return> {
3953 <Self::ReturnTuple<
3954 '_,
3955 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3956 .map(|r| {
3957 let r: verifyReturn = r.into();
3958 r._0
3959 })
3960 }
3961 }
3962 };
3963 #[derive(serde::Serialize, serde::Deserialize)]
3965 #[derive()]
3966 pub enum PlonkVerifierCalls {
3967 #[allow(missing_docs)]
3968 verify(verifyCall),
3969 }
3970 #[automatically_derived]
3971 impl PlonkVerifierCalls {
3972 pub const SELECTORS: &'static [[u8; 4usize]] = &[[119u8, 174u8, 63u8, 7u8]];
3979 }
3980 #[automatically_derived]
3981 impl alloy_sol_types::SolInterface for PlonkVerifierCalls {
3982 const NAME: &'static str = "PlonkVerifierCalls";
3983 const MIN_DATA_LENGTH: usize = 672usize;
3984 const COUNT: usize = 1usize;
3985 #[inline]
3986 fn selector(&self) -> [u8; 4] {
3987 match self {
3988 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
3989 }
3990 }
3991 #[inline]
3992 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
3993 Self::SELECTORS.get(i).copied()
3994 }
3995 #[inline]
3996 fn valid_selector(selector: [u8; 4]) -> bool {
3997 Self::SELECTORS.binary_search(&selector).is_ok()
3998 }
3999 #[inline]
4000 #[allow(non_snake_case)]
4001 fn abi_decode_raw(
4002 selector: [u8; 4],
4003 data: &[u8],
4004 ) -> alloy_sol_types::Result<Self> {
4005 static DECODE_SHIMS: &[fn(
4006 &[u8],
4007 ) -> alloy_sol_types::Result<PlonkVerifierCalls>] = &[
4008 {
4009 fn verify(
4010 data: &[u8],
4011 ) -> alloy_sol_types::Result<PlonkVerifierCalls> {
4012 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
4013 .map(PlonkVerifierCalls::verify)
4014 }
4015 verify
4016 },
4017 ];
4018 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4019 return Err(
4020 alloy_sol_types::Error::unknown_selector(
4021 <Self as alloy_sol_types::SolInterface>::NAME,
4022 selector,
4023 ),
4024 );
4025 };
4026 DECODE_SHIMS[idx](data)
4027 }
4028 #[inline]
4029 #[allow(non_snake_case)]
4030 fn abi_decode_raw_validate(
4031 selector: [u8; 4],
4032 data: &[u8],
4033 ) -> alloy_sol_types::Result<Self> {
4034 static DECODE_VALIDATE_SHIMS: &[fn(
4035 &[u8],
4036 ) -> alloy_sol_types::Result<PlonkVerifierCalls>] = &[
4037 {
4038 fn verify(
4039 data: &[u8],
4040 ) -> alloy_sol_types::Result<PlonkVerifierCalls> {
4041 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
4042 data,
4043 )
4044 .map(PlonkVerifierCalls::verify)
4045 }
4046 verify
4047 },
4048 ];
4049 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4050 return Err(
4051 alloy_sol_types::Error::unknown_selector(
4052 <Self as alloy_sol_types::SolInterface>::NAME,
4053 selector,
4054 ),
4055 );
4056 };
4057 DECODE_VALIDATE_SHIMS[idx](data)
4058 }
4059 #[inline]
4060 fn abi_encoded_size(&self) -> usize {
4061 match self {
4062 Self::verify(inner) => {
4063 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4064 }
4065 }
4066 }
4067 #[inline]
4068 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4069 match self {
4070 Self::verify(inner) => {
4071 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4072 }
4073 }
4074 }
4075 }
4076 #[derive(serde::Serialize, serde::Deserialize)]
4078 #[derive(Debug, PartialEq, Eq, Hash)]
4079 pub enum PlonkVerifierErrors {
4080 #[allow(missing_docs)]
4081 BN254G1AddFailed(BN254G1AddFailed),
4082 #[allow(missing_docs)]
4083 BN254PairingProdFailed(BN254PairingProdFailed),
4084 #[allow(missing_docs)]
4085 BN254ScalarInvZero(BN254ScalarInvZero),
4086 #[allow(missing_docs)]
4087 BN254ScalarMulFailed(BN254ScalarMulFailed),
4088 #[allow(missing_docs)]
4089 InvalidG1(InvalidG1),
4090 #[allow(missing_docs)]
4091 InvalidPlonkArgs(InvalidPlonkArgs),
4092 #[allow(missing_docs)]
4093 InvalidScalar(InvalidScalar),
4094 #[allow(missing_docs)]
4095 PowPrecompileFailed(PowPrecompileFailed),
4096 #[allow(missing_docs)]
4097 UnsupportedDegree(UnsupportedDegree),
4098 #[allow(missing_docs)]
4099 WrongPlonkVK(WrongPlonkVK),
4100 }
4101 #[automatically_derived]
4102 impl PlonkVerifierErrors {
4103 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4110 [5u8, 176u8, 92u8, 204u8],
4111 [25u8, 219u8, 138u8, 104u8],
4112 [50u8, 116u8, 250u8, 100u8],
4113 [65u8, 245u8, 59u8, 18u8],
4114 [96u8, 85u8, 219u8, 106u8],
4115 [158u8, 120u8, 209u8, 76u8],
4116 [194u8, 6u8, 51u8, 79u8],
4117 [214u8, 219u8, 187u8, 13u8],
4118 [226u8, 239u8, 9u8, 229u8],
4119 [253u8, 154u8, 45u8, 27u8],
4120 ];
4121 }
4122 #[automatically_derived]
4123 impl alloy_sol_types::SolInterface for PlonkVerifierErrors {
4124 const NAME: &'static str = "PlonkVerifierErrors";
4125 const MIN_DATA_LENGTH: usize = 0usize;
4126 const COUNT: usize = 10usize;
4127 #[inline]
4128 fn selector(&self) -> [u8; 4] {
4129 match self {
4130 Self::BN254G1AddFailed(_) => {
4131 <BN254G1AddFailed as alloy_sol_types::SolError>::SELECTOR
4132 }
4133 Self::BN254PairingProdFailed(_) => {
4134 <BN254PairingProdFailed as alloy_sol_types::SolError>::SELECTOR
4135 }
4136 Self::BN254ScalarInvZero(_) => {
4137 <BN254ScalarInvZero as alloy_sol_types::SolError>::SELECTOR
4138 }
4139 Self::BN254ScalarMulFailed(_) => {
4140 <BN254ScalarMulFailed as alloy_sol_types::SolError>::SELECTOR
4141 }
4142 Self::InvalidG1(_) => <InvalidG1 as alloy_sol_types::SolError>::SELECTOR,
4143 Self::InvalidPlonkArgs(_) => {
4144 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
4145 }
4146 Self::InvalidScalar(_) => {
4147 <InvalidScalar as alloy_sol_types::SolError>::SELECTOR
4148 }
4149 Self::PowPrecompileFailed(_) => {
4150 <PowPrecompileFailed as alloy_sol_types::SolError>::SELECTOR
4151 }
4152 Self::UnsupportedDegree(_) => {
4153 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
4154 }
4155 Self::WrongPlonkVK(_) => {
4156 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
4157 }
4158 }
4159 }
4160 #[inline]
4161 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4162 Self::SELECTORS.get(i).copied()
4163 }
4164 #[inline]
4165 fn valid_selector(selector: [u8; 4]) -> bool {
4166 Self::SELECTORS.binary_search(&selector).is_ok()
4167 }
4168 #[inline]
4169 #[allow(non_snake_case)]
4170 fn abi_decode_raw(
4171 selector: [u8; 4],
4172 data: &[u8],
4173 ) -> alloy_sol_types::Result<Self> {
4174 static DECODE_SHIMS: &[fn(
4175 &[u8],
4176 ) -> alloy_sol_types::Result<PlonkVerifierErrors>] = &[
4177 {
4178 fn InvalidScalar(
4179 data: &[u8],
4180 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4181 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw(
4182 data,
4183 )
4184 .map(PlonkVerifierErrors::InvalidScalar)
4185 }
4186 InvalidScalar
4187 },
4188 {
4189 fn BN254ScalarMulFailed(
4190 data: &[u8],
4191 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4192 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw(
4193 data,
4194 )
4195 .map(PlonkVerifierErrors::BN254ScalarMulFailed)
4196 }
4197 BN254ScalarMulFailed
4198 },
4199 {
4200 fn PowPrecompileFailed(
4201 data: &[u8],
4202 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4203 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw(
4204 data,
4205 )
4206 .map(PlonkVerifierErrors::PowPrecompileFailed)
4207 }
4208 PowPrecompileFailed
4209 },
4210 {
4211 fn WrongPlonkVK(
4212 data: &[u8],
4213 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4214 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(data)
4215 .map(PlonkVerifierErrors::WrongPlonkVK)
4216 }
4217 WrongPlonkVK
4218 },
4219 {
4220 fn BN254G1AddFailed(
4221 data: &[u8],
4222 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4223 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw(
4224 data,
4225 )
4226 .map(PlonkVerifierErrors::BN254G1AddFailed)
4227 }
4228 BN254G1AddFailed
4229 },
4230 {
4231 fn InvalidG1(
4232 data: &[u8],
4233 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4234 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw(data)
4235 .map(PlonkVerifierErrors::InvalidG1)
4236 }
4237 InvalidG1
4238 },
4239 {
4240 fn BN254PairingProdFailed(
4241 data: &[u8],
4242 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4243 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw(
4244 data,
4245 )
4246 .map(PlonkVerifierErrors::BN254PairingProdFailed)
4247 }
4248 BN254PairingProdFailed
4249 },
4250 {
4251 fn BN254ScalarInvZero(
4252 data: &[u8],
4253 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4254 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw(
4255 data,
4256 )
4257 .map(PlonkVerifierErrors::BN254ScalarInvZero)
4258 }
4259 BN254ScalarInvZero
4260 },
4261 {
4262 fn UnsupportedDegree(
4263 data: &[u8],
4264 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4265 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
4266 data,
4267 )
4268 .map(PlonkVerifierErrors::UnsupportedDegree)
4269 }
4270 UnsupportedDegree
4271 },
4272 {
4273 fn InvalidPlonkArgs(
4274 data: &[u8],
4275 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4276 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
4277 data,
4278 )
4279 .map(PlonkVerifierErrors::InvalidPlonkArgs)
4280 }
4281 InvalidPlonkArgs
4282 },
4283 ];
4284 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4285 return Err(
4286 alloy_sol_types::Error::unknown_selector(
4287 <Self as alloy_sol_types::SolInterface>::NAME,
4288 selector,
4289 ),
4290 );
4291 };
4292 DECODE_SHIMS[idx](data)
4293 }
4294 #[inline]
4295 #[allow(non_snake_case)]
4296 fn abi_decode_raw_validate(
4297 selector: [u8; 4],
4298 data: &[u8],
4299 ) -> alloy_sol_types::Result<Self> {
4300 static DECODE_VALIDATE_SHIMS: &[fn(
4301 &[u8],
4302 ) -> alloy_sol_types::Result<PlonkVerifierErrors>] = &[
4303 {
4304 fn InvalidScalar(
4305 data: &[u8],
4306 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4307 <InvalidScalar as alloy_sol_types::SolError>::abi_decode_raw_validate(
4308 data,
4309 )
4310 .map(PlonkVerifierErrors::InvalidScalar)
4311 }
4312 InvalidScalar
4313 },
4314 {
4315 fn BN254ScalarMulFailed(
4316 data: &[u8],
4317 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4318 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4319 data,
4320 )
4321 .map(PlonkVerifierErrors::BN254ScalarMulFailed)
4322 }
4323 BN254ScalarMulFailed
4324 },
4325 {
4326 fn PowPrecompileFailed(
4327 data: &[u8],
4328 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4329 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4330 data,
4331 )
4332 .map(PlonkVerifierErrors::PowPrecompileFailed)
4333 }
4334 PowPrecompileFailed
4335 },
4336 {
4337 fn WrongPlonkVK(
4338 data: &[u8],
4339 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4340 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw_validate(
4341 data,
4342 )
4343 .map(PlonkVerifierErrors::WrongPlonkVK)
4344 }
4345 WrongPlonkVK
4346 },
4347 {
4348 fn BN254G1AddFailed(
4349 data: &[u8],
4350 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4351 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4352 data,
4353 )
4354 .map(PlonkVerifierErrors::BN254G1AddFailed)
4355 }
4356 BN254G1AddFailed
4357 },
4358 {
4359 fn InvalidG1(
4360 data: &[u8],
4361 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4362 <InvalidG1 as alloy_sol_types::SolError>::abi_decode_raw_validate(
4363 data,
4364 )
4365 .map(PlonkVerifierErrors::InvalidG1)
4366 }
4367 InvalidG1
4368 },
4369 {
4370 fn BN254PairingProdFailed(
4371 data: &[u8],
4372 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4373 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_decode_raw_validate(
4374 data,
4375 )
4376 .map(PlonkVerifierErrors::BN254PairingProdFailed)
4377 }
4378 BN254PairingProdFailed
4379 },
4380 {
4381 fn BN254ScalarInvZero(
4382 data: &[u8],
4383 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4384 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
4385 data,
4386 )
4387 .map(PlonkVerifierErrors::BN254ScalarInvZero)
4388 }
4389 BN254ScalarInvZero
4390 },
4391 {
4392 fn UnsupportedDegree(
4393 data: &[u8],
4394 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4395 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw_validate(
4396 data,
4397 )
4398 .map(PlonkVerifierErrors::UnsupportedDegree)
4399 }
4400 UnsupportedDegree
4401 },
4402 {
4403 fn InvalidPlonkArgs(
4404 data: &[u8],
4405 ) -> alloy_sol_types::Result<PlonkVerifierErrors> {
4406 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw_validate(
4407 data,
4408 )
4409 .map(PlonkVerifierErrors::InvalidPlonkArgs)
4410 }
4411 InvalidPlonkArgs
4412 },
4413 ];
4414 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4415 return Err(
4416 alloy_sol_types::Error::unknown_selector(
4417 <Self as alloy_sol_types::SolInterface>::NAME,
4418 selector,
4419 ),
4420 );
4421 };
4422 DECODE_VALIDATE_SHIMS[idx](data)
4423 }
4424 #[inline]
4425 fn abi_encoded_size(&self) -> usize {
4426 match self {
4427 Self::BN254G1AddFailed(inner) => {
4428 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encoded_size(
4429 inner,
4430 )
4431 }
4432 Self::BN254PairingProdFailed(inner) => {
4433 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encoded_size(
4434 inner,
4435 )
4436 }
4437 Self::BN254ScalarInvZero(inner) => {
4438 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encoded_size(
4439 inner,
4440 )
4441 }
4442 Self::BN254ScalarMulFailed(inner) => {
4443 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encoded_size(
4444 inner,
4445 )
4446 }
4447 Self::InvalidG1(inner) => {
4448 <InvalidG1 as alloy_sol_types::SolError>::abi_encoded_size(inner)
4449 }
4450 Self::InvalidPlonkArgs(inner) => {
4451 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
4452 inner,
4453 )
4454 }
4455 Self::InvalidScalar(inner) => {
4456 <InvalidScalar as alloy_sol_types::SolError>::abi_encoded_size(inner)
4457 }
4458 Self::PowPrecompileFailed(inner) => {
4459 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encoded_size(
4460 inner,
4461 )
4462 }
4463 Self::UnsupportedDegree(inner) => {
4464 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
4465 inner,
4466 )
4467 }
4468 Self::WrongPlonkVK(inner) => {
4469 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
4470 }
4471 }
4472 }
4473 #[inline]
4474 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4475 match self {
4476 Self::BN254G1AddFailed(inner) => {
4477 <BN254G1AddFailed as alloy_sol_types::SolError>::abi_encode_raw(
4478 inner,
4479 out,
4480 )
4481 }
4482 Self::BN254PairingProdFailed(inner) => {
4483 <BN254PairingProdFailed as alloy_sol_types::SolError>::abi_encode_raw(
4484 inner,
4485 out,
4486 )
4487 }
4488 Self::BN254ScalarInvZero(inner) => {
4489 <BN254ScalarInvZero as alloy_sol_types::SolError>::abi_encode_raw(
4490 inner,
4491 out,
4492 )
4493 }
4494 Self::BN254ScalarMulFailed(inner) => {
4495 <BN254ScalarMulFailed as alloy_sol_types::SolError>::abi_encode_raw(
4496 inner,
4497 out,
4498 )
4499 }
4500 Self::InvalidG1(inner) => {
4501 <InvalidG1 as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
4502 }
4503 Self::InvalidPlonkArgs(inner) => {
4504 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
4505 inner,
4506 out,
4507 )
4508 }
4509 Self::InvalidScalar(inner) => {
4510 <InvalidScalar as alloy_sol_types::SolError>::abi_encode_raw(
4511 inner,
4512 out,
4513 )
4514 }
4515 Self::PowPrecompileFailed(inner) => {
4516 <PowPrecompileFailed as alloy_sol_types::SolError>::abi_encode_raw(
4517 inner,
4518 out,
4519 )
4520 }
4521 Self::UnsupportedDegree(inner) => {
4522 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
4523 inner,
4524 out,
4525 )
4526 }
4527 Self::WrongPlonkVK(inner) => {
4528 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
4529 inner,
4530 out,
4531 )
4532 }
4533 }
4534 }
4535 }
4536 use alloy::contract as alloy_contract;
4537 #[inline]
4541 pub const fn new<
4542 P: alloy_contract::private::Provider<N>,
4543 N: alloy_contract::private::Network,
4544 >(
4545 address: alloy_sol_types::private::Address,
4546 __provider: P,
4547 ) -> PlonkVerifierInstance<P, N> {
4548 PlonkVerifierInstance::<P, N>::new(address, __provider)
4549 }
4550 #[inline]
4556 pub fn deploy<
4557 P: alloy_contract::private::Provider<N>,
4558 N: alloy_contract::private::Network,
4559 >(
4560 __provider: P,
4561 ) -> impl ::core::future::Future<
4562 Output = alloy_contract::Result<PlonkVerifierInstance<P, N>>,
4563 > {
4564 PlonkVerifierInstance::<P, N>::deploy(__provider)
4565 }
4566 #[inline]
4572 pub fn deploy_builder<
4573 P: alloy_contract::private::Provider<N>,
4574 N: alloy_contract::private::Network,
4575 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
4576 PlonkVerifierInstance::<P, N>::deploy_builder(__provider)
4577 }
4578 #[derive(Clone)]
4590 pub struct PlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
4591 address: alloy_sol_types::private::Address,
4592 provider: P,
4593 _network: ::core::marker::PhantomData<N>,
4594 }
4595 #[automatically_derived]
4596 impl<P, N> ::core::fmt::Debug for PlonkVerifierInstance<P, N> {
4597 #[inline]
4598 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4599 f.debug_tuple("PlonkVerifierInstance").field(&self.address).finish()
4600 }
4601 }
4602 #[automatically_derived]
4604 impl<
4605 P: alloy_contract::private::Provider<N>,
4606 N: alloy_contract::private::Network,
4607 > PlonkVerifierInstance<P, N> {
4608 #[inline]
4612 pub const fn new(
4613 address: alloy_sol_types::private::Address,
4614 __provider: P,
4615 ) -> Self {
4616 Self {
4617 address,
4618 provider: __provider,
4619 _network: ::core::marker::PhantomData,
4620 }
4621 }
4622 #[inline]
4628 pub async fn deploy(
4629 __provider: P,
4630 ) -> alloy_contract::Result<PlonkVerifierInstance<P, N>> {
4631 let call_builder = Self::deploy_builder(__provider);
4632 let contract_address = call_builder.deploy().await?;
4633 Ok(Self::new(contract_address, call_builder.provider))
4634 }
4635 #[inline]
4641 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
4642 alloy_contract::RawCallBuilder::new_raw_deploy(
4643 __provider,
4644 ::core::clone::Clone::clone(&BYTECODE),
4645 )
4646 }
4647 #[inline]
4649 pub const fn address(&self) -> &alloy_sol_types::private::Address {
4650 &self.address
4651 }
4652 #[inline]
4654 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
4655 self.address = address;
4656 }
4657 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
4659 self.set_address(address);
4660 self
4661 }
4662 #[inline]
4664 pub const fn provider(&self) -> &P {
4665 &self.provider
4666 }
4667 }
4668 impl<P: ::core::clone::Clone, N> PlonkVerifierInstance<&P, N> {
4669 #[inline]
4671 pub fn with_cloned_provider(self) -> PlonkVerifierInstance<P, N> {
4672 PlonkVerifierInstance {
4673 address: self.address,
4674 provider: ::core::clone::Clone::clone(&self.provider),
4675 _network: ::core::marker::PhantomData,
4676 }
4677 }
4678 }
4679 #[automatically_derived]
4681 impl<
4682 P: alloy_contract::private::Provider<N>,
4683 N: alloy_contract::private::Network,
4684 > PlonkVerifierInstance<P, N> {
4685 pub fn call_builder<C: alloy_sol_types::SolCall>(
4690 &self,
4691 call: &C,
4692 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
4693 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
4694 }
4695 pub fn verify(
4697 &self,
4698 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
4699 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 7usize],
4700 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
4701 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
4702 self.call_builder(
4703 &verifyCall {
4704 verifyingKey,
4705 publicInput,
4706 proof,
4707 },
4708 )
4709 }
4710 }
4711 #[automatically_derived]
4713 impl<
4714 P: alloy_contract::private::Provider<N>,
4715 N: alloy_contract::private::Network,
4716 > PlonkVerifierInstance<P, N> {
4717 pub fn event_filter<E: alloy_sol_types::SolEvent>(
4722 &self,
4723 ) -> alloy_contract::Event<&P, E, N> {
4724 alloy_contract::Event::new_sol(&self.provider, &self.address)
4725 }
4726 }
4727}