From 0a39e11480688fcf7f871e78bc1107174a6378b6 Mon Sep 17 00:00:00 2001 From: adria0 Date: Tue, 18 Jun 2024 13:12:29 +0000 Subject: [PATCH] deploy: 1a6468e730faee72967f3376ff902e4a8c7e7848 --- halo2_backend/plonk/enum.Error.html | 2 +- .../struct.IPACommitmentScheme.html | 12 +- .../ipa/multiopen/struct.VerifierIPA.html | 8 +- .../struct.KZGCommitmentScheme.html | 14 +- halo2_backend/poly/struct.Polynomial.html | 2 +- .../transcript/struct.Challenge255.html | 36 +-- .../circuit/layouter/enum.RegionColumn.html | 2 +- halo2_frontend/circuit/struct.Value.html | 36 +-- halo2_frontend/dev/enum.VerifyFailure.html | 7 +- halo2_frontend/dev/index.html | 2 +- .../dev/metadata/struct.Constraint.html | 2 +- halo2_frontend/dev/metadata/struct.Gate.html | 2 +- .../dev/metadata/struct.Region.html | 4 +- .../dev/metadata/struct.VirtualCell.html | 7 +- halo2_frontend/dev/struct.CircuitGates.html | 2 +- halo2_frontend/dev/struct.MockProver.html | 50 ++-- .../plonk/assigned/enum.Assigned.html | 4 +- .../constraint_system/struct.VirtualCell.html | 2 +- .../circuit/expression/enum.Expression.html | 4 +- .../circuit/expression/struct.Column.html | 4 +- .../plonk/circuit/trait.Assignment.html | 2 +- halo2_frontend/plonk/error/enum.Error.html | 2 +- halo2_proofs/all.html | 2 +- halo2_proofs/circuit/struct.Value.html | 50 ++-- halo2_proofs/dev/enum.CellValue.html | 142 ++++++++++ halo2_proofs/dev/enum.InstanceValue.html | 141 ++++++++++ halo2_proofs/dev/enum.VerifyFailure.html | 7 +- halo2_proofs/dev/index.html | 2 +- halo2_proofs/dev/metadata/struct.Region.html | 2 +- .../dev/metadata/struct.VirtualCell.html | 9 +- halo2_proofs/dev/sidebar-items.js | 2 +- halo2_proofs/dev/struct.MockProver.html | 55 ++-- halo2_proofs/index.html | 2 +- halo2_proofs/plonk/enum.Any.html | 2 +- halo2_proofs/plonk/enum.Assigned.html | 36 +-- halo2_proofs/plonk/enum.Error.html | 2 +- halo2_proofs/plonk/struct.Column.html | 6 +- halo2_proofs/plonk/trait.Assignment.html | 2 +- halo2_proofs/poly/index.html | 2 +- .../struct.IPACommitmentScheme.html | 8 +- .../ipa/multiopen/struct.VerifierIPA.html | 8 +- .../struct.KZGCommitmentScheme.html | 8 +- halo2_proofs/transcript/index.html | 2 +- .../transcript/struct.Challenge255.html | 36 +-- search-index.js | 6 +- .../halo2_frontend/halo2_frontend-desc-0-.js | 2 +- .../halo2_proofs/halo2_proofs-desc-0-.js | 2 +- src/halo2_frontend/dev.rs.html | 266 ++++++++++++++++++ src/halo2_frontend/dev/failure.rs.html | 2 +- src/halo2_frontend/dev/metadata.rs.html | 2 +- src/halo2_proofs/lib.rs.html | 6 +- trait.impl/core/clone/trait.Clone.js | 2 +- 52 files changed, 791 insertions(+), 229 deletions(-) create mode 100644 halo2_proofs/dev/enum.CellValue.html create mode 100644 halo2_proofs/dev/enum.InstanceValue.html diff --git a/halo2_backend/plonk/enum.Error.html b/halo2_backend/plonk/enum.Error.html index d144732b1f..db2a2a32f0 100644 --- a/halo2_backend/plonk/enum.Error.html +++ b/halo2_backend/plonk/enum.Error.html @@ -39,7 +39,7 @@ included in the permutation.

§

Other(String)

Generic error not covered by previous cases

Implementations§

source§

impl Error

source

pub fn not_enough_rows_available(current_k: u32) -> Self

Constructs an Error::NotEnoughRowsAvailable.

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/halo2_backend/poly/ipa/commitment/struct.IPACommitmentScheme.html b/halo2_backend/poly/ipa/commitment/struct.IPACommitmentScheme.html index 2adc600662..0a18ef8e6e 100644 --- a/halo2_backend/poly/ipa/commitment/struct.IPACommitmentScheme.html +++ b/halo2_backend/poly/ipa/commitment/struct.IPACommitmentScheme.html @@ -25,29 +25,29 @@ ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, C>> + Clone, R: RngCore,

Create a multi-opening proof

-
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( +

source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, queries: I ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, Scheme::Curve>> + Clone, - R: RngCore,

Create a multi-opening proof
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

+ R: RngCore,
Create a multi-opening proof
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

-
§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( +

§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

+output.
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

-
§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( +

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s output.
source§

impl<'params, C: CurveAffine> Verifier<'params, IPACommitmentScheme<C>> for VerifierIPA<C>

§

type Guard = GuardIPA<'params, C>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new() -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( +to allow developer to compress or combine verification results

§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new() -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( &self, transcript: &mut T, queries: I, diff --git a/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html b/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html index 0e372e970f..fc75d856f3 100644 --- a/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html +++ b/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html @@ -15,17 +15,17 @@

Struct halo2_backend::poly::ipa::multiopen::VerifierIPA

source ·
pub struct VerifierIPA<C: CurveAffine> { /* private fields */ }
Expand description

IPA multi-open verifier

-

Trait Implementations§

source§

impl<C: Debug + CurveAffine> Debug for VerifierIPA<C>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

+

Trait Implementations§

source§

impl<C: Debug + CurveAffine> Debug for VerifierIPA<C>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

-
§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( +

§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

+output.
source§

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

-
§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( +

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s diff --git a/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html b/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html index 2d10e49f98..eb0c350b1e 100644 --- a/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html +++ b/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html @@ -36,7 +36,7 @@ ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, E::G1Affine>> + Clone, R: RngCore,

Create a multi-opening proof

-
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( +

source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, @@ -57,7 +57,7 @@ ) -> Result<()>
where I: IntoIterator<Item = ProverQuery<'com, E::G1Affine>> + Clone, R: RngCore,

Create a multi-opening proof

-
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( +

source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, @@ -69,20 +69,20 @@ V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, - E::G2Affine: SerdeCurveAffine,

§

type Output = AccumulatorStrategy<E>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsVerifierKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( + E::G2Affine: SerdeCurveAffine,

§

type Output = AccumulatorStrategy<E>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsVerifierKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity. Read more
source§

impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<E>
where +output.

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity. Read more
source§

impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<E>
where E: MultiMillerLoop + Debug, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, - E::G2Affine: SerdeCurveAffine,

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsVerifierKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( + E::G2Affine: SerdeCurveAffine,

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsVerifierKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity. Read more
source§

impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierGWC<E>
where +output.

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity. Read more
source§

impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierGWC<E>
where E: MultiMillerLoop + Debug, E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, @@ -106,7 +106,7 @@ ) -> Result<Self::Guard, Error>
where I: IntoIterator<Item = VerifierQuery<'com, E::G1Affine, MSMKZG<E>>> + Clone,

Verify a multi-opening proof

§

type Guard = GuardKZG<E>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = DualMSM<E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new() -> Self

Creates new verifier instance

Auto Trait Implementations§

§

impl<E> Freeze for KZGCommitmentScheme<E>

§

impl<E> RefUnwindSafe for KZGCommitmentScheme<E>
where +to allow developer to compress or combine verification results
§

type MSMAccumulator = DualMSM<E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new() -> Self

Creates new verifier instance

Auto Trait Implementations§

§

impl<E> Freeze for KZGCommitmentScheme<E>

§

impl<E> RefUnwindSafe for KZGCommitmentScheme<E>
where E: RefUnwindSafe,

§

impl<E> Send for KZGCommitmentScheme<E>

§

impl<E> Sync for KZGCommitmentScheme<E>

§

impl<E> Unpin for KZGCommitmentScheme<E>
where E: Unpin,

§

impl<E> UnwindSafe for KZGCommitmentScheme<E>
where E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_backend/poly/struct.Polynomial.html b/halo2_backend/poly/struct.Polynomial.html index 81ed6111e1..d71540e8ea 100644 --- a/halo2_backend/poly/struct.Polynomial.html +++ b/halo2_backend/poly/struct.Polynomial.html @@ -2417,7 +2417,7 @@
§Examples<

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

To lowercase the value in-place, use make_ascii_lowercase.

-

Trait Implementations§

source§

impl<'a, F: Field, B: Basis> Add<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the + operation. Read more
source§

impl<F: Clone, B: Clone> Clone for Polynomial<F, B>

source§

fn clone(&self) -> Polynomial<F, B>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug, B: Debug> Debug for Polynomial<F, B>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F, B> Deref for Polynomial<F, B>

§

type Target = [F]

The resulting type after dereferencing.
source§

fn deref(&self) -> &[F]

Dereferences the value.
source§

impl<F, B> DerefMut for Polynomial<F, B>

source§

fn deref_mut(&mut self) -> &mut [F]

Mutably dereferences the value.
source§

impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFrom<usize>) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<RangeFull> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFull) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<usize> for Polynomial<F, B>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, index: usize) -> &F

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFrom<usize>) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFull) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<usize> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: usize) -> &mut F

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F: Field, B: Basis> Mul<F> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Polynomial<F, B>

Performs the * operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the - operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<F> for &'a Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Polynomial<F, B>

Performs the - operation. Read more

Auto Trait Implementations§

§

impl<F, B> Freeze for Polynomial<F, B>

§

impl<F, B> RefUnwindSafe for Polynomial<F, B>
where +

Trait Implementations§

source§

impl<'a, F: Field, B: Basis> Add<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the + operation. Read more
source§

impl<F: Clone, B: Clone> Clone for Polynomial<F, B>

source§

fn clone(&self) -> Polynomial<F, B>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug, B: Debug> Debug for Polynomial<F, B>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F, B> Deref for Polynomial<F, B>

§

type Target = [F]

The resulting type after dereferencing.
source§

fn deref(&self) -> &[F]

Dereferences the value.
source§

impl<F, B> DerefMut for Polynomial<F, B>

source§

fn deref_mut(&mut self) -> &mut [F]

Mutably dereferences the value.
source§

impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFrom<usize>) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<RangeFull> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFull) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<usize> for Polynomial<F, B>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, index: usize) -> &F

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFrom<usize>) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFull) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<usize> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: usize) -> &mut F

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F: Field, B: Basis> Mul<F> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Polynomial<F, B>

Performs the * operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the - operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<F> for &'a Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Polynomial<F, B>

Performs the - operation. Read more

Auto Trait Implementations§

§

impl<F, B> Freeze for Polynomial<F, B>

§

impl<F, B> RefUnwindSafe for Polynomial<F, B>

§

impl<F, B> Send for Polynomial<F, B>
where B: Send, diff --git a/halo2_backend/transcript/struct.Challenge255.html b/halo2_backend/transcript/struct.Challenge255.html index 1b56663b90..8a84b2a8eb 100644 --- a/halo2_backend/transcript/struct.Challenge255.html +++ b/halo2_backend/transcript/struct.Challenge255.html @@ -107,30 +107,30 @@
§Examples
C::Scalar: FromUniformBytes<64>,

§

type Input = [u8; 64]

The Input type used to derive the challenge encoding. For example, an input from the Poseidon hash would be a base field element; an input from the Blake2b hash would be a [u8; 64].
source§

fn new(challenge_input: &[u8; 64]) -> Self

Get an encoded challenge from a given input challenge.
source§

fn get_scalar(&self) -> C::Scalar

Get a scalar field element from an encoded challenge.
source§

fn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>

Cast an encoded challenge as a typed ChallengeScalar.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

source§

impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

source§

impl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

source§

fn write_point(&mut self, point: C) -> Result<()>

Write a curve point to the proof and the transcript.
source§

fn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Write a scalar to the proof and the transcript.
source§

impl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

source§

fn write_point(&mut self, point: C) -> Result<()>

Write a curve point to the proof and the transcript.
source§

fn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Write a scalar to the proof and the transcript.
source§

impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

-
source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).
source§

impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
where - C::Scalar: FromUniformBytes<64>,

source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

-
source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

+
source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).
source§

impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
where + C::Scalar: FromUniformBytes<64>,

source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

+
source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).

source§

impl<C: Copy + CurveAffine> Copy for Challenge255<C>

Auto Trait Implementations§

§

impl<C> Freeze for Challenge255<C>

§

impl<C> RefUnwindSafe for Challenge255<C>
where C: RefUnwindSafe,

§

impl<C> Send for Challenge255<C>

§

impl<C> Sync for Challenge255<C>

§

impl<C> Unpin for Challenge255<C>
where C: Unpin,

§

impl<C> UnwindSafe for Challenge255<C>
where diff --git a/halo2_frontend/circuit/layouter/enum.RegionColumn.html b/halo2_frontend/circuit/layouter/enum.RegionColumn.html index e680c4a23e..e0288cac31 100644 --- a/halo2_frontend/circuit/layouter/enum.RegionColumn.html +++ b/halo2_frontend/circuit/layouter/enum.RegionColumn.html @@ -21,7 +21,7 @@ as well as selectors that are not concrete columns at this stage.

Variants§

§

Column(Column<Any>)

Concrete column

§

Selector(Selector)

Virtual column representing a (boolean) selector

-

Trait Implementations§

source§

impl Clone for RegionColumn

source§

fn clone(&self) -> RegionColumn

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RegionColumn

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Selector> for RegionColumn

source§

fn from(selector: Selector) -> RegionColumn

Converts to this type from the input type.
source§

impl Hash for RegionColumn

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for RegionColumn

source§

fn clone(&self) -> RegionColumn

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RegionColumn

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Selector> for RegionColumn

source§

fn from(selector: Selector) -> RegionColumn

Converts to this type from the input type.
source§

impl Hash for RegionColumn

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for RegionColumn

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/halo2_frontend/circuit/struct.Value.html b/halo2_frontend/circuit/struct.Value.html index ad8415225a..dbb9b30835 100644 --- a/halo2_frontend/circuit/struct.Value.html +++ b/halo2_frontend/circuit/struct.Value.html @@ -91,28 +91,28 @@
§Examples

source§

impl<F: Field> Value<Assigned<F>>

source

pub fn evaluate(self) -> Value<F>

Evaluates this value directly, performing an unbatched inversion if necessary.

If the denominator is zero, the returned value is zero.

Trait Implementations§

source§

impl<V, O> Add<&Value<V>> for Value<V>
where - for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>
where - for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>
where - for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>
where - for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add for &Value<V>
where - for<'v> &'v V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add for Value<V>
where - V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V: Clone> Clone for Value<V>

source§

fn clone(&self) -> Value<V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V: Debug> Debug for Value<V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<V> Default for Value<V>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<F: Field> From<Value<F>> for Value<Assigned<F>>

source§

fn from(value: Value<F>) -> Self

Converts to this type from the input type.
source§

impl<A, V: FromIterator<A>> FromIterator<Value<A>> for Value<V>

source§

fn from_iter<I: IntoIterator<Item = Value<A>>>(iter: I) -> Self

Takes each element in the Iterator: if it is Value::unknown(), no further + for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>
where + for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>
where + for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>
where + for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add for &Value<V>
where + for<'v> &'v V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add for Value<V>
where + V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V: Clone> Clone for Value<V>

source§

fn clone(&self) -> Value<V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V: Debug> Debug for Value<V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<V> Default for Value<V>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<F: Field> From<Value<F>> for Value<Assigned<F>>

source§

fn from(value: Value<F>) -> Self

Converts to this type from the input type.
source§

impl<A, V: FromIterator<A>> FromIterator<Value<A>> for Value<V>

source§

fn from_iter<I: IntoIterator<Item = Value<A>>>(iter: I) -> Self

Takes each element in the Iterator: if it is Value::unknown(), no further elements are taken, and the Value::unknown() is returned. Should no Value::unknown() occur, a container of type V containing the values of each Value is returned.

source§

impl<V, O> Mul<&Value<V>> for Value<V>
where - for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>
where - for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>
where - for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>
where - for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for &Value<V>
where - for<'v> &'v V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for Value<V>
where - V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V: Neg> Neg for Value<V>

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>
where - for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>
where - for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>
where - for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>
where - for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for &Value<V>
where - for<'v> &'v V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for Value<V>
where - V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V: Copy> Copy for Value<V>

Auto Trait Implementations§

§

impl<V> Freeze for Value<V>
where + for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>
where + for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>
where + for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>
where + for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for &Value<V>
where + for<'v> &'v V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for Value<V>
where + V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V: Neg> Neg for Value<V>

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>
where + for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>
where + for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>
where + for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>
where + for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for &Value<V>
where + for<'v> &'v V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for Value<V>
where + V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V: Copy> Copy for Value<V>

Auto Trait Implementations§

§

impl<V> Freeze for Value<V>
where V: Freeze,

§

impl<V> RefUnwindSafe for Value<V>
where V: RefUnwindSafe,

§

impl<V> Send for Value<V>
where V: Send,

§

impl<V> Sync for Value<V>
where diff --git a/halo2_frontend/dev/enum.VerifyFailure.html b/halo2_frontend/dev/enum.VerifyFailure.html index 602009c4d9..34ef0a83c3 100644 --- a/halo2_frontend/dev/enum.VerifyFailure.html +++ b/halo2_frontend/dev/enum.VerifyFailure.html @@ -14,7 +14,7 @@ }); -

Implementations§

source§

impl VerifyFailure

source

pub fn emit<F: Field>(&self, prover: &MockProver<F>)

Emits this failure in pretty-printed format to stderr.

-

Trait Implementations§

source§

impl Debug for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for VerifyFailure

source§

fn eq(&self, other: &VerifyFailure) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for VerifyFailure

source§

fn clone(&self) -> VerifyFailure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for VerifyFailure

source§

fn eq(&self, other: &VerifyFailure) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for VerifyFailure

source§

impl StructuralPartialEq for VerifyFailure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where @@ -211,7 +211,8 @@ builds.

§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.

source§

impl<T> ToString for T
where +builds.

source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where diff --git a/halo2_frontend/dev/index.html b/halo2_frontend/dev/index.html index 414e9f6961..e05c6faef9 100644 --- a/halo2_frontend/dev/index.html +++ b/halo2_frontend/dev/index.html @@ -14,6 +14,6 @@ }); -

Module halo2_frontend::dev

source ·
Expand description

Tools for developing circuits.

+

Module halo2_frontend::dev

source ·
Expand description

Tools for developing circuits.

Re-exports§

Modules§

  • Developer tools for investigating the cost of a circuit.
  • The cost estimator takes high-level parameters for a circuit design, and estimates the verification cost, as well as resulting proof size.
  • Metadata about circuits.

Structs§

Enums§

Functions§

\ No newline at end of file diff --git a/halo2_frontend/dev/metadata/struct.Constraint.html b/halo2_frontend/dev/metadata/struct.Constraint.html index be562ff6c3..cf1d88dc7b 100644 --- a/halo2_frontend/dev/metadata/struct.Constraint.html +++ b/halo2_frontend/dev/metadata/struct.Constraint.html @@ -15,7 +15,7 @@

Struct halo2_frontend::dev::metadata::Constraint

source ·
pub struct Constraint { /* private fields */ }
Expand description

Metadata about a configured constraint within a circuit.

-

Trait Implementations§

source§

impl Clone for Constraint

source§

fn clone(&self) -> Constraint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Constraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Constraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint

source§

fn from((gate, index, name): (Gate, usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Constraint

source§

fn eq(&self, other: &Constraint) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Constraint

source§

fn clone(&self) -> Constraint

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Constraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Constraint

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint

source§

fn from((gate, index, name): (Gate, usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Constraint

source§

fn eq(&self, other: &Constraint) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Constraint

source§

impl StructuralPartialEq for Constraint

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/halo2_frontend/dev/metadata/struct.Gate.html b/halo2_frontend/dev/metadata/struct.Gate.html index 44d61cb64e..8decd3c907 100644 --- a/halo2_frontend/dev/metadata/struct.Gate.html +++ b/halo2_frontend/dev/metadata/struct.Gate.html @@ -15,7 +15,7 @@

Struct halo2_frontend::dev::metadata::Gate

source ·
pub struct Gate { /* private fields */ }
Expand description

Metadata about a configured gate within a circuit.

-

Trait Implementations§

source§

impl Clone for Gate

source§

fn clone(&self) -> Gate

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Gate

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Gate

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<S: AsRef<str>> From<(usize, S)> for Gate

source§

fn from((index, name): (usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Gate

source§

fn eq(&self, other: &Gate) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Gate

source§

fn clone(&self) -> Gate

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Gate

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Gate

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<S: AsRef<str>> From<(usize, S)> for Gate

source§

fn from((index, name): (usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Gate

source§

fn eq(&self, other: &Gate) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Gate

source§

impl StructuralPartialEq for Gate

Auto Trait Implementations§

§

impl Freeze for Gate

§

impl RefUnwindSafe for Gate

§

impl Send for Gate

§

impl Sync for Gate

§

impl Unpin for Gate

§

impl UnwindSafe for Gate

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/halo2_frontend/dev/metadata/struct.Region.html b/halo2_frontend/dev/metadata/struct.Region.html index 5ee68286e2..f673a24b39 100644 --- a/halo2_frontend/dev/metadata/struct.Region.html +++ b/halo2_frontend/dev/metadata/struct.Region.html @@ -15,9 +15,9 @@

Struct halo2_frontend::dev::metadata::Region

source ·
pub struct Region { /* private fields */ }
Expand description

Metadata about an assigned region within a circuit.

-

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Region

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(usize, &str)> for Region

source§

fn from((index, name): (usize, &str)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Region

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(usize, &str)> for Region

source§

fn from((index, name): (usize, &str)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region

source§

fn from( (index, name, annotations): (usize, &str, HashMap<ColumnMetadata, String>) -) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from((index, name): (usize, String)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String>)> for Region

source§

fn from( +) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from((index, name): (usize, String)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String>)> for Region

source§

fn from( (index, name, annotations): (usize, String, HashMap<ColumnMetadata, String>) ) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Region

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/halo2_frontend/dev/metadata/struct.VirtualCell.html b/halo2_frontend/dev/metadata/struct.VirtualCell.html index fa3cedf3df..c4f618e5ea 100644 --- a/halo2_frontend/dev/metadata/struct.VirtualCell.html +++ b/halo2_frontend/dev/metadata/struct.VirtualCell.html @@ -14,9 +14,9 @@ }); -

Struct halo2_frontend::dev::metadata::VirtualCell

source ·
pub struct VirtualCell { /* private fields */ }
Expand description

A “virtual cell” is a PLONK cell that has been queried at a particular relative offset +

Struct halo2_frontend::dev::metadata::VirtualCell

source ·
pub struct VirtualCell { /* private fields */ }
Expand description

A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.

-

Trait Implementations§

source§

impl Debug for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from((column, rotation): (Column, i32)) -> Self

Converts to this type from the input type.
source§

impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell

source§

fn from((name, column, rotation): (S, Column, i32)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where +

Trait Implementations§

source§

impl Clone for VirtualCell

source§

fn clone(&self) -> VirtualCell

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from((column, rotation): (Column, i32)) -> Self

Converts to this type from the input type.
source§

impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell

source§

fn from((name, column, rotation): (S, Column, i32)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for VirtualCell

source§

fn eq(&self, other: &VirtualCell) -> bool

This method tests for self and other values to be equal, and is used @@ -118,7 +118,8 @@ builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where +builds.

source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where diff --git a/halo2_frontend/dev/struct.CircuitGates.html b/halo2_frontend/dev/struct.CircuitGates.html index 70154eee97..2f23d79c16 100644 --- a/halo2_frontend/dev/struct.CircuitGates.html +++ b/halo2_frontend/dev/struct.CircuitGates.html @@ -84,7 +84,7 @@

§Examples

);

Implementations§

source§

impl CircuitGates

source

pub fn collect<F: PrimeField, C: Circuit<F>>(params: C::Params) -> Self

Collects the gates from within the circuit.

source

pub fn queries_to_csv(&self) -> String

Prints the queries in this circuit to a CSV grid.

-

Trait Implementations§

source§

impl Debug for CircuitGates

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CircuitGates

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for CircuitGates

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CircuitGates

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/halo2_frontend/dev/struct.MockProver.html b/halo2_frontend/dev/struct.MockProver.html index 11a8a463d4..c6f39e6a38 100644 --- a/halo2_frontend/dev/struct.MockProver.html +++ b/halo2_frontend/dev/struct.MockProver.html @@ -14,7 +14,7 @@ }); -

Struct halo2_frontend::dev::MockProver

source ·
pub struct MockProver<F: Field> { /* private fields */ }
Expand description

A test prover for debugging circuits.

+

Struct halo2_frontend::dev::MockProver

source ·
pub struct MockProver<F: Field> { /* private fields */ }
Expand description

A test prover for debugging circuits.

The normal proving process, when applied to a buggy circuit implementation, might return proofs that do not validate when they should, but it can’t indicate anything other than “something is invalid”. MockProver can be used to figure out why these @@ -127,31 +127,33 @@

§Examples

result.unwrap_err().downcast_ref::<String>().unwrap(), "n=4, minimum_rows=8, k=2" );
-

Implementations§

source§

impl<F: FromUniformBytes<64> + Ord> MockProver<F>

source

pub fn run<ConcreteCircuit: Circuit<F>>( +

Implementations§

source§

impl<F: Field> MockProver<F>

source

pub fn advice_mut(&mut self, column_index: usize) -> &mut [CellValue<F>]

Return the content of an advice column as mutable

+
source

pub fn instance_mut(&mut self, column_index: usize) -> &mut [InstanceValue<F>]

Return the content of an instance column as mutable

+
source§

impl<F: FromUniformBytes<64> + Ord> MockProver<F>

source

pub fn run<ConcreteCircuit: Circuit<F>>( k: u32, circuit: &ConcreteCircuit, instance: Vec<Vec<F>> ) -> Result<Self, Error>

Runs a synthetic keygen-and-prove operation on the given circuit, collecting data about the constraints and their assignments.

-
source

pub fn advice_values(&self, column: Column<Advice>) -> &[CellValue<F>]

Return the content of an advice column as assigned by the circuit.

-
source

pub fn fixed_values(&self, column: Column<Fixed>) -> &[CellValue<F>]

Return the content of a fixed column as assigned by the circuit.

-
source

pub fn verify(&self) -> Result<(), Vec<VerifyFailure>>

Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating +

source

pub fn advice_values(&self, column: Column<Advice>) -> &[CellValue<F>]

Return the content of an advice column as assigned by the circuit.

+
source

pub fn fixed_values(&self, column: Column<Fixed>) -> &[CellValue<F>]

Return the content of a fixed column as assigned by the circuit.

+
source

pub fn verify(&self) -> Result<(), Vec<VerifyFailure>>

Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating the reasons that the circuit is not satisfied. Constraints and lookup are checked at usable_rows, parallelly.

-
source

pub fn verify_at_rows<I: Clone + Iterator<Item = usize>>( +

source

pub fn verify_at_rows<I: Clone + Iterator<Item = usize>>( &self, gate_row_ids: I, lookup_input_row_ids: I ) -> Result<(), Vec<VerifyFailure>>

Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating the reasons that the circuit is not satisfied. Constraints are only checked at gate_row_ids, and lookup inputs are only checked at lookup_input_row_ids, parallelly.

-
source

pub fn assert_satisfied(&self)

Panics if the circuit being checked by this MockProver is not satisfied.

+
source

pub fn assert_satisfied(&self)

Panics if the circuit being checked by this MockProver is not satisfied.

Any verification failures will be pretty-printed to stderr before the function panics.

Apart from the stderr output, this method is equivalent to:

assert_eq!(prover.verify(), Ok(()));
-
source

pub fn assert_satisfied_at_rows<I: Clone + Iterator<Item = usize>>( +

source

pub fn assert_satisfied_at_rows<I: Clone + Iterator<Item = usize>>( &self, gate_row_ids: I, lookup_input_row_ids: I @@ -162,28 +164,28 @@

§Examples

Apart from the stderr output, this method is equivalent to:

assert_eq!(prover.verify_at_rows(), Ok(()));
-
source

pub fn cs(&self) -> &ConstraintSystem<F>

Returns the constraint system

-
source

pub fn usable_rows(&self) -> &Range<usize>

Returns the usable rows

-
source

pub fn advice(&self) -> &Vec<Vec<CellValue<F>>>

Returns the list of Advice Columns used within a MockProver instance and the associated values contained on each Cell.

-
source

pub fn fixed(&self) -> &Vec<Vec<CellValue<F>>>

Returns the list of Fixed Columns used within a MockProver instance and the associated values contained on each Cell.

-
source

pub fn selectors(&self) -> &Vec<Vec<bool>>

Returns the list of Selector Columns used within a MockProver instance and the associated values contained on each Cell.

-
source

pub fn instance(&self) -> &Vec<Vec<InstanceValue<F>>>

Returns the list of Instance Columns used within a MockProver instance and the associated values contained on each Cell.

-

Trait Implementations§

source§

impl<F: Field> Assignment<F> for MockProver<F>

source§

fn enter_region<NR, N>(&mut self, name: N)
where +

source

pub fn cs(&self) -> &ConstraintSystem<F>

Returns the constraint system

+
source

pub fn usable_rows(&self) -> &Range<usize>

Returns the usable rows

+
source

pub fn advice(&self) -> &Vec<Vec<CellValue<F>>>

Returns the list of Advice Columns used within a MockProver instance and the associated values contained on each Cell.

+
source

pub fn fixed(&self) -> &Vec<Vec<CellValue<F>>>

Returns the list of Fixed Columns used within a MockProver instance and the associated values contained on each Cell.

+
source

pub fn selectors(&self) -> &Vec<Vec<bool>>

Returns the list of Selector Columns used within a MockProver instance and the associated values contained on each Cell.

+
source

pub fn instance(&self) -> &Vec<Vec<InstanceValue<F>>>

Returns the list of Instance Columns used within a MockProver instance and the associated values contained on each Cell.

+

Trait Implementations§

source§

impl<F: Field> Assignment<F> for MockProver<F>

source§

fn enter_region<NR, N>(&mut self, name: N)
where NR: Into<String>, - N: FnOnce() -> NR,

Creates a new region and enters into it. Read more
source§

fn exit_region(&mut self)

Exits the current region. Read more
source§

fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
where + N: FnOnce() -> NR,

Creates a new region and enters into it. Read more
source§

fn exit_region(&mut self)

Exits the current region. Read more
source§

fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
where A: FnOnce() -> AR, - AR: Into<String>,

Allows the developer to include an annotation for an specific column within a Region. Read more
source§

fn enable_selector<A, AR>( + AR: Into<String>,

Allows the developer to include an annotation for an specific column within a Region. Read more
source§

fn enable_selector<A, AR>( &mut self, _: A, selector: &Selector, row: usize ) -> Result<(), Error>
where A: FnOnce() -> AR, - AR: Into<String>,

Enables a selector at the given row.
source§

fn query_instance( + AR: Into<String>,

Enables a selector at the given row.
source§

fn query_instance( &self, column: Column<Instance>, row: usize -) -> Result<Value<F>, Error>

Queries the cell of an instance column at a particular absolute row. Read more
source§

fn assign_advice<V, VR, A, AR>( +) -> Result<Value<F>, Error>

Queries the cell of an instance column at a particular absolute row. Read more
source§

fn assign_advice<V, VR, A, AR>( &mut self, _: A, column: Column<Advice>, @@ -193,7 +195,7 @@

§Examples

V: FnOnce() -> Value<VR>, VR: Into<Assigned<F>>, A: FnOnce() -> AR, - AR: Into<String>,

Assign an advice column value (witness)
source§

fn assign_fixed<V, VR, A, AR>( + AR: Into<String>,

Assign an advice column value (witness)
source§

fn assign_fixed<V, VR, A, AR>( &mut self, _: A, column: Column<Fixed>, @@ -203,20 +205,20 @@

§Examples

V: FnOnce() -> Value<VR>, VR: Into<Assigned<F>>, A: FnOnce() -> AR, - AR: Into<String>,
Assign a fixed value
source§

fn copy( + AR: Into<String>,

Assign a fixed value
source§

fn copy( &mut self, left_column: Column<Any>, left_row: usize, right_column: Column<Any>, right_row: usize -) -> Result<(), Error>

Assign two cells to have the same value
source§

fn fill_from_row( +) -> Result<(), Error>

Assign two cells to have the same value
source§

fn fill_from_row( &mut self, col: Column<Fixed>, from_row: usize, to: Value<Assigned<F>> -) -> Result<(), Error>

Fills a fixed column starting from the given row with value to.
source§

fn get_challenge(&self, challenge: Challenge) -> Value<F>

Queries the value of the given challenge. Read more
source§

fn push_namespace<NR, N>(&mut self, _: N)
where +) -> Result<(), Error>

Fills a fixed column starting from the given row with value to.
source§

fn get_challenge(&self, challenge: Challenge) -> Value<F>

Queries the value of the given challenge. Read more
source§

fn push_namespace<NR, N>(&mut self, _: N)
where NR: Into<String>, - N: FnOnce() -> NR,

Creates a new (sub)namespace and enters into it. Read more
source§

fn pop_namespace(&mut self, _: Option<String>)

Exits out of the existing namespace. Read more
source§

impl<F: Debug + Field> Debug for MockProver<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F> Freeze for MockProver<F>

§

impl<F> RefUnwindSafe for MockProver<F>
where + N: FnOnce() -> NR,

Creates a new (sub)namespace and enters into it. Read more
source§

fn pop_namespace(&mut self, _: Option<String>)

Exits out of the existing namespace. Read more
source§

impl<F: Debug + Field> Debug for MockProver<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F> Freeze for MockProver<F>

§

impl<F> RefUnwindSafe for MockProver<F>
where F: RefUnwindSafe,

§

impl<F> Send for MockProver<F>

§

impl<F> Sync for MockProver<F>

§

impl<F> Unpin for MockProver<F>
where F: Unpin,

§

impl<F> UnwindSafe for MockProver<F>
where F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_frontend/plonk/assigned/enum.Assigned.html b/halo2_frontend/plonk/assigned/enum.Assigned.html index 2707093e79..470e802b06 100644 --- a/halo2_frontend/plonk/assigned/enum.Assigned.html +++ b/halo2_frontend/plonk/assigned/enum.Assigned.html @@ -34,9 +34,9 @@

source

pub fn evaluate(self) -> F

Evaluates this assigned value directly, performing an unbatched inversion if necessary.

If the denominator is zero, this returns zero.

-

Trait Implementations§

source§

impl<F: Field> Add<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl<F: Field> AddAssign for Assigned<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone> Clone for Assigned<F>

source§

fn clone(&self) -> Assigned<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Assigned<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> From<&Assigned<F>> for Assigned<F>

source§

fn from(val: &Assigned<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&F> for Assigned<F>

source§

fn from(numerator: &F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<(F, F)> for Assigned<F>

source§

fn from((numerator, denominator): (F, F)) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<F> for Assigned<F>

source§

fn from(numerator: F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
source§

impl<F: Field> MulAssign for Assigned<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> Neg for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> PartialEq for Assigned<F>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field> Add<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl<F: Field> AddAssign for Assigned<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone> Clone for Assigned<F>

source§

fn clone(&self) -> Assigned<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Assigned<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> From<&Assigned<F>> for Assigned<F>

source§

fn from(val: &Assigned<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&F> for Assigned<F>

source§

fn from(numerator: &F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<(F, F)> for Assigned<F>

source§

fn from((numerator, denominator): (F, F)) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<F> for Assigned<F>

source§

fn from(numerator: F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
source§

impl<F: Field> MulAssign for Assigned<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> Neg for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> PartialEq for Assigned<F>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> SubAssign<&Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
source§

impl<F: Field> SubAssign for Assigned<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy> Copy for Assigned<F>

source§

impl<F: Field> Eq for Assigned<F>

Auto Trait Implementations§

§

impl<F> Freeze for Assigned<F>
where +sufficient, and should not be overridden without very good reason.

source§

impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> SubAssign<&Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
source§

impl<F: Field> SubAssign for Assigned<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy> Copy for Assigned<F>

source§

impl<F: Field> Eq for Assigned<F>

Auto Trait Implementations§

§

impl<F> Freeze for Assigned<F>
where F: Freeze,

§

impl<F> RefUnwindSafe for Assigned<F>
where F: RefUnwindSafe,

§

impl<F> Send for Assigned<F>
where F: Send,

§

impl<F> Sync for Assigned<F>
where diff --git a/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html index 5d513fc125..77da59f75c 100644 --- a/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html +++ b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html @@ -19,7 +19,7 @@ pub rotation: Rotation, }
Expand description

A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.

-

Fields§

§column: Column<Any>§rotation: Rotation

Trait Implementations§

source§

impl Clone for VirtualCell

source§

fn clone(&self) -> VirtualCell

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell

source§

fn from((column, rotation): (Col, Rotation)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Fields§

§column: Column<Any>§rotation: Rotation

Trait Implementations§

source§

impl Clone for VirtualCell

source§

fn clone(&self) -> VirtualCell

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VirtualCell

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell

source§

fn from((column, rotation): (Col, Rotation)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/halo2_frontend/plonk/circuit/expression/enum.Expression.html b/halo2_frontend/plonk/circuit/expression/enum.Expression.html index d2c6245294..578d9f630a 100644 --- a/halo2_frontend/plonk/circuit/expression/enum.Expression.html +++ b/halo2_frontend/plonk/circuit/expression/enum.Expression.html @@ -72,10 +72,10 @@

source

pub fn degree(&self) -> usize

Compute the degree of this polynomial

source

pub fn complexity(&self) -> usize

Approximate the computational complexity of this expression.

source

pub fn square(self) -> Self

Square this expression.

-

Trait Implementations§

source§

impl<F: Field> Add for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F>) -> Expression<F>

Performs the + operation. Read more
source§

impl<F: Clone> Clone for Expression<F>

source§

fn clone(&self) -> Expression<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Expression<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> From<Expression<F>> for Constraint<F>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F> From<Expression<F>> for ExpressionMid<F>

source§

fn from(val: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<F> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F>) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Neg for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq> PartialEq for Expression<F>

source§

fn eq(&self, other: &Expression<F>) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field> Add for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F>) -> Expression<F>

Performs the + operation. Read more
source§

impl<F: Clone> Clone for Expression<F>

source§

fn clone(&self) -> Expression<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Expression<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> From<Expression<F>> for Constraint<F>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F> From<Expression<F>> for ExpressionMid<F>

source§

fn from(val: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<F> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F>) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Neg for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq> PartialEq for Expression<F>

source§

fn eq(&self, other: &Expression<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Field> Product for Expression<F>

source§

fn product<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by -multiplying the items.
source§

impl<F: Field> Sub for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F: Field> Sum for Expression<F>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by +multiplying the items.
source§

impl<F: Field> Sub for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F: Field> Sum for Expression<F>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by “summing up” the items.
source§

impl<F: Eq> Eq for Expression<F>

source§

impl<F> StructuralPartialEq for Expression<F>

Auto Trait Implementations§

§

impl<F> Freeze for Expression<F>
where F: Freeze,

§

impl<F> RefUnwindSafe for Expression<F>
where F: RefUnwindSafe,

§

impl<F> Send for Expression<F>
where diff --git a/halo2_frontend/plonk/circuit/expression/struct.Column.html b/halo2_frontend/plonk/circuit/expression/struct.Column.html index 1c941a447a..a68e3fa165 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.Column.html +++ b/halo2_frontend/plonk/circuit/expression/struct.Column.html @@ -25,7 +25,7 @@
source

pub fn next<F: Field>(&self) -> Expression<F>

Return expression from column at the next row

source

pub fn prev<F: Field>(&self) -> Expression<F>

Return expression from column at the previous row

source

pub fn rot<F: Field>(&self, rotation: i32) -> Expression<F>

Return expression from column at the specified rotation

-

Trait Implementations§

source§

impl<C: Clone + ColumnType> Clone for Column<C>

source§

fn clone(&self) -> Column<C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<C: Debug + ColumnType> Debug for Column<C>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> Self

Converts to this type from the input type.
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C: Hash + ColumnType> Hash for Column<C>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl<C: Clone + ColumnType> Clone for Column<C>

source§

fn clone(&self) -> Column<C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<C: Debug + ColumnType> Debug for Column<C>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> Self

Converts to this type from the input type.
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C: Hash + ColumnType> Hash for Column<C>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<C: ColumnType> Ord for Column<C>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where @@ -34,7 +34,7 @@ by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<C: ColumnType> PartialOrd for Column<C>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<C: Copy + ColumnType> Copy for Column<C>

source§

impl<C: Eq + ColumnType> Eq for Column<C>

source§

impl<C: ColumnType> StructuralPartialEq for Column<C>

Auto Trait Implementations§

§

impl<C> Freeze for Column<C>
where +operator. Read more

source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<C: Copy + ColumnType> Copy for Column<C>

source§

impl<C: Eq + ColumnType> Eq for Column<C>

source§

impl<C: ColumnType> StructuralPartialEq for Column<C>

Auto Trait Implementations§

§

impl<C> Freeze for Column<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for Column<C>
where C: RefUnwindSafe,

§

impl<C> Send for Column<C>
where C: Send,

§

impl<C> Sync for Column<C>
where diff --git a/halo2_frontend/plonk/circuit/trait.Assignment.html b/halo2_frontend/plonk/circuit/trait.Assignment.html index 82da2af01c..6d23a96b80 100644 --- a/halo2_frontend/plonk/circuit/trait.Assignment.html +++ b/halo2_frontend/plonk/circuit/trait.Assignment.html @@ -147,4 +147,4 @@

Not intended for downstream consumption; use Layouter::namespace instead.

source

fn pop_namespace(&mut self, gadget_name: Option<String>)

Exits out of the existing namespace.

Not intended for downstream consumption; use Layouter::namespace instead.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F: Field> Assignment<F> for MockProver<F>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F: Field> Assignment<F> for MockProver<F>

\ No newline at end of file diff --git a/halo2_frontend/plonk/error/enum.Error.html b/halo2_frontend/plonk/error/enum.Error.html index 1ccdeafbcb..d99ce62494 100644 --- a/halo2_frontend/plonk/error/enum.Error.html +++ b/halo2_frontend/plonk/error/enum.Error.html @@ -37,7 +37,7 @@
§

TableError(TableError)

An error relating to a lookup table.

§

Other(String)

Generic error not covered by previous cases

Implementations§

source§

impl Error

source

pub fn not_enough_rows_available(current_k: u32) -> Self

Constructs an Error::NotEnoughRowsAvailable.

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where diff --git a/halo2_proofs/all.html b/halo2_proofs/all.html index 5c67598333..14169a2fea 100644 --- a/halo2_proofs/all.html +++ b/halo2_proofs/all.html @@ -14,4 +14,4 @@ }); -

List of all items

Structs

Enums

Traits

Functions

Type Aliases

\ No newline at end of file +

List of all items

Structs

Enums

Traits

Functions

Type Aliases

\ No newline at end of file diff --git a/halo2_proofs/circuit/struct.Value.html b/halo2_proofs/circuit/struct.Value.html index ca492822da..edf87b44a4 100644 --- a/halo2_proofs/circuit/struct.Value.html +++ b/halo2_proofs/circuit/struct.Value.html @@ -100,15 +100,15 @@
§Examples
F: Field,

source

pub fn evaluate(self) -> Value<F>

Evaluates this value directly, performing an unbatched inversion if necessary.

If the denominator is zero, the returned value is zero.

Trait Implementations§

source§

impl<V, O> Add<&Value<V>> for Value<V>
where - V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <Value<V> as Add<&Value<V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<&Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>
where - V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> <Value<V> as Add<Value<&V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>
where + V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <Value<V> as Add<&Value<V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<&Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>
where + V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> <Value<V> as Add<Value<&V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>
where &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <&Value<V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>
where - &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<&V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add for &Value<V>
where - &'v V: for<'v> Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <&Value<V> as Add>::Output

Performs the + operation. Read more
source§

impl<V, O> Add for Value<V>
where + &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<&V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add for &Value<V>
where + &'v V: for<'v> Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <&Value<V> as Add>::Output

Performs the + operation. Read more
source§

impl<V, O> Add for Value<V>
where V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<V> as Add>::Output

Performs the + operation. Read more
source§

impl<V> Clone for Value<V>
where V: Clone,

source§

fn clone(&self) -> Value<V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V> Debug for Value<V>
where V: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<V> Default for Value<V>

source§

fn default() -> Value<V>

Returns the “default value” for a type. Read more
source§

impl<F> From<Value<F>> for Value<Assigned<F>>
where @@ -119,27 +119,27 @@
§Examples
Value::unknown() occur, a container of type V containing the values of each Value is returned.

source§

impl<V, O> Mul<&Value<V>> for Value<V>
where - V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<&Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>
where - V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> <Value<V> as Mul<Value<&V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>
where + V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<&Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>
where + V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> <Value<V> as Mul<Value<&V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>
where &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <&Value<V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>
where - &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<&V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for &Value<V>
where - &'v V: for<'v> Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <&Value<V> as Mul>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for Value<V>
where - V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<V> as Mul>::Output

Performs the * operation. Read more
source§

impl<V> Neg for Value<V>
where + &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<&V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for &Value<V>
where + &'v V: for<'v> Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <&Value<V> as Mul>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul for Value<V>
where + V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<V> as Mul>::Output

Performs the * operation. Read more
source§

impl<V> Neg for Value<V>
where V: Neg,

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Value<V> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>
where - V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<&Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<Assigned<F>>
where + V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<&Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<Assigned<F>>
where F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>
where - V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> <Value<V> as Sub<Value<&V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<&Assigned<F>>
where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<Assigned<F>>
where + V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> <Value<V> as Sub<Value<&V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<&Assigned<F>>
where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<Assigned<F>>
where F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>
where - &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <&Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>
where - &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<&V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for &Value<V>
where - &'v V: for<'v> Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <&Value<V> as Sub>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for Value<V>
where - V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<V> as Sub>::Output

Performs the - operation. Read more
source§

impl<V> Copy for Value<V>
where + &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <&Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>
where + &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<&V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for &Value<V>
where + &'v V: for<'v> Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <&Value<V> as Sub>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub for Value<V>
where + V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<V> as Sub>::Output

Performs the - operation. Read more
source§

impl<V> Copy for Value<V>
where V: Copy,

Auto Trait Implementations§

§

impl<V> Freeze for Value<V>
where V: Freeze,

§

impl<V> RefUnwindSafe for Value<V>
where V: RefUnwindSafe,

§

impl<V> Send for Value<V>
where diff --git a/halo2_proofs/dev/enum.CellValue.html b/halo2_proofs/dev/enum.CellValue.html new file mode 100644 index 0000000000..51285432eb --- /dev/null +++ b/halo2_proofs/dev/enum.CellValue.html @@ -0,0 +1,142 @@ +CellValue in halo2_proofs::dev - Rust + + + + +

Enum halo2_proofs::dev::CellValue

source ·
pub enum CellValue<F>
where + F: Field,
{ + Unassigned, + Assigned(F), + Poison(usize), +}
Expand description

The value of a particular cell within the circuit.

+

Variants§

§

Unassigned

An unassigned cell.

+
§

Assigned(F)

A cell that has been assigned a value.

+
§

Poison(usize)

A unique poisoned cell.

+

Trait Implementations§

source§

impl<F> Clone for CellValue<F>
where + F: Clone + Field,

source§

fn clone(&self) -> CellValue<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F> Debug for CellValue<F>
where + F: Debug + Field,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<F> PartialEq for CellValue<F>
where + F: PartialEq + Field,

source§

fn eq(&self, other: &CellValue<F>) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl<F> Copy for CellValue<F>
where + F: Copy + Field,

source§

impl<F> Eq for CellValue<F>
where + F: Eq + Field,

source§

impl<F> StructuralPartialEq for CellValue<F>
where + F: Field,

Auto Trait Implementations§

§

impl<F> Freeze for CellValue<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for CellValue<F>
where + F: RefUnwindSafe,

§

impl<F> Send for CellValue<F>

§

impl<F> Sync for CellValue<F>

§

impl<F> Unpin for CellValue<F>
where + F: Unpin,

§

impl<F> UnwindSafe for CellValue<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R +) -> R
where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
source§

impl<T> SyncDeps for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/halo2_proofs/dev/enum.InstanceValue.html b/halo2_proofs/dev/enum.InstanceValue.html new file mode 100644 index 0000000000..93f3f62edd --- /dev/null +++ b/halo2_proofs/dev/enum.InstanceValue.html @@ -0,0 +1,141 @@ +InstanceValue in halo2_proofs::dev - Rust + + + + +

Enum halo2_proofs::dev::InstanceValue

source ·
pub enum InstanceValue<F>
where + F: Field,
{ + Assigned(F), + Padding, +}
Expand description

Instance Value

+

Variants§

§

Assigned(F)

Assigned instance value

+
§

Padding

Padding

+

Implementations§

source§

impl<F> InstanceValue<F>
where + F: Field,

source

pub fn value(&self) -> F

Field value on the instance cell

+

Trait Implementations§

source§

impl<F> Clone for InstanceValue<F>
where + F: Clone + Field,

source§

fn clone(&self) -> InstanceValue<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F> Debug for InstanceValue<F>
where + F: Debug + Field,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<F> PartialEq for InstanceValue<F>
where + F: PartialEq + Field,

source§

fn eq(&self, other: &InstanceValue<F>) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl<F> Eq for InstanceValue<F>
where + F: Eq + Field,

source§

impl<F> StructuralPartialEq for InstanceValue<F>
where + F: Field,

Auto Trait Implementations§

§

impl<F> Freeze for InstanceValue<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for InstanceValue<F>
where + F: RefUnwindSafe,

§

impl<F> Send for InstanceValue<F>

§

impl<F> Sync for InstanceValue<F>

§

impl<F> Unpin for InstanceValue<F>
where + F: Unpin,

§

impl<F> UnwindSafe for InstanceValue<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R +) -> R
where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
source§

impl<T> SyncDeps for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/halo2_proofs/dev/enum.VerifyFailure.html b/halo2_proofs/dev/enum.VerifyFailure.html index 0c4009336a..05a1a081e5 100644 --- a/halo2_proofs/dev/enum.VerifyFailure.html +++ b/halo2_proofs/dev/enum.VerifyFailure.html @@ -14,7 +14,7 @@ }); -
§location: FailureLocation

The location at which the permutation is not satisfied.

Implementations§

source§

impl VerifyFailure

source

pub fn emit<F>(&self, prover: &MockProver<F>)
where F: Field,

Emits this failure in pretty-printed format to stderr.

-

Trait Implementations§

source§

impl Debug for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for VerifyFailure

source§

fn eq(&self, other: &VerifyFailure) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for VerifyFailure

source§

fn clone(&self) -> VerifyFailure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for VerifyFailure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl PartialEq for VerifyFailure

source§

fn eq(&self, other: &VerifyFailure) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for VerifyFailure

source§

impl StructuralPartialEq for VerifyFailure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where @@ -212,7 +212,8 @@ builds.

§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where +builds.

source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where diff --git a/halo2_proofs/dev/index.html b/halo2_proofs/dev/index.html index e5f00e4c79..01a3fc3a21 100644 --- a/halo2_proofs/dev/index.html +++ b/halo2_proofs/dev/index.html @@ -16,4 +16,4 @@

Module halo2_proofs::dev

source ·
Expand description

Tools for developing circuits.

Modules§

  • The cost estimator takes high-level parameters for a circuit design, and estimates the -verification cost, as well as resulting proof size.
  • Metadata about circuits.

Structs§

Enums§

Functions§

\ No newline at end of file +verification cost, as well as resulting proof size.
  • Metadata about circuits.
  • Structs§

    Enums§

    Functions§

    \ No newline at end of file diff --git a/halo2_proofs/dev/metadata/struct.Region.html b/halo2_proofs/dev/metadata/struct.Region.html index c0fc0e8aa9..2c16d39e0b 100644 --- a/halo2_proofs/dev/metadata/struct.Region.html +++ b/halo2_proofs/dev/metadata/struct.Region.html @@ -15,7 +15,7 @@

    Struct halo2_proofs::dev::metadata::Region

    source ·
    pub struct Region { /* private fields */ }
    Expand description

    Metadata about an assigned region within a circuit.

    -

    Trait Implementations§

    source§

    impl Clone for Region

    source§

    fn clone(&self) -> Region

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Region

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Display for Region

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<(usize, &str)> for Region

    source§

    fn from(_: (usize, &str)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region

    source§

    fn from(_: (usize, &str, HashMap<ColumnMid, String>)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, String)> for Region

    source§

    fn from(_: (usize, String)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, String, HashMap<ColumnMid, String>)> for Region

    source§

    fn from(_: (usize, String, HashMap<ColumnMid, String>)) -> Region

    Converts to this type from the input type.
    source§

    impl PartialEq for Region

    source§

    fn eq(&self, other: &Region) -> bool

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for Region

    source§

    fn clone(&self) -> Region

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Region

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Display for Region

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<(usize, &str)> for Region

    source§

    fn from(_: (usize, &str)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region

    source§

    fn from(_: (usize, &str, HashMap<ColumnMid, String>)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, String)> for Region

    source§

    fn from(_: (usize, String)) -> Region

    Converts to this type from the input type.
    source§

    impl From<(usize, String, HashMap<ColumnMid, String>)> for Region

    source§

    fn from(_: (usize, String, HashMap<ColumnMid, String>)) -> Region

    Converts to this type from the input type.
    source§

    impl PartialEq for Region

    source§

    fn eq(&self, other: &Region) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl Eq for Region

    Auto Trait Implementations§

    §

    impl Freeze for Region

    §

    impl RefUnwindSafe for Region

    §

    impl Send for Region

    §

    impl Sync for Region

    §

    impl Unpin for Region

    §

    impl UnwindSafe for Region

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where diff --git a/halo2_proofs/dev/metadata/struct.VirtualCell.html b/halo2_proofs/dev/metadata/struct.VirtualCell.html index 4b0995e8cb..57b3c6ff03 100644 --- a/halo2_proofs/dev/metadata/struct.VirtualCell.html +++ b/halo2_proofs/dev/metadata/struct.VirtualCell.html @@ -14,10 +14,10 @@ }); -

    Struct halo2_proofs::dev::metadata::VirtualCell

    source ·
    pub struct VirtualCell { /* private fields */ }
    Expand description

    A “virtual cell” is a PLONK cell that has been queried at a particular relative offset +

    Struct halo2_proofs::dev::metadata::VirtualCell

    source ·
    pub struct VirtualCell { /* private fields */ }
    Expand description

    A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.

    -

    Trait Implementations§

    source§

    impl Debug for VirtualCell

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Display for VirtualCell

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<(ColumnMid, i32)> for VirtualCell

    source§

    fn from(_: (ColumnMid, i32)) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl<S> From<(S, ColumnMid, i32)> for VirtualCell
    where - S: AsRef<str>,

    source§

    fn from(_: (S, ColumnMid, i32)) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl From<VirtualCell> for VirtualCell

    source§

    fn from(c: VirtualCell) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl Ord for VirtualCell

    source§

    fn cmp(&self, other: &VirtualCell) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where +

    Trait Implementations§

    source§

    impl Clone for VirtualCell

    source§

    fn clone(&self) -> VirtualCell

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for VirtualCell

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl Display for VirtualCell

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<(ColumnMid, i32)> for VirtualCell

    source§

    fn from(_: (ColumnMid, i32)) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl<S> From<(S, ColumnMid, i32)> for VirtualCell
    where + S: AsRef<str>,

    source§

    fn from(_: (S, ColumnMid, i32)) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl From<VirtualCell> for VirtualCell

    source§

    fn from(c: VirtualCell) -> VirtualCell

    Converts to this type from the input type.
    source§

    impl Ord for VirtualCell

    source§

    fn cmp(&self, other: &VirtualCell) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for VirtualCell

    source§

    fn eq(&self, other: &VirtualCell) -> bool

    This method tests for self and other values to be equal, and is used @@ -119,7 +119,8 @@ builds.
    §

    fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
    where Self: DerefMut<Target = T> + Deref, T: ?Sized,

    Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
    source§

    impl<T> ToString for T
    where +builds.

    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T> ToString for T
    where T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> TryConv for T

    §

    fn try_conv<T>(self) -> Result<T, Self::Error>
    where Self: TryInto<T>,

    Attempts to convert self into T using TryInto<T>. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where diff --git a/halo2_proofs/dev/sidebar-items.js b/halo2_proofs/dev/sidebar-items.js index ae62ad69fa..69e8b8af13 100644 --- a/halo2_proofs/dev/sidebar-items.js +++ b/halo2_proofs/dev/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["FailureLocation","VerifyFailure"],"fn":["circuit_dot_graph"],"mod":["cost_model","metadata"],"struct":["CircuitLayout","MockProver"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["CellValue","FailureLocation","InstanceValue","VerifyFailure"],"fn":["circuit_dot_graph"],"mod":["cost_model","metadata"],"struct":["CircuitLayout","MockProver"]}; \ No newline at end of file diff --git a/halo2_proofs/dev/struct.MockProver.html b/halo2_proofs/dev/struct.MockProver.html index d1f8e01dcc..4a00a34a02 100644 --- a/halo2_proofs/dev/struct.MockProver.html +++ b/halo2_proofs/dev/struct.MockProver.html @@ -14,7 +14,7 @@ }); -

    Struct halo2_proofs::dev::MockProver

    source ·
    pub struct MockProver<F>
    where +

    Struct halo2_proofs::dev::MockProver

    source ·
    pub struct MockProver<F>
    where F: Field,
    { /* private fields */ }
    Expand description

    A test prover for debugging circuits.

    The normal proving process, when applied to a buggy circuit implementation, might return proofs that do not validate when they should, but it can’t indicate anything @@ -128,20 +128,23 @@

    §Examples

    result.unwrap_err().downcast_ref::<String>().unwrap(), "n=4, minimum_rows=8, k=2" );
    -

    Implementations§

    source§

    impl<F> MockProver<F>
    where - F: FromUniformBytes<64> + Ord,

    source

    pub fn run<ConcreteCircuit>( +

    Implementations§

    source§

    impl<F> MockProver<F>
    where + F: Field,

    source

    pub fn advice_mut(&mut self, column_index: usize) -> &mut [CellValue<F>]

    Return the content of an advice column as mutable

    +
    source

    pub fn instance_mut(&mut self, column_index: usize) -> &mut [InstanceValue<F>]

    Return the content of an instance column as mutable

    +
    source§

    impl<F> MockProver<F>
    where + F: FromUniformBytes<64> + Ord,

    source

    pub fn run<ConcreteCircuit>( k: u32, circuit: &ConcreteCircuit, instance: Vec<Vec<F>> ) -> Result<MockProver<F>, Error>
    where ConcreteCircuit: Circuit<F>,

    Runs a synthetic keygen-and-prove operation on the given circuit, collecting data about the constraints and their assignments.

    -
    source

    pub fn advice_values(&self, column: Column<Advice>) -> &[CellValue<F>]

    Return the content of an advice column as assigned by the circuit.

    -
    source

    pub fn fixed_values(&self, column: Column<Fixed>) -> &[CellValue<F>]

    Return the content of a fixed column as assigned by the circuit.

    -
    source

    pub fn verify(&self) -> Result<(), Vec<VerifyFailure>>

    Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating +

    source

    pub fn advice_values(&self, column: Column<Advice>) -> &[CellValue<F>]

    Return the content of an advice column as assigned by the circuit.

    +
    source

    pub fn fixed_values(&self, column: Column<Fixed>) -> &[CellValue<F>]

    Return the content of a fixed column as assigned by the circuit.

    +
    source

    pub fn verify(&self) -> Result<(), Vec<VerifyFailure>>

    Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating the reasons that the circuit is not satisfied. Constraints and lookup are checked at usable_rows, parallelly.

    -
    source

    pub fn verify_at_rows<I>( +

    source

    pub fn verify_at_rows<I>( &self, gate_row_ids: I, lookup_input_row_ids: I @@ -149,13 +152,13 @@

    §Examples

    I: Clone + Iterator<Item = usize>,

    Returns Ok(()) if this MockProver is satisfied, or a list of errors indicating the reasons that the circuit is not satisfied. Constraints are only checked at gate_row_ids, and lookup inputs are only checked at lookup_input_row_ids, parallelly.

    -
    source

    pub fn assert_satisfied(&self)

    Panics if the circuit being checked by this MockProver is not satisfied.

    +
    source

    pub fn assert_satisfied(&self)

    Panics if the circuit being checked by this MockProver is not satisfied.

    Any verification failures will be pretty-printed to stderr before the function panics.

    Apart from the stderr output, this method is equivalent to:

    assert_eq!(prover.verify(), Ok(()));
    -
    source

    pub fn assert_satisfied_at_rows<I>( +

    source

    pub fn assert_satisfied_at_rows<I>( &self, gate_row_ids: I, lookup_input_row_ids: I @@ -167,29 +170,29 @@

    §Examples

    Apart from the stderr output, this method is equivalent to:

    assert_eq!(prover.verify_at_rows(), Ok(()));
    -
    source

    pub fn cs(&self) -> &ConstraintSystem<F>

    Returns the constraint system

    -
    source

    pub fn usable_rows(&self) -> &Range<usize>

    Returns the usable rows

    -
    source

    pub fn advice(&self) -> &Vec<Vec<CellValue<F>>>

    Returns the list of Advice Columns used within a MockProver instance and the associated values contained on each Cell.

    -
    source

    pub fn fixed(&self) -> &Vec<Vec<CellValue<F>>>

    Returns the list of Fixed Columns used within a MockProver instance and the associated values contained on each Cell.

    -
    source

    pub fn selectors(&self) -> &Vec<Vec<bool>>

    Returns the list of Selector Columns used within a MockProver instance and the associated values contained on each Cell.

    -
    source

    pub fn instance(&self) -> &Vec<Vec<InstanceValue<F>>>

    Returns the list of Instance Columns used within a MockProver instance and the associated values contained on each Cell.

    -

    Trait Implementations§

    source§

    impl<F> Assignment<F> for MockProver<F>
    where - F: Field,

    source§

    fn enter_region<NR, N>(&mut self, name: N)
    where +

    source

    pub fn cs(&self) -> &ConstraintSystem<F>

    Returns the constraint system

    +
    source

    pub fn usable_rows(&self) -> &Range<usize>

    Returns the usable rows

    +
    source

    pub fn advice(&self) -> &Vec<Vec<CellValue<F>>>

    Returns the list of Advice Columns used within a MockProver instance and the associated values contained on each Cell.

    +
    source

    pub fn fixed(&self) -> &Vec<Vec<CellValue<F>>>

    Returns the list of Fixed Columns used within a MockProver instance and the associated values contained on each Cell.

    +
    source

    pub fn selectors(&self) -> &Vec<Vec<bool>>

    Returns the list of Selector Columns used within a MockProver instance and the associated values contained on each Cell.

    +
    source

    pub fn instance(&self) -> &Vec<Vec<InstanceValue<F>>>

    Returns the list of Instance Columns used within a MockProver instance and the associated values contained on each Cell.

    +

    Trait Implementations§

    source§

    impl<F> Assignment<F> for MockProver<F>
    where + F: Field,

    source§

    fn enter_region<NR, N>(&mut self, name: N)
    where NR: Into<String>, - N: FnOnce() -> NR,

    Creates a new region and enters into it. Read more
    source§

    fn exit_region(&mut self)

    Exits the current region. Read more
    source§

    fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
    where + N: FnOnce() -> NR,

    Creates a new region and enters into it. Read more
    source§

    fn exit_region(&mut self)

    Exits the current region. Read more
    source§

    fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
    where A: FnOnce() -> AR, - AR: Into<String>,

    Allows the developer to include an annotation for an specific column within a Region. Read more
    source§

    fn enable_selector<A, AR>( + AR: Into<String>,

    Allows the developer to include an annotation for an specific column within a Region. Read more
    source§

    fn enable_selector<A, AR>( &mut self, _: A, selector: &Selector, row: usize ) -> Result<(), Error>
    where A: FnOnce() -> AR, - AR: Into<String>,

    Enables a selector at the given row.
    source§

    fn query_instance( + AR: Into<String>,

    Enables a selector at the given row.
    source§

    fn query_instance( &self, column: Column<Instance>, row: usize -) -> Result<Value<F>, Error>

    Queries the cell of an instance column at a particular absolute row. Read more
    source§

    fn assign_advice<V, VR, A, AR>( +) -> Result<Value<F>, Error>

    Queries the cell of an instance column at a particular absolute row. Read more
    source§

    fn assign_advice<V, VR, A, AR>( &mut self, _: A, column: Column<Advice>, @@ -199,7 +202,7 @@

    §Examples

    V: FnOnce() -> Value<VR>, VR: Into<Assigned<F>>, A: FnOnce() -> AR, - AR: Into<String>,
    Assign an advice column value (witness)
    source§

    fn assign_fixed<V, VR, A, AR>( + AR: Into<String>,

    Assign an advice column value (witness)
    source§

    fn assign_fixed<V, VR, A, AR>( &mut self, _: A, column: Column<Fixed>, @@ -209,20 +212,20 @@

    §Examples

    V: FnOnce() -> Value<VR>, VR: Into<Assigned<F>>, A: FnOnce() -> AR, - AR: Into<String>,
    Assign a fixed value
    source§

    fn copy( + AR: Into<String>,

    Assign a fixed value
    source§

    fn copy( &mut self, left_column: Column<Any>, left_row: usize, right_column: Column<Any>, right_row: usize -) -> Result<(), Error>

    Assign two cells to have the same value
    source§

    fn fill_from_row( +) -> Result<(), Error>

    Assign two cells to have the same value
    source§

    fn fill_from_row( &mut self, col: Column<Fixed>, from_row: usize, to: Value<Assigned<F>> -) -> Result<(), Error>

    Fills a fixed column starting from the given row with value to.
    source§

    fn get_challenge(&self, challenge: Challenge) -> Value<F>

    Queries the value of the given challenge. Read more
    source§

    fn push_namespace<NR, N>(&mut self, _: N)
    where +) -> Result<(), Error>

    Fills a fixed column starting from the given row with value to.
    source§

    fn get_challenge(&self, challenge: Challenge) -> Value<F>

    Queries the value of the given challenge. Read more
    source§

    fn push_namespace<NR, N>(&mut self, _: N)
    where NR: Into<String>, - N: FnOnce() -> NR,

    Creates a new (sub)namespace and enters into it. Read more
    source§

    fn pop_namespace(&mut self, _: Option<String>)

    Exits out of the existing namespace. Read more
    source§

    impl<F> Debug for MockProver<F>
    where + N: FnOnce() -> NR,

    Creates a new (sub)namespace and enters into it. Read more
    source§

    fn pop_namespace(&mut self, _: Option<String>)

    Exits out of the existing namespace. Read more
    source§

    impl<F> Debug for MockProver<F>
    where F: Debug + Field,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> Freeze for MockProver<F>

    §

    impl<F> RefUnwindSafe for MockProver<F>
    where F: RefUnwindSafe,

    §

    impl<F> Send for MockProver<F>

    §

    impl<F> Sync for MockProver<F>

    §

    impl<F> Unpin for MockProver<F>
    where F: Unpin,

    §

    impl<F> UnwindSafe for MockProver<F>
    where diff --git a/halo2_proofs/index.html b/halo2_proofs/index.html index 880d801473..69c572f0a3 100644 --- a/halo2_proofs/index.html +++ b/halo2_proofs/index.html @@ -14,7 +14,7 @@ }); -

    Crate halo2_proofs

    source ·
    Expand description

    Legacy halo2 API that wraps the frontend-backend split API. This crate doesn’t implement any +

    Crate halo2_proofs

    source ·
    Expand description

    Legacy halo2 API that wraps the frontend-backend split API. This crate doesn’t implement any core functionality, it just imports from the other crates and offers the legacy API in the same module structure so that projects depending on halo2 can update their dependency towards it without breaking.

    diff --git a/halo2_proofs/plonk/enum.Any.html b/halo2_proofs/plonk/enum.Any.html index 86d4fe030a..0172d10935 100644 --- a/halo2_proofs/plonk/enum.Any.html +++ b/halo2_proofs/plonk/enum.Any.html @@ -23,7 +23,7 @@
    §

    Fixed

    A Fixed variant

    §

    Instance

    An Instance variant

    Trait Implementations§

    source§

    impl Clone for Any

    source§

    fn clone(&self) -> Any

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl ColumnType for Any

    source§

    fn query_cell<F>(&self, index: usize, at: Rotation) -> Expression<F>
    where - F: Field,

    Return expression from cell
    source§

    impl Debug for Any

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<Advice> for Any

    source§

    fn from(_: Advice) -> Any

    Converts to this type from the input type.
    source§

    impl From<Fixed> for Any

    source§

    fn from(_: Fixed) -> Any

    Converts to this type from the input type.
    source§

    impl From<Instance> for Any

    source§

    fn from(_: Instance) -> Any

    Converts to this type from the input type.
    source§

    impl Hash for Any

    source§

    fn hash<__H>(&self, state: &mut __H)
    where + F: Field,

    Return expression from cell
    source§

    impl Debug for Any

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<Advice> for Any

    source§

    fn from(_: Advice) -> Any

    Converts to this type from the input type.
    source§

    impl From<Fixed> for Any

    source§

    fn from(_: Fixed) -> Any

    Converts to this type from the input type.
    source§

    impl From<Instance> for Any

    source§

    fn from(_: Instance) -> Any

    Converts to this type from the input type.
    source§

    impl Hash for Any

    source§

    fn hash<__H>(&self, state: &mut __H)
    where __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    source§

    impl Ord for Any

    source§

    fn cmp(&self, other: &Any) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where diff --git a/halo2_proofs/plonk/enum.Assigned.html b/halo2_proofs/plonk/enum.Assigned.html index 91f5e71e7c..d785198645 100644 --- a/halo2_proofs/plonk/enum.Assigned.html +++ b/halo2_proofs/plonk/enum.Assigned.html @@ -36,37 +36,37 @@ necessary.

    If the denominator is zero, this returns zero.

    Trait Implementations§

    source§

    impl<F> Add<&Assigned<F>> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<&Assigned<F>> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<Assigned<F>> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<F> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: F) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<F> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: F) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> AddAssign<&Assigned<F>> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<&Assigned<F>> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<Assigned<F>> for &Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<F> for &Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: F) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add<F> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: F) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> Add for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the + operator.
    source§

    fn add(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the + operation. Read more
    source§

    impl<F> AddAssign<&Assigned<F>> for Assigned<F>
    where F: Field,

    source§

    fn add_assign(&mut self, rhs: &Assigned<F>)

    Performs the += operation. Read more
    source§

    impl<F> AddAssign for Assigned<F>
    where F: Field,

    source§

    fn add_assign(&mut self, rhs: Assigned<F>)

    Performs the += operation. Read more
    source§

    impl<F> Clone for Assigned<F>
    where F: Clone,

    source§

    fn clone(&self) -> Assigned<F>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<F> Debug for Assigned<F>
    where F: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<F> From<&Assigned<F>> for Assigned<F>
    where F: Field,

    source§

    fn from(val: &Assigned<F>) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> From<&F> for Assigned<F>
    where - F: Field,

    source§

    fn from(numerator: &F) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> From<(F, F)> for Assigned<F>
    where + F: Field,

    source§

    fn from(numerator: &F) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> From<(F, F)> for Assigned<F>
    where F: Field,

    source§

    fn from(_: (F, F)) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> From<F> for Assigned<F>
    where - F: Field,

    source§

    fn from(numerator: F) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> Mul<&Assigned<F>> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> Mul<F> for &Assigned<F>
    where + F: Field,

    source§

    fn from(numerator: F) -> Assigned<F>

    Converts to this type from the input type.
    source§

    impl<F> Mul<&Assigned<F>> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> Mul<F> for &Assigned<F>
    where F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: F) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> Mul<F> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: F) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> Mul for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: F) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> Mul for Assigned<F>
    where F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the * operator.
    source§

    fn mul(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the * operation. Read more
    source§

    impl<F> MulAssign<&Assigned<F>> for Assigned<F>
    where - F: Field,

    source§

    fn mul_assign(&mut self, rhs: &Assigned<F>)

    Performs the *= operation. Read more
    source§

    impl<F> MulAssign for Assigned<F>
    where - F: Field,

    source§

    fn mul_assign(&mut self, rhs: Assigned<F>)

    Performs the *= operation. Read more
    source§

    impl<F> Neg for &Assigned<F>
    where + F: Field,

    source§

    fn mul_assign(&mut self, rhs: &Assigned<F>)

    Performs the *= operation. Read more
    source§

    impl<F> MulAssign for Assigned<F>
    where + F: Field,

    source§

    fn mul_assign(&mut self, rhs: Assigned<F>)

    Performs the *= operation. Read more
    source§

    impl<F> Neg for &Assigned<F>
    where F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn neg(self) -> <&Assigned<F> as Neg>::Output

    Performs the unary - operation. Read more
    source§

    impl<F> Neg for Assigned<F>
    where F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn neg(self) -> <Assigned<F> as Neg>::Output

    Performs the unary - operation. Read more
    source§

    impl<F> PartialEq for Assigned<F>
    where F: Field,

    source§

    fn eq(&self, other: &Assigned<F>) -> bool

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl<F> Sub<&Assigned<F>> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<&Assigned<F>> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<Assigned<F>> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<F> for &Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: F) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<F> for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: F) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub for Assigned<F>
    where - F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> SubAssign<&Assigned<F>> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<&Assigned<F>> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<Assigned<F>> for &Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<F> for &Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: F) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub<F> for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: F) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> Sub for Assigned<F>
    where + F: Field,

    §

    type Output = Assigned<F>

    The resulting type after applying the - operator.
    source§

    fn sub(self, rhs: Assigned<F>) -> Assigned<F>

    Performs the - operation. Read more
    source§

    impl<F> SubAssign<&Assigned<F>> for Assigned<F>
    where F: Field,

    source§

    fn sub_assign(&mut self, rhs: &Assigned<F>)

    Performs the -= operation. Read more
    source§

    impl<F> SubAssign for Assigned<F>
    where F: Field,

    source§

    fn sub_assign(&mut self, rhs: Assigned<F>)

    Performs the -= operation. Read more
    source§

    impl<F> Copy for Assigned<F>
    where F: Copy,

    source§

    impl<F> Eq for Assigned<F>
    where diff --git a/halo2_proofs/plonk/enum.Error.html b/halo2_proofs/plonk/enum.Error.html index 5e99d8baab..860a2b347b 100644 --- a/halo2_proofs/plonk/enum.Error.html +++ b/halo2_proofs/plonk/enum.Error.html @@ -20,7 +20,7 @@ }
    Expand description

    This is an error that could occur during proving or circuit synthesis.

    Variants§

    §

    Frontend(ErrorFront)

    Frontend error case

    §

    Backend(ErrorBack)

    Backend error case

    -

    Trait Implementations§

    source§

    impl Debug for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<Error> for Error

    source§

    fn from(err: ErrorBack) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(err: ErrorFront) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl Freeze for Error

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl Debug for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl From<Error> for Error

    source§

    fn from(err: ErrorBack) -> Self

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(err: ErrorFront) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl Freeze for Error

    §

    impl !RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl !UnwindSafe for Error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where diff --git a/halo2_proofs/plonk/struct.Column.html b/halo2_proofs/plonk/struct.Column.html index d96194ed78..82ccac9885 100644 --- a/halo2_proofs/plonk/struct.Column.html +++ b/halo2_proofs/plonk/struct.Column.html @@ -34,7 +34,7 @@ F: Field,

    Return expression from column at the specified rotation

    Trait Implementations§

    source§

    impl<C> Clone for Column<C>
    where C: Clone + ColumnType,

    source§

    fn clone(&self) -> Column<C>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<C> Debug for Column<C>
    where - C: Debug + ColumnType,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<Column<Advice>> for Column<Any>

    source§

    fn from(advice: Column<Advice>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<Column<Any>> for ColumnMid

    source§

    fn from(val: Column<Any>) -> ColumnMid

    Converts to this type from the input type.
    source§

    impl From<Column<Fixed>> for Column<Any>

    source§

    fn from(advice: Column<Fixed>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<Column<Instance>> for Column<Any>

    source§

    fn from(advice: Column<Instance>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<ColumnMid> for Column<Any>

    source§

    fn from(column: ColumnMid) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl<C> Hash for Column<C>
    where + C: Debug + ColumnType,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl From<Column<Advice>> for Column<Any>

    source§

    fn from(advice: Column<Advice>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<Column<Any>> for ColumnMid

    source§

    fn from(val: Column<Any>) -> ColumnMid

    Converts to this type from the input type.
    source§

    impl From<Column<Fixed>> for Column<Any>

    source§

    fn from(advice: Column<Fixed>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<Column<Instance>> for Column<Any>

    source§

    fn from(advice: Column<Instance>) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl From<ColumnMid> for Column<Any>

    source§

    fn from(column: ColumnMid) -> Column<Any>

    Converts to this type from the input type.
    source§

    impl<C> Hash for Column<C>
    where C: Hash + ColumnType,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where __H: Hasher,

    Feeds this value into the given Hasher. Read more
    1.3.0 · source§

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where H: Hasher, @@ -48,9 +48,9 @@ sufficient, and should not be overridden without very good reason.

    source§

    impl<C> PartialOrd for Column<C>
    where C: ColumnType,

    source§

    fn partial_cmp(&self, other: &Column<C>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

    fn lt(&self, other: &Rhs) -> bool

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

    fn le(&self, other: &Rhs) -> bool

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl TryFrom<Column<Any>> for Column<Advice>

    §

    type Error = &'static str

    The type returned in the event of a conversion error.
    source§

    fn try_from( +operator. Read more

    source§

    impl TryFrom<Column<Any>> for Column<Advice>

    §

    type Error = &'static str

    The type returned in the event of a conversion error.
    source§

    fn try_from( any: Column<Any> -) -> Result<Column<Advice>, <Column<Advice> as TryFrom<Column<Any>>>::Error>

    Performs the conversion.
    source§

    impl TryFrom<Column<Any>> for Column<Fixed>

    §

    type Error = &'static str

    The type returned in the event of a conversion error.
    source§

    fn try_from( +) -> Result<Column<Advice>, <Column<Advice> as TryFrom<Column<Any>>>::Error>

    Performs the conversion.
    source§

    impl TryFrom<Column<Any>> for Column<Fixed>

    §

    type Error = &'static str

    The type returned in the event of a conversion error.
    source§

    fn try_from( any: Column<Any> ) -> Result<Column<Fixed>, <Column<Fixed> as TryFrom<Column<Any>>>::Error>

    Performs the conversion.
    source§

    impl TryFrom<Column<Any>> for Column<Instance>

    §

    type Error = &'static str

    The type returned in the event of a conversion error.
    source§

    fn try_from( any: Column<Any> diff --git a/halo2_proofs/plonk/trait.Assignment.html b/halo2_proofs/plonk/trait.Assignment.html index 1df688aaa4..93674b0bfa 100644 --- a/halo2_proofs/plonk/trait.Assignment.html +++ b/halo2_proofs/plonk/trait.Assignment.html @@ -148,5 +148,5 @@

    Not intended for downstream consumption; use Layouter::namespace instead.

    source

    fn pop_namespace(&mut self, gadget_name: Option<String>)

    Exits out of the existing namespace.

    Not intended for downstream consumption; use Layouter::namespace instead.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<F> Assignment<F> for MockProver<F>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<F> Assignment<F> for MockProver<F>
    where F: Field,

    \ No newline at end of file diff --git a/halo2_proofs/poly/index.html b/halo2_proofs/poly/index.html index b17fb814da..4ceb8371bd 100644 --- a/halo2_proofs/poly/index.html +++ b/halo2_proofs/poly/index.html @@ -14,7 +14,7 @@ }); -

    Module halo2_proofs::poly

    source ·
    Expand description

    Contains utilities for performing arithmetic over univariate polynomials in +

    Module halo2_proofs::poly

    source ·
    Expand description

    Contains utilities for performing arithmetic over univariate polynomials in various forms, including computing commitments to them and provably opening the committed polynomials at arbitrary points.

    Modules§

    • Generic commitment scheme structures
    • Inner product argument commitment scheme
    • KZG commitment scheme

    Structs§

    • This structure contains precomputed constants and other details needed for diff --git a/halo2_proofs/poly/ipa/commitment/struct.IPACommitmentScheme.html b/halo2_proofs/poly/ipa/commitment/struct.IPACommitmentScheme.html index 3e3c78ad80..10f9c1eb01 100644 --- a/halo2_proofs/poly/ipa/commitment/struct.IPACommitmentScheme.html +++ b/halo2_proofs/poly/ipa/commitment/struct.IPACommitmentScheme.html @@ -47,18 +47,18 @@ T: TranscriptWrite<<Scheme as CommitmentScheme>::Curve, E>, I: IntoIterator<Item = ProverQuery<'com, <Scheme as CommitmentScheme>::Curve>> + Clone, R: RngCore,
    Create a multi-opening proof
    source§

    impl<'params, C> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>
    where - C: CurveAffine,

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    + C: CurveAffine,
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

    -
    §

    type Output = AccumulatorStrategy<'params, C>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> AccumulatorStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( +

    §

    type Output = AccumulatorStrategy<'params, C>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> AccumulatorStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<<AccumulatorStrategy<'params, C> as VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s output.
    source§

    impl<'params, C> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>
    where - C: CurveAffine,

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    + C: CurveAffine,
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

    -
    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> SingleStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( +

    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> SingleStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<<SingleStrategy<'params, C> as VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s diff --git a/halo2_proofs/poly/ipa/multiopen/struct.VerifierIPA.html b/halo2_proofs/poly/ipa/multiopen/struct.VerifierIPA.html index e8cc0d5ff1..c55ab4faa5 100644 --- a/halo2_proofs/poly/ipa/multiopen/struct.VerifierIPA.html +++ b/halo2_proofs/poly/ipa/multiopen/struct.VerifierIPA.html @@ -18,18 +18,18 @@ C: CurveAffine,
    { /* private fields */ }
    Expand description

    IPA multi-open verifier

    Trait Implementations§

    source§

    impl<C> Debug for VerifierIPA<C>
    where C: Debug + CurveAffine,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl<'params, C> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for AccumulatorStrategy<'params, C>
    where - C: CurveAffine,

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    + C: CurveAffine,
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

    -
    §

    type Output = AccumulatorStrategy<'params, C>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> AccumulatorStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( +

    §

    type Output = AccumulatorStrategy<'params, C>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> AccumulatorStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<<AccumulatorStrategy<'params, C> as VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s output.
    source§

    impl<'params, C> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>> for SingleStrategy<'params, C>
    where - C: CurveAffine,

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    + C: CurveAffine,
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity.

    Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

    -
    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> SingleStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( +

    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsIPA<C>) -> SingleStrategy<'params, C>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<<SingleStrategy<'params, C> as VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<C>>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s diff --git a/halo2_proofs/poly/kzg/commitment/struct.KZGCommitmentScheme.html b/halo2_proofs/poly/kzg/commitment/struct.KZGCommitmentScheme.html index 02564dc50d..306241fa64 100644 --- a/halo2_proofs/poly/kzg/commitment/struct.KZGCommitmentScheme.html +++ b/halo2_proofs/poly/kzg/commitment/struct.KZGCommitmentScheme.html @@ -87,20 +87,20 @@ E: MultiMillerLoop + Debug, <E as Engine>::G1: CurveExt<AffineExt = <E as Engine>::G1Affine>, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, - <E as Engine>::G2Affine: SerdeCurveAffine,
    §

    type Output = AccumulatorStrategy<E>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsVerifierKZG<E>) -> AccumulatorStrategy<E>

    Creates new verification strategy instance
    source§

    fn process( + <E as Engine>::G2Affine: SerdeCurveAffine,

    §

    type Output = AccumulatorStrategy<E>

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsVerifierKZG<E>) -> AccumulatorStrategy<E>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(<V as Verifier<'params, KZGCommitmentScheme<E>>>::MSMAccumulator) -> Result<<V as Verifier<'params, KZGCommitmentScheme<E>>>::Guard, Error> ) -> Result<<AccumulatorStrategy<E> as VerificationStrategy<'params, KZGCommitmentScheme<E>, V>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity. Read more
    source§

    impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<E>
    where +output.

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity. Read more
    source§

    impl<'params, E, V> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<E>
    where <E as Engine>::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E: MultiMillerLoop + Debug, <E as Engine>::G1: CurveExt<AffineExt = <E as Engine>::G1Affine>, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<E>, Guard = GuardKZG<E>>, - <E as Engine>::G2Affine: SerdeCurveAffine,

    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsVerifierKZG<E>) -> SingleStrategy<E>

    Creates new verification strategy instance
    source§

    fn process( + <E as Engine>::G2Affine: SerdeCurveAffine,

    §

    type Output = ()

    The output type of this verification strategy after processing a proof.
    source§

    fn new(params: &'params ParamsVerifierKZG<E>) -> SingleStrategy<E>

    Creates new verification strategy instance
    source§

    fn process( self, f: impl FnOnce(<V as Verifier<'params, KZGCommitmentScheme<E>>>::MSMAccumulator) -> Result<<V as Verifier<'params, KZGCommitmentScheme<E>>>::Guard, Error> ) -> Result<<SingleStrategy<E> as VerificationStrategy<'params, KZGCommitmentScheme<E>, V>>::Output, Error>

    Obtains an MSM from the verifier strategy and yields back the strategy’s -output.
    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity. Read more
    source§

    impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierGWC<E>
    where +output.

    source§

    fn finalize(self) -> bool

    Finalizes the batch and checks its validity. Read more
    source§

    impl<'params, E> Verifier<'params, KZGCommitmentScheme<E>> for VerifierGWC<E>
    where <E as Engine>::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E: MultiMillerLoop + Debug, <E as Engine>::G1: CurveExt<AffineExt = <E as Engine>::G1Affine>, diff --git a/halo2_proofs/transcript/index.html b/halo2_proofs/transcript/index.html index da84b5f997..a2eccaaf85 100644 --- a/halo2_proofs/transcript/index.html +++ b/halo2_proofs/transcript/index.html @@ -14,7 +14,7 @@ }); -

    Module halo2_proofs::transcript

    source ·
    Expand description

    This module contains utilities and traits for dealing with Fiat-Shamir +

    Module halo2_proofs::transcript

    source ·
    Expand description

    This module contains utilities and traits for dealing with Fiat-Shamir transcripts.

    Structs§

    • We will replace BLAKE2b with an algebraic hash function in a later version.
    • We will replace BLAKE2b with an algebraic hash function in a later version.
    • A 255-bit challenge.

    Traits§

    • EncodedChallenge<C> defines a challenge encoding with a Self::Input that is used to derive the challenge encoding and get_challenge obtains diff --git a/halo2_proofs/transcript/struct.Challenge255.html b/halo2_proofs/transcript/struct.Challenge255.html index 2630ba40b8..2d2829dbe3 100644 --- a/halo2_proofs/transcript/struct.Challenge255.html +++ b/halo2_proofs/transcript/struct.Challenge255.html @@ -115,36 +115,36 @@
      §Examples
      an input from the Blake2b hash would be a [u8; 64].
    source§

    fn new(challenge_input: &[u8; 64]) -> Challenge255<C>

    Get an encoded challenge from a given input challenge.
    source§

    fn get_scalar(&self) -> <C as PrimeCurveAffine>::Scalar

    Get a scalar field element from an encoded challenge.
    source§

    fn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>

    Cast an encoded challenge as a typed ChallengeScalar.

    source§

    impl<R, C> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
    where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, +treating it as a common input.
    source§

    fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

    Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<W, C> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
    where +treating it as a common input.

    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<W, C> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
    where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, +treating it as a common input.
    source§

    fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

    Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<R, C> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
    where +treating it as a common input.

    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<R, C> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
    where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, +treating it as a common input.
    source§

    fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

    Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<W, C> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
    where +treating it as a common input.

    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<W, C> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
    where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn squeeze_challenge(&mut self) -> Challenge255<C>

    Squeeze an encoded verifier challenge from the transcript.
    source§

    fn common_point(&mut self, point: C) -> Result<(), Error>

    Writing the point to the transcript without writing it to the proof, +treating it as a common input.
    source§

    fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

    Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<R, C> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
    where +treating it as a common input.

    source§

    fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

    Squeeze a typed challenge (in the scalar field) from the transcript.
    source§

    impl<R, C> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
    where R: Read, C: CurveAffine, <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn read_point(&mut self) -> Result<C, Error>

    Read a curve point from the prover.
    source§

    fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

    Read a curve scalar from the prover.
    source§

    impl<R, C> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
    where @@ -153,11 +153,11 @@
    §Examples
    <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn read_point(&mut self) -> Result<C, Error>

    Read a curve point from the prover.
    source§

    fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

    Read a curve scalar from the prover.
    source§

    impl<R, C> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>
    where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn init(reader: R) -> Blake2bRead<R, C, Challenge255<C>>

    Initialize a transcript given an input buffer.

    + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
    source§

    fn init(reader: R) -> Blake2bRead<R, C, Challenge255<C>>

    Initialize a transcript given an input buffer.

    source§

    impl<R, C> TranscriptReadBuffer<R, C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>
    where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn init(reader: R) -> Keccak256Read<R, C, Challenge255<C>>

    Initialize a transcript given an input buffer.

    + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
    source§

    fn init(reader: R) -> Keccak256Read<R, C, Challenge255<C>>

    Initialize a transcript given an input buffer.

    source§

    impl<W, C> TranscriptWrite<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
    where W: Write, C: CurveAffine, @@ -173,12 +173,12 @@
    §Examples
    ) -> Result<(), Error>

    Write a scalar to the proof and the transcript.
    source§

    impl<W, C> TranscriptWriterBuffer<W, C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>
    where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn init(writer: W) -> Blake2bWrite<W, C, Challenge255<C>>

    Initialize a transcript given an output buffer.

    -
    source§

    fn finalize(self) -> W

    Conclude the interaction and return the output buffer (writer).
    source§

    impl<W, C> TranscriptWriterBuffer<W, C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
    where + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn init(writer: W) -> Blake2bWrite<W, C, Challenge255<C>>

    Initialize a transcript given an output buffer.

    +
    source§

    fn finalize(self) -> W

    Conclude the interaction and return the output buffer (writer).
    source§

    impl<W, C> TranscriptWriterBuffer<W, C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>
    where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

    source§

    fn init(writer: W) -> Keccak256Write<W, C, Challenge255<C>>

    Initialize a transcript given an output buffer.

    -
    source§

    fn finalize(self) -> W

    Conclude the interaction and return the output buffer (writer).

    + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,
    source§

    fn init(writer: W) -> Keccak256Write<W, C, Challenge255<C>>

    Initialize a transcript given an output buffer.

    +
    source§

    fn finalize(self) -> W

    Conclude the interaction and return the output buffer (writer).

    source§

    impl<C> Copy for Challenge255<C>
    where C: Copy + CurveAffine,

    Auto Trait Implementations§

    §

    impl<C> Freeze for Challenge255<C>

    §

    impl<C> RefUnwindSafe for Challenge255<C>
    where C: RefUnwindSafe,

    §

    impl<C> Send for Challenge255<C>

    §

    impl<C> Sync for Challenge255<C>

    §

    impl<C> Unpin for Challenge255<C>
    where diff --git a/search-index.js b/search-index.js index e5e2be87fb..98554abcb9 100644 --- a/search-index.js +++ b/search-index.js @@ -1,10 +1,10 @@ var searchIndex = new Map(JSON.parse('[\ ["halo2",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["halo2_backend",{"t":"CCCCCCRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMKPPPKGKNNNNNNNNNNNNNNNNNNNNNNKKKKRRRRRRRKKFKNNMNNNNNNNNNNNNNHNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMHNMNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNPPPGPPPPPFFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNCNNNNNNOHHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNHHNKFGFFKKFRPRFFPKONNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFKRFFKKKKKNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMMNNNNNNNNNNNNNNNNMNHHMNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNN","n":["arithmetic","helpers","multicore","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","CurveRead","Processed","RawBytes","RawBytesUnchecked","SerdeCurveAffine","SerdeFormat","SerdePrimeField","borrow","borrow_mut","byte_length","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read","read","read","to_owned","try_from","try_into","type_id","vzip","write","write","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","BoundsFailure","ColumnNotInPermutation","ConstraintSystemFailure","Error","InstanceTooLarge","InvalidInstances","NotEnoughRowsAvailable","Opening","Other","PinnedVerificationKey","ProvingKey","Transcript","VerifyingKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fixed_commitments","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_bytes","get_domain","get_vk","hash_into","init","init","init","init","into","into","into","into","keygen","not_enough_rows_available","pinned","prover","read","read","source","to_bytes","to_bytes","to_owned","to_owned","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verifier","vzip","vzip","vzip","vzip","write","write","current_k","keygen_pk","keygen_vk","Prover","ProverSingle","borrow","borrow","borrow_mut","borrow_mut","commit_phase","commit_phase","create_proof","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","new_with_engine","new_with_engine","phases","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","BatchVerifier","add_proof","borrow","borrow_mut","default","deref","deref_mut","drop","finalize","fmt","from","init","into","new","try_from","try_into","type_id","verify_proof","verify_proof_single","vzip","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeBasis","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","SamplingError","VerificationStrategy","_marker","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","index","index","index","index_mut","index_mut","index_mut","init","init","init","init","init","init","init","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new_empty","new_lagrange_from_vec","num_coeffs","pinned","process","rotate","rotate_extended","rotate_omega","sub","sub","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","values","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","COMMIT_INSTANCE","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit_lagrange","commit_lagrange","deref","deref","deref","deref_mut","deref_mut","deref_mut","downsize","downsize","drop","drop","drop","empty_msm","empty_msm","fmt","fmt","fmt","from","from","from","from_parts","init","init","init","into","into","into","k","k","n","n","new","new_params","read","read","read_custom","read_custom","read_params","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verifier_params","vzip","vzip","vzip","write","write","write_custom","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Keccak256Read","Keccak256Write","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","finalize","finalize","finalize","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","new","new","read_n_points","read_n_scalars","read_point","read_point","read_point","read_scalar","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_point","write_point","write_point","write_scalar","write_scalar","write_scalar"],"q":[[0,"halo2_backend"],[6,"halo2_backend::arithmetic"],[43,"halo2_backend::helpers"],[72,"halo2_backend::multicore"],[216,"halo2_backend::plonk"],[309,"halo2_backend::plonk::Error"],[310,"halo2_backend::plonk::keygen"],[312,"halo2_backend::plonk::prover"],[349,"halo2_backend::plonk::verifier"],[369,"halo2_backend::poly"],[539,"halo2_backend::poly::commitment"],[605,"halo2_backend::poly::ipa"],[609,"halo2_backend::poly::ipa::commitment"],[654,"halo2_backend::poly::ipa::msm"],[684,"halo2_backend::poly::ipa::multiopen"],[716,"halo2_backend::poly::ipa::strategy"],[789,"halo2_backend::poly::kzg"],[793,"halo2_backend::poly::kzg::commitment"],[866,"halo2_backend::poly::kzg::msm"],[915,"halo2_backend::poly::kzg::multiopen"],[980,"halo2_backend::poly::kzg::strategy"],[1040,"halo2_backend::transcript"],[1195,"pasta_curves::arithmetic::curves"],[1196,"subtle"],[1197,"ff"],[1198,"core::cmp"],[1199,"core::ops::arith"],[1200,"core::ops::function"],[1201,"alloc::boxed"],[1202,"core::marker"],[1203,"core::clone"],[1204,"core::convert"],[1205,"rand_core"],[1206,"core::fmt"],[1207,"std::io::error"],[1208,"std::io"],[1209,"core::result"],[1210,"core::any"],[1211,"rayon::iter"],[1212,"rayon::slice"],[1213,"rayon::iter::blocks"],[1214,"rayon::iter::chain"],[1215,"rayon::iter::chunks"],[1216,"rayon::iter::cloned"],[1217,"alloc::vec"],[1218,"alloc::collections::linked_list"],[1219,"rayon::iter::copied"],[1220,"rayon::iter::plumbing"],[1221,"rayon::iter::enumerate"],[1222,"rayon::iter::filter"],[1223,"rayon::iter::filter_map"],[1224,"core::option"],[1225,"rayon::iter::flat_map"],[1226,"rayon::iter::flat_map_iter"],[1227,"core::iter::traits::collect"],[1228,"rayon::iter::flatten"],[1229,"rayon::iter::flatten_iter"],[1230,"rayon_core::scope"],[1231,"rayon::iter::fold"],[1232,"rayon::iter::fold_chunks"],[1233,"rayon::iter::fold_chunks_with"],[1234,"rayon::iter::inspect"],[1235,"rayon::iter::interleave"],[1236,"rayon::iter::interleave_shortest"],[1237,"rayon::iter::intersperse"],[1238,"rayon::iter::map"],[1239,"rayon::iter::map_with"],[1240,"rayon::iter::panic_fuse"],[1241,"rayon::slice::chunk_by"],[1242,"rayon::slice::chunks"],[1243,"rayon::slice::rchunks"],[1244,"core::default"],[1245,"either"],[1246,"rayon::iter::positions"],[1247,"core::iter::traits::accum"],[1248,"rayon::iter::rev"],[1249,"rayon::iter::skip"],[1250,"rayon::iter::skip_any"],[1251,"rayon::iter::skip_any_while"],[1252,"rayon_core::broadcast"],[1253,"rayon::iter::step_by"],[1254,"rayon::iter::take"],[1255,"rayon::iter::take_any"],[1256,"rayon::iter::take_any_while"],[1257,"rayon::iter::try_fold"],[1258,"rayon::iter::private"],[1259,"halo2_middleware::multicore"],[1260,"rayon::iter::update"],[1261,"rayon::iter::while_some"],[1262,"rayon::iter::len"],[1263,"rayon::iter::zip"],[1264,"rayon::iter::zip_eq"],[1265,"halo2_backend::plonk::error"],[1266,"halo2_backend::poly::domain"],[1267,"core::error"],[1268,"alloc::string"],[1269,"halo2_middleware::circuit"],[1270,"std::collections::hash::map"],[1271,"halo2_middleware::zal::traits"],[1272,"halo2_middleware::zal::impls"],[1273,"halo2_backend::plonk::verifier::batch"],[1274,"halo2_backend::poly::strategy"],[1275,"core::ops::range"],[1276,"core::iter::traits::iterator"],[1277,"halo2_middleware::poly"],[1278,"halo2_backend::poly::ipa::multiopen::prover"],[1279,"halo2_backend::poly::ipa::multiopen::verifier"],[1280,"pairing"],[1281,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[1282,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[1283,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[1284,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[1285,"halo2_middleware"],[1286,"rayon_core"],[1287,"rayon_core::join"],[1288,"halo2_backend::poly::ipa::commitment::prover"],[1289,"halo2_backend::poly::ipa::commitment::verifier"]],"i":[0,0,0,0,0,0,11,11,4,11,0,0,4,0,12,11,4,12,11,4,11,4,4,12,12,11,4,11,12,11,4,12,12,11,11,0,12,12,12,12,12,12,12,0,31,31,31,0,0,0,31,31,37,31,31,31,31,31,31,31,31,31,34,37,38,31,31,31,31,31,37,38,0,0,0,0,49,87,88,43,49,87,88,0,0,0,0,43,43,44,68,68,45,45,43,45,43,45,43,45,43,43,43,0,68,68,45,43,68,45,45,43,43,43,43,43,43,43,43,43,43,43,43,68,43,45,45,43,43,43,43,68,45,45,68,43,45,45,43,68,49,0,45,45,45,43,43,43,43,43,43,43,43,43,45,43,43,44,44,44,87,88,44,44,44,44,44,44,44,44,44,44,44,45,43,43,45,45,45,45,43,43,43,45,0,45,43,43,68,68,45,43,45,43,43,43,110,43,43,43,43,68,68,43,43,68,43,45,43,68,43,45,45,45,45,45,121,121,121,0,121,121,121,121,121,0,0,121,0,121,119,123,120,121,119,123,120,119,120,119,120,121,119,123,120,121,119,123,120,121,119,123,120,119,121,121,119,123,120,121,121,119,123,120,119,120,119,120,119,121,119,123,120,121,119,123,120,0,121,119,0,119,120,121,119,120,119,120,121,119,121,119,123,120,121,119,123,120,121,119,123,120,0,121,119,123,120,119,120,202,0,0,0,0,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,140,134,140,134,140,134,140,134,140,0,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,0,0,143,0,0,0,0,0,0,0,0,168,154,146,0,0,154,0,148,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,150,151,152,148,126,150,151,152,148,126,126,0,126,126,126,153,154,150,151,152,148,148,126,153,154,150,151,152,148,148,126,126,153,154,150,151,152,148,126,126,126,126,126,126,146,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,126,126,126,148,148,148,148,148,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,0,148,148,126,0,126,126,126,148,146,126,148,148,148,126,146,148,126,126,148,148,126,150,151,152,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,148,126,153,154,150,151,152,148,0,164,0,136,145,0,164,145,0,0,136,0,136,0,137,145,136,0,160,160,160,161,161,161,160,160,161,160,160,162,133,137,137,160,160,160,133,160,164,160,161,160,160,160,160,133,160,160,160,133,162,137,145,160,136,133,136,161,161,160,160,160,160,145,160,133,0,0,0,0,0,0,0,169,171,169,171,169,169,169,169,0,169,171,169,171,169,169,171,169,169,171,169,171,169,171,169,171,169,169,169,171,169,171,169,169,171,169,171,169,171,0,169,171,169,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,0,173,174,173,174,173,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,174,173,174,0,0,0,0,172,175,176,177,172,175,176,177,172,175,172,175,172,172,175,176,177,172,175,176,177,172,175,176,177,176,177,172,175,176,177,172,175,176,177,175,172,175,176,177,172,175,176,177,176,177,176,177,172,175,172,175,176,177,172,175,176,177,172,175,176,177,175,172,172,172,175,176,177,0,0,0,0,0,0,0,178,180,182,178,180,182,178,180,178,180,178,178,180,178,180,182,178,180,182,178,180,178,180,182,178,180,178,180,182,178,180,182,178,178,180,182,178,180,182,178,180,178,180,178,182,178,180,178,180,182,178,178,180,178,180,182,178,180,182,178,180,182,178,178,180,182,178,180,178,180,0,0,181,183,181,181,181,183,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,183,181,183,0,0,0,0,185,187,186,188,185,187,186,188,185,186,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,186,188,185,187,186,188,185,187,186,188,185,187,186,188,187,188,185,187,186,188,0,0,0,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,190,191,191,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,0,0,0,0,0,127,0,0,0,0,0,0,0,127,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,128,194,195,196,197,128,194,195,196,197,194,195,196,197,193,193,198,198,194,195,196,197,193,198,194,195,196,197,193,198,199,196,197,194,195,196,197,193,198,194,195,196,197,193,198,127,198,200,199,194,194,195,195,196,196,197,197,193,198,194,195,196,197,193,198,127,198,0,0,147,194,195,147,194,195,128,194,195,196,197,128,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,138,196,197,138,196,197],"f":"``````````````````{{}c{}}000{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{n{{l{{h{}{{b{c}}{d{e}}{f{g}}}}}}}}}{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{Ah}}}Ah}0{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{cc}{{n{{h{}{{b{e}}{d{c}}{f{g}}}}}}}{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{An}}}{{Bb{B`}}}}{{{j{Ah}}}{{n{Ah}}}}{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}BdA`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Bd{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{Ah}}}Bd}{{{j{Ah}}}Bf}{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}{{Bh{eee}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{ccc}{{n{{Af{}{{b{e}}{d{c}}{Ad{g}}}}}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{e}}{Al{e}}}}{{{j{Bj{Bl{c}}}}e}BnC`{{B`{{j{Bj{Bl{c}}}}Cb}}C`CdCf}}{{{j{Ah}}c}Ah{{Cj{{Bl{Ch}}}}}}0{cAhCl}9{{{j{Ah}}}{{Bh{BdAh}}}}{{{j{Ah}}{j{Ah}}}{{Bh{BdAh}}}}?```````{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{CnCb}{{{j{Cn}}}Cn}{{{j{c}}{j{Bje}}}Bn{}{}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{j{Cn}}{j{BjD`}}}Db}{cc{}}{{}Cb}{ce{}{}}{{{j{Bjc}}}{{Df{Dd}}}Dh}{{{j{Bjc}}Cn}{{Df{Dj}}}Dh}{{{j{Bjc}}Cn}{{Df{Dl}}}Dh}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}6{{{j{Dj}}{j{Bjc}}Cn}{{Df{Bn}}}Eb}{{{j{Dl}}{j{Bjc}}Cn}{{Df{Bn}}}Eb}```````````````{{{Ef{}{{Ed{c}}}}e}BfC`{{B`{c}{{Aj{Bf}}}}CdC`}}0{{{j{BjEh}}}{{j{Bj{Bl{c}}}}}C`}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{Ej{{El{Ej}}}}{{EjCb}{{En{Ej}}}}{{{Ef{}{{Ed{c}}}}e}{{F`{{Ef{}{{Ed{c}}}}}}}C`{{Fb{}{{Ed{c}}}}}}{{EjCb}{{Fd{Ej}}}}{{{Ef{}{{Ed{c}}}}}{{Ff{{Ef{}{{Ed{c}}}}}}}C`}{{Eje}Fh{}{{Fb{}{{Ed{c}}}}}}{{{Ef{}{{Ed{c}}}}}eC`{{Fj{c}}}}{{Ej{j{Bj{Fl{c}}}}}Bn{}}{{{Ef{}{{Ed{c}}}}}{{Fn{{Fl{c}}}}}C`}{{{Ef{}{{Ed{c}}}}}{{G`{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}}CbC`}{{}Cb}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{{Eje}{}{}{{Gb{c}}}}{{{Ef{}{{Ed{c}}}}e}{}C`{{Gd{c}}}}{CbBn}{Ej{{Gf{Ej}}}}{{Ejc}BfFb}{{{Ef{}{{Ed{c}}}}e}{{Gh{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{Gj{{Ef{}{{Ed{c}}}}g}}}C`C`{{B`{c}{{Aj{{Gl{e}}}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}00{{{Ef{}{{Ed{c}}}}g}{{Gl{e}}}C`C`{{B`{c}{{Aj{{Gl{e}}}}}}CdC`}}00{{{Ef{}{{Ed{c}}}}g}{{Gn{{Ef{}{{Ed{c}}}}g}}}C`Fb{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{H`{{Ef{}{{Ed{c}}}}g}}}C`Hb{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}{{Hd{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}}{{Hf{{Ef{}{{Ed{c}}}}}}}C`}{{{j{Hh}}{j{BjD`}}}{{Dn{BnHj}}}}{{{Ef{}{{Ed{c}}}}gi}{{Hl{{Ef{}{{Ed{c}}}}gi}}}C`C`{{B`{}{{Aj{e}}}}CdC`}{{B`{ec}{{Aj{e}}}}CdC`}}{{EjCbei}{{Hn{Ejei}}}C`{{B`{}{{Aj{c}}}}C`Cd}{}{{B`{cg}{{Aj{c}}}}C`Cd}}{{EjCbcg}{{I`{Ejcg}}}{C`Cf}{}{{B`{ce}{{Aj{c}}}}C`Cd}}{{{Ef{}{{Ed{c}}}}eg}{{Ib{{Ef{}{{Ed{c}}}}eg}}}C`{C`Cf}{{B`{ec}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}BnC`{{B`{c}}CdC`}}{{{Ef{}{{Ed{c}}}}gi}BnC`{}{{B`{}{{Aj{e}}}}CdC`}{{B`{{j{Bje}}c}}CdC`}}{{{Ef{}{{Ed{c}}}}eg}BnC`{C`Cf}{{B`{{j{Bje}}c}}CdC`}}{cc{}}{{Ejc}BfFb}0{{}Cb}{{{Ef{}{{Ed{c}}}}e}{{Id{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}}CdC`}}{{Eje}{{If{Ej}}}{}{{Fb{}{{Ed{c}}}}}}{{Eje}{{Ih{Ej}}}{}{{Fb{}{{Ed{c}}}}}}{{{Ef{}{{Ed{c}}}}c}{{Ij{{Ef{}{{Ed{c}}}}}}}C`}{ce{}{}}{{{Fb{}{{Il{c}}{Ed{e}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{ei}{{Bh{cg}}}C`{{In{}{{Aj{c}}}}C`}C`{{In{}{{Aj{g}}}}C`}}8{{{j{Ej}}}Cb}9{{{Ef{}{{Ed{c}}}}g}{{J`{{Ef{}{{Ed{c}}}}g}}}C`C`{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}{{Jb{{Ef{}{{Ed{c}}}}gk}}}C`{}{{B`{}{{Aj{e}}}}CdC`}C`{{B`{{j{Bje}}c}{{Aj{i}}}}CdC`}}{{{Ef{}{{Ed{c}}}}ei}{{Jd{{Ef{}{{Ed{c}}}}ei}}}C`{C`Cf}C`{{B`{{j{Bje}}c}{{Aj{g}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}{{Gl{c}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{CdC`{B`{{j{c}}{j{c}}}{{Aj{Fh}}}}}}{{{Ef{}{{Ed{c}}}}g}{{Gl{c}}}C`{AbC`}{CdC`{B`{{j{c}}}{{Aj{e}}}}}}210?{{{j{{Ef{}{{Ed{c}}}}}}}{{Gl{Cb}}}C`}{{{Ef{}{{Ed{c}}}}}{{Jf{{Ef{}{{Ed{c}}}}}}}C`}{{{j{BjEh}}e}{{Jh{ce}}}C`{{B`{{j{c}}{j{c}}}{{Aj{Bf}}}}C`Cd}}{{{j{BjEh}}Cb}{{Jj{c}}}C`}{{{j{BjEh}}Cb}{{Jl{c}}}C`}{{{j{{Jn{}{{Il{c}}{Ed{e}}}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{{j{Bj{K`{}{{Il{c}}{Ed{e}}}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{{j{BjEh}}Cb}{{Kb{c}}}C`}{{{j{BjEh}}Cb}{{Kd{c}}}C`}{{{j{BjEh}}}Bn}{{{j{BjEh}}e}BnC`{{B`{{j{c}}{j{c}}}{{Aj{Fh}}}}Cd}}{{{j{BjEh}}g}BnC`{AbC`}{{B`{{j{c}}}{{Aj{e}}}}Cd}}{{{j{BjEh}}g}BnC`Ab{{B`{{j{c}}}{{Aj{e}}}}Cd}}320{{{j{BjEh}}e}{{Kf{ce}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{j{BjEh}}e}{{Kh{ce}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{Ejc}{{Gl{Fh}}}Fb}{{{Ef{}{{Ed{c}}}}e}{{Bh{gi}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}{KjC`{Kl{c}}}{KjC`{Kl{c}}}}{{{Ef{}{{Ed{c}}}}i}{{Bh{km}}}C`C`C`{{B`{c}{{Aj{{Kn{eg}}}}}}CdC`}{KjC`{Kl{e}}}{KjC`{Kl{g}}}}{{Eje}{{Gl{Cb}}}{}{{B`{c}{{Aj{Bf}}}}CdC`}}00{{Eje}{{L`{Eje}}}{}{{B`{c}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}eC`{C`{Lb{c}}Lb}}{{{Ef{}{{Ed{c}}}}eg}cC`{{B`{}{{Aj{c}}}}CdC`}{{B`{cc}{{Aj{c}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{{B`{cc}{{Aj{c}}}}CdC`}}{Ej{{Ld{Ej}}}}{ecC`{{In{{j{Hh}}}{{Aj{c}}}}C`}}{{EjCb}{{Lf{Ej}}}}{{{Ef{}{{Ed{c}}}}Cb}{{Lh{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Lj{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{j{Hh}}c}Bn{{In{{j{Hh}}}}C`}}{{{j{Hh}}c}Bn{{B`{{j{Hh}}Ll}}C`Cd}}{{EjCb}{{Ln{Ej}}}}{{{Ef{}{{Ed{c}}}}}eC`{C`{M`{c}}M`}}{{EjCb}{{Mb{Ej}}}}{{{Ef{}{{Ed{c}}}}Cb}{{Md{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Mf{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}{{Mh{{Ef{}{{Ed{c}}}}igk}}}C`{}{{B`{}{{Aj{e}}}}CdC`}{{Mj{}{{Aj{e}}}}C`}{{B`{ec}{{Aj{i}}}}CdC`}}{{Mlei}{{Dn{cg}}}{}{{B`{}{{Aj{c}}}}C`Cd}{}{{B`{c{Dn{cg}}}{{Aj{{Dn{cg}}}}}}C`Cd}}{{{Ef{}{{Ed{c}}}}ei}{{Mn{{Ef{}{{Ed{c}}}}gi}}}C`{CfC`}{{Mj{}{{Aj{e}}}}C`}{{B`{ec}{{Aj{g}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}eC`{{Mj{}{{Aj{Bn}}}}C`}{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}iC`{}{{B`{}{{Aj{e}}}}CdC`}{{Mj{}{{Aj{Bn}}}}C`}{{B`{{j{Bje}}c}{{Aj{i}}}}CdC`}}{{{Ef{}{{Ed{c}}}}ei}gC`{C`Cf}{{Mj{}{{Aj{Bn}}}}C`}{{B`{{j{Bje}}c}{{Aj{g}}}}CdC`}}{c{{Dn{e}}}{}{}}0{{{Ef{}{{Ed{c}}}}gi}cC`{}{{B`{}{{Aj{e}}}}CdC`}{{B`{ee}{{Aj{c}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{Gl{c}}}C`{}{{B`{ee}{{Aj{c}}}}CdC`}}{{{j{c}}}E`{}}{{{Ef{}{{Ed{c}}}}}{{Bh{gk}}}C`C`{KjC`{Kl{e}}}C`{KjC`{Kl{i}}}}{{Ej{j{Bj{Fl{c}}}}{j{Bj{Fl{e}}}}}BnC`C`}{{{Ef{}{{Ed{c}}}}e}{{N`{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{Bjc}}}}CdC`}}{ce{}{}}{{{Ef{}{{Ed{c}}}}}{{Nb{{Ef{}{{Ed{c}}}}}}}C`}{{EjCb}{{Nd{Ej}}}}{{EjCb}{{Nf{Ej}}}}{{Eje}{}{}{{Nh{c}}}}{{Ejc}{{Nj{Ej}}}Fb}{{Ejc}{{Nl{Ej}}}Fb}`````````````{{{j{c}}}{{j{e}}}{}{}}000{{{j{Bjc}}}{{j{Bje}}}{}{}}000{{{j{{Nn{c}}}}}{{Nn{c}}}{Cfh}}{{{j{{O`{c}}}}}{{O`{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}0{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{j{{Nn{c}}}}}{{j{{Fl{c}}}}}h}{{{j{Ob}}{j{BjD`}}}Db}0{{{j{{Nn{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{Of{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{O`{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{OhOb}111``{{{j{{Nn{c}}}}}{{j{Ol}}}h}{{{j{{O`{c}}}}}{{j{{Nn{c}}}}}h}{{{j{{Nn{c}}}}{j{Bjg}}}{{Df{Bn}}}h{{On{c}}}{{A@`{ce}}}}{{}Cb}000{ce{}{}}000`{A@bOb}{{{j{{Nn{c}}}}}{{Of{c}}}h}```{{{j{Ob}}}{{Gl{{j{A@d}}}}}}{{{j{{Nn{c}}}}Cn}{{Fl{Oj}}}Dj}{{{j{{O`{c}}}}Cn}{{Fl{Oj}}}Dj}{{{j{c}}}e{}{}}0{{{j{c}}}A@f{}}{{{j{{Nn{c}}}}}{}h}{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000`::::{{{j{{Nn{c}}}}{j{Bje}}Cn}{{Df{Bn}}}DjEb}{{{j{{O`{c}}}}{j{Bje}}Cn}{{Df{Bn}}}DjEb}`{{{j{e}}{Nn{c}}{j{A@h}}}{{Dn{{O`{c}}Ob}}}h{{A@j{c}}}}{{{j{e}}{j{A@h}}}{{Dn{{Nn{c}}Ob}}}h{{A@j{c}}}}``{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{Bj{A@l{cegikm}}}}Oj{Fl{{Gl{Fl}}}}}{{Dn{{A@n{Cb}}Ob}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{j{Bj{AAh{cegikm}}}}Oj{Fl{{Fl{{Gl{Fl}}}}}}}{{Dn{{A@n{Cb}}Ob}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{A@l{cegikm}}}{{Dn{BnOb}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{AAh{cegikm}}}{{Dn{BnOb}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{CbBn}0{{{j{{A@l{cegikm}}}}{j{BjD`}}}Db{OdAA`}{Od{AAb{c}}}{OdOn}{OdCl}{Od{AAd{g}}}{OdAAf}}{{{j{{AAh{cegikm}}}}{j{BjD`}}}Db{OdAA`}{Od{AAb{c}}}{OdOn}{OdCl}{Od{AAd{g}}}{OdAAf}}{cc{}}0{{}Cb}0{ce{}{}}0{{j{j{O`}}{Fl{Fl}}c{j{Bjg}}}{{Dn{{A@l{ikecgAAj}}Ob}}}ClOn{{AAd{e}}}AA`{{AAb{i}}}}{{j{j{O`}}{j{{Bl{{Fl{Fl}}}}}}c{j{Bjg}}}{{Dn{{AAh{ikecgAAj}}Ob}}}ClOn{{AAd{e}}}AA`{{AAb{i}}}}{{{AAl{c}}j{j{O`}}{Fl{Fl}}e{j{Bji}}}{{Dn{{A@l{kmgeic}}Ob}}}AAfClOn{{AAd{g}}}AA`{{AAb{k}}}}{{{AAl{c}}j{j{O`}}{j{{Bl{{Fl{Fl}}}}}}e{j{Bji}}}{{Dn{{AAh{kmgeic}}Ob}}}AAfClOn{{AAd{g}}}AA`{{AAb{k}}}}{{{j{{AAh{cegikm}}}}}{{j{{Bl{Oj}}}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}077`{{{j{Bj{AAn{c}}}}{Fl{{Fl{Fl}}}}{Fl{Oj}}}Bnh}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{}{{AAn{c}}}{Kjh}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{AAn{c}}{j{{AB`{c}}}}{j{{Nn{c}}}}}Bfh}{{{j{{AAn{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{{}Cb}{ce{}{}}{{}{{AAn{c}}}h}>>={{j{j{Nn}}g{j{{Bl{{Fl{Fl}}}}}}{j{Bjk}}}{{Dn{Ob}}}AA`{{ABb{c}}}{{ABd{ce}}}On{{ABf{i}}}}{{j{j{Nn}}g{Fl{Fl}}{j{Bjk}}}{{Dn{Ob}}}AA`{{ABb{c}}}{{ABd{ce}}}On{{ABf{i}}}}3````````````````{{{ABh{ce}}{j{{ABh{ce}}}}}{{ABh{ce}}}AhABj}>>>>>>>======={{{j{{Ol{c}}}}}{{Ol{c}}}{CfAh}}{{{j{ABl}}}ABl}{{{j{ABn}}}ABn}{{{j{AC`}}}AC`}{{{j{{ABh{ce}}}}}{{ABh{ce}}}CfCf}{{{j{c}}{j{Bje}}}Bn{}{}}0000{{{j{{Ol{c}}}}{Fl{c}}}{{ABh{cABl}}}A`}{{{j{{Ol{c}}}}{ABh{cABl}}}{{ABh{cAC`}}}A`}`{{{j{{Ol{c}}}}c}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}c}{{ABh{cABn}}}A`}{Cb{{j{c}}}{}}00000{{{j{{ABh{ce}}}}}{{j{{Bl{c}}}}}{}{}}1{Cb{{j{Bjc}}}{}}000000{{{j{Bj{ABh{ce}}}}}{{j{Bj{Bl{c}}}}}{}{}}{{{j{{Ol{c}}}}{ABh{cAC`}}}{{ABh{cAC`}}}A`}{CbBn}000000{{{j{{Ol{c}}}}}{{ABh{cABl}}}A`}{{{j{{Ol{c}}}}}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}}{{ABh{cABn}}}A`}{{{j{{Ol{c}}}}}A@bA`}{{{j{{Ol{c}}}}}CbA`}{{{j{{Ol{c}}}}{ABh{cAC`}}}{{Fl{c}}}A`}{{{ABd{}{{Aj{c}}}}}Bf{}}{{{j{{Ol{c}}}}{j{BjD`}}}Db{OdAh}}{{{j{{ACb{c}}}}{j{BjD`}}}Db{OdAh}}{{{j{ACd}}{j{BjD`}}}Db}{{{j{ABl}}{j{BjD`}}}Db}{{{j{ABn}}{j{BjD`}}}Db}{{{j{AC`}}{j{BjD`}}}Db}{{{j{{ABh{ce}}}}{j{BjD`}}}DbOdOd}{cc{}}000000{{{j{{Ol{c}}}}}cA`}00;{{{j{{ABh{ce}}}}ACf}{{j{{Bl{c}}}}}{}{}}{{{j{{ABh{ce}}}}Cb}{{j{c}}}{}{}}{{{j{{ABh{ce}}}}{ACh{Cb}}}{{j{{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}{ACh{Cb}}}{{j{Bj{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}Cb}{{j{Bjc}}}{}{}}{{{j{Bj{ABh{ce}}}}ACf}{{j{Bj{Bl{c}}}}}{}{}}{{}Cb}000000{ce{}{}}000000`{{{j{{ABh{ce}}}}}{{`{{ACj{}{{Ed{{j{c}}}}}}}}}{}{}}{{{j{Bj{ABh{ce}}}}}{{`{{ACj{}{{Ed{{j{Bjc}}}}}}}}}{}{}}{{{j{{Ol{c}}}}}A@bA`}`{{{j{{Ol{c}}}}cce}{{Fl{c}}}A`{{Hb{}{{Ed{ACl}}}}Cf}}{{{j{{Ol{c}}}}{Fl{c}}}{{ABh{cABn}}}A`}{{{j{{Ol{c}}}}{ABh{cABn}}}{{ABh{cABl}}}A`}{{{ABh{ce}}c}{{ABh{ce}}}AhABj}{j{{ABd{}{{Aj{c}}}}}{}}{{A@bA@b}{{Ol{c}}}A`}{{Cbc}{{ABh{ce}}}Cf{}}{{{Fl{c}}}{{ABh{cABn}}}Cf}{{{j{{ABh{ce}}}}}Cb{}{}}{{{j{{Ol{c}}}}}{{ACb{c}}}A`}{{{ABd{}{{Aj{c}}}}e}{{Dn{cOb}}}{}{{In{}{{Aj{{Dn{Ob}}}}}}}}{{{j{{ABh{cABn}}}}ACn}{{ABh{cABn}}}Ah}{{{j{{Ol{c}}}}{j{{ABh{cAC`}}}}ACn}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}cACn}cA`}{{{ABh{ce}}{j{{ABh{ce}}}}}{{ABh{ce}}}AhABj}{{{j{{ABh{ce}}}}c}{{ABh{ce}}}AhABj}{{{j{c}}}e{}{}}0000{c{{Dn{e}}}{}{}}0000000000000{{{j{c}}}E`{}}000000`{ce{}{}}000000``````````````````{{{AD`{c}}{AD`{c}}}{{AD`{c}}}Ah}{{{j{Bj{AD`{c}}}}{AD`{c}}}BnAh}{{{j{Bj{AD`{c}}}}c}BnAh}{{{j{BjADb}}{j{ADb}}}Bn}{{{j{BjADb}}}Bn}{{{j{ADb}}}Fl}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{{j{ADb}}{j{e}}}Bfh{{AAf{c}}}}{{{j{{AD`{c}}}}}{{AD`{c}}}Cf}{{{j{c}}{j{Bje}}}Bn{}{}}{{{j{ADd}}{j{e}}{j{{ABh{ABl}}}}AD`}{}h{{AAf{c}}}}{{{j{A@j}}{j{e}}{j{{ABh{ABn}}}}AD`}{}h{{AAf{c}}}}{{{j{AAb}}c{j{Bjg}}i}{{Df{Bn}}}ClOn{{AAd{e}}}{{Hb{}{{Ed{`}}}}Cf}}{{{j{AAb}}{j{c}}e{j{Bji}}k}{{Df{Bn}}}AAfClOn{{AAd{g}}}{{Hb{}{{Ed{`}}}}Cf}}{{}{{AD`{c}}}Ah}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{{{j{BjA@j}}A@b}Bn}{CbBn}{{{j{{ADh{}{{ADf{c}}}}}}}c{{ADb{e}}}h}{{{j{{AD`{c}}}}{j{{AD`{c}}}}}BfADj}{{{j{ADb}}{j{e}}}{}h{{AAf{c}}}}{{{j{{AD`{c}}}}{j{BjD`}}}DbOd}{cc{}}{{}Cb}{ce{}{}}{{{j{A@j}}}A@b}{{{AD`{c}}{AD`{c}}}{{AD`{c}}}Ah}{{{j{Bj{AD`{c}}}}{AD`{c}}}BnAh}{{{j{Bj{AD`{c}}}}c}BnAh}{{{j{A@j}}}Ch}{A@bADd}{jAAb}{{}{{ABb{}{{ADl{c}}{ADn{g}}}}}{{AE`{e}{{ADn{g}}}}}AA`{}}{{{j{Bjc}}}{{AD`{e}}}ClAh}{A@bc{}}{{{j{Bjc}}}{{Df{A@j}}}Dh}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{{j{ADb}}}Fl}{{{j{BjADb}}}Bn}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}{{{j{{ABb{}{{ADl{c}}{ADn{g}}}}}}{j{Bjk}}mg}{{Dn{cACd}}}{{AE`{e}{{ADn{g}}}}}AA`{}On{{ABf{i}}}{{Hb{}{{Ed{`}}}}Cf}}{ce{}{}}{{{j{A@j}}{j{Bjc}}}{{Df{Bn}}}Eb}```````{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AEb{c}}}}}{{AEb{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}{{{j{{AEb{c}}}}{j{e}}{j{{ABh{ABl}}}}AD`}{}h{{AAf{c}}}}{{{j{{AEb{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}h{{AAf{c}}}}{{{j{e}}{j{{AEb{c}}}}g{j{Bjk}}{j{{ABh{ABl}}}}AD`}{{Df{Bn}}}h{{AAf{c}}}Cl{{On{c}}}{{AAd{ci}}}}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{{{j{Bj{AEb{c}}}}A@b}Bnh}{CbBn}0{{{j{{AEb{c}}}}}{{AEd{c}}}h}{{{j{{AEb{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEf{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}0{{}Cb}0{ce{}{}}0{{{j{{AEb{c}}}}}A@bh}{{{j{{AEb{c}}}}}Chh}{A@b{{AEb{c}}}h}{A@bc{}}{{{j{Bjc}}}{{Df{{AEb{e}}}}}Dhh}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}0{{{AEd{c}}{j{Bjg}}}{{Dn{{AEh{c}}ACd}}}h{{On{c}}}{{ABf{ce}}}}::{{{j{{AEb{c}}}}{j{Bje}}}{{Df{Bn}}}hEb}`{{{j{Bj{AEd{c}}}}}Bnh}{{{j{Bj{AEd{c}}}}{j{{AEd{c}}}}}Bnh}0{{{j{Bj{AEd{c}}}}{j{Bl}}}Bnh}222{{{j{{AEd{c}}}}}Flh}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{{j{{AEd{c}}}}{j{e}}}Bfh{{AAf{c}}}}{{{j{{AEd{c}}}}}{{AEd{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{j{{AEd{c}}}}{j{e}}}{}h{{AAf{c}}}}{{{j{{AEd{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{{}Cb}{ce{}{}}{{{j{{AB`{c}}}}}{{AEd{c}}}h}>{{{j{Bj{AEd{c}}}}}Bnh}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}5``{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AEj{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}h{{AAf{c}}}Cl{{On{c}}}{{AAd{ci}}}{{Hb{}{{Ed{{`{c}}}}}}Cf}}??>>=={{{j{{AEj{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEl{c}}}}{j{BjD`}}}Db{Odh}}<<;;::{{{j{{AEb{c}}}}}{{AEj{c}}}h}{{}{{AEl{c}}}h}888877{{{j{{AEl{c}}}}{j{Bjg}}i{AEd{c}}}{{Dn{kACd}}}h{{On{c}}}{{ABf{ce}}}{{Hb{}{{Ed{{`{c{AEd{c}}}}}}}}Cf}{}}==````77776666{{{j{{AEh{c}}}}}{{AEh{c}}}{Cfh}}{{{j{{AEn{c}}}}}{{AEn{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}0{{{j{{AEh{c}}}}{j{e}}}ch{{AAf{c}}}}{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{AF`{c}}}Bfh}{{{AFb{c}}}Bfh}{{{j{{AEh{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEn{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AF`{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AFb{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}000`{{}Cb}000{ce{}{}}000{{{j{{AEb{c}}}}}{{AF`{c}}}h}{{{j{{AEb{c}}}}}{{AFb{c}}}h}{{{AF`{c}}e}{{Dn{gOb}}}h{{In{{AEd{c}}}{{Aj{{Dn{{AEh{c}}Ob}}}}}}}{}}{{{AFb{c}}e}{{Dn{gOb}}}h{{In{{AEd{c}}}{{Aj{{Dn{{AEh{c}}Ob}}}}}}}{}}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000`{{{AEh{c}}}{{AEd{c}}}h}{{{AEh{c}}c}{{Bh{{AEd{c}}{AEn{c}}}}}h}9999```````{{{j{c}}}{{j{e}}}{}{}}00{{{j{Bjc}}}{{j{Bje}}}{}{}}00{{{j{{AFd{c}}}}}{{AFd{c}}}{CfAFf}}{{{j{{AFh{c}}}}}{{AFh{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}0{{{j{{AFd{c}}}}{j{e}}{j{{ABh{ABl}}}}AD`}{}AFfAAf}{{{j{{AFd{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}AFfAAf}{{{j{{AFh{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}AFfAAf}{Cb{{j{c}}}{}}00{Cb{{j{Bjc}}}{}}00{{{j{Bj{AFd{c}}}}A@b}BnAFf}{{{j{Bj{AFh{c}}}}A@b}BnAFf}{CbBn}00{{{j{{AFd{c}}}}}{{AFj{c}}}AFf}{{{j{{AFh{c}}}}}{{AFj{c}}}AFf}{{{j{{AFd{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFh{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFl{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}00{{{j{{AFd{c}}}}A@bFl{Gl{Fl}}}{{AFd{c}}}AFf}{{}Cb}00{ce{}{}}00{{{j{{AFd{c}}}}}A@bAFf}{{{j{{AFh{c}}}}}A@bAFf}{{{j{{AFd{c}}}}}ChAFf}{{{j{{AFh{c}}}}}ChAFf}{A@b{{AFd{c}}}AFf}{A@bc{}}{{{j{Bjc}}}{{Df{{AFd{e}}}}}DhAFf}{{{j{Bjc}}}{{Df{{AFh{e}}}}}DhAFf}{{{j{Bjc}}Cn}{{Df{{AFd{e}}}}}DhAFf}{{{j{Bjc}}Cn}{{Df{{AFh{e}}}}}DhAFf}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{A@bc}{{AFd{e}}}ClAFf}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}00000{{{j{c}}}E`{}}00{{{j{{AFd{c}}}}}{{AFh{c}}}AFf}{ce{}{}}00{{{j{{AFd{c}}}}{j{Bje}}}{{Df{Bn}}}AFfEb}{{{j{{AFh{c}}}}{j{Bje}}}{{Df{Bn}}}AFfEb}{{{j{{AFd{c}}}}{j{Bje}}Cn}{{Df{Bn}}}AFfEb}{{{j{{AFh{c}}}}{j{Bje}}Cn}{{Df{Bn}}}AFfEb}``{{{j{Bj{AFj{c}}}}{j{{AFj{c}}}}}BnAFf}{{{j{Bj{AFn{c}}}}{AFn{c}}}BnAG`}{{{j{Bj{AFj{c}}}}}BnAFf}{{{j{{AFj{c}}}}}FlAFf}{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AFj{c}}}}{j{e}}}BfAFfAAf}{{{AFn{c}}{j{e}}{j{{AFh{c}}}}}BfAG`AAf}{{{j{{AFj{c}}}}}{{AFj{c}}}{CfAFf}}{{{j{{AFn{c}}}}}{{AFn{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}08{{}{{AFj{c}}}{KjAFf}}{{}{{AFn{c}}}{KjAFf}}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{CbBn}0{{{j{{AFj{c}}}}{j{e}}}{}AFfAAf}{{{j{{AFj{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFn{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}0{{}Cb}0{ce{}{}}0{{}{{AFj{c}}}AFf}{{}{{AFn{c}}}AG`}{{{j{{AFj{c}}}}}FlAFf}{{{j{Bj{AFj{c}}}}}BnAFf}{{{j{Bj{AFn{c}}}}}BnAG`}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}088````{{{j{c}}}{{j{e}}}{}{}}000{{{j{Bjc}}}{{j{Bje}}}{}{}}000{{{j{{AGb{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}{AFfOd}AAfClOn{{AAd{i}}}{{Hb{}{{Ed{`}}}}Cf}}{{{j{{AGd{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}{AFfOd}AAfClOn{{AAd{i}}}{{Hb{}{{Ed{`}}}}Cf}}{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{j{{AGb{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGf{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGd{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGh{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}000{{}Cb}000{ce{}{}}000{{{j{{AFd{c}}}}}{{AGb{c}}}{AFfOd}}{{}{{AGf{c}}}{AG`Od}}{{{j{{AFd{c}}}}}{{AGd{c}}}{AFfOd}}{{{j{{AFd{c}}}}}{{AGd{c}}}AFf}{{}{{AGh{c}}}{AG`Od}}{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000{{{j{{AGf{c}}}}{j{Bjg}}i{AFn{c}}}{{Dn{kACd}}}{AG`Od}On{{ABf{e}}}{{Hb{}{{Ed{{`{{AFj{c}}}}}}}}Cf}{}}{{{j{{AGh{c}}}}{j{Bjg}}i{AFn{c}}}{{Dn{kACd}}}{AG`Od}On{{ABf{e}}}{{Hb{}{{Ed{{`{{AFj{c}}}}}}}}Cf}{}}9999```{{{j{c}}}{{j{e}}}{}{}}00{{{j{Bjc}}}{{j{Bje}}}{}{}}00{{{j{{AGj{c}}}}}{{AGj{c}}}{CfAG`}}{{{j{{AGl{c}}}}}{{AGl{c}}}{CfAFf}}{{{j{{AGn{c}}}}}{{AGn{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}00{Cb{{j{c}}}{}}00{Cb{{j{Bjc}}}{}}00{CbBn}00{{{AGl{c}}}Bf{AG`Od}}{{{AGn{c}}}Bf{AG`Od}}{{{j{{AGj{c}}}}{j{BjD`}}}Db{OdAG`}}{{{j{{AGl{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGn{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}00{{}Cb}00{ce{}{}}00{{{j{{AFh{c}}}}}{{AGl{c}}}AG`}{{{j{{AFh{c}}}}}{{AGl{c}}}{AG`Od}}{{{j{{AFh{c}}}}}{{AGn{c}}}{AG`Od}}0{{{AGl{c}}e}{{Dn{gOb}}}{AG`Od}{{In{}{{Aj{{Dn{Ob}}}}}}}{}}{{{AGn{c}}e}{{Dn{gOb}}}{AG`Od}{{In{}{{Aj{{Dn{Ob}}}}}}}{}}{{{j{c}}}e{}{}}00{c{{Dn{e}}}{}{}}00000{{{j{c}}}E`{}}00888{{{AFn{c}}{j{{AFh{c}}}}}{{AGl{c}}}AG`}`````````````{{{j{{On{}{{AH`{c}}}}}}}{{AHb{eg}}}{}h{}}{{{j{c}}}{{j{e}}}{}{}}00000{{{j{Bjc}}}{{j{Bje}}}{}{}}00000{{{j{{AHd{ceg}}}}}{{AHd{ceg}}}{CfDh}{Cfh}{Cf{On{e}}}}{{{j{{AHf{ceg}}}}}{{AHf{ceg}}}{CfDh}{Cfh}{Cf{On{e}}}}{{{j{{AHh{ceg}}}}}{{AHh{ceg}}}{CfEb}{Cfh}{Cf{On{e}}}}{{{j{{AHj{ceg}}}}}{{AHj{ceg}}}{CfEb}{Cfh}{Cf{On{e}}}}{{{j{{AHb{ce}}}}}{{AHb{ce}}}{Cfh}Cf}{{{j{{AHl{c}}}}}{{AHl{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}00000{{{j{BjA@`}}c}{{Df{Bn}}}h}{{{j{Bj{AHd{ce{AHl{e}}}}}}e}{{Df{Bn}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}e}{{Df{Bn}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{BjA@`}}}{{Df{Bn}}}}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{Df{Bn}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{Df{Bn}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{Cb{{j{c}}}{}}000{{{j{{AHb{ce}}}}}{{j{g}}}h{}{}}11{{{j{{AHl{c}}}}}{{j{e}}}h{}}{Cb{{j{Bjc}}}{}}00000{CbBn}00000{AHncEb}{{{AHh{ce{AHl{e}}}}}cEbh}{{{AHj{ce{AHl{e}}}}}cEbh}{{{j{{AHd{ceg}}}}{j{BjD`}}}Db{OdDh}{Odh}{Od{On{e}}}}{{{j{{AHf{ceg}}}}{j{BjD`}}}Db{OdDh}{Odh}{Od{On{e}}}}{{{j{{AHh{ceg}}}}{j{BjD`}}}Db{OdEb}{Odh}{Od{On{e}}}}{{{j{{AHj{ceg}}}}{j{BjD`}}}Db{OdEb}{Odh}{Od{On{e}}}}{{{j{{AHb{ce}}}}{j{BjD`}}}Db{Odh}Od}{{{j{{AHl{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}00000{{{j{{On{}{{AH`{c}}}}}}}{}{}}{{{j{{AHl{c}}}}}{}h}{cAI`Dh}{cAHnEb}{c{{AHd{ce{AHl{e}}}}}Dhh}{{}Cb}{c{{AHf{ce{AHl{e}}}}}Dhh}11{c{{AHh{ce{AHl{e}}}}}Ebh}2{c{{AHj{ce{AHl{e}}}}}Ebh}33{ce{}{}}00000{{{j{c}}}{{On{}{{AH`{c}}}}}{}}{{{j{{AIb{Oj}}}}}{{AHl{c}}}h}{{{j{Bjg}}Cb}{{Df{{Fl{c}}}}}h{{On{c}}}{{ABf{ce}}}}{{{j{Bjg}}Cb}{{Df{Fl}}}h{{On{c}}}{{ABf{ce}}}}{{{j{BjABf}}}{{Df{c}}}h}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{Df{e}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{Df{e}}}Dhh}{{{j{BjABf}}}Df}{{{j{Bj{AHd{ce{AHl{e}}}}}}}DfDhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}DfDhh}{{{j{BjA@`}}}eh{{On{c}}}}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{AHl{e}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{AHl{e}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{AHl{e}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{AHl{e}}}Ebh}{{{j{BjA@`}}}{{AHb{ce}}}h{}}{{{j{c}}}e{}{}}00000{c{{Dn{e}}}{}{}}00000000000{{{j{c}}}E`{}}00000{ce{}{}}00000{{{j{BjAAd}}c}{{Df{Bn}}}h}{{{j{Bj{AHh{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{BjAAd}}}{{Df{Bn}}}}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}","D":"D@d","p":[[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",6,1195],[1,"reference"],[5,"Coordinates",1195],[5,"CtOption",1196],[10,"WithSmallOrderMulGroup",1197],[10,"Ord",1198],[17,"AffineExt"],[10,"CurveExt",6,1195],[10,"Field",6,1197],[17,"Output"],[10,"Mul",1199],[1,"str"],[10,"Fn",1200],[5,"Box",1201],[5,"Choice",1196],[1,"bool"],[1,"tuple"],[0,"mut"],[1,"slice"],[1,"unit"],[10,"Send",1202],[1,"usize"],[10,"Sync",1202],[10,"Clone",1203],[1,"u64"],[10,"AsRef",1204],[10,"RngCore",1205],[6,"SerdeFormat",43],[5,"Formatter",1206],[8,"Result",1206],[10,"CurveRead",43],[8,"Result",1207],[10,"Read",1208],[10,"SerdeCurveAffine",43],[10,"SerdePrimeField",43],[6,"Result",1209],[5,"TypeId",1210],[10,"Write",1208],[17,"Item"],[10,"ParallelIterator",72,1211],[10,"ParallelSliceMut",72,1212],[10,"IndexedParallelIterator",72,1211],[5,"ExponentialBlocks",1213],[5,"UniformBlocks",1213],[5,"Chain",1214],[10,"IntoParallelIterator",72,1211],[5,"Chunks",1215],[5,"Cloned",1216],[6,"Ordering",1198],[10,"FromParallelIterator",1211],[5,"Vec",1217],[5,"LinkedList",1218],[5,"Copied",1219],[10,"Consumer",1220],[10,"UnindexedConsumer",1220],[5,"Enumerate",1221],[5,"Filter",1222],[5,"FilterMap",1223],[6,"Option",1224],[5,"FlatMap",1225],[5,"FlatMapIter",1226],[10,"IntoIterator",1227],[5,"Flatten",1228],[5,"FlattenIter",1229],[5,"Scope",72,1230],[5,"Error",1206],[5,"Fold",1231],[5,"FoldChunks",1232],[5,"FoldChunksWith",1233],[5,"FoldWith",1231],[5,"Inspect",1234],[5,"Interleave",1235],[5,"InterleaveShortest",1236],[5,"Intersperse",1237],[17,"Iter"],[10,"FnOnce",1200],[5,"Map",1238],[5,"MapInit",1239],[5,"MapWith",1239],[5,"PanicFuse",1240],[5,"ChunkByMut",1241],[5,"ChunksExactMut",1242],[5,"ChunksMut",1242],[10,"IntoParallelRefIterator",72,1211],[10,"IntoParallelRefMutIterator",72,1211],[5,"RChunksExactMut",1243],[5,"RChunksMut",1243],[5,"SplitInclusiveMut",1212],[5,"SplitMut",1212],[10,"Default",1244],[10,"ParallelExtend",1211],[6,"Either",1245],[5,"Positions",1246],[10,"Product",1247],[5,"Rev",1248],[5,"Skip",1249],[5,"SkipAny",1250],[5,"SkipAnyWhile",1251],[5,"BroadcastContext",1252],[5,"StepBy",1253],[10,"Sum",1247],[5,"Take",1254],[5,"TakeAny",1255],[5,"TakeAnyWhile",1256],[5,"TryFold",1257],[10,"Try",1258],[10,"TryFoldAndReduce",72,1259],[5,"TryFoldWith",1257],[5,"Update",1260],[5,"WhileSome",1261],[5,"MaxLen",1262],[5,"MinLen",1262],[10,"ProducerCallback",1220],[5,"Zip",1263],[5,"ZipEq",1264],[5,"VerifyingKey",216],[5,"ProvingKey",216],[6,"Error",216,1265],[10,"Debug",1206],[5,"PinnedVerificationKey",216],[5,"Error",1207],[1,"u8"],[5,"EvaluationDomain",369,1266],[10,"EncodedChallenge",1040],[10,"Transcript",1040],[1,"u32"],[10,"Error",1267],[5,"String",1268],[5,"CompiledCircuit",1269],[10,"Params",539],[5,"ProverSingle",312],[5,"HashMap",1270],[10,"CommitmentScheme",539],[10,"Prover",539],[10,"TranscriptWrite",1040],[10,"MsmAccel",1271],[5,"Prover",312],[5,"H2cEngine",1272],[5,"PlonkEngine",1272],[5,"BatchVerifier",349,1273],[8,"ParamsVerifierIPA",609],[10,"Verifier",539],[10,"VerificationStrategy",369,1274],[10,"TranscriptRead",1040],[5,"Polynomial",369],[10,"Basis",369],[5,"Coeff",369],[5,"LagrangeCoeff",369],[5,"ExtendedLagrangeCoeff",369],[5,"PinnedEvaluationDomain",369,1266],[6,"Error",369],[5,"RangeFull",1275],[5,"RangeFrom",1275],[10,"Iterator",1276],[1,"i32"],[5,"Rotation",1277],[5,"Blind",539],[10,"MSM",539],[10,"ParamsProver",539],[17,"MSM"],[10,"ParamsVerifier",539],[10,"PartialEq",1198],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",369,1274],[5,"ParamsIPA",609],[5,"MSMIPA",654],[5,"IPACommitmentScheme",609],[5,"GuardIPA",716],[5,"ProverIPA",684,1278],[5,"VerifierIPA",684,1279],[5,"Accumulator",716],[5,"AccumulatorStrategy",716],[5,"SingleStrategy",716],[5,"ParamsKZG",793],[10,"Engine",1280],[5,"ParamsVerifierKZG",793],[5,"MSMKZG",866],[5,"KZGCommitmentScheme",793],[5,"DualMSM",866],[10,"MultiMillerLoop",1280],[5,"ProverGWC",915,1281],[5,"ProverSHPLONK",915,1282],[5,"VerifierGWC",915,1283],[5,"VerifierSHPLONK",915,1284],[5,"GuardKZG",980],[5,"AccumulatorStrategy",980],[5,"SingleStrategy",980],[17,"Input"],[5,"ChallengeScalar",1040],[5,"Blake2bRead",1040],[5,"Keccak256Read",1040],[5,"Blake2bWrite",1040],[5,"Keccak256Write",1040],[5,"Challenge255",1040],[10,"TranscriptWriterBuffer",1040],[10,"TranscriptReadBuffer",1040],[1,"array"],[15,"NotEnoughRowsAvailable",309]],"r":[[2,1285],[10,1195],[11,1195],[13,1197],[72,1211],[73,1211],[74,1211],[75,1211],[83,1211],[84,1212],[85,1230],[86,1259],[103,1286],[141,1287],[184,1230],[219,1265],[349,1273],[372,1266],[374,1274],[380,1266],[383,1274],[620,1288],[650,1289],[684,1278],[685,1279],[915,1281],[916,1282],[917,1283],[918,1284]],"b":[[254,"impl-Debug-for-Error"],[255,"impl-Display-for-Error"],[464,"impl-Index%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[465,"impl-Index%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[466,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[467,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[468,"impl-IndexMut%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[469,"impl-IndexMut%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[503,"impl-Sub%3C%26Polynomial%3CF,+B%3E%3E-for-Polynomial%3CF,+B%3E"],[504,"impl-Sub%3CF%3E-for-%26Polynomial%3CF,+B%3E"],[558,"impl-AddAssign-for-Blind%3CF%3E"],[559,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[586,"impl-MulAssign-for-Blind%3CF%3E"],[587,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[656,"impl-MSMIPA%3C\'a,+C%3E"],[657,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[959,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[960,"impl-ProverSHPLONK%3C\'a,+E%3E"],[1018,"impl-AccumulatorStrategy%3CE%3E"],[1019,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[1020,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"],[1021,"impl-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKkCcwAAAAAAAgABACwAAAAwAAAAMgACADYABQA9AAAAQgAEAFcAAABbAAEAaQABAG0AAAB8AAAAhwAAAMoAAQDOAAAA0gAAAOYAFwD/AAQABQEAAA4BAwAcAQAAHwECACMBCwAwAQMAOwEDAEMBBwBNAQEAUQEAAFYBBwBgAQUAZwEAAGkBAABsAQIAcQEAAHgBAACBARkAoAEPALEBBgC/AQYA0QEMAO0BAADwAQAA+AEjAC4CAgA0AgEANwIBAD0CAgBBAgAAQwIAAEUCAABHAgAASgICAFcCAwBcAgAAZQIFAG4CCQB6AgEAfgIBAIECAACDAgcAjAIBAJYCCwCjAgAApgIGAK8CAwC0AgcAvgIBAMICCgDRAgsA3gILAOwCAwD1AgMA/QIRABIDAwAdAxwAPgMCAEQDBQBNAwEAUAMOAGIDAABlAwAAZwMGAG8DAwB0AwoAgQMBAIcDAQCKAwkAmAMHAKIDDwC2AwMAvgMCAMIDDQDRAwMA2AMZAPUDAgD8AwEA/wMQAB8EFwA4BAMAPQQXAFYEAABYBAUAZQQAAGkEAABrBAEAbgQAAHAEAQB5BAIAfQQBAIAEAQCDBAMAiAQdAKcEAQCqBAEA"}],\ +["halo2_backend",{"t":"CCCCCCRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMKPPPKGKNNNNNNNNNNNNNNNNNNNNNNKKKKRRRRRRRKKFKNNMNNNNNNNNNNNNNHNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMHNMNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNPPPGPPPPPFFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNCNNNNNNOHHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNHHNKFGFFKKFRPRFFPKONNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFKRFFKKKKKNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMMNNNNNNNNNNNNNNNNMNHHMNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNN","n":["arithmetic","helpers","multicore","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","CurveRead","Processed","RawBytes","RawBytesUnchecked","SerdeCurveAffine","SerdeFormat","SerdePrimeField","borrow","borrow_mut","byte_length","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read","read","read","to_owned","try_from","try_into","type_id","vzip","write","write","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","BoundsFailure","ColumnNotInPermutation","ConstraintSystemFailure","Error","InstanceTooLarge","InvalidInstances","NotEnoughRowsAvailable","Opening","Other","PinnedVerificationKey","ProvingKey","Transcript","VerifyingKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fixed_commitments","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_bytes","get_domain","get_vk","hash_into","init","init","init","init","into","into","into","into","keygen","not_enough_rows_available","pinned","prover","read","read","source","to_bytes","to_bytes","to_owned","to_owned","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verifier","vzip","vzip","vzip","vzip","write","write","current_k","keygen_pk","keygen_vk","Prover","ProverSingle","borrow","borrow","borrow_mut","borrow_mut","commit_phase","commit_phase","create_proof","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","new_with_engine","new_with_engine","phases","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","BatchVerifier","add_proof","borrow","borrow_mut","default","deref","deref_mut","drop","finalize","fmt","from","init","into","new","try_from","try_into","type_id","verify_proof","verify_proof_single","vzip","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeBasis","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","SamplingError","VerificationStrategy","_marker","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","index","index","index","index_mut","index_mut","index_mut","init","init","init","init","init","init","init","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new_empty","new_lagrange_from_vec","num_coeffs","pinned","process","rotate","rotate_extended","rotate_omega","sub","sub","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","values","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","COMMIT_INSTANCE","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit_lagrange","commit_lagrange","deref","deref","deref","deref_mut","deref_mut","deref_mut","downsize","downsize","drop","drop","drop","empty_msm","empty_msm","fmt","fmt","fmt","from","from","from","from_parts","init","init","init","into","into","into","k","k","n","n","new","new_params","read","read","read_custom","read_custom","read_params","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verifier_params","vzip","vzip","vzip","write","write","write_custom","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Keccak256Read","Keccak256Write","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","finalize","finalize","finalize","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","new","new","read_n_points","read_n_scalars","read_point","read_point","read_point","read_scalar","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_point","write_point","write_point","write_scalar","write_scalar","write_scalar"],"q":[[0,"halo2_backend"],[6,"halo2_backend::arithmetic"],[43,"halo2_backend::helpers"],[72,"halo2_backend::multicore"],[216,"halo2_backend::plonk"],[309,"halo2_backend::plonk::Error"],[310,"halo2_backend::plonk::keygen"],[312,"halo2_backend::plonk::prover"],[349,"halo2_backend::plonk::verifier"],[369,"halo2_backend::poly"],[539,"halo2_backend::poly::commitment"],[605,"halo2_backend::poly::ipa"],[609,"halo2_backend::poly::ipa::commitment"],[654,"halo2_backend::poly::ipa::msm"],[684,"halo2_backend::poly::ipa::multiopen"],[716,"halo2_backend::poly::ipa::strategy"],[789,"halo2_backend::poly::kzg"],[793,"halo2_backend::poly::kzg::commitment"],[866,"halo2_backend::poly::kzg::msm"],[915,"halo2_backend::poly::kzg::multiopen"],[980,"halo2_backend::poly::kzg::strategy"],[1040,"halo2_backend::transcript"],[1195,"pasta_curves::arithmetic::curves"],[1196,"subtle"],[1197,"ff"],[1198,"core::cmp"],[1199,"core::ops::arith"],[1200,"core::ops::function"],[1201,"alloc::boxed"],[1202,"core::marker"],[1203,"core::clone"],[1204,"core::convert"],[1205,"rand_core"],[1206,"core::fmt"],[1207,"std::io::error"],[1208,"std::io"],[1209,"core::result"],[1210,"core::any"],[1211,"rayon::iter"],[1212,"rayon::slice"],[1213,"rayon::iter::blocks"],[1214,"rayon::iter::chain"],[1215,"rayon::iter::chunks"],[1216,"rayon::iter::cloned"],[1217,"alloc::vec"],[1218,"alloc::collections::linked_list"],[1219,"rayon::iter::copied"],[1220,"rayon::iter::plumbing"],[1221,"rayon::iter::enumerate"],[1222,"rayon::iter::filter"],[1223,"rayon::iter::filter_map"],[1224,"core::option"],[1225,"rayon::iter::flat_map"],[1226,"rayon::iter::flat_map_iter"],[1227,"core::iter::traits::collect"],[1228,"rayon::iter::flatten"],[1229,"rayon::iter::flatten_iter"],[1230,"rayon_core::scope"],[1231,"rayon::iter::fold"],[1232,"rayon::iter::fold_chunks"],[1233,"rayon::iter::fold_chunks_with"],[1234,"rayon::iter::inspect"],[1235,"rayon::iter::interleave"],[1236,"rayon::iter::interleave_shortest"],[1237,"rayon::iter::intersperse"],[1238,"rayon::iter::map"],[1239,"rayon::iter::map_with"],[1240,"rayon::iter::panic_fuse"],[1241,"rayon::slice::chunk_by"],[1242,"rayon::slice::chunks"],[1243,"rayon::slice::rchunks"],[1244,"core::default"],[1245,"either"],[1246,"rayon::iter::positions"],[1247,"core::iter::traits::accum"],[1248,"rayon::iter::rev"],[1249,"rayon::iter::skip"],[1250,"rayon::iter::skip_any"],[1251,"rayon::iter::skip_any_while"],[1252,"rayon_core::broadcast"],[1253,"rayon::iter::step_by"],[1254,"rayon::iter::take"],[1255,"rayon::iter::take_any"],[1256,"rayon::iter::take_any_while"],[1257,"rayon::iter::try_fold"],[1258,"rayon::iter::private"],[1259,"halo2_middleware::multicore"],[1260,"rayon::iter::update"],[1261,"rayon::iter::while_some"],[1262,"rayon::iter::len"],[1263,"rayon::iter::zip"],[1264,"rayon::iter::zip_eq"],[1265,"halo2_backend::plonk::error"],[1266,"halo2_backend::poly::domain"],[1267,"core::error"],[1268,"alloc::string"],[1269,"halo2_middleware::circuit"],[1270,"std::collections::hash::map"],[1271,"halo2_middleware::zal::traits"],[1272,"halo2_middleware::zal::impls"],[1273,"halo2_backend::plonk::verifier::batch"],[1274,"halo2_backend::poly::strategy"],[1275,"core::ops::range"],[1276,"core::iter::traits::iterator"],[1277,"halo2_middleware::poly"],[1278,"halo2_backend::poly::ipa::multiopen::prover"],[1279,"halo2_backend::poly::ipa::multiopen::verifier"],[1280,"pairing"],[1281,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[1282,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[1283,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[1284,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[1285,"halo2_middleware"],[1286,"rayon_core"],[1287,"rayon_core::join"],[1288,"halo2_backend::poly::ipa::commitment::prover"],[1289,"halo2_backend::poly::ipa::commitment::verifier"]],"i":[0,0,0,0,0,0,11,11,4,11,0,0,4,0,12,11,4,12,11,4,11,4,4,12,12,11,4,11,12,11,4,12,12,11,11,0,12,12,12,12,12,12,12,0,31,31,31,0,0,0,31,31,37,31,31,31,31,31,31,31,31,31,34,37,38,31,31,31,31,31,37,38,0,0,0,0,49,87,88,43,49,87,88,0,0,0,0,43,43,44,68,68,45,45,43,45,43,45,43,45,43,43,43,0,68,68,45,43,68,45,45,43,43,43,43,43,43,43,43,43,43,43,43,68,43,45,45,43,43,43,43,68,45,45,68,43,45,45,43,68,49,0,45,45,45,43,43,43,43,43,43,43,43,43,45,43,43,44,44,44,87,88,44,44,44,44,44,44,44,44,44,44,44,45,43,43,45,45,45,45,43,43,43,45,0,45,43,43,68,68,45,43,45,43,43,43,110,43,43,43,43,68,68,43,43,68,43,45,43,68,43,45,45,45,45,45,121,121,121,0,121,121,121,121,121,0,0,121,0,121,119,123,120,121,119,123,120,119,120,119,120,121,119,123,120,121,119,123,120,121,119,123,120,119,121,121,119,123,120,121,121,119,123,120,119,120,119,120,119,121,119,123,120,121,119,123,120,0,121,119,0,119,120,121,119,120,119,120,121,119,121,119,123,120,121,119,123,120,121,119,123,120,0,121,119,123,120,119,120,202,0,0,0,0,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,134,140,140,134,140,134,140,134,140,134,140,0,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,0,0,143,0,0,0,0,0,0,0,0,168,154,146,0,0,154,0,148,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,150,151,152,148,126,150,151,152,148,126,126,0,126,126,126,153,154,150,151,152,148,148,126,153,154,150,151,152,148,148,126,126,153,154,150,151,152,148,126,126,126,126,126,126,146,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,126,126,126,148,148,148,148,148,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,0,148,148,126,0,126,126,126,148,146,126,148,148,148,126,146,148,126,126,148,148,126,150,151,152,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,126,153,154,150,151,152,148,148,126,153,154,150,151,152,148,0,164,0,136,145,0,164,145,0,0,136,0,136,0,137,145,136,0,160,160,160,161,161,161,160,160,161,160,160,162,133,137,137,160,160,160,133,160,164,160,161,160,160,160,160,133,160,160,160,133,162,137,145,160,136,133,136,161,161,160,160,160,160,145,160,133,0,0,0,0,0,0,0,169,171,169,171,169,169,169,169,0,169,171,169,171,169,169,171,169,169,171,169,171,169,171,169,171,169,169,169,171,169,171,169,169,171,169,171,169,171,0,169,171,169,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,0,173,174,173,174,173,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,173,174,174,173,174,0,0,0,0,172,175,176,177,172,175,176,177,172,175,172,175,172,172,175,176,177,172,175,176,177,172,175,176,177,176,177,172,175,176,177,172,175,176,177,175,172,175,176,177,172,175,176,177,176,177,176,177,172,175,172,175,176,177,172,175,176,177,172,175,176,177,175,172,172,172,175,176,177,0,0,0,0,0,0,0,178,180,182,178,180,182,178,180,178,180,178,178,180,178,180,182,178,180,182,178,180,178,180,182,178,180,178,180,182,178,180,182,178,178,180,182,178,180,182,178,180,178,180,178,182,178,180,178,180,182,178,178,180,178,180,182,178,180,182,178,180,182,178,178,180,182,178,180,178,180,0,0,181,183,181,181,181,183,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,183,181,181,183,181,183,181,183,181,183,181,183,181,183,0,0,0,0,185,187,186,188,185,187,186,188,185,186,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,188,185,187,186,186,188,185,187,186,188,185,187,186,188,185,187,186,188,187,188,185,187,186,188,0,0,0,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,190,191,191,190,191,189,190,191,189,190,191,189,190,191,189,190,191,189,190,191,190,0,0,0,0,0,127,0,0,0,0,0,0,0,127,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,128,194,195,196,197,128,194,195,196,197,194,195,196,197,193,193,198,198,194,195,196,197,193,198,194,195,196,197,193,198,199,196,197,194,195,196,197,193,198,194,195,196,197,193,198,127,198,200,199,194,194,195,195,196,196,197,197,193,198,194,195,196,197,193,198,127,198,0,0,147,194,195,147,194,195,128,194,195,196,197,128,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,194,195,196,197,193,198,138,196,197,138,196,197],"f":"``````````````````{{}c{}}000{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{n{{l{{h{}{{b{c}}{d{e}}{f{g}}}}}}}}}{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{Ah}}}Ah}0{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{cc}{{n{{h{}{{b{e}}{d{c}}{f{g}}}}}}}{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{An}}}{{Bb{B`}}}}{{{j{Ah}}}{{n{Ah}}}}{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}BdA`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Bd{A`Ab}{A`Ab}{{Af{}{{Ad{}}{b{}}}}}}{{{j{Ah}}}Bd}{{{j{Ah}}}Bf}{{{j{{Af{}{{b{c}}{d{e}}{Ad{g}}}}}}}{{Bh{eee}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{c}}{Al{c}}}}{{ccc}{{n{{Af{}{{b{e}}{d{c}}{Ad{g}}}}}}}A`A`{{h{}{{f{}}{b{}}{Aj{}}{Aj{}}}}{Al{e}}{Al{e}}}}{{{j{Bj{Bl{c}}}}e}BnC`{{B`{{j{Bj{Bl{c}}}}Cb}}C`CdCf}}{{{j{Ah}}c}Ah{{Cj{{Bl{Ch}}}}}}0{cAhCl}9{{{j{Ah}}}{{Bh{BdAh}}}}{{{j{Ah}}{j{Ah}}}{{Bh{BdAh}}}}?```````{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{CnCb}{{{j{Cn}}}Cn}{{{j{c}}{j{Bje}}}Bn{}{}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{j{Cn}}{j{BjD`}}}Db}{cc{}}{{}Cb}{ce{}{}}{{{j{Bjc}}}{{Df{Dd}}}Dh}{{{j{Bjc}}Cn}{{Df{Dj}}}Dh}{{{j{Bjc}}Cn}{{Df{Dl}}}Dh}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}6{{{j{Dj}}{j{Bjc}}Cn}{{Df{Bn}}}Eb}{{{j{Dl}}{j{Bjc}}Cn}{{Df{Bn}}}Eb}```````````````{{{Ef{}{{Ed{c}}}}e}BfC`{{B`{c}{{Aj{Bf}}}}CdC`}}0{{{j{BjEh}}}{{j{Bj{Bl{c}}}}}C`}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{Ej{{El{Ej}}}}{{EjCb}{{En{Ej}}}}{{{Ef{}{{Ed{c}}}}e}{{F`{{Ef{}{{Ed{c}}}}}}}C`{{Fb{}{{Ed{c}}}}}}{{EjCb}{{Fd{Ej}}}}{{{Ef{}{{Ed{c}}}}}{{Ff{{Ef{}{{Ed{c}}}}}}}C`}{{Eje}Fh{}{{Fb{}{{Ed{c}}}}}}{{{Ef{}{{Ed{c}}}}}eC`{{Fj{c}}}}{{Ej{j{Bj{Fl{c}}}}}Bn{}}{{{Ef{}{{Ed{c}}}}}{{Fn{{Fl{c}}}}}C`}{{{Ef{}{{Ed{c}}}}}{{G`{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}}CbC`}{{}Cb}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{{Eje}{}{}{{Gb{c}}}}{{{Ef{}{{Ed{c}}}}e}{}C`{{Gd{c}}}}{CbBn}{Ej{{Gf{Ej}}}}{{Ejc}BfFb}{{{Ef{}{{Ed{c}}}}e}{{Gh{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{Gj{{Ef{}{{Ed{c}}}}g}}}C`C`{{B`{c}{{Aj{{Gl{e}}}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}00{{{Ef{}{{Ed{c}}}}g}{{Gl{e}}}C`C`{{B`{c}{{Aj{{Gl{e}}}}}}CdC`}}00{{{Ef{}{{Ed{c}}}}g}{{Gn{{Ef{}{{Ed{c}}}}g}}}C`Fb{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{H`{{Ef{}{{Ed{c}}}}g}}}C`Hb{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}{{Hd{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}}{{Hf{{Ef{}{{Ed{c}}}}}}}C`}{{{j{Hh}}{j{BjD`}}}{{Dn{BnHj}}}}{{{Ef{}{{Ed{c}}}}gi}{{Hl{{Ef{}{{Ed{c}}}}gi}}}C`C`{{B`{}{{Aj{e}}}}CdC`}{{B`{ec}{{Aj{e}}}}CdC`}}{{EjCbei}{{Hn{Ejei}}}C`{{B`{}{{Aj{c}}}}C`Cd}{}{{B`{cg}{{Aj{c}}}}C`Cd}}{{EjCbcg}{{I`{Ejcg}}}{C`Cf}{}{{B`{ce}{{Aj{c}}}}C`Cd}}{{{Ef{}{{Ed{c}}}}eg}{{Ib{{Ef{}{{Ed{c}}}}eg}}}C`{C`Cf}{{B`{ec}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}BnC`{{B`{c}}CdC`}}{{{Ef{}{{Ed{c}}}}gi}BnC`{}{{B`{}{{Aj{e}}}}CdC`}{{B`{{j{Bje}}c}}CdC`}}{{{Ef{}{{Ed{c}}}}eg}BnC`{C`Cf}{{B`{{j{Bje}}c}}CdC`}}{cc{}}{{Ejc}BfFb}0{{}Cb}{{{Ef{}{{Ed{c}}}}e}{{Id{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}}CdC`}}{{Eje}{{If{Ej}}}{}{{Fb{}{{Ed{c}}}}}}{{Eje}{{Ih{Ej}}}{}{{Fb{}{{Ed{c}}}}}}{{{Ef{}{{Ed{c}}}}c}{{Ij{{Ef{}{{Ed{c}}}}}}}C`}{ce{}{}}{{{Fb{}{{Il{c}}{Ed{e}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{ei}{{Bh{cg}}}C`{{In{}{{Aj{c}}}}C`}C`{{In{}{{Aj{g}}}}C`}}8{{{j{Ej}}}Cb}9{{{Ef{}{{Ed{c}}}}g}{{J`{{Ef{}{{Ed{c}}}}g}}}C`C`{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}{{Jb{{Ef{}{{Ed{c}}}}gk}}}C`{}{{B`{}{{Aj{e}}}}CdC`}C`{{B`{{j{Bje}}c}{{Aj{i}}}}CdC`}}{{{Ef{}{{Ed{c}}}}ei}{{Jd{{Ef{}{{Ed{c}}}}ei}}}C`{C`Cf}C`{{B`{{j{Bje}}c}{{Aj{g}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}{{Gl{c}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{CdC`{B`{{j{c}}{j{c}}}{{Aj{Fh}}}}}}{{{Ef{}{{Ed{c}}}}g}{{Gl{c}}}C`{AbC`}{CdC`{B`{{j{c}}}{{Aj{e}}}}}}210?{{{j{{Ef{}{{Ed{c}}}}}}}{{Gl{Cb}}}C`}{{{Ef{}{{Ed{c}}}}}{{Jf{{Ef{}{{Ed{c}}}}}}}C`}{{{j{BjEh}}e}{{Jh{ce}}}C`{{B`{{j{c}}{j{c}}}{{Aj{Bf}}}}C`Cd}}{{{j{BjEh}}Cb}{{Jj{c}}}C`}{{{j{BjEh}}Cb}{{Jl{c}}}C`}{{{j{{Jn{}{{Il{c}}{Ed{e}}}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{{j{Bj{K`{}{{Il{c}}{Ed{e}}}}}}}c{{Ef{}{{Ed{e}}}}}C`}{{{j{BjEh}}Cb}{{Kb{c}}}C`}{{{j{BjEh}}Cb}{{Kd{c}}}C`}{{{j{BjEh}}}Bn}{{{j{BjEh}}e}BnC`{{B`{{j{c}}{j{c}}}{{Aj{Fh}}}}Cd}}{{{j{BjEh}}g}BnC`{AbC`}{{B`{{j{c}}}{{Aj{e}}}}Cd}}{{{j{BjEh}}g}BnC`Ab{{B`{{j{c}}}{{Aj{e}}}}Cd}}320{{{j{BjEh}}e}{{Kf{ce}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{j{BjEh}}e}{{Kh{ce}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{Ejc}{{Gl{Fh}}}Fb}{{{Ef{}{{Ed{c}}}}e}{{Bh{gi}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}{KjC`{Kl{c}}}{KjC`{Kl{c}}}}{{{Ef{}{{Ed{c}}}}i}{{Bh{km}}}C`C`C`{{B`{c}{{Aj{{Kn{eg}}}}}}CdC`}{KjC`{Kl{e}}}{KjC`{Kl{g}}}}{{Eje}{{Gl{Cb}}}{}{{B`{c}{{Aj{Bf}}}}CdC`}}00{{Eje}{{L`{Eje}}}{}{{B`{c}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}}eC`{C`{Lb{c}}Lb}}{{{Ef{}{{Ed{c}}}}eg}cC`{{B`{}{{Aj{c}}}}CdC`}{{B`{cc}{{Aj{c}}}}CdC`}}{{{Ef{}{{Ed{c}}}}e}{{Gl{c}}}C`{{B`{cc}{{Aj{c}}}}CdC`}}{Ej{{Ld{Ej}}}}{ecC`{{In{{j{Hh}}}{{Aj{c}}}}C`}}{{EjCb}{{Lf{Ej}}}}{{{Ef{}{{Ed{c}}}}Cb}{{Lh{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Lj{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{j{Hh}}c}Bn{{In{{j{Hh}}}}C`}}{{{j{Hh}}c}Bn{{B`{{j{Hh}}Ll}}C`Cd}}{{EjCb}{{Ln{Ej}}}}{{{Ef{}{{Ed{c}}}}}eC`{C`{M`{c}}M`}}{{EjCb}{{Mb{Ej}}}}{{{Ef{}{{Ed{c}}}}Cb}{{Md{{Ef{}{{Ed{c}}}}}}}C`}{{{Ef{}{{Ed{c}}}}e}{{Mf{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{c}}}{{Aj{Bf}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}{{Mh{{Ef{}{{Ed{c}}}}igk}}}C`{}{{B`{}{{Aj{e}}}}CdC`}{{Mj{}{{Aj{e}}}}C`}{{B`{ec}{{Aj{i}}}}CdC`}}{{Mlei}{{Dn{cg}}}{}{{B`{}{{Aj{c}}}}C`Cd}{}{{B`{c{Dn{cg}}}{{Aj{{Dn{cg}}}}}}C`Cd}}{{{Ef{}{{Ed{c}}}}ei}{{Mn{{Ef{}{{Ed{c}}}}gi}}}C`{CfC`}{{Mj{}{{Aj{e}}}}C`}{{B`{ec}{{Aj{g}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}eC`{{Mj{}{{Aj{Bn}}}}C`}{{B`{c}{{Aj{e}}}}CdC`}}{{{Ef{}{{Ed{c}}}}gk}iC`{}{{B`{}{{Aj{e}}}}CdC`}{{Mj{}{{Aj{Bn}}}}C`}{{B`{{j{Bje}}c}{{Aj{i}}}}CdC`}}{{{Ef{}{{Ed{c}}}}ei}gC`{C`Cf}{{Mj{}{{Aj{Bn}}}}C`}{{B`{{j{Bje}}c}{{Aj{g}}}}CdC`}}{c{{Dn{e}}}{}{}}0{{{Ef{}{{Ed{c}}}}gi}cC`{}{{B`{}{{Aj{e}}}}CdC`}{{B`{ee}{{Aj{c}}}}CdC`}}{{{Ef{}{{Ed{c}}}}g}{{Gl{c}}}C`{}{{B`{ee}{{Aj{c}}}}CdC`}}{{{j{c}}}E`{}}{{{Ef{}{{Ed{c}}}}}{{Bh{gk}}}C`C`{KjC`{Kl{e}}}C`{KjC`{Kl{i}}}}{{Ej{j{Bj{Fl{c}}}}{j{Bj{Fl{e}}}}}BnC`C`}{{{Ef{}{{Ed{c}}}}e}{{N`{{Ef{}{{Ed{c}}}}e}}}C`{{B`{{j{Bjc}}}}CdC`}}{ce{}{}}{{{Ef{}{{Ed{c}}}}}{{Nb{{Ef{}{{Ed{c}}}}}}}C`}{{EjCb}{{Nd{Ej}}}}{{EjCb}{{Nf{Ej}}}}{{Eje}{}{}{{Nh{c}}}}{{Ejc}{{Nj{Ej}}}Fb}{{Ejc}{{Nl{Ej}}}Fb}`````````````{{{j{c}}}{{j{e}}}{}{}}000{{{j{Bjc}}}{{j{Bje}}}{}{}}000{{{j{{Nn{c}}}}}{{Nn{c}}}{Cfh}}{{{j{{O`{c}}}}}{{O`{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}0{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{j{{Nn{c}}}}}{{j{{Fl{c}}}}}h}{{{j{Ob}}{j{BjD`}}}Db}0{{{j{{Nn{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{Of{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{O`{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{OhOb}111``{{{j{{Nn{c}}}}}{{j{Ol}}}h}{{{j{{O`{c}}}}}{{j{{Nn{c}}}}}h}{{{j{{Nn{c}}}}{j{Bjg}}}{{Df{Bn}}}h{{On{c}}}{{A@`{ce}}}}{{}Cb}000{ce{}{}}000`{A@bOb}{{{j{{Nn{c}}}}}{{Of{c}}}h}```{{{j{Ob}}}{{Gl{{j{A@d}}}}}}{{{j{{Nn{c}}}}Cn}{{Fl{Oj}}}Dj}{{{j{{O`{c}}}}Cn}{{Fl{Oj}}}Dj}{{{j{c}}}e{}{}}0{{{j{c}}}A@f{}}{{{j{{Nn{c}}}}}{}h}{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000`::::{{{j{{Nn{c}}}}{j{Bje}}Cn}{{Df{Bn}}}DjEb}{{{j{{O`{c}}}}{j{Bje}}Cn}{{Df{Bn}}}DjEb}`{{{j{e}}{Nn{c}}{j{A@h}}}{{Dn{{O`{c}}Ob}}}h{{A@j{c}}}}{{{j{e}}{j{A@h}}}{{Dn{{Nn{c}}Ob}}}h{{A@j{c}}}}``{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{Bj{A@l{cegikm}}}}Oj{Fl{{Gl{Fl}}}}}{{Dn{{A@n{Cb}}Ob}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{j{Bj{AAh{cegikm}}}}Oj{Fl{{Fl{{Gl{Fl}}}}}}}{{Dn{{A@n{Cb}}Ob}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{A@l{cegikm}}}{{Dn{BnOb}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{{{AAh{cegikm}}}{{Dn{BnOb}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{CbBn}0{{{j{{A@l{cegikm}}}}{j{BjD`}}}Db{OdAA`}{Od{AAb{c}}}{OdOn}{OdCl}{Od{AAd{g}}}{OdAAf}}{{{j{{AAh{cegikm}}}}{j{BjD`}}}Db{OdAA`}{Od{AAb{c}}}{OdOn}{OdCl}{Od{AAd{g}}}{OdAAf}}{cc{}}0{{}Cb}0{ce{}{}}0{{j{j{O`}}{Fl{Fl}}c{j{Bjg}}}{{Dn{{A@l{ikecgAAj}}Ob}}}ClOn{{AAd{e}}}AA`{{AAb{i}}}}{{j{j{O`}}{j{{Bl{{Fl{Fl}}}}}}c{j{Bjg}}}{{Dn{{AAh{ikecgAAj}}Ob}}}ClOn{{AAd{e}}}AA`{{AAb{i}}}}{{{AAl{c}}j{j{O`}}{Fl{Fl}}e{j{Bji}}}{{Dn{{A@l{kmgeic}}Ob}}}AAfClOn{{AAd{g}}}AA`{{AAb{k}}}}{{{AAl{c}}j{j{O`}}{j{{Bl{{Fl{Fl}}}}}}e{j{Bji}}}{{Dn{{AAh{kmgeic}}Ob}}}AAfClOn{{AAd{g}}}AA`{{AAb{k}}}}{{{j{{AAh{cegikm}}}}}{{j{{Bl{Oj}}}}}AA`{{AAb{c}}}OnCl{{AAd{g}}}AAf}{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}077`{{{j{Bj{AAn{c}}}}{Fl{{Fl{Fl}}}}{Fl{Oj}}}Bnh}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{}{{AAn{c}}}{Kjh}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{AAn{c}}{j{{AB`{c}}}}{j{{Nn{c}}}}}Bfh}{{{j{{AAn{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{{}Cb}{ce{}{}}{{}{{AAn{c}}}h}>>={{j{j{Nn}}g{j{{Bl{{Fl{Fl}}}}}}{j{Bjk}}}{{Dn{Ob}}}AA`{{ABb{c}}}{{ABd{ce}}}On{{ABf{i}}}}{{j{j{Nn}}g{Fl{Fl}}{j{Bjk}}}{{Dn{Ob}}}AA`{{ABb{c}}}{{ABd{ce}}}On{{ABf{i}}}}3````````````````{{{ABh{ce}}{j{{ABh{ce}}}}}{{ABh{ce}}}AhABj}>>>>>>>======={{{j{{Ol{c}}}}}{{Ol{c}}}{CfAh}}{{{j{ABl}}}ABl}{{{j{ABn}}}ABn}{{{j{AC`}}}AC`}{{{j{{ABh{ce}}}}}{{ABh{ce}}}CfCf}{{{j{c}}{j{Bje}}}Bn{}{}}0000{{{j{{Ol{c}}}}{Fl{c}}}{{ABh{cABl}}}A`}{{{j{{Ol{c}}}}{ABh{cABl}}}{{ABh{cAC`}}}A`}`{{{j{{Ol{c}}}}c}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}c}{{ABh{cABn}}}A`}{Cb{{j{c}}}{}}00000{{{j{{ABh{ce}}}}}{{j{{Bl{c}}}}}{}{}}1{Cb{{j{Bjc}}}{}}000000{{{j{Bj{ABh{ce}}}}}{{j{Bj{Bl{c}}}}}{}{}}{{{j{{Ol{c}}}}{ABh{cAC`}}}{{ABh{cAC`}}}A`}{CbBn}000000{{{j{{Ol{c}}}}}{{ABh{cABl}}}A`}{{{j{{Ol{c}}}}}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}}{{ABh{cABn}}}A`}{{{j{{Ol{c}}}}}A@bA`}{{{j{{Ol{c}}}}}CbA`}{{{j{{Ol{c}}}}{ABh{cAC`}}}{{Fl{c}}}A`}{{{ABd{}{{Aj{c}}}}}Bf{}}{{{j{{Ol{c}}}}{j{BjD`}}}Db{OdAh}}{{{j{{ACb{c}}}}{j{BjD`}}}Db{OdAh}}{{{j{ACd}}{j{BjD`}}}Db}{{{j{ABl}}{j{BjD`}}}Db}{{{j{ABn}}{j{BjD`}}}Db}{{{j{AC`}}{j{BjD`}}}Db}{{{j{{ABh{ce}}}}{j{BjD`}}}DbOdOd}{cc{}}000000{{{j{{Ol{c}}}}}cA`}00;{{{j{{ABh{ce}}}}{ACf{Cb}}}{{j{{Bl{c}}}}}{}{}}{{{j{{ABh{ce}}}}Cb}{{j{c}}}{}{}}{{{j{{ABh{ce}}}}ACh}{{j{{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}Cb}{{j{Bjc}}}{}{}}{{{j{Bj{ABh{ce}}}}ACh}{{j{Bj{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}{ACf{Cb}}}{{j{Bj{Bl{c}}}}}{}{}}{{}Cb}000000{ce{}{}}000000`{{{j{{ABh{ce}}}}}{{`{{ACj{}{{Ed{{j{c}}}}}}}}}{}{}}{{{j{Bj{ABh{ce}}}}}{{`{{ACj{}{{Ed{{j{Bjc}}}}}}}}}{}{}}{{{j{{Ol{c}}}}}A@bA`}`{{{j{{Ol{c}}}}cce}{{Fl{c}}}A`{{Hb{}{{Ed{ACl}}}}Cf}}{{{j{{Ol{c}}}}{Fl{c}}}{{ABh{cABn}}}A`}{{{j{{Ol{c}}}}{ABh{cABn}}}{{ABh{cABl}}}A`}{{{ABh{ce}}c}{{ABh{ce}}}AhABj}{j{{ABd{}{{Aj{c}}}}}{}}{{A@bA@b}{{Ol{c}}}A`}{{Cbc}{{ABh{ce}}}Cf{}}{{{Fl{c}}}{{ABh{cABn}}}Cf}{{{j{{ABh{ce}}}}}Cb{}{}}{{{j{{Ol{c}}}}}{{ACb{c}}}A`}{{{ABd{}{{Aj{c}}}}e}{{Dn{cOb}}}{}{{In{}{{Aj{{Dn{Ob}}}}}}}}{{{j{{ABh{cABn}}}}ACn}{{ABh{cABn}}}Ah}{{{j{{Ol{c}}}}{j{{ABh{cAC`}}}}ACn}{{ABh{cAC`}}}A`}{{{j{{Ol{c}}}}cACn}cA`}{{{j{{ABh{ce}}}}c}{{ABh{ce}}}AhABj}{{{ABh{ce}}{j{{ABh{ce}}}}}{{ABh{ce}}}AhABj}{{{j{c}}}e{}{}}0000{c{{Dn{e}}}{}{}}0000000000000{{{j{c}}}E`{}}000000`{ce{}{}}000000``````````````````{{{AD`{c}}{AD`{c}}}{{AD`{c}}}Ah}{{{j{Bj{AD`{c}}}}{AD`{c}}}BnAh}{{{j{Bj{AD`{c}}}}c}BnAh}{{{j{BjADb}}{j{ADb}}}Bn}{{{j{BjADb}}}Bn}{{{j{ADb}}}Fl}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{{j{ADb}}{j{e}}}Bfh{{AAf{c}}}}{{{j{{AD`{c}}}}}{{AD`{c}}}Cf}{{{j{c}}{j{Bje}}}Bn{}{}}{{{j{ADd}}{j{e}}{j{{ABh{ABl}}}}AD`}{}h{{AAf{c}}}}{{{j{A@j}}{j{e}}{j{{ABh{ABn}}}}AD`}{}h{{AAf{c}}}}{{{j{AAb}}c{j{Bjg}}i}{{Df{Bn}}}ClOn{{AAd{e}}}{{Hb{}{{Ed{`}}}}Cf}}{{{j{AAb}}{j{c}}e{j{Bji}}k}{{Df{Bn}}}AAfClOn{{AAd{g}}}{{Hb{}{{Ed{`}}}}Cf}}{{}{{AD`{c}}}Ah}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{{{j{BjA@j}}A@b}Bn}{CbBn}{{{j{{ADh{}{{ADf{c}}}}}}}c{{ADb{e}}}h}{{{j{{AD`{c}}}}{j{{AD`{c}}}}}BfADj}{{{j{ADb}}{j{e}}}{}h{{AAf{c}}}}{{{j{{AD`{c}}}}{j{BjD`}}}DbOd}{cc{}}{{}Cb}{ce{}{}}{{{j{A@j}}}A@b}{{{AD`{c}}{AD`{c}}}{{AD`{c}}}Ah}{{{j{Bj{AD`{c}}}}{AD`{c}}}BnAh}{{{j{Bj{AD`{c}}}}c}BnAh}{{{j{A@j}}}Ch}{A@bADd}{jAAb}{{}{{ABb{}{{ADl{c}}{ADn{g}}}}}{{AE`{e}{{ADn{g}}}}}AA`{}}{{{j{Bjc}}}{{AD`{e}}}ClAh}{A@bc{}}{{{j{Bjc}}}{{Df{A@j}}}Dh}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{{j{ADb}}}Fl}{{{j{BjADb}}}Bn}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}{{{j{{ABb{}{{ADl{c}}{ADn{g}}}}}}{j{Bjk}}mg}{{Dn{cACd}}}{{AE`{e}{{ADn{g}}}}}AA`{}On{{ABf{i}}}{{Hb{}{{Ed{`}}}}Cf}}{ce{}{}}{{{j{A@j}}{j{Bjc}}}{{Df{Bn}}}Eb}```````{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AEb{c}}}}}{{AEb{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}{{{j{{AEb{c}}}}{j{e}}{j{{ABh{ABl}}}}AD`}{}h{{AAf{c}}}}{{{j{{AEb{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}h{{AAf{c}}}}{{{j{e}}{j{{AEb{c}}}}g{j{Bjk}}{j{{ABh{ABl}}}}AD`}{{Df{Bn}}}h{{AAf{c}}}Cl{{On{c}}}{{AAd{ci}}}}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{{{j{Bj{AEb{c}}}}A@b}Bnh}{CbBn}0{{{j{{AEb{c}}}}}{{AEd{c}}}h}{{{j{{AEb{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEf{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}0{{}Cb}0{ce{}{}}0{{{j{{AEb{c}}}}}A@bh}{{{j{{AEb{c}}}}}Chh}{A@b{{AEb{c}}}h}{A@bc{}}{{{j{Bjc}}}{{Df{{AEb{e}}}}}Dhh}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}0{{{AEd{c}}{j{Bjg}}}{{Dn{{AEh{c}}ACd}}}h{{On{c}}}{{ABf{ce}}}}::{{{j{{AEb{c}}}}{j{Bje}}}{{Df{Bn}}}hEb}`{{{j{Bj{AEd{c}}}}}Bnh}{{{j{Bj{AEd{c}}}}{j{{AEd{c}}}}}Bnh}0{{{j{Bj{AEd{c}}}}{j{Bl}}}Bnh}222{{{j{{AEd{c}}}}}Flh}{{{j{c}}}{{j{e}}}{}{}}{{{j{Bjc}}}{{j{Bje}}}{}{}}{{{j{{AEd{c}}}}{j{e}}}Bfh{{AAf{c}}}}{{{j{{AEd{c}}}}}{{AEd{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}{Cb{{j{c}}}{}}{Cb{{j{Bjc}}}{}}{CbBn}{{{j{{AEd{c}}}}{j{e}}}{}h{{AAf{c}}}}{{{j{{AEd{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}{{}Cb}{ce{}{}}{{{j{{AB`{c}}}}}{{AEd{c}}}h}>{{{j{Bj{AEd{c}}}}}Bnh}{{{j{c}}}e{}{}}{c{{Dn{e}}}{}{}}0{{{j{c}}}E`{}}5``{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AEj{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}h{{AAf{c}}}Cl{{On{c}}}{{AAd{ci}}}{{Hb{}{{Ed{{`{c}}}}}}Cf}}??>>=={{{j{{AEj{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEl{c}}}}{j{BjD`}}}Db{Odh}}<<;;::{{{j{{AEb{c}}}}}{{AEj{c}}}h}{{}{{AEl{c}}}h}888877{{{j{{AEl{c}}}}{j{Bjg}}i{AEd{c}}}{{Dn{kACd}}}h{{On{c}}}{{ABf{ce}}}{{Hb{}{{Ed{{`{c{AEd{c}}}}}}}}Cf}{}}==````77776666{{{j{{AEh{c}}}}}{{AEh{c}}}{Cfh}}{{{j{{AEn{c}}}}}{{AEn{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}0{{{j{{AEh{c}}}}{j{e}}}ch{{AAf{c}}}}{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{AF`{c}}}Bfh}{{{AFb{c}}}Bfh}{{{j{{AEh{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AEn{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AF`{c}}}}{j{BjD`}}}Db{Odh}}{{{j{{AFb{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}000`{{}Cb}000{ce{}{}}000{{{j{{AEb{c}}}}}{{AF`{c}}}h}{{{j{{AEb{c}}}}}{{AFb{c}}}h}{{{AF`{c}}e}{{Dn{gOb}}}h{{In{{AEd{c}}}{{Aj{{Dn{{AEh{c}}Ob}}}}}}}{}}{{{AFb{c}}e}{{Dn{gOb}}}h{{In{{AEd{c}}}{{Aj{{Dn{{AEh{c}}Ob}}}}}}}{}}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000`{{{AEh{c}}}{{AEd{c}}}h}{{{AEh{c}}c}{{Bh{{AEd{c}}{AEn{c}}}}}h}9999```````{{{j{c}}}{{j{e}}}{}{}}00{{{j{Bjc}}}{{j{Bje}}}{}{}}00{{{j{{AFd{c}}}}}{{AFd{c}}}{CfAFf}}{{{j{{AFh{c}}}}}{{AFh{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}0{{{j{{AFd{c}}}}{j{e}}{j{{ABh{ABl}}}}AD`}{}AFfAAf}{{{j{{AFd{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}AFfAAf}{{{j{{AFh{c}}}}{j{e}}{j{{ABh{ABn}}}}AD`}{}AFfAAf}{Cb{{j{c}}}{}}00{Cb{{j{Bjc}}}{}}00{{{j{Bj{AFd{c}}}}A@b}BnAFf}{{{j{Bj{AFh{c}}}}A@b}BnAFf}{CbBn}00{{{j{{AFd{c}}}}}{{AFj{c}}}AFf}{{{j{{AFh{c}}}}}{{AFj{c}}}AFf}{{{j{{AFd{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFh{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFl{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}00{{{j{{AFd{c}}}}A@bFl{Gl{Fl}}}{{AFd{c}}}AFf}{{}Cb}00{ce{}{}}00{{{j{{AFd{c}}}}}A@bAFf}{{{j{{AFh{c}}}}}A@bAFf}{{{j{{AFd{c}}}}}ChAFf}{{{j{{AFh{c}}}}}ChAFf}{A@b{{AFd{c}}}AFf}{A@bc{}}{{{j{Bjc}}}{{Df{{AFd{e}}}}}DhAFf}{{{j{Bjc}}}{{Df{{AFh{e}}}}}DhAFf}{{{j{Bjc}}Cn}{{Df{{AFd{e}}}}}DhAFf}{{{j{Bjc}}Cn}{{Df{{AFh{e}}}}}DhAFf}{{{j{Bjc}}}{{Df{e}}}Dh{}}{{A@bc}{{AFd{e}}}ClAFf}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}00000{{{j{c}}}E`{}}00{{{j{{AFd{c}}}}}{{AFh{c}}}AFf}{ce{}{}}00{{{j{{AFd{c}}}}{j{Bje}}}{{Df{Bn}}}AFfEb}{{{j{{AFh{c}}}}{j{Bje}}}{{Df{Bn}}}AFfEb}{{{j{{AFd{c}}}}{j{Bje}}Cn}{{Df{Bn}}}AFfEb}{{{j{{AFh{c}}}}{j{Bje}}Cn}{{Df{Bn}}}AFfEb}``{{{j{Bj{AFj{c}}}}{j{{AFj{c}}}}}BnAFf}{{{j{Bj{AFn{c}}}}{AFn{c}}}BnAG`}{{{j{Bj{AFj{c}}}}}BnAFf}{{{j{{AFj{c}}}}}FlAFf}{{{j{c}}}{{j{e}}}{}{}}0{{{j{Bjc}}}{{j{Bje}}}{}{}}0{{{j{{AFj{c}}}}{j{e}}}BfAFfAAf}{{{AFn{c}}{j{e}}{j{{AFh{c}}}}}BfAG`AAf}{{{j{{AFj{c}}}}}{{AFj{c}}}{CfAFf}}{{{j{{AFn{c}}}}}{{AFn{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}08{{}{{AFj{c}}}{KjAFf}}{{}{{AFn{c}}}{KjAFf}}{Cb{{j{c}}}{}}0{Cb{{j{Bjc}}}{}}0{CbBn}0{{{j{{AFj{c}}}}{j{e}}}{}AFfAAf}{{{j{{AFj{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AFn{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}0{{}Cb}0{ce{}{}}0{{}{{AFj{c}}}AFf}{{}{{AFn{c}}}AG`}{{{j{{AFj{c}}}}}FlAFf}{{{j{Bj{AFj{c}}}}}BnAFf}{{{j{Bj{AFn{c}}}}}BnAG`}{{{j{c}}}e{}{}}0{c{{Dn{e}}}{}{}}000{{{j{c}}}E`{}}088````{{{j{c}}}{{j{e}}}{}{}}000{{{j{Bjc}}}{{j{Bje}}}{}{}}000{{{j{{AGb{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}{AFfOd}AAfClOn{{AAd{i}}}{{Hb{}{{Ed{`}}}}Cf}}{{{j{{AGd{c}}}}{j{e}}g{j{Bjk}}m}{{Df{Bn}}}{AFfOd}AAfClOn{{AAd{i}}}{{Hb{}{{Ed{`}}}}Cf}}{Cb{{j{c}}}{}}000{Cb{{j{Bjc}}}{}}000{CbBn}000{{{j{{AGb{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGf{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGd{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGh{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}000{{}Cb}000{ce{}{}}000{{{j{{AFd{c}}}}}{{AGb{c}}}{AFfOd}}{{}{{AGf{c}}}{AG`Od}}{{{j{{AFd{c}}}}}{{AGd{c}}}{AFfOd}}{{{j{{AFd{c}}}}}{{AGd{c}}}AFf}{{}{{AGh{c}}}{AG`Od}}{c{{Dn{e}}}{}{}}0000000{{{j{c}}}E`{}}000{{{j{{AGf{c}}}}{j{Bjg}}i{AFn{c}}}{{Dn{kACd}}}{AG`Od}On{{ABf{e}}}{{Hb{}{{Ed{{`{{AFj{c}}}}}}}}Cf}{}}{{{j{{AGh{c}}}}{j{Bjg}}i{AFn{c}}}{{Dn{kACd}}}{AG`Od}On{{ABf{e}}}{{Hb{}{{Ed{{`{{AFj{c}}}}}}}}Cf}{}}9999```{{{j{c}}}{{j{e}}}{}{}}00{{{j{Bjc}}}{{j{Bje}}}{}{}}00{{{j{{AGj{c}}}}}{{AGj{c}}}{CfAG`}}{{{j{{AGl{c}}}}}{{AGl{c}}}{CfAFf}}{{{j{{AGn{c}}}}}{{AGn{c}}}{CfAFf}}{{{j{c}}{j{Bje}}}Bn{}{}}00{Cb{{j{c}}}{}}00{Cb{{j{Bjc}}}{}}00{CbBn}00{{{AGl{c}}}Bf{AG`Od}}{{{AGn{c}}}Bf{AG`Od}}{{{j{{AGj{c}}}}{j{BjD`}}}Db{OdAG`}}{{{j{{AGl{c}}}}{j{BjD`}}}Db{OdAFf}}{{{j{{AGn{c}}}}{j{BjD`}}}Db{OdAFf}}{cc{}}00{{}Cb}00{ce{}{}}00{{{j{{AFh{c}}}}}{{AGl{c}}}AG`}{{{j{{AFh{c}}}}}{{AGl{c}}}{AG`Od}}{{{j{{AFh{c}}}}}{{AGn{c}}}{AG`Od}}0{{{AGl{c}}e}{{Dn{gOb}}}{AG`Od}{{In{}{{Aj{{Dn{Ob}}}}}}}{}}{{{AGn{c}}e}{{Dn{gOb}}}{AG`Od}{{In{}{{Aj{{Dn{Ob}}}}}}}{}}{{{j{c}}}e{}{}}00{c{{Dn{e}}}{}{}}00000{{{j{c}}}E`{}}00888{{{AFn{c}}{j{{AFh{c}}}}}{{AGl{c}}}AG`}`````````````{{{j{{On{}{{AH`{c}}}}}}}{{AHb{eg}}}{}h{}}{{{j{c}}}{{j{e}}}{}{}}00000{{{j{Bjc}}}{{j{Bje}}}{}{}}00000{{{j{{AHd{ceg}}}}}{{AHd{ceg}}}{CfDh}{Cfh}{Cf{On{e}}}}{{{j{{AHf{ceg}}}}}{{AHf{ceg}}}{CfDh}{Cfh}{Cf{On{e}}}}{{{j{{AHh{ceg}}}}}{{AHh{ceg}}}{CfEb}{Cfh}{Cf{On{e}}}}{{{j{{AHj{ceg}}}}}{{AHj{ceg}}}{CfEb}{Cfh}{Cf{On{e}}}}{{{j{{AHb{ce}}}}}{{AHb{ce}}}{Cfh}Cf}{{{j{{AHl{c}}}}}{{AHl{c}}}{Cfh}}{{{j{c}}{j{Bje}}}Bn{}{}}00000{{{j{BjA@`}}c}{{Df{Bn}}}h}{{{j{Bj{AHd{ce{AHl{e}}}}}}e}{{Df{Bn}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}e}{{Df{Bn}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{BjA@`}}}{{Df{Bn}}}}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{Df{Bn}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{Df{Bn}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{Cb{{j{c}}}{}}000{{{j{{AHb{ce}}}}}{{j{g}}}h{}{}}11{{{j{{AHl{c}}}}}{{j{e}}}h{}}{Cb{{j{Bjc}}}{}}00000{CbBn}00000{AHncEb}{{{AHh{ce{AHl{e}}}}}cEbh}{{{AHj{ce{AHl{e}}}}}cEbh}{{{j{{AHd{ceg}}}}{j{BjD`}}}Db{OdDh}{Odh}{Od{On{e}}}}{{{j{{AHf{ceg}}}}{j{BjD`}}}Db{OdDh}{Odh}{Od{On{e}}}}{{{j{{AHh{ceg}}}}{j{BjD`}}}Db{OdEb}{Odh}{Od{On{e}}}}{{{j{{AHj{ceg}}}}{j{BjD`}}}Db{OdEb}{Odh}{Od{On{e}}}}{{{j{{AHb{ce}}}}{j{BjD`}}}Db{Odh}Od}{{{j{{AHl{c}}}}{j{BjD`}}}Db{Odh}}{cc{}}00000{{{j{{On{}{{AH`{c}}}}}}}{}{}}{{{j{{AHl{c}}}}}{}h}{cAI`Dh}{cAHnEb}{c{{AHd{ce{AHl{e}}}}}Dhh}{{}Cb}{c{{AHf{ce{AHl{e}}}}}Dhh}11{c{{AHh{ce{AHl{e}}}}}Ebh}{c{{AHj{ce{AHl{e}}}}}Ebh}333{ce{}{}}00000{{{j{c}}}{{On{}{{AH`{c}}}}}{}}{{{j{{AIb{Oj}}}}}{{AHl{c}}}h}{{{j{Bjg}}Cb}{{Df{{Fl{c}}}}}h{{On{c}}}{{ABf{ce}}}}{{{j{Bjg}}Cb}{{Df{Fl}}}h{{On{c}}}{{ABf{ce}}}}{{{j{BjABf}}}{{Df{c}}}h}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{Df{e}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{Df{e}}}Dhh}{{{j{BjABf}}}Df}{{{j{Bj{AHd{ce{AHl{e}}}}}}}DfDhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}DfDhh}{{{j{BjA@`}}}eh{{On{c}}}}{{{j{Bj{AHd{ce{AHl{e}}}}}}}{{AHl{e}}}Dhh}{{{j{Bj{AHf{ce{AHl{e}}}}}}}{{AHl{e}}}Dhh}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{AHl{e}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{AHl{e}}}Ebh}{{{j{BjA@`}}}{{AHb{ce}}}h{}}{{{j{c}}}e{}{}}00000{c{{Dn{e}}}{}{}}00000000000{{{j{c}}}E`{}}00000{ce{}{}}00000{{{j{BjAAd}}c}{{Df{Bn}}}h}{{{j{Bj{AHh{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}e}{{Df{Bn}}}Ebh}{{{j{BjAAd}}}{{Df{Bn}}}}{{{j{Bj{AHh{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}{{{j{Bj{AHj{ce{AHl{e}}}}}}}{{Df{Bn}}}Ebh}","D":"D@d","p":[[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",6,1195],[1,"reference"],[5,"Coordinates",1195],[5,"CtOption",1196],[10,"WithSmallOrderMulGroup",1197],[10,"Ord",1198],[17,"AffineExt"],[10,"CurveExt",6,1195],[10,"Field",6,1197],[17,"Output"],[10,"Mul",1199],[1,"str"],[10,"Fn",1200],[5,"Box",1201],[5,"Choice",1196],[1,"bool"],[1,"tuple"],[0,"mut"],[1,"slice"],[1,"unit"],[10,"Send",1202],[1,"usize"],[10,"Sync",1202],[10,"Clone",1203],[1,"u64"],[10,"AsRef",1204],[10,"RngCore",1205],[6,"SerdeFormat",43],[5,"Formatter",1206],[8,"Result",1206],[10,"CurveRead",43],[8,"Result",1207],[10,"Read",1208],[10,"SerdeCurveAffine",43],[10,"SerdePrimeField",43],[6,"Result",1209],[5,"TypeId",1210],[10,"Write",1208],[17,"Item"],[10,"ParallelIterator",72,1211],[10,"ParallelSliceMut",72,1212],[10,"IndexedParallelIterator",72,1211],[5,"ExponentialBlocks",1213],[5,"UniformBlocks",1213],[5,"Chain",1214],[10,"IntoParallelIterator",72,1211],[5,"Chunks",1215],[5,"Cloned",1216],[6,"Ordering",1198],[10,"FromParallelIterator",1211],[5,"Vec",1217],[5,"LinkedList",1218],[5,"Copied",1219],[10,"Consumer",1220],[10,"UnindexedConsumer",1220],[5,"Enumerate",1221],[5,"Filter",1222],[5,"FilterMap",1223],[6,"Option",1224],[5,"FlatMap",1225],[5,"FlatMapIter",1226],[10,"IntoIterator",1227],[5,"Flatten",1228],[5,"FlattenIter",1229],[5,"Scope",72,1230],[5,"Error",1206],[5,"Fold",1231],[5,"FoldChunks",1232],[5,"FoldChunksWith",1233],[5,"FoldWith",1231],[5,"Inspect",1234],[5,"Interleave",1235],[5,"InterleaveShortest",1236],[5,"Intersperse",1237],[17,"Iter"],[10,"FnOnce",1200],[5,"Map",1238],[5,"MapInit",1239],[5,"MapWith",1239],[5,"PanicFuse",1240],[5,"ChunkByMut",1241],[5,"ChunksExactMut",1242],[5,"ChunksMut",1242],[10,"IntoParallelRefIterator",72,1211],[10,"IntoParallelRefMutIterator",72,1211],[5,"RChunksExactMut",1243],[5,"RChunksMut",1243],[5,"SplitInclusiveMut",1212],[5,"SplitMut",1212],[10,"Default",1244],[10,"ParallelExtend",1211],[6,"Either",1245],[5,"Positions",1246],[10,"Product",1247],[5,"Rev",1248],[5,"Skip",1249],[5,"SkipAny",1250],[5,"SkipAnyWhile",1251],[5,"BroadcastContext",1252],[5,"StepBy",1253],[10,"Sum",1247],[5,"Take",1254],[5,"TakeAny",1255],[5,"TakeAnyWhile",1256],[5,"TryFold",1257],[10,"Try",1258],[10,"TryFoldAndReduce",72,1259],[5,"TryFoldWith",1257],[5,"Update",1260],[5,"WhileSome",1261],[5,"MaxLen",1262],[5,"MinLen",1262],[10,"ProducerCallback",1220],[5,"Zip",1263],[5,"ZipEq",1264],[5,"VerifyingKey",216],[5,"ProvingKey",216],[6,"Error",216,1265],[10,"Debug",1206],[5,"PinnedVerificationKey",216],[5,"Error",1207],[1,"u8"],[5,"EvaluationDomain",369,1266],[10,"EncodedChallenge",1040],[10,"Transcript",1040],[1,"u32"],[10,"Error",1267],[5,"String",1268],[5,"CompiledCircuit",1269],[10,"Params",539],[5,"ProverSingle",312],[5,"HashMap",1270],[10,"CommitmentScheme",539],[10,"Prover",539],[10,"TranscriptWrite",1040],[10,"MsmAccel",1271],[5,"Prover",312],[5,"H2cEngine",1272],[5,"PlonkEngine",1272],[5,"BatchVerifier",349,1273],[8,"ParamsVerifierIPA",609],[10,"Verifier",539],[10,"VerificationStrategy",369,1274],[10,"TranscriptRead",1040],[5,"Polynomial",369],[10,"Basis",369],[5,"Coeff",369],[5,"LagrangeCoeff",369],[5,"ExtendedLagrangeCoeff",369],[5,"PinnedEvaluationDomain",369,1266],[6,"Error",369],[5,"RangeFrom",1275],[5,"RangeFull",1275],[10,"Iterator",1276],[1,"i32"],[5,"Rotation",1277],[5,"Blind",539],[10,"MSM",539],[10,"ParamsProver",539],[17,"MSM"],[10,"ParamsVerifier",539],[10,"PartialEq",1198],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",369,1274],[5,"ParamsIPA",609],[5,"MSMIPA",654],[5,"IPACommitmentScheme",609],[5,"GuardIPA",716],[5,"ProverIPA",684,1278],[5,"VerifierIPA",684,1279],[5,"Accumulator",716],[5,"AccumulatorStrategy",716],[5,"SingleStrategy",716],[5,"ParamsKZG",793],[10,"Engine",1280],[5,"ParamsVerifierKZG",793],[5,"MSMKZG",866],[5,"KZGCommitmentScheme",793],[5,"DualMSM",866],[10,"MultiMillerLoop",1280],[5,"ProverGWC",915,1281],[5,"ProverSHPLONK",915,1282],[5,"VerifierGWC",915,1283],[5,"VerifierSHPLONK",915,1284],[5,"GuardKZG",980],[5,"AccumulatorStrategy",980],[5,"SingleStrategy",980],[17,"Input"],[5,"ChallengeScalar",1040],[5,"Blake2bRead",1040],[5,"Keccak256Read",1040],[5,"Blake2bWrite",1040],[5,"Keccak256Write",1040],[5,"Challenge255",1040],[10,"TranscriptWriterBuffer",1040],[10,"TranscriptReadBuffer",1040],[1,"array"],[15,"NotEnoughRowsAvailable",309]],"r":[[2,1285],[10,1195],[11,1195],[13,1197],[72,1211],[73,1211],[74,1211],[75,1211],[83,1211],[84,1212],[85,1230],[86,1259],[103,1286],[141,1287],[184,1230],[219,1265],[349,1273],[372,1266],[374,1274],[380,1266],[383,1274],[620,1288],[650,1289],[684,1278],[685,1279],[915,1281],[916,1282],[917,1283],[918,1284]],"b":[[254,"impl-Display-for-Error"],[255,"impl-Debug-for-Error"],[464,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[465,"impl-Index%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[466,"impl-Index%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[467,"impl-IndexMut%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[468,"impl-IndexMut%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[469,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[503,"impl-Sub%3CF%3E-for-%26Polynomial%3CF,+B%3E"],[504,"impl-Sub%3C%26Polynomial%3CF,+B%3E%3E-for-Polynomial%3CF,+B%3E"],[558,"impl-AddAssign-for-Blind%3CF%3E"],[559,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[586,"impl-MulAssign-for-Blind%3CF%3E"],[587,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[656,"impl-MSMIPA%3C\'a,+C%3E"],[657,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[959,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[960,"impl-ProverSHPLONK%3C\'a,+E%3E"],[1018,"impl-AccumulatorStrategy%3CE%3E"],[1019,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[1020,"impl-SingleStrategy%3CE%3E"],[1021,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKkCcgAAAAAAAgABACwAAAAwAAAAMgACADYABQA9AAAAQgAEAFcAAABbAAEAaQABAG0AAAB8AAAAhwAAAMoAAQDOAAAA0gAAAOYAFwD/AAQABQEAAA4BAwAcAQAAHwECACMBCwAwAQMAOwEDAEMBBwBNAQEAUQEAAFYBBwBgAQUAZwEAAGkBAABsAQIAcQEAAHgBAACBARkAoAEPALEBBgC/AQYA0QEMAO0BAADwAQAA+AEjAC4CAgA0AgEANwIBAD0CAgBBAgAAQwIAAEUCAABHAgAASgICAFcCAwBcAgAAZQIFAG4CCQB6AgEAfgIBAIECAACDAgcAjAIBAJYCCwCjAgAApgIGAK8CAwC0AgcAvgIBAMICCgDRAgsA3gILAOwCAwD1AgMA/QIRABIDAwAdAxwAPgMCAEQDBQBNAwEAUAMOAGIDAABlAwAAZwMGAG8DAwB0AwoAgQMBAIcDAQCKAwkAmAMHAKIDDwC2AwMAvgMCAMIDDQDRAwMA2AMZAPUDAgD8AwAA/gMRAB8EFwA4BAMAPQQXAFYEAABYBAUAZQQAAGkEAABrBAEAbwQCAHkEAgB9BAEAgAQBAIMEAwCIBB0ApwQBAKoEAQA="}],\ ["halo2_debug",{"t":"CFFFFNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNNNNNNNHHHHNNNNNNNNNNNNNNNNNNNN","n":["display","ExprDisp","FDisp","LookupArgDisp","ShuffleArgDisp","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","expr_disp","expr_disp_names","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","lookup_arg_disp","lookup_arg_disp_names","shuffle_arg_disp","shuffle_arg_disp_names","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip"],"q":[[0,"halo2_debug"],[1,"halo2_debug::display"],[67,"halo2_middleware::expression"],[68,"ff"],[69,"halo2_middleware::circuit"],[70,"alloc::string"],[71,"std::collections::hash::map"],[72,"core::fmt"],[73,"halo2_middleware::lookup"],[74,"halo2_middleware::shuffle"],[75,"core::result"],[76,"core::any"]],"i":[0,0,0,0,0,13,6,16,17,13,6,16,17,13,6,16,17,13,6,16,17,13,6,16,17,0,0,13,6,16,17,13,6,16,17,13,6,16,17,13,6,16,17,0,0,0,0,13,6,16,17,13,6,16,17,13,6,16,17,13,6,16,17,13,6,16,17],"f":"`````{{{b{c}}}{{b{e}}}{}{}}000{{{b{dc}}}{{b{de}}}{}{}}000{f{{b{c}}}{}}000{f{{b{dc}}}{}}000{fh}000{{{b{{j{ce}}}}}{{l{ceh}}}nA`}{{{b{{j{cAb}}}}{b{{Ah{AdAf}}}}}{{l{cAb{Ah{AdAf}}}}}n}{{{b{{Aj{c}}}}{b{dAl}}}Ann}{{{b{{l{ceg}}}}{b{dAl}}}AnnA`{}}{{{b{{B`{ceg}}}}{b{dAl}}}AnnA`{}}{{{b{{Bb{ceg}}}}{b{dAl}}}AnnA`{}}{cc{}}000{{}f}000{ce{}{}}000{{{b{{Bd{ce}}}}}{{B`{ceh}}}nA`}{{{b{{Bd{cAb}}}}{b{{Ah{AdAf}}}}}{{B`{cAb{Ah{AdAf}}}}}n}{{{b{{Bf{ce}}}}}{{Bb{ceh}}}nA`}{{{b{{Bf{cAb}}}}{b{{Ah{AdAf}}}}}{{Bb{cAb{Ah{AdAf}}}}}n}{{{b{c}}}Af{}}000{c{{Bh{e}}}{}{}}0000000{{{b{c}}}Bj{}}0007777","D":"Bd","p":[[1,"reference"],[0,"mut"],[1,"usize"],[1,"unit"],[6,"Expression",67],[5,"ExprDisp",1],[10,"PrimeField",68],[10,"Variable",67],[6,"VarMid",69],[5,"ColumnMid",69],[5,"String",70],[5,"HashMap",71],[5,"FDisp",1],[5,"Formatter",72],[8,"Result",72],[5,"LookupArgDisp",1],[5,"ShuffleArgDisp",1],[5,"Argument",73],[5,"Argument",74],[6,"Result",75],[5,"TypeId",76]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADEABQAAAAEABgATABwAAwAkAAMAMAATAA=="}],\ -["halo2_frontend",{"t":"CCCFFKRKRFFFFREFFKFFNNNNNNNNNNNNNNNNNNMNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHMNNMNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEECCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPGKFPKKMNMNMNMMNNNNNNNNNNNMNMNNNNNNNMNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNPPPGEFFPPGPPGPFPPPPPFPGNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCCGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKKKRFKRFRMMMNNNNNNNNNNNNCMNCMNNNNNNNNNMMNNNMCMNNNNNNMNNNNNNNNNNMMMNNNMMMNNNNNNNNNNNNNNNMFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFPFPGFPFPFPKPPFFPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKNNNNNNNNNNNNNNNNNMNNNNNPPPGPPPPPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNN","n":["circuit","dev","plonk","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","WitnessCalculator","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_cell","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calc","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","compile_circuit","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","default_and_assigned","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","eq","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into","into","into_field","invert","known","layouter","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","new","new","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","to_field","to_owned","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","single_pass","v1","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_challenge","get_root","init","init","into","into","new","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","get_root","init","init","init","init","into","into","into","into","pop_namespace","push_namespace","strategy","synthesize","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Column","RegionColumn","RegionLayouter","RegionShape","Selector","SyncDeps","TableLayouter","assign_advice","assign_advice","assign_advice_from_constant","assign_advice_from_constant","assign_advice_from_instance","assign_advice_from_instance","assign_cell","assign_fixed","assign_fixed","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","columns","constrain_constant","constrain_constant","constrain_equal","constrain_equal","deref","deref","deref_mut","deref_mut","drop","drop","enable_selector","enable_selector","eq","fmt","fmt","from","from","from","from","hash","init","init","instance_value","instance_value","into","into","name_column","name_column","new","partial_cmp","region_index","row_count","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Assigned","Assigned","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","InstanceValue","Lookup","MockProver","OutsideRegion","Padding","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone","clone_into","clone_into","clone_into","collect","copy","cost","cost_model","cs","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","selectors","show_equality_constraints","show_labels","synthesize","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","usable_rows","value","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CircuitCost","MarginalProofSize","ProofSize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","marginal_proof_size","measure","proof_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","assigned","circuit","error","keygen","lookup","permutation","shuffle","Assigned","Rational","Trivial","Zero","add","add","add","add","add","add","add_assign","add_assign","borrow","borrow_mut","clone","clone_into","cube","denominator","deref","deref_mut","double","drop","eq","evaluate","fmt","from","from","from","from","from","init","into","invert","is_zero_vartime","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","numerator","square","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","to_owned","try_from","try_into","type_id","vzip","Advice","Assignment","Circuit","ColumnType","Config","Fixed","FloorPlanner","FloorPlanner","Instance","Params","annotate_column","assign_advice","assign_fixed","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress_selectors","configure","configure_with_params","constraint_system","copy","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","exit_region","expression","fill_from_row","fmt","fmt","fmt","from","from","from","get_challenge","hash","hash","hash","init","init","init","into","into","into","params","pop_namespace","push_namespace","query_cell","query_cell","query_cell","query_cell","query_instance","synthesize","synthesize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","without_witnesses","Constraint","ConstraintSystem","Constraints","Gate","VirtualCell","VirtualCells","advice_column","advice_column_in","advice_column_phase","advice_queries","annotate_column","annotate_lookup_any_column","annotate_lookup_column","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","clone_into","clone_into","clone_into","column","complex_selector","compress_selectors","constants","constraint_name","create_gate","default","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","drop","drop","drop","drop","drop","drop","enable_constant","enable_equality","fixed_column","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","get_any_query_index","init","init","init","init","init","init","instance_column","instance_queries","into","into","into","into","into","into","into_iter","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","name","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","permutation","phases","polynomials","queried_cells","queried_selectors","query_advice","query_any","query_challenge","query_fixed","query_instance","query_selector","rotation","selector","set_minimum_degree","shuffle","shuffles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","Advice","AdviceQuery","Challenge","Challenge","Column","Constant","Expression","FirstPhase","Fixed","FixedQuery","Instance","InstanceQuery","Negated","Phase","Product","Scaled","SecondPhase","Selector","Selector","Sum","TableColumn","ThirdPhase","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_index","column_index","column_index","column_index","column_index","column_index","column_type","column_type","complexity","cur","degree","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate_lazy","expr","expr","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","hash","identifier","index","index","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into","into","into","into","into","is_simple","mul","mul","neg","new","next","partial_cmp","partial_cmp","phase","prev","product","query_cell","query_cells","rot","rotation","rotation","rotation","rotation","rotation","rotation","sealed","square","sub","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Phase","SealedPhase","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","fmt","from","hash","init","into","partial_cmp","prev","to_owned","to_sealed","to_sealed","try_from","try_into","type_id","vzip","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Error","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","init","init","into","into","not_enough_rows_available","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","current_k","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","table_expressions","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_columns","init","into","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"halo2_frontend"],[3,"halo2_frontend::circuit"],[275,"halo2_frontend::circuit::floor_planner"],[279,"halo2_frontend::circuit::floor_planner::single_pass"],[316,"halo2_frontend::circuit::floor_planner::v1"],[381,"halo2_frontend::circuit::layouter"],[449,"halo2_frontend::dev"],[636,"halo2_frontend::dev::FailureLocation"],[639,"halo2_frontend::dev::VerifyFailure"],[661,"halo2_frontend::dev::cost"],[706,"halo2_frontend::dev::cost_model"],[850,"halo2_frontend::dev::metadata"],[965,"halo2_frontend::plonk"],[972,"halo2_frontend::plonk::assigned"],[1029,"halo2_frontend::plonk::circuit"],[1118,"halo2_frontend::plonk::circuit::constraint_system"],[1273,"halo2_frontend::plonk::circuit::expression"],[1538,"halo2_frontend::plonk::circuit::expression::sealed"],[1563,"halo2_frontend::plonk::error"],[1607,"halo2_frontend::plonk::error::Error"],[1608,"halo2_frontend::plonk::lookup"],[1629,"halo2_frontend::plonk::permutation"],[1648,"halo2_frontend::plonk::shuffle"],[1669,"halo2_frontend::circuit::value"],[1670,"core::ops::arith"],[1671,"ff"],[1672,"core::ops::function"],[1673,"core::result"],[1674,"alloc::string"],[1675,"core::convert"],[1676,"halo2_frontend::circuit::table_layouter"],[1677,"std::collections::hash::map"],[1678,"alloc::vec"],[1679,"core::option"],[1680,"core::clone"],[1681,"halo2_middleware::circuit"],[1682,"core::fmt"],[1683,"core::marker"],[1684,"core::borrow"],[1685,"core::iter::traits::collect"],[1686,"core::any"],[1687,"core::cmp"],[1688,"std::collections::hash::set"],[1689,"core::hash"],[1690,"core::iter::traits::iterator"],[1691,"halo2_frontend::dev::failure"],[1692,"halo2_frontend::dev::gates"],[1693,"halo2_frontend::dev::graph::layout"],[1694,"halo2_frontend::dev::tfp"],[1695,"plotters::coord"],[1696,"plotters::drawing::area"],[1697,"plotters_backend"],[1698,"core::ops::range"],[1699,"group::prime"],[1700,"serde::de"],[1701,"serde::ser"],[1702,"core::default"],[1703,"halo2_middleware::poly"],[1704,"halo2_frontend::dev::graph"]],"i":[0,0,0,0,0,0,48,0,48,0,0,0,0,30,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,13,13,13,23,25,27,13,30,31,30,31,25,1,32,40,41,38,17,13,27,31,25,1,32,40,41,38,17,13,27,31,32,17,1,40,41,38,17,1,40,41,38,17,1,1,38,0,48,13,13,30,31,1,1,17,1,1,25,25,1,32,40,40,41,41,38,17,13,27,31,25,1,32,40,41,38,17,13,27,31,1,25,1,32,40,41,38,17,13,27,31,31,13,41,1,1,17,0,25,1,32,40,41,38,17,13,27,31,25,1,1,32,40,40,41,41,38,17,13,13,27,27,31,1,30,31,30,31,25,1,32,40,41,38,17,13,27,31,13,25,1,32,40,41,38,17,13,27,31,1,1,1,0,48,1,1,1,1,1,1,1,1,1,1,1,13,30,1,25,32,30,31,30,31,38,38,1,1,1,1,1,1,1,1,1,1,1,1,1,40,41,38,17,1,1,25,1,32,40,41,38,17,13,27,31,25,1,32,40,41,38,17,13,27,31,25,1,32,40,41,38,17,13,27,31,1,1,17,17,25,1,32,40,41,38,17,13,27,31,1,0,0,0,0,0,0,67,67,67,69,67,69,67,67,69,67,69,67,69,67,69,67,69,67,67,67,69,67,69,67,67,67,69,67,69,67,69,67,69,67,69,0,0,0,0,70,70,71,70,72,73,71,70,72,73,70,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,70,70,71,70,72,73,71,70,72,73,70,70,0,71,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,75,0,0,0,75,0,0,55,74,55,74,55,74,23,55,74,74,75,74,75,74,75,74,75,75,74,55,74,55,74,74,75,74,75,74,75,55,74,75,74,75,74,75,75,75,75,74,75,55,74,74,75,55,74,74,75,74,74,74,75,74,75,74,75,74,75,74,75,80,85,88,0,0,0,0,88,88,0,84,88,0,88,0,84,85,88,80,88,0,80,0,79,79,79,79,79,79,79,84,88,86,91,87,80,79,85,84,88,86,91,87,80,79,85,0,84,80,85,84,80,85,86,79,0,0,79,87,84,88,86,91,87,80,79,85,84,88,86,91,87,80,79,85,84,88,86,91,87,80,79,85,88,79,79,84,88,80,85,79,79,79,79,84,84,88,88,86,86,91,87,80,79,85,84,88,86,91,87,80,79,85,79,84,88,86,91,87,80,79,85,79,84,88,86,91,87,80,79,85,87,0,79,79,86,79,87,79,79,87,87,91,84,80,85,84,88,86,84,88,86,91,87,80,79,85,84,88,86,91,87,80,79,85,84,88,86,91,87,80,79,85,79,85,79,79,87,87,84,88,86,91,87,80,79,85,145,145,146,147,148,149,150,147,151,148,149,148,149,147,152,153,150,152,152,153,148,148,149,149,153,0,0,0,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,98,98,98,100,101,98,100,101,98,100,101,98,100,101,0,0,108,108,108,0,0,0,0,0,109,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,102,103,104,105,102,103,104,105,102,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,104,107,108,109,102,103,104,105,107,108,102,109,108,109,102,103,104,105,107,108,109,102,103,104,105,107,0,0,102,109,108,109,102,103,104,105,107,109,108,109,102,103,104,105,107,109,109,107,109,107,107,109,102,109,107,107,102,104,107,109,107,107,102,103,104,105,108,109,102,103,104,105,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,0,0,0,0,0,112,116,113,114,115,112,116,113,114,115,112,113,114,115,112,113,114,115,112,116,112,112,116,113,114,115,112,116,113,114,115,112,116,113,114,115,112,116,113,114,115,112,112,116,116,113,113,114,114,115,115,112,112,116,116,116,116,113,113,114,114,115,115,115,115,115,112,112,112,116,113,114,115,112,116,113,114,115,112,112,116,112,113,114,115,112,116,113,114,115,112,116,113,114,115,112,116,113,114,115,112,116,113,114,115,112,116,113,114,115,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,37,0,0,37,0,37,26,26,26,14,28,22,14,28,22,14,28,22,14,28,22,0,37,37,0,26,14,28,22,14,28,22,14,28,22,26,26,14,28,22,26,0,26,14,28,22,14,28,22,26,14,28,22,14,28,22,14,28,22,37,26,26,123,14,28,22,26,92,37,14,28,22,14,28,22,14,28,22,14,28,22,14,28,22,37,0,0,0,0,0,0,44,44,44,44,44,44,44,44,119,128,130,127,44,129,119,128,130,127,44,129,44,44,119,127,44,119,127,44,119,44,44,44,127,44,44,44,119,128,130,127,44,129,119,128,130,127,44,129,44,119,128,130,127,44,129,44,44,44,44,119,128,130,127,44,129,119,119,128,128,128,130,127,44,129,44,44,44,119,128,130,127,44,129,44,44,119,128,130,127,44,129,130,44,44,44,44,44,127,44,44,44,44,44,44,44,127,127,127,129,129,129,129,129,129,119,44,44,44,44,119,127,44,119,128,130,127,44,129,119,128,130,127,44,129,119,128,130,127,44,129,44,44,119,128,130,127,44,129,130,125,0,0,125,0,125,0,0,125,0,125,0,125,0,125,125,0,0,125,125,0,0,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,52,135,136,137,24,59,125,15,52,135,136,137,24,59,125,15,24,135,136,137,135,136,137,15,15,125,15,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,52,15,52,135,136,137,24,59,125,125,125,52,59,15,138,139,140,52,135,136,137,24,59,125,15,15,15,15,15,138,139,140,52,135,136,137,24,59,59,125,15,52,24,59,125,15,52,59,15,135,136,137,59,15,138,139,140,52,135,136,137,24,59,125,24,15,138,139,140,52,135,136,137,24,59,125,52,125,125,125,15,15,15,24,59,15,125,15,125,15,135,136,137,135,136,137,0,125,125,125,15,52,135,136,137,24,59,125,138,139,140,15,15,15,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,0,0,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,143,133,133,133,133,133,11,144,11,0,11,11,11,144,11,0,11,144,144,11,144,11,144,11,144,11,144,11,144,11,11,144,144,11,144,11,144,11,144,11,11,144,11,144,11,144,11,144,11,144,154,0,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,0,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,0,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134],"f":"````````````````````{{{b{c}}{d{{b{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{b{{j{c}}}}c}el{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{c}}{b{{d{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{b{e}}{b{e}}}g{}{{h{}{{f{c}}}}}{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{c}}g}{{b{e}}}{}{}{{n{c}{{f{{b{e}}}}}}}}{{{d{A`{b{c}}}}}{{b{{d{A`c}}}}}{}}{{{d{{b{c}}}}}{{b{{d{c}}}}}{}}{{{d{{b{c}}}}e}Ab{}{{n{{d{c}}}{{f{Ad}}}}}}{{{b{c}}}{{Ah{cAf}}}{}}{{{d{A`{Aj{c}}}}g{An{Al}}B`k}{{Ah{{Bb{ic}}Af}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}{}{{Bj{}{{f{{b{i}}}}}}}}{{{d{A`{Aj{c}}}}g{An{Al}}B`i}{{Ah{{Bb{ic}}Af}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}{}}{{{d{A`{Aj{c}}}}g{An{Bl}}B`{An{Al}}B`}{{Ah{{Bb{cc}}Af}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}}{{{d{A`Bn}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}}{{{d{A`{Cb{ce}}}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}l{{Cd{c}}}}{{{d{A`{Cf{c}}}}gC`B`k}{{Ah{AbAf}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}{{Bf{{j{c}}}}}{{Bj{}{{f{{b{i}}}}}}}}{{{d{A`{Aj{c}}}}g{An{Ch}}B`k}{{Ah{{Bb{ic}}Af}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}{}{{Bj{}{{f{{b{i}}}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}im}{{Ah{kAf}}}{{Cl{e}}}l{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{}{{Bj{{Aj{e}}}{{f{{Ah{kAf}}}}}}}}{{{d{A`{Cn{ce}}}}im}{{Ah{kAf}}}l{{Cl{c}}}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{}{{Bj{{Aj{c}}}{{f{{Ah{kAf}}}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}ik}{{Ah{AbAf}}}{{Cl{e}}}l{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{{Bj{{Cf{e}}}{{f{{Ah{AbAf}}}}}}}}{{{d{A`{Cn{ce}}}}ik}{{Ah{AbAf}}}l{{Cl{c}}}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{{Bj{{Cf{c}}}{{f{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000000{{{d{A`c}}}{{d{A`e}}}{}{}}000000000{{{d{A`{D`{ce}}}}Db{d{{Dd{B`c}}}}}{{Ah{{Df{{Dh{{Df{c}}}}}}Af}}}l{{Dj{c}}}}{{{d{{Bb{ce}}}}}Dl{}l}{{{d{{b{c}}}}}{{b{c}}}Dn}{{{d{E`}}}E`}{{{d{Eb}}}Eb}{{{d{Dl}}}Dl}{{{d{{Bb{ce}}}}}{{Bb{ce}}}Dn{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}0000{{{b{{d{A`c}}}}}{{b{c}}}Dn}{{{b{{d{c}}}}}{{b{c}}}Dn}`{{Ed{d{e}}Ad}{{Ah{{Ej{{Ef{c}}{Eh{c}}}}Af}}}l{{Dj{c}}}}{{{d{{F`{}{{El{c}}{En{e}}}}}}}{{d{c}}}{FbDn}{FbDn}}{{{d{A`{Aj{c}}}}Dle}{{Ah{AbAf}}}l{{Bf{{j{c}}}}}}{{{d{A`{Aj{c}}}}DlDl}{{Ah{AbAf}}}l}{{{d{A`{Cl{}{{Cj{c}}}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}{{Cl{e}}}l}{{{d{A`{Cn{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}l{{Cl{c}}}}{{{b{{d{c}}}}}{{b{c}}}Fd}{{{b{{d{A`c}}}}}{{b{c}}}Fd}{{{d{{Bb{ce}}}}i{d{A`{Aj{e}}}}{An{Al}}B`}{{Ah{{Bb{ce}}Af}}}Dnl{{Bf{Bd}}}{{Bh{}{{f{g}}}}}}{{{d{{b{e}}}}}{{b{{j{c}}}}}l{{Ff{{j{c}}}}}}{{}{{b{c}}}{}}`{B`{{d{c}}}{}}00{{{d{E`}}}{{d{c}}}{}}11{{{d{Eb}}}{{d{c}}}{}}22222{B`{{d{A`c}}}{}}0000000005{B`Ab}000000000{{{d{A`{Cn{ce}}}}}Abl{{Cl{c}}}}{{{d{A`{Aj{c}}}}g{d{Fh}}B`}{{Ah{AbAf}}}l{{Bf{Bd}}}{{Bh{}{{f{e}}}}}}{{{d{Eb}}{d{Eb}}}Ad}{{{d{{b{c}}}}e}{{Ah{AbAf}}}{}{{n{{d{c}}}{{f{Ad}}}}}}{{{b{{j{c}}}}}{{b{c}}}l}{{{Bb{{j{c}}c}}}{{Bb{cc}}}l}`{{{d{{Cb{ce}}}}{d{A`Fj}}}Fll{{Cd{c}}}}{{{d{{b{c}}}}{d{A`Fj}}}FlFb}{{{d{{D`{ce}}}}{d{A`Fj}}}Fl{Fbl}{Fb{Dj{c}}}}{{{d{E`}}{d{A`Fj}}}Fl}{{{d{Eb}}{d{A`Fj}}}Fl}{{{d{Dl}}{d{A`Fj}}}Fl}{{{d{{Bb{ce}}}}{d{A`Fj}}}FlFb{Fbl}}{{{d{{Aj{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Cf{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Cn{ce}}}}{d{A`Fj}}}Fl{Fbl}{Fb{Cl{c}}}}{cc{}}{{{b{c}}}{{b{{j{c}}}}}l}111{B`E`}2{B`Eb}333{{{d{A`Fn}}}{{Aj{c}}}l}4{{{d{A`Bn}}}{{Cf{c}}}l}5{e{{b{g}}}{}{{Gb{}{{G`{{b{c}}}}}}}{{Gd{c}}}}{{{d{{Cl{}{{Cj{c}}}}}}Gf}{{b{e}}}{{Cl{e}}}l}{{{d{{Cn{ce}}}}Gf}{{b{c}}}l{{Cl{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}}{{d{A`c}}}{{Cl{e}}}l}{{{d{A`{Cn{ce}}}}}{{d{A`g}}}l{{Cl{c}}}{}}{{}B`}000000000{{{d{A`{Aj{c}}}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{ce{}{}}000000000{{{b{e}}}{{b{{j{c}}}}}l{{Bf{{j{c}}}}}}{{{d{{b{e}}}}}{{b{{j{c}}}}}l{{Ff{{j{c}}}}}}{c{{b{c}}}{}}`{{{d{{F`{}{{El{c}}{En{e}}}}}}}{{d{e}}}{FbDn}{FbDn}}{{{b{c}}g}{{b{e}}}{}{}{{n{c}{{f{e}}}}}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{e}}{b{e}}}g{}{{Gh{}{{f{c}}}}}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{b{c}}{d{{b{c}}}}}g{{Gh{d}{{f{}}}}}{}{}}{{{b{c}}{b{{d{c}}}}}g{{Gh{d}{{f{}}}}}{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{b{{j{c}}}}c}el{}}{{{d{A`{Aj{c}}}}gi}Abl{{Bf{Bd}}}{{Bh{}{{f{e}}}}}{{Bf{{An{Gj}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}i}{{Cn{ec}}}{{Cl{e}}}l{{Bf{Bd}}}{{n{}{{f{g}}}}}}{{{b{c}}}eGl{}}{{{d{A`e}}{d{{Gn{C`}}}}}{{Cb{ce}}}l{{Cd{c}}}}{{Ed{d{e}}d{d{{Eh{c}}}}{d{{Gn{{Df{c}}}}}}}{{D`{ce}}}l{{Dj{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}{Dh{Bd}}}Ab{{Cl{e}}}l}{{{d{A`{Cn{ce}}}}{Dh{Bd}}}Abl{{Cl{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}i}Ab{{Cl{e}}}l{{Bf{Bd}}}{{n{}{{f{g}}}}}}{{{d{A`{Cn{ce}}}}i}Abl{{Cl{c}}}{{Bf{Bd}}}{{n{}{{f{g}}}}}}``{{{d{{b{e}}}}}{{b{{j{c}}}}}l{{Ff{{j{c}}}}}}{{{b{c}}{d{{b{c}}}}}g{{H`{d}{{f{}}}}}{}{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{b{c}}{b{{d{c}}}}}g{{H`{d}{{f{}}}}}{}{}}?{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{b{{j{c}}}}c}el{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{e}}{b{e}}}g{}{{H`{}{{f{c}}}}}{}}{{{d{{b{c}}}}}{{b{{j{e}}}}}{}l}{{{d{c}}}e{}{}}0000{{{b{{Hb{c}}}}}{{Hb{{b{c}}}}}Fd}{{{b{e}}B`}{{Df{{b{c}}}}}{}{{Gb{}{{G`{c}}}}}}{c{{Ah{e}}}{}{}}0000000000000000000{{{d{c}}}Hd{}}000000000{{}{{b{c}}}{}}{{{b{{Ej{ce}}}}}{{Ej{{b{c}}{b{e}}}}}{}{}}{{{d{{Bb{ce}}}}}{{b{{d{c}}}}}{}l}{{{d{{Bb{ce}}}}}{{b{{j{e}}}}}{}l}{ce{}{}}000000000{{{b{c}}{b{e}}}{{b{{Ej{ce}}}}}{}{}}``````{{{d{A`{Hf{ce}}}}im}{{Ah{kAf}}}l{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{}{{Bj{{Aj{c}}}{{f{{Ah{kAf}}}}}}}}{{{d{A`{Hf{ce}}}}ik}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{{Bj{{Cf{c}}}{{f{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{A`{Hf{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}l{{Cd{c}}Hh}}{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{{Hf{ce}}}}{d{A`Fj}}}Fll{{Cd{c}}}}{{{d{Hj}}{d{A`Fj}}}Fl}{cc{}}0{{{d{{Hf{ce}}}}Gf}{{b{c}}}l{{Cd{c}}Hh}}{{{d{A`{Hf{ce}}}}}{{d{A`g}}}l{{Cd{c}}Hh}{}}{{}B`}0??{{{d{A`e}}{Df{{An{Ch}}}}}{{Ah{{Hf{ce}}Af}}}l{{Cd{c}}}}{{{d{A`{Hf{ce}}}}{Dh{Bd}}}Abl{{Cd{c}}Hh}}{{{d{A`{Hf{ce}}}}i}Abl{{Cd{c}}Hh}{{Bf{Bd}}}{{n{}{{f{g}}}}}}{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Dj{c}}}}{c{{Ah{e}}}{}{}}000{{{d{c}}}Hd{}}0{ce{}{}}0````{{{d{A`{Hl{ce}}}}im}{{Ah{kAf}}}l{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{}{{Bj{{Aj{c}}}{{f{{Ah{kAf}}}}}}}}{{{d{A`{Hl{ce}}}}ik}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}{{Bj{{Cf{c}}}{{f{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{A`c}}}{{d{A`e}}}{}{}}000{{{d{A`{Hl{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}l{{Cd{c}}Hh}}{B`{{d{c}}}{}}000{B`{{d{A`c}}}{}}000{B`Ab}000{{{d{Hn}}{d{A`Fj}}}Fl}{{{d{{Hl{ce}}}}{d{A`Fj}}}Fl{Fbl}{Fb{Cd{c}}}}{{{d{I`}}{d{A`Fj}}}Fl}{{{d{{Ib{ce}}}}{d{A`Fj}}}Fl{Fbl}{Fb{Cd{c}}}}{cc{}}000{{{d{{Hl{ce}}}}Gf}{{b{c}}}l{{Cd{c}}Hh}}{{{d{A`{Hl{ce}}}}}{{d{A`g}}}l{{Cd{c}}Hh}{}}{{}B`}000{ce{}{}}000{{{d{A`{Hl{ce}}}}{Dh{Bd}}}Abl{{Cd{c}}Hh}}{{{d{A`{Hl{ce}}}}i}Abl{{Cd{c}}Hh}{{Bf{Bd}}}{{n{}{{f{g}}}}}}`{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Dj{c}}}}{c{{Ah{e}}}{}{}}0000000{{{d{c}}}Hd{}}0005555```````{{{d{A`Fn}}{d{Bh}}{An{Al}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Id}}{d{Bh}}{An{Al}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Fn}}{d{Bh}}{An{Al}}B`{j{c}}}{{Ah{DlAf}}}l}{{{d{A`Id}}{d{Bh}}{An{Al}}B`{j{c}}}{{Ah{DlAf}}}l}{{{d{A`Fn}}{d{Bh}}{An{Bl}}B`{An{Al}}B`}{{Ah{{Ej{Dl{b{c}}}}Af}}}l}{{{d{A`Id}}{d{Bh}}{An{Bl}}B`{An{Al}}B`}{{Ah{{Ej{Dl{b{c}}}}Af}}}l}{{{d{A`Bn}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}}{{{d{A`Fn}}{d{Bh}}{An{Ch}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Id}}{d{Bh}}{An{Ch}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{Id}}}Id}{{{d{If}}}If}{{{d{c}}{d{A`e}}}Ab{}{}}0{{{d{If}}{d{If}}}Ih}{{{d{Id}}}{{d{{Ij{If}}}}}}{{{d{A`Fn}}Dl{j{c}}}{{Ah{AbAf}}}l}{{{d{A`Id}}Dl{j{c}}}{{Ah{AbAf}}}l}{{{d{A`Fn}}DlDl}{{Ah{AbAf}}}}{{{d{A`Id}}DlDl}{{Ah{AbAf}}}}{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{A`Fn}}{d{Bh}}{d{Fh}}B`}{{Ah{AbAf}}}}{{{d{A`Id}}{d{Bh}}{d{Fh}}B`}{{Ah{AbAf}}}}{{{d{If}}{d{If}}}Ad}{{{d{Id}}{d{A`Fj}}}Fl}{{{d{If}}{d{A`Fj}}}Fl}{cc{}}{{{An{Gj}}}If}1{FhIf}{{{d{If}}{d{A`c}}}AbIl}{{}B`}0{{{d{A`Fn}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{{{d{A`Id}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{ce{}{}}0{{{d{A`Fn}}{d{Bh}}{An{Gj}}}Ab}{{{d{A`Id}}{d{Bh}}{An{Gj}}}Ab}{E`Id}{{{d{If}}{d{If}}}{{Dh{Ih}}}}{{{d{Id}}}E`}{{{d{Id}}}B`}{{{d{c}}}e{}{}}0{c{{Ah{e}}}{}{}}000{{{d{c}}}Hd{}}099```````````````````````{{{d{{In{c}}}}}{{d{{Df{{Df{{J`{c}}}}}}}}}{JbJd}}{{{d{{In{c}}}}{An{Al}}}{{d{{Gn{{J`{c}}}}}}}{JbJd}}{{{d{A`{In{c}}}}g{An{Gj}}}Abl{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{{In{c}}}}}Ab{JbJd}}{{{d{{In{c}}}}ee}Ab{JbJd}{Dn{Jf{}{{G`{B`}}}}}}{{{d{A`{In{c}}}}g{An{Al}}B`k}{{Ah{AbAf}}}l{{Bf{Bd}}}{{n{}{{f{e}}}}}{{Bf{{j{c}}}}}{{n{}{{f{{b{i}}}}}}}}{{{d{A`{In{c}}}}g{An{Ch}}B`k}{{Ah{AbAf}}}l{{Bf{Bd}}}{{n{}{{f{e}}}}}{{Bf{{j{c}}}}}{{n{}{{f{{b{i}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{A`c}}}{{d{A`e}}}{}{}}0000000{{{d{e}}}Bdl{{Dj{c}}}}{{{d{Jh}}}Jh}{{{d{{J`{c}}}}}{{J`{c}}}{Dnl}}{{{d{{Jj{c}}}}}{{Jj{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}00{{}Jl}{{{d{A`{In{c}}}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}l}``{{{d{{In{c}}}}}{{d{{Eh{c}}}}}{JbJd}}{{}Jn}{B`{{d{c}}}{}}0000000{B`{{d{A`c}}}{}}0000000{B`Ab}0000000{{{d{K`}}{d{{In{c}}}}}Abl}{{{d{A`{In{c}}}}g{d{Fh}}B`}{{Ah{AbAf}}}l{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{A`{In{c}}}}g}Abl{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{Jh}}{d{Jh}}}Ad}{{{d{K`}}{d{K`}}}Ad}{{{d{{J`{c}}}}{d{{J`{c}}}}}Ad{Kbl}}{{{d{{Jj{c}}}}{d{{Jj{c}}}}}Ad{Kbl}}{{{d{A`{In{c}}}}}Abl}{{{d{A`{In{c}}}}{An{Ch}}B`{b{{j{c}}}}}{{Ah{AbAf}}}l}{{{d{{In{c}}}}}{{d{{Df{{Df{{J`{c}}}}}}}}}{JbJd}}{{{d{{In{c}}}}{An{Ch}}}{{d{{Gn{{J`{c}}}}}}}{JbJd}}{{{d{Jh}}{d{A`Fj}}}Fl}0{{{d{K`}}{d{A`Fj}}}Fl}0{{{d{Jl}}{d{A`Fj}}}Fl}{{{d{Jl}}{d{A`Fj}}}{{Ah{AbKd}}}}{{{d{{Kf{c}}}}{d{A`Fj}}}Fl{FbKh}}{{{d{Jn}}{d{A`Fj}}}Fl}{{{d{{J`{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{In{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Jj{c}}}}{d{A`Fj}}}Fl{Fbl}}{cc{}}0000000{{{d{{In{c}}}}Gf}{{b{c}}}l}{{}B`}0000000{{{d{{In{c}}}}}{{d{{Df{{Df{{Jj{c}}}}}}}}}{JbJd}}{ce{}{}}0000000{{JnAd}Jn}`{{{d{A`{In{c}}}}{Dh{Bd}}}Abl}{{{d{A`{In{c}}}}g}Abl{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{Jl}}}Bd}{{{d{{In{c}}}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{{JnEd{d{e}}{d{{Kl{gKj}}}}}{{Ah{AbKn}}}l{{Dj{c}}}L`}{{Ed{d{e}}{Df{{Df{c}}}}}{{Ah{{In{c}}Af}}}{JbJd}{{Dj{c}}}}{{{d{{In{c}}}}}{{d{{Df{{Df{Ad}}}}}}}{JbJd}}77{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Dj{c}}}}{{{d{c}}}e{}{}}00{{{d{c}}}Bd{}}00{c{{Ah{e}}}{}{}}000000000000000{{{d{c}}}Hd{}}0000000{{{d{{In{c}}}}}{{d{{Lb{B`}}}}}{JbJd}}{{{d{{Jj{c}}}}}cl}{{{d{{In{c}}}}}{{Ah{Ab{Df{K`}}}}}{JbJd}}{{{d{{In{c}}}}ee}{{Ah{Ab{Df{K`}}}}}{JbJd}{Dn{Jf{}{{G`{B`}}}}}}{{Jn{Lb{B`}}}Jn}0{ce{}{}}0000000````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{{Ld{ce}}}}{d{A`Fj}}}Fl{FbLf}{FbDj}}{{{d{{Lh{c}}}}{d{A`Fj}}}Fl{FbLf}}{{{d{{Lj{c}}}}{d{A`Fj}}}Fl{FbLf}}{cc{}}00{{}B`}00:::{{{d{{Ld{ce}}}}}{{Lh{c}}}LfDj}{{Ed{d{c}}}{{Ld{ec}}}DjLf}{{{d{{Ld{ce}}}}B`}{{Lj{c}}}LfDj}{c{{Ah{e}}}{}{}}00000{{{d{c}}}Hd{}}00???````````````>>>>>>>======={{{d{Ll}}}Ll}{{{d{Ln}}}Ln}{{{d{M`}}}M`}{{{d{Mb}}}Mb}{{{d{c}}{d{A`e}}}Ab{}{}}000{{{d{Ll}}{d{Ll}}}Ih}`{B`{{d{c}}}{}}000000{B`{{d{A`c}}}{}}000000{c{{Ah{M`}}}Md}{c{{Ah{Mf}}}Md}{B`Ab}000000{{{d{Mh}}{d{Mh}}}Ad}{{{d{Ll}}{d{Ll}}}Ad}`{{{d{Mh}}{d{A`Fj}}}Fl}{{{d{Mj}}{d{A`Fj}}}Fl}{{{d{Ll}}{d{A`Fj}}}Fl}{{{d{Ln}}{d{A`Fj}}}Fl}{{{d{M`}}{d{A`Fj}}}Fl}{{{d{Mb}}{d{A`Fj}}}Fl}{{{d{Mf}}{d{A`Fj}}}Fl}{cc{}}000000{{Ed{d{e}}{Df{{Df{c}}}}}Mj{JdlJb}{{Dj{c}}}}{{Ed{d{e}}{Df{{Df{c}}}}Mh}Mf{JdlJb}{{Dj{c}}}}{{{d{Ml}}}{{Ah{Llc}}}{}}`{{}B`}000000`{ce{}{}}000000{{{d{Mj}}Mh}Mf}``````{{{d{Ll}}{d{Ll}}}{{Dh{Ih}}}}````{{{d{M`}}c}AhMn}{{{d{Mf}}c}AhMn}```{{{d{c}}}e{}{}}000{c{{Ah{e}}}{}{}}0000000000000{{{d{c}}}Hd{}}0000007777777`````{{{d{c}}}{{d{e}}}{}{}}0000{{{d{A`c}}}{{d{A`e}}}{}{}}0000{{{d{N`}}}N`}{{{d{Nb}}}Nb}{{{d{Nd}}}Nd}{{{d{Nf}}}Nf}{{{d{c}}{d{A`e}}}Ab{}{}}000{{{d{N`}}{d{N`}}}Ih}{{{d{Nh}}{d{Nh}}}Ih}`{B`{{d{c}}}{}}0000{B`{{d{A`c}}}{}}0000{B`Ab}0000{{{d{N`}}{d{N`}}}Ad}{{{d{Nh}}{d{Nh}}}Ad}{{{d{Nb}}{d{Nb}}}Ad}{{{d{Nd}}{d{Nd}}}Ad}{{{d{Nf}}{d{Nf}}}Ad}{{{d{N`}}{d{A`Fj}}}{{Ah{AbKd}}}}0{{{d{Nh}}{d{A`Fj}}}Fl}0{{{d{Nb}}{d{A`Fj}}}Fl}0{{{d{Nd}}{d{A`Fj}}}Fl}0{{{d{Nf}}{d{A`Fj}}}Fl}0{{{An{Gj}}}N`}{cc{}}{{{Ej{cN`Nj}}}Nh{{Nl{Ml}}}}{{{Ej{N`Nj}}}Nh}2{NnNh}{{{Ej{B`c}}}Nb{{Nl{Ml}}}}44{{{Ej{NbB`c}}}Nd{{Nl{Ml}}}}{{{Ej{B`Bd}}}Nf}{{{Ej{B`{d{Ml}}}}}Nf}{{{Ej{B`{d{Ml}}{Dd{N`Bd}}}}}Nf}{{{Ej{B`Bd{Dd{N`Bd}}}}}Nf}9{{{d{N`}}{d{A`c}}}AbIl}`{{}B`}0000{ce{}{}}0000{{GjB`}N`}{{{d{N`}}{d{N`}}}{{Dh{Ih}}}}{{{d{Nh}}{d{Nh}}}{{Dh{Ih}}}}{{{d{c}}}e{}{}}000{{{d{c}}}Bd{}}0000{c{{Ah{e}}}{}{}}000000000{{{d{c}}}Hd{}}000077777```````````{{{d{{j{c}}}}c}{{j{c}}}l}{{{j{c}}{j{c}}}{{j{c}}}l}{{{j{c}}{d{{j{c}}}}}{{j{c}}}l}{{{j{c}}c}{{j{c}}}l}{{{d{{j{c}}}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}{d{{j{c}}}}}{{j{c}}}l}{{{d{A`{j{c}}}}{j{c}}}Abl}{{{d{A`{j{c}}}}{d{{j{c}}}}}Abl}{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{{j{c}}}}}{{j{c}}}Dn}{{{d{c}}{d{A`e}}}Ab{}{}}{{{d{{j{c}}}}}{{j{c}}}l}{{{d{{j{c}}}}}{{Dh{c}}}l}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}3{B`Ab}{{{d{{j{c}}}}{d{{j{c}}}}}Adl}{{{j{c}}}cl}{{{d{{j{c}}}}{d{A`Fj}}}FlFb}{{{Ej{cc}}}{{j{c}}}l}{cc{}}9{{{d{c}}}{{j{c}}}l}{c{{j{c}}}l}{{}B`}{ce{}{}}={{{d{{j{c}}}}}Adl}{{{j{c}}{j{c}}}{{j{c}}}l}{{{j{c}}c}{{j{c}}}l}{{{d{{j{c}}}}c}{{j{c}}}l}{{{j{c}}{d{{j{c}}}}}{{j{c}}}l}{{{d{A`{j{c}}}}{j{c}}}Abl}{{{d{A`{j{c}}}}{d{{j{c}}}}}Abl}{{{d{{j{c}}}}}el{}}{{{j{c}}}el{}}{{{d{{j{c}}}}}cl}{{{d{{j{c}}}}}{{j{c}}}l}9{{{d{{j{c}}}}{d{{j{c}}}}}{{j{c}}}l}{{{d{{j{c}}}}{j{c}}}{{j{c}}}l}98:67{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}``````````{{{d{A`Cd}}e{An{Gj}}}Ab{{Bf{Bd}}}{{n{}{{f{c}}}}}}{{{d{A`Cd}}e{An{Al}}B`k}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{f{c}}}}}l{{Bf{{j{g}}}}}{{n{}{{f{{b{i}}}}}}}}{{{d{A`Cd}}e{An{Ch}}B`k}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{f{c}}}}}l{{Bf{{j{g}}}}}{{n{}{{f{{b{i}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{{{d{Al}}}Al}{{{d{Ch}}}Ch}{{{d{Bl}}}Bl}{{{d{c}}{d{A`e}}}Ab{}{}}00`{{{d{A`{Eh{c}}}}}el{}}{{{d{A`{Eh{c}}}}e}gl{}{}}`{{{d{A`Cd}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}}{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{A`Cd}}e{d{Fh}}B`}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{f{c}}}}}}{{{d{A`Cd}}e}Ab{{Bf{Bd}}}{{n{}{{f{c}}}}}}{{{d{Al}}{d{Al}}}Ad}{{{d{Ch}}{d{Ch}}}Ad}{{{d{Bl}}{d{Bl}}}Ad}{{{d{A`Cd}}}Ab}`{{{d{A`Cd}}{An{Ch}}B`{b{{j{c}}}}}{{Ah{AbAf}}}l}{{{d{Al}}{d{A`Fj}}}Fl}{{{d{Ch}}{d{A`Fj}}}Fl}{{{d{Bl}}{d{A`Fj}}}Fl}{cc{}}00{{{d{Cd}}Gf}{{b{c}}}l}{{{d{Al}}{d{A`c}}}AbIl}{{{d{Ch}}{d{A`c}}}AbIl}{{{d{Bl}}{d{A`c}}}AbIl}{{}B`}00{ce{}{}}00{{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}}gDnKhOd}{{{d{A`Cd}}{Dh{Bd}}}Ab}{{{d{A`Cd}}e}Ab{{Bf{Bd}}}{{n{}{{f{c}}}}}}{{{d{Of}}B`Oh}{{Oj{c}}}l}{{{d{Al}}B`Oh}{{Oj{c}}}l}{{{d{Ch}}B`Oh}{{Oj{c}}}l}{{{d{Bl}}B`Oh}{{Oj{c}}}l}{{{d{Cd}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}l{{Cd{c}}Hh}{{Dj{c}}}}{{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}ck}{{Ah{AbAf}}}DnKhOdl{{Cl{i}}}}{{{d{c}}}e{}{}}00{c{{Ah{e}}}{}{}}00000{{{d{c}}}Hd{}}00==={{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}}{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}DnKhOd}``````{{{d{A`{Eh{c}}}}}{{An{Al}}}l}{{{d{A`{Eh{c}}}}e}{{An{Al}}}lOl}{{{d{{Eh{c}}}}}{{Df{Db}}}l}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Al}}Oh}}}}}}}l}{{{d{A`{Eh{c}}}}ei}Abl{{Bf{{An{Gj}}}}}{{Bf{Bd}}}{{Bh{}{{f{g}}}}}}0{{{d{A`{Eh{c}}}}C`g}Abl{{Bf{Bd}}}{{Bh{}{{f{e}}}}}}{{{d{{Eh{c}}}}}B`l}{{{d{c}}}{{d{e}}}{}{}}00000{{{d{A`c}}}{{d{A`e}}}{}{}}000006{{{d{A`{Eh{c}}}}e}GflOl}{{{d{Nn}}}Nn}{{{d{{On{c}}}}}{{On{c}}}{Dnl}}{{{d{{Eh{c}}}}}{{Eh{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}00`{{{d{A`{Eh{c}}}}}Fhl}{{{Eh{c}}{Df{{Df{Ad}}}}}{{Ej{{Eh{c}}{Df{{Df{c}}}}}}}l}{{{d{{Eh{c}}}}}{{d{{Df{{An{Ch}}}}}}}l}{{{d{{On{c}}}}B`}{{d{Ml}}}l}{{{d{A`{Eh{c}}}}ek}Abl{{Nl{Ml}}}{{Bf{{A@`{c}}}}}{{Gb{}{{G`{g}}}}}{{n{{d{A`{A@b{c}}}}}{{f{i}}}}}}{{}{{Eh{c}}}l}={B`{{d{c}}}{}}00000{B`{{d{A`c}}}{}}000006{B`Ab}00000{{{d{A`{Eh{c}}}}{An{Ch}}}Abl}{{{d{A`{Eh{c}}}}e}Abl{{Bf{{An{Gj}}}}}}{{{d{A`{Eh{c}}}}}{{An{Ch}}}l}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Ch}}Oh}}}}}}}l}{{{d{Nn}}{d{A`Fj}}}Fl}{{{d{{A@`{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{A@d{ceg}}}}{d{A`Fj}}}Fl{Fbl}{Fb{Bf{{A@`{c}}}}}{Fb{Gb{}{{G`{e}}}}}}{{{d{{On{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Eh{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{A@b{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{Ej{cOh}}}Nn{{Bf{{An{Gj}}}}}}{cc{}}0{{{Ej{c{Oj{e}}}}}{{A@`{e}}}{{Nl{Ml}}}l}{{{Oj{c}}}{{A@`{c}}}l}2222{{{d{{Eh{c}}}}}{{d{{Df{{On{c}}}}}}}l}{{{d{{Eh{c}}}}}{{d{{Dd{N`Bd}}}}}l}{{{d{{Eh{c}}}}{An{Gj}}Oh}B`l}{{}B`}00000{{{d{A`{Eh{c}}}}}{{An{Bl}}}l}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Bl}}Oh}}}}}}}l}{ce{}{}}00000{{{A@d{ceg}}}il{{Bf{{A@`{c}}}}}{{Gb{}{{G`{e}}}}}{}}{{{d{A`{Eh{c}}}}eg}B`l{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{f{{Df{{Ej{{Oj{c}}C`}}}}}}}}}}{{{d{A`{Eh{c}}}}eg}B`l{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{f{{Df{{Ej{{Oj{c}}{Oj{c}}}}}}}}}}}}{{{d{A`{Eh{c}}}}}C`l}{{{d{{Eh{c}}}}}{{d{{Df{{A@f{c}}}}}}}l}{{{d{{Eh{c}}}}}B`l}{{{d{{On{c}}}}}{{d{Ml}}}l}11111{{{d{{Eh{c}}}}}{{d{A@h}}}l}{{{d{{Eh{c}}}}}{{`{{Jf{}{{G`{A@j}}}}}}}l}{{{d{{On{c}}}}}{{d{{Gn{{Oj{c}}}}}}}l}{{{d{{On{c}}}}}{{d{{Gn{Nn}}}}}l}{{{d{{On{c}}}}}{{d{{Gn{Fh}}}}}l}{{{d{A`{A@b{c}}}}{An{Al}}Oh}{{Oj{c}}}l}{{{d{A`{A@b{c}}}}eOh}{{Oj{c}}}l{{Bf{{An{Gj}}}}}}{{{d{A`{A@b{c}}}}Gf}{{Oj{c}}}l}{{{d{A`{A@b{c}}}}{An{Ch}}Oh}{{Oj{c}}}l}{{{d{A`{A@b{c}}}}{An{Bl}}Oh}{{Oj{c}}}l}{{{d{A`{A@b{c}}}}Fh}{{Oj{c}}}l}`{{{d{A`{Eh{c}}}}}Fhl}{{{d{A`{Eh{c}}}}B`}Abl}{{{d{A`{Eh{c}}}}eg}B`l{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{f{{Df{{Ej{{Oj{c}}{Oj{c}}}}}}}}}}}}{{{d{{Eh{c}}}}}{{d{{Df{{A@l{c}}}}}}}l}{{{d{c}}}e{}{}}00{c{{Ah{e}}}{}{}}00000000000{{{d{c}}}Hd{}}00000{{{d{A`{Eh{c}}}}}{{An{Al}}}l}{{{d{A`{Eh{c}}}}e}{{An{Al}}}lOl}{ce{}{}}00000{{{Oj{c}}g}{{A@d{ceg}}}l{{Bf{{A@`{c}}}}}{{Gb{}{{G`{e}}}}}}``````````````````````{{{Oj{c}}{Oj{c}}}{{Oj{c}}}l}{{{d{c}}}{{d{e}}}{}{}}0000000000{{{d{A`c}}}{{d{A`e}}}{}{}}0000000000{{{d{{An{c}}}}}{{An{c}}}{DnOf}}{{{d{Fh}}}Fh}{{{d{A@n}}}A@n}{{{d{AA`}}}AA`}{{{d{AAb}}}AAb}{{{d{C`}}}C`}{{{d{Gf}}}Gf}{{{d{{Oj{c}}}}}{{Oj{c}}}Dn}{{{d{c}}{d{A`e}}}Ab{}{}}0000000{{{d{{An{c}}}}{d{{An{c}}}}}IhOf}{{{d{C`}}{d{C`}}}Ih}{{{d{A@n}}}B`}{{{d{AA`}}}B`}{{{d{AAb}}}B`}```{{{d{{An{c}}}}}{{d{c}}}Of}`{{{d{{Oj{c}}}}}B`l}{{{d{{An{c}}}}}{{Oj{e}}}Ofl}1{B`{{d{c}}}{}}0000000000{B`{{d{A`c}}}{}}0000000000{B`Ab}0000000000{{{d{Fh}}{d{A`{Aj{c}}}}B`}{{Ah{AbAf}}}l}{{{d{{An{c}}}}{d{{An{c}}}}}Ad{KbOf}}{{{d{Fh}}{d{Fh}}}Ad}{{{d{A@n}}{d{A@n}}}Ad}{{{d{AA`}}{d{AA`}}}Ad}{{{d{AAb}}{d{AAb}}}Ad}{{{d{C`}}{d{C`}}}Ad}{{{d{Gf}}{d{Gf}}}Ad}{{{d{{Oj{c}}}}{d{{Oj{c}}}}}AdKb}{{{d{{Oj{c}}}}{d{g}}{d{i}}{d{k}}{d{m}}{d{o}}{d{Aa}}{d{Ac}}{d{Ae}}{d{Ag}}{d{Ai}}}el{}{{Bh{c}{{f{e}}}}}{{Bh{Fh}{{f{e}}}}}{{Bh{A@n}{{f{e}}}}}{{Bh{AA`}{{f{e}}}}}{{Bh{AAb}{{f{e}}}}}{{Bh{Gf}{{f{e}}}}}{{Bh{e}{{f{e}}}}}{{Bh{ee}{{f{e}}}}}{{Bh{ee}{{f{e}}}}}{{Bh{ec}{{f{e}}}}}}{{{d{{Oj{c}}}}{d{g}}{d{i}}{d{k}}{d{m}}{d{o}}{d{Aa}}{d{Ac}}{d{Ae}}{d{Ag}}{d{Ai}}{d{e}}}elKb{{Bh{c}{{f{e}}}}}{{Bh{Fh}{{f{e}}}}}{{Bh{A@n}{{f{e}}}}}{{Bh{AA`}{{f{e}}}}}{{Bh{AAb}{{f{e}}}}}{{Bh{Gf}{{f{e}}}}}{{Bh{e}{{f{e}}}}}{{Bh{ee}{{f{e}}}}}{{Bh{ee}{{f{e}}}}}{{Bh{ec}{{f{e}}}}}}{{{d{Fh}}}{{Oj{c}}}l}{{{d{Gf}}}{{Oj{c}}}l}{{{d{{An{c}}}}{d{A`Fj}}}Fl{FbOf}}{{{d{AAd}}{d{A`Fj}}}Fl}{{{d{AAf}}{d{A`Fj}}}Fl}{{{d{AAh}}{d{A`Fj}}}Fl}{{{d{Fh}}{d{A`Fj}}}Fl}{{{d{A@n}}{d{A`Fj}}}Fl}{{{d{AA`}}{d{A`Fj}}}Fl}{{{d{AAb}}{d{A`Fj}}}Fl}{{{d{C`}}{d{A`Fj}}}Fl}{{{d{Gf}}{d{A`Fj}}}Fl}{{{d{{Oj{c}}}}{d{A`Fj}}}FlFb}{{{An{Al}}}{{An{Gj}}}}{{{An{Ch}}}{{An{Gj}}}}{{{An{Bl}}}{{An{Gj}}}}{cc{}}{N`{{An{Gj}}}}111111111{AAjGf}2{{{d{{An{c}}}}{d{A`e}}}Ab{AAlOf}Il}{{{d{Fh}}{d{A`c}}}AbIl}{{{d{C`}}{d{A`c}}}AbIl}{{{d{Gf}}{d{A`c}}}AbIl}{{{d{{Oj{c}}}}}Bdl}{{{d{{An{c}}}}}B`Of}{{{d{Fh}}}B`}{{{d{Gf}}}B`}`````{{}B`}0000000000{{{d{C`}}}{{An{Ch}}}}{ce{}{}}0000000000{{{d{Fh}}}Ad}{{{Oj{c}}{Oj{c}}}{{Oj{c}}}l}{{{Oj{c}}c}{{Oj{c}}}l}{{{Oj{c}}}el{}}{{B`c}{{An{c}}}Of}{{{d{{An{c}}}}}{{Oj{e}}}Ofl}{{{d{{An{c}}}}{d{{An{c}}}}}{{Dh{Ih}}}Of}{{{d{C`}}{d{C`}}}{{Dh{Ih}}}}{{{d{Gf}}}Db}3{e{{Oj{c}}}l{{Jf{}{{G`{{Oj{c}}}}}}}}{{{d{{An{c}}}}Oh}{{Oj{e}}}Ofl}{{{d{A`{Oj{c}}}}{d{A`{A@b{c}}}}}Abl}{{{d{{An{c}}}}Nj}{{Oj{e}}}Ofl}{{{d{A@n}}}Oh}{{{d{AA`}}}Oh}{{{d{AAb}}}Oh}````{{{Oj{c}}}{{Oj{c}}}l}?7{{{d{c}}}e{}{}}0000000{AAdA@j}{AAfA@j}{AAhA@j}{{{An{Gj}}}{{Ah{{An{Ch}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Bl}}c}}}{}}{c{{Ah{e}}}{}{}}{{{An{Gj}}}{{Ah{{An{Al}}c}}}{}}111111111111111111111{{{d{c}}}Hd{}}0000000000{ce{}{}}0000000000``{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{A@j}}}A@j}{{{d{c}}{d{A`e}}}Ab{}{}}{{{d{A@j}}{d{A@j}}}Ih}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}{B`Ab}{{{d{A@j}}{d{A@j}}}Ad}{{{d{A@j}}{d{A`Fj}}}Fl}{cc{}}{{{d{A@j}}{d{A`c}}}AbIl}{{}B`}={{{d{A@j}}{d{A@j}}}{{Dh{Ih}}}}{{{d{A@j}}}{{Dh{A@j}}}}{{{d{c}}}e{}{}}{AAnA@j}{A@jA@j}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}`````````````{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{Af}}{d{A`Fj}}}Fl}0{{{d{AB`}}{d{A`Fj}}}Fl}0{cc{}}0{{}B`}099{EdAf}{{{d{c}}}Bd{}}0====<<;;``:9{{{d{{A@f{c}}}}}{{A@f{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}:98{{{d{{A@f{c}}}}{d{A`Fj}}}Fll}65{{{d{{A@f{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}?{{{d{{A@f{c}}}}}{{d{Ml}}}l}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@f{e}}}{{Nl{Ml}}}l}2{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}`{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{A@h}}}A@h};{{}A@h}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}{B`Ab}{{{d{A@h}}{d{A`Fj}}}Fl}{cc{}}{{{d{A@h}}}{{Df{{An{Gj}}}}}}{{}B`};>==<;`:9{{{d{{A@l{c}}}}}{{A@l{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}876{{{d{{A@l{c}}}}{d{A`Fj}}}Fll}53{{{d{{A@l{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}?{{{d{{A@l{c}}}}}{{d{Ml}}}l}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@l{e}}}{{Nl{Ml}}}l}2{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}","D":"DDl","p":[[5,"Value",3,1669],[1,"reference"],[17,"Output"],[10,"Add",1670],[6,"Assigned",972],[10,"Field",1671],[10,"FnOnce",1672],[0,"mut"],[1,"unit"],[1,"bool"],[6,"Error",1563],[6,"Result",1673],[5,"Region",3],[5,"Advice",1029],[5,"Column",1273],[1,"usize"],[5,"AssignedCell",3],[5,"String",1674],[10,"Into",1675],[10,"Fn",1672],[10,"FnMut",1672],[5,"Instance",1029],[10,"TableLayouter",381,1676],[5,"TableColumn",1273],[5,"SimpleTableLayouter",3,1676],[10,"Assignment",1029],[5,"Table",3],[5,"Fixed",1029],[17,"Root"],[10,"Layouter",3],[5,"NamespacedLayouter",3],[5,"WitnessCalculator",3],[1,"u8"],[5,"HashMap",1677],[5,"Vec",1678],[6,"Option",1679],[10,"Circuit",1029],[5,"Cell",3],[10,"Clone",1680],[5,"RegionIndex",3],[5,"RegionStart",3],[1,"u32"],[5,"CompiledCircuit",1681],[5,"ConstraintSystem",1118],[1,"tuple"],[17,"Config"],[17,"Loaded"],[10,"Chip",3],[10,"Debug",1682],[10,"Copy",1683],[10,"Borrow",1684],[5,"Selector",1273],[5,"Formatter",1682],[8,"Result",1682],[10,"RegionLayouter",381],[17,"Item"],[10,"IntoIterator",1685],[10,"FromIterator",1685],[5,"Challenge",1273],[10,"Mul",1670],[6,"Any",1681],[10,"Neg",1670],[1,"slice"],[10,"Sub",1670],[1,"array"],[5,"TypeId",1686],[5,"SingleChipLayouter",279],[10,"SyncDeps",381],[5,"SimpleFloorPlanner",279],[5,"V1Pass",316],[5,"V1",316],[5,"MeasurementPass",316],[5,"AssignmentPass",316],[5,"RegionShape",381],[6,"RegionColumn",381],[6,"Ordering",1687],[5,"HashSet",1688],[10,"Hasher",1689],[5,"MockProver",449],[6,"CellValue",449],[10,"FromUniformBytes",1671],[10,"Ord",1687],[10,"Iterator",1690],[6,"FailureLocation",449,1691],[6,"InstanceValue",449],[5,"CircuitGates",449,1692],[5,"CircuitLayout",449,1693],[6,"VerifyFailure",449,1691],[10,"PartialEq",1687],[5,"Error",1682],[5,"TracingFloorPlanner",449,1694],[10,"FloorPlanner",1029],[5,"Shift",1695],[5,"DrawingArea",1696],[6,"DrawingAreaErrorKind",1696],[10,"DrawingBackend",1697],[5,"Range",1698],[5,"CircuitCost",661],[10,"PrimeGroup",1699],[5,"MarginalProofSize",661],[5,"ProofSize",661],[5,"Poly",706],[5,"Lookup",706],[5,"Permutation",706],[5,"Shuffle",706],[10,"Deserializer",1700],[5,"ModelCircuit",706],[6,"CommitmentScheme",706],[5,"CostOptions",706],[1,"str"],[10,"Serializer",1701],[5,"Column",850],[5,"Gate",850],[5,"Constraint",850],[5,"Region",850],[5,"VirtualCell",850],[1,"i32"],[10,"AsRef",1675],[5,"VirtualCell",1118],[17,"FloorPlanner"],[17,"Params"],[10,"Default",1702],[10,"ColumnType",1029],[5,"Rotation",1703],[6,"Expression",1273],[10,"Phase",1273],[5,"Gate",1118],[5,"Constraint",1118],[5,"VirtualCells",1118],[5,"Constraints",1118],[5,"Argument",1608],[5,"Argument",1629],[5,"Phase",1538],[5,"Argument",1648],[5,"FixedQuery",1273],[5,"AdviceQuery",1273],[5,"InstanceQuery",1273],[5,"FirstPhase",1273],[5,"SecondPhase",1273],[5,"ThirdPhase",1273],[5,"ChallengeMid",1681],[10,"Hash",1689],[10,"SealedPhase",1538],[6,"TableError",1563],[15,"InRegion",636],[15,"OutsideRegion",636],[15,"ConstraintNotSatisfied",639],[15,"CellNotAssigned",639],[15,"InstanceCellNotAssigned",639],[15,"Permutation",639],[15,"ConstraintPoisoned",639],[15,"Lookup",639],[15,"Shuffle",639],[15,"NotEnoughRowsAvailable",1607]],"r":[[14,279],[15,1676],[17,1676],[18,1669],[275,316],[276,316],[387,1676],[453,661],[454,1692],[455,1693],[458,1691],[469,1694],[471,1691],[495,1704]],"b":[[20,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[21,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[22,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[23,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[24,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[25,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[26,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[27,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[28,"impl-Add-for-Value%3CV%3E"],[29,"impl-Add-for-%26Value%3CV%3E"],[78,"impl-Value%3C%26mut+V%3E"],[79,"impl-Value%3C%26V%3E"],[87,"impl-Value%3C%26V%3E"],[88,"impl-Value%3C%26mut+V%3E"],[190,"impl-Mul-for-%26Value%3CV%3E"],[191,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[192,"impl-Mul-for-Value%3CV%3E"],[193,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[194,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[195,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[196,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[197,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[198,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[199,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[212,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[213,"impl-Sub-for-%26Value%3CV%3E"],[214,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[215,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[216,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[217,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[218,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[219,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[220,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[221,"impl-Sub-for-Value%3CV%3E"],[423,"impl-From%3CColumn%3CAny%3E%3E-for-RegionColumn"],[425,"impl-From%3CSelector%3E-for-RegionColumn"],[543,"impl-Debug-for-FailureLocation"],[544,"impl-Display-for-FailureLocation"],[545,"impl-Debug-for-VerifyFailure"],[546,"impl-Display-for-VerifyFailure"],[547,"impl-Debug-for-CircuitGates"],[548,"impl-Display-for-CircuitGates"],[896,"impl-Display-for-ColumnMid"],[897,"impl-Debug-for-ColumnMid"],[898,"impl-Display-for-VirtualCell"],[899,"impl-Debug-for-VirtualCell"],[900,"impl-Display-for-Gate"],[901,"impl-Debug-for-Gate"],[902,"impl-Display-for-Constraint"],[903,"impl-Debug-for-Constraint"],[904,"impl-Debug-for-Region"],[905,"impl-Display-for-Region"],[908,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[909,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[911,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[916,"impl-From%3C(usize,+String)%3E-for-Region"],[917,"impl-From%3C(usize,+%26str)%3E-for-Region"],[918,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[919,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[976,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[977,"impl-Add-for-Assigned%3CF%3E"],[978,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[979,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[980,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[981,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[982,"impl-AddAssign-for-Assigned%3CF%3E"],[983,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[997,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[999,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1000,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1001,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1006,"impl-Mul-for-Assigned%3CF%3E"],[1007,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1008,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1009,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1010,"impl-MulAssign-for-Assigned%3CF%3E"],[1011,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1012,"impl-Neg-for-%26Assigned%3CF%3E"],[1013,"impl-Neg-for-Assigned%3CF%3E"],[1016,"impl-Sub-for-Assigned%3CF%3E"],[1017,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1018,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1019,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1020,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1021,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1022,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1023,"impl-SubAssign-for-Assigned%3CF%3E"],[1192,"impl-From%3C(S,+Expression%3CF%3E)%3E-for-Constraint%3CF%3E"],[1193,"impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E"],[1404,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1405,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1406,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1408,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1457,"impl-Mul-for-Expression%3CF%3E"],[1458,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1491,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1492,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1494,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1586,"impl-Debug-for-Error"],[1587,"impl-Display-for-Error"],[1588,"impl-Display-for-TableError"],[1589,"impl-Debug-for-TableError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAF8EjQAAAAAAAwAAAA8AAAAVAAkAKAAAACwAAAAuABQARQAJAFcAAABcAAAAXgAVAHUACgCBAAAAhgAJAJEAAACVAAAAlwAAAJsAAACdAAAAoQAAAKMACgC/AAkAywAAAM8AAADRAAAA1QAJAOAABADnAB0ACQEJABQBAwAaAQ4AKwEDADIBCgBBARoAYAEFAGoBEwCGAQAAiAEAAIoBAACNAQkAmQEAAJsBBgCjAQMAqAEAAKoBAwCvAQAAswEAALUBAAC4AQkAxgEAANsBAADeAREA8QEFAPgBAAD8ARgAFgIHACACCgAzAggARwIBAEoCAABQAh4AdQIHAJkCEQCuAgIAtwILAM8CFgDnAhgAAQMGABEDAAATAwYAKQMAAC4DAQAzAx8AWAMTAG0DHgCNAwEAkAMBAJQDBACaAwAAnAMEAKYDJADMAwAA0QMLAN8DAQDiAwEA5QMBAOgDAwDvAwcA+QMMABMEDAAiBAAAJAQIAC8EAgAzBAAANQQCADwEBQBJBAIATwQOAG0ECwB7BAYAhwQAAIkECwCWBAUAoAQGAKkEAQCxBAYAwAQAAM8EAQDXBAAA3AQUAPMEBQAQBSgAQAUAAEQFIABmBQcAcgUNAIEFAACLBQAAjQUDAJUFAACZBQsAsgUDALcFAQC7BQAAxQUAAMcFOwAFBgkAEAYBABMGCAApBg0AOQYBAD4GCQBKBgcAUwYAAFkGBABfBggAagYAAGwGBAByBgcAewYAAIEGBAA="}],\ +["halo2_frontend",{"t":"CCCFFKRKRFFFFREFFKFFNNNNNNNNNNNNNNNNNNMNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHMNNMNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEECCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPGKFPKKMNMNMNMMNNNNNNNNNNNMNMNNNNNNNMNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNPPPGEFFPPGPPGPFPPPPPFPGNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCCGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKKKRFKRFRMMMNNNNNNNNNNNNCMNCMNNNNNNNNNMMNNNMCMNNNNNNMNNNNNNNNNNMMMNNNMMMNNNNNNNNNNNNNNNMFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFPFPGFPFPFPKPPFFPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKNNNNNNNNNNNNNNNNNMNNNNNPPPGPPPPPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNN","n":["circuit","dev","plonk","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","WitnessCalculator","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_cell","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calc","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","compile_circuit","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","default_and_assigned","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","eq","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into","into","into_field","invert","known","layouter","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","new","new","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","to_field","to_owned","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","single_pass","v1","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_challenge","get_root","init","init","into","into","new","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","get_root","init","init","init","init","into","into","into","into","pop_namespace","push_namespace","strategy","synthesize","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Column","RegionColumn","RegionLayouter","RegionShape","Selector","SyncDeps","TableLayouter","assign_advice","assign_advice","assign_advice_from_constant","assign_advice_from_constant","assign_advice_from_instance","assign_advice_from_instance","assign_cell","assign_fixed","assign_fixed","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","columns","constrain_constant","constrain_constant","constrain_equal","constrain_equal","deref","deref","deref_mut","deref_mut","drop","drop","enable_selector","enable_selector","eq","fmt","fmt","from","from","from","from","hash","init","init","instance_value","instance_value","into","into","name_column","name_column","new","partial_cmp","region_index","row_count","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Assigned","Assigned","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","InstanceValue","Lookup","MockProver","OutsideRegion","Padding","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice","advice_mut","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","collect","copy","cost","cost_model","cs","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","init","instance","instance_mut","into","into","into","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","selectors","show_equality_constraints","show_labels","synthesize","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","usable_rows","value","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CircuitCost","MarginalProofSize","ProofSize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","marginal_proof_size","measure","proof_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","assigned","circuit","error","keygen","lookup","permutation","shuffle","Assigned","Rational","Trivial","Zero","add","add","add","add","add","add","add_assign","add_assign","borrow","borrow_mut","clone","clone_into","cube","denominator","deref","deref_mut","double","drop","eq","evaluate","fmt","from","from","from","from","from","init","into","invert","is_zero_vartime","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","numerator","square","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","to_owned","try_from","try_into","type_id","vzip","Advice","Assignment","Circuit","ColumnType","Config","Fixed","FloorPlanner","FloorPlanner","Instance","Params","annotate_column","assign_advice","assign_fixed","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress_selectors","configure","configure_with_params","constraint_system","copy","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","exit_region","expression","fill_from_row","fmt","fmt","fmt","from","from","from","get_challenge","hash","hash","hash","init","init","init","into","into","into","params","pop_namespace","push_namespace","query_cell","query_cell","query_cell","query_cell","query_instance","synthesize","synthesize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","without_witnesses","Constraint","ConstraintSystem","Constraints","Gate","VirtualCell","VirtualCells","advice_column","advice_column_in","advice_column_phase","advice_queries","annotate_column","annotate_lookup_any_column","annotate_lookup_column","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","clone_into","clone_into","clone_into","column","complex_selector","compress_selectors","constants","constraint_name","create_gate","default","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","drop","drop","drop","drop","drop","drop","enable_constant","enable_equality","fixed_column","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","get_any_query_index","init","init","init","init","init","init","instance_column","instance_queries","into","into","into","into","into","into","into_iter","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","name","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","permutation","phases","polynomials","queried_cells","queried_selectors","query_advice","query_any","query_challenge","query_fixed","query_instance","query_selector","rotation","selector","set_minimum_degree","shuffle","shuffles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","Advice","AdviceQuery","Challenge","Challenge","Column","Constant","Expression","FirstPhase","Fixed","FixedQuery","Instance","InstanceQuery","Negated","Phase","Product","Scaled","SecondPhase","Selector","Selector","Sum","TableColumn","ThirdPhase","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_index","column_index","column_index","column_index","column_index","column_index","column_type","column_type","complexity","cur","degree","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate_lazy","expr","expr","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","hash","hash","hash","identifier","index","index","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into","into","into","into","into","is_simple","mul","mul","neg","new","next","partial_cmp","partial_cmp","phase","prev","product","query_cell","query_cells","rot","rotation","rotation","rotation","rotation","rotation","rotation","sealed","square","sub","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Phase","SealedPhase","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","fmt","from","hash","init","into","partial_cmp","prev","to_owned","to_sealed","to_sealed","try_from","try_into","type_id","vzip","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Error","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","init","init","into","into","not_enough_rows_available","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","current_k","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","table_expressions","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_columns","init","into","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"halo2_frontend"],[3,"halo2_frontend::circuit"],[275,"halo2_frontend::circuit::floor_planner"],[279,"halo2_frontend::circuit::floor_planner::single_pass"],[316,"halo2_frontend::circuit::floor_planner::v1"],[381,"halo2_frontend::circuit::layouter"],[449,"halo2_frontend::dev"],[641,"halo2_frontend::dev::FailureLocation"],[644,"halo2_frontend::dev::VerifyFailure"],[666,"halo2_frontend::dev::cost"],[711,"halo2_frontend::dev::cost_model"],[855,"halo2_frontend::dev::metadata"],[973,"halo2_frontend::plonk"],[980,"halo2_frontend::plonk::assigned"],[1037,"halo2_frontend::plonk::circuit"],[1126,"halo2_frontend::plonk::circuit::constraint_system"],[1281,"halo2_frontend::plonk::circuit::expression"],[1546,"halo2_frontend::plonk::circuit::expression::sealed"],[1571,"halo2_frontend::plonk::error"],[1615,"halo2_frontend::plonk::error::Error"],[1616,"halo2_frontend::plonk::lookup"],[1637,"halo2_frontend::plonk::permutation"],[1656,"halo2_frontend::plonk::shuffle"],[1677,"halo2_frontend::circuit::value"],[1678,"ff"],[1679,"core::ops::arith"],[1680,"core::ops::function"],[1681,"core::result"],[1682,"alloc::string"],[1683,"core::convert"],[1684,"halo2_frontend::circuit::table_layouter"],[1685,"std::collections::hash::map"],[1686,"alloc::vec"],[1687,"core::option"],[1688,"core::clone"],[1689,"halo2_middleware::circuit"],[1690,"core::fmt"],[1691,"core::marker"],[1692,"core::borrow"],[1693,"core::iter::traits::collect"],[1694,"core::any"],[1695,"core::cmp"],[1696,"std::collections::hash::set"],[1697,"core::hash"],[1698,"core::iter::traits::iterator"],[1699,"halo2_frontend::dev::failure"],[1700,"halo2_frontend::dev::gates"],[1701,"halo2_frontend::dev::graph::layout"],[1702,"halo2_frontend::dev::tfp"],[1703,"plotters::coord"],[1704,"plotters::drawing::area"],[1705,"plotters_backend"],[1706,"core::ops::range"],[1707,"group::prime"],[1708,"serde::de"],[1709,"serde::ser"],[1710,"core::default"],[1711,"halo2_middleware::poly"],[1712,"halo2_frontend::dev::graph"]],"i":[0,0,0,0,0,0,48,0,48,0,0,0,0,30,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,13,13,13,23,25,27,13,30,31,30,31,25,3,32,40,41,38,17,13,27,31,25,3,32,40,41,38,17,13,27,31,32,17,3,40,41,38,17,3,40,41,38,17,3,3,38,0,48,13,13,30,31,3,3,17,3,3,25,25,3,32,40,40,41,41,38,17,13,27,31,25,3,32,40,41,38,17,13,27,31,3,25,3,32,40,41,38,17,13,27,31,31,13,41,3,3,17,0,25,3,32,40,41,38,17,13,27,31,25,3,3,32,40,40,41,41,38,17,13,13,27,27,31,3,30,31,30,31,25,3,32,40,41,38,17,13,27,31,13,25,3,32,40,41,38,17,13,27,31,3,3,3,0,48,3,3,3,3,3,3,3,3,3,3,3,13,30,3,25,32,30,31,30,31,38,38,3,3,3,3,3,3,3,3,3,3,3,3,3,40,41,38,17,3,3,25,3,32,40,41,38,17,13,27,31,25,3,32,40,41,38,17,13,27,31,25,3,32,40,41,38,17,13,27,31,3,3,17,17,25,3,32,40,41,38,17,13,27,31,3,0,0,0,0,0,0,67,67,67,69,67,69,67,67,69,67,69,67,69,67,69,67,69,67,67,67,69,67,69,67,67,67,69,67,69,67,69,67,69,67,69,0,0,0,0,70,70,71,70,72,73,71,70,72,73,70,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,70,70,71,70,72,73,71,70,72,73,70,70,0,71,71,70,72,73,71,70,72,73,71,70,72,73,71,70,72,73,75,0,0,0,75,0,0,55,74,55,74,55,74,23,55,74,74,75,74,75,74,75,74,75,75,74,55,74,55,74,74,75,74,75,74,75,55,74,75,74,75,74,75,75,75,75,74,75,55,74,74,75,55,74,74,75,74,74,74,75,74,75,74,75,74,75,74,75,80,86,85,0,0,0,0,85,85,0,84,85,0,85,0,84,86,85,80,85,0,80,0,79,79,79,79,79,79,79,79,84,85,87,91,88,80,79,86,84,85,87,91,88,80,79,86,0,84,85,80,86,84,85,80,86,87,79,0,0,79,88,84,85,87,91,88,80,79,86,84,85,87,91,88,80,79,86,84,85,87,91,88,80,79,86,85,79,79,84,85,80,86,79,79,79,79,84,84,85,85,87,87,91,88,80,79,86,84,85,87,91,88,80,79,86,79,84,85,87,91,88,80,79,86,79,79,84,85,87,91,88,80,79,86,88,0,79,79,87,79,88,79,79,88,88,91,84,85,80,86,84,85,87,84,85,87,91,88,80,79,86,84,85,87,91,88,80,79,86,84,85,87,91,88,80,79,86,79,86,79,79,88,88,84,85,87,91,88,80,79,86,145,145,146,147,148,149,150,147,151,148,149,148,149,147,152,153,150,152,152,153,148,148,149,149,153,0,0,0,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,100,101,98,98,98,98,100,101,98,100,101,98,100,101,98,100,101,0,0,108,108,108,0,0,0,0,0,109,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,102,103,104,105,102,103,104,105,102,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,104,107,108,109,102,103,104,105,107,108,102,109,108,109,102,103,104,105,107,108,109,102,103,104,105,107,0,0,102,109,108,109,102,103,104,105,107,109,108,109,102,103,104,105,107,109,109,107,109,107,107,109,102,109,107,107,102,104,107,109,107,107,102,103,104,105,108,109,102,103,104,105,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,108,109,102,103,104,105,107,0,0,0,0,0,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,112,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,112,113,113,114,114,115,115,116,116,112,112,113,113,113,113,114,114,115,115,116,116,116,116,116,112,112,112,113,114,115,116,112,113,114,115,116,112,112,113,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,112,113,114,115,116,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,37,0,0,37,0,37,26,26,26,14,28,22,14,28,22,14,28,22,14,28,22,0,37,37,0,26,14,28,22,14,28,22,14,28,22,26,26,14,28,22,26,0,26,14,28,22,14,28,22,26,14,28,22,14,28,22,14,28,22,37,26,26,123,14,28,22,26,92,37,14,28,22,14,28,22,14,28,22,14,28,22,14,28,22,37,0,0,0,0,0,0,44,44,44,44,44,44,44,44,119,128,130,127,44,129,119,128,130,127,44,129,44,44,119,127,44,119,127,44,119,44,44,44,127,44,44,44,119,128,130,127,44,129,119,128,130,127,44,129,44,119,128,130,127,44,129,44,44,44,44,119,128,130,127,44,129,119,119,128,128,128,130,127,44,129,44,44,44,119,128,130,127,44,129,44,44,119,128,130,127,44,129,130,44,44,44,44,44,127,44,44,44,44,44,44,44,127,127,127,129,129,129,129,129,129,119,44,44,44,44,119,127,44,119,128,130,127,44,129,119,128,130,127,44,129,119,128,130,127,44,129,44,44,119,128,130,127,44,129,130,125,0,0,125,0,125,0,0,125,0,125,0,125,0,125,125,0,0,125,125,0,0,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,52,135,136,137,24,59,125,15,52,135,136,137,24,59,125,15,24,135,136,137,135,136,137,15,15,125,15,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,52,15,52,135,136,137,24,59,125,125,125,52,59,15,138,139,140,52,135,136,137,24,59,125,15,15,15,15,15,138,139,140,52,135,136,137,24,59,59,125,15,52,24,59,125,15,52,59,15,135,136,137,59,15,138,139,140,52,135,136,137,24,59,125,24,15,138,139,140,52,135,136,137,24,59,125,52,125,125,125,15,15,15,24,59,15,125,15,125,15,135,136,137,135,136,137,0,125,125,125,15,52,135,136,137,24,59,125,138,139,140,15,15,15,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,15,138,139,140,52,135,136,137,24,59,125,0,0,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,143,133,133,133,133,133,11,144,11,0,11,11,11,144,11,0,11,144,144,11,144,11,144,11,144,11,144,11,144,11,11,144,144,11,144,11,144,11,144,11,11,144,11,144,11,144,11,144,11,144,154,0,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,0,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,0,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134],"f":"````````````````````{{{f{{d{{b{c}}}}}}{f{c}}}eh{}}{{{f{{b{c}}}}{f{c}}}eh{}}{{{f{{d{{b{c}}}}}}c}eh{}}{{{f{{d{c}}}}{f{c}}}e{}{}}{{{f{c}}{f{{d{c}}}}}g{{l{d}{{j{}}}}}{}{}}{{{f{e}}{f{e}}}g{}{{l{}{{j{c}}}}}{}}{{{f{{b{c}}}}c}eh{}}{{{f{c}}{d{{f{c}}}}}g{{l{d}{{j{}}}}}{}{}}{{{d{{f{c}}}}{d{{f{c}}}}}e{}{}}{{{d{{f{c}}}}{f{c}}}e{}{}}{{{f{c}}g}{{f{e}}}{}{}{{n{c}{{j{{f{e}}}}}}}}{{{d{A`{f{c}}}}}{{f{{d{A`c}}}}}{}}{{{d{{f{c}}}}}{{f{{d{c}}}}}{}}{{{d{{f{c}}}}e}Ab{}{{n{{d{c}}}{{j{Ad}}}}}}{{{f{c}}}{{Ah{cAf}}}{}}{{{d{A`{Aj{c}}}}g{An{Al}}B`k}{{Ah{{Bb{ic}}Af}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}{}{{Bj{}{{j{{f{i}}}}}}}}{{{d{A`{Aj{c}}}}g{An{Al}}B`i}{{Ah{{Bb{ic}}Af}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}{}}{{{d{A`{Aj{c}}}}g{An{Bl}}B`{An{Al}}B`}{{Ah{{Bb{cc}}Af}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}}{{{d{A`Bn}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}}{{{d{A`{Cb{ce}}}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}h{{Cd{c}}}}{{{d{A`{Cf{c}}}}gC`B`k}{{Ah{AbAf}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}{{Bf{{b{c}}}}}{{Bj{}{{j{{f{i}}}}}}}}{{{d{A`{Aj{c}}}}g{An{Ch}}B`k}{{Ah{{Bb{ic}}Af}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}{}{{Bj{}{{j{{f{i}}}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}im}{{Ah{kAf}}}{{Cl{e}}}h{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{}{{Bj{{Aj{e}}}{{j{{Ah{kAf}}}}}}}}{{{d{A`{Cn{ce}}}}im}{{Ah{kAf}}}h{{Cl{c}}}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{}{{Bj{{Aj{c}}}{{j{{Ah{kAf}}}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}ik}{{Ah{AbAf}}}{{Cl{e}}}h{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{{Bj{{Cf{e}}}{{j{{Ah{AbAf}}}}}}}}{{{d{A`{Cn{ce}}}}ik}{{Ah{AbAf}}}h{{Cl{c}}}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{{Bj{{Cf{c}}}{{j{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000000000{{{d{A`c}}}{{d{A`e}}}{}{}}000000000{{{d{A`{D`{ce}}}}Db{d{{Dd{B`c}}}}}{{Ah{{Df{{Dh{{Df{c}}}}}}Af}}}h{{Dj{c}}}}{{{d{{Bb{ce}}}}}Dl{}h}{{{d{{f{c}}}}}{{f{c}}}Dn}{{{d{E`}}}E`}{{{d{Eb}}}Eb}{{{d{Dl}}}Dl}{{{d{{Bb{ce}}}}}{{Bb{ce}}}Dn{Dnh}}{{{d{c}}{d{A`e}}}Ab{}{}}0000{{{f{{d{c}}}}}{{f{c}}}Dn}{{{f{{d{A`c}}}}}{{f{c}}}Dn}`{{Ed{d{e}}Ad}{{Ah{{Ej{{Ef{c}}{Eh{c}}}}Af}}}h{{Dj{c}}}}{{{d{{F`{}{{El{c}}{En{e}}}}}}}{{d{c}}}{FbDn}{FbDn}}{{{d{A`{Aj{c}}}}Dle}{{Ah{AbAf}}}h{{Bf{{b{c}}}}}}{{{d{A`{Aj{c}}}}DlDl}{{Ah{AbAf}}}h}{{{d{A`{Cl{}{{Cj{c}}}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}{{Cl{e}}}h}{{{d{A`{Cn{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}h{{Cl{c}}}}{{{f{{d{c}}}}}{{f{c}}}Fd}{{{f{{d{A`c}}}}}{{f{c}}}Fd}{{{d{{Bb{ce}}}}i{d{A`{Aj{e}}}}{An{Al}}B`}{{Ah{{Bb{ce}}Af}}}Dnh{{Bf{Bd}}}{{Bh{}{{j{g}}}}}}{{{d{{f{e}}}}}{{f{{b{c}}}}}h{{Ff{{b{c}}}}}}{{}{{f{c}}}{}}`{B`{{d{c}}}{}}000{{{d{E`}}}{{d{c}}}{}}{{{d{Eb}}}{{d{c}}}{}}222222{B`{{d{A`c}}}{}}0000000005{B`Ab}00000000{{{d{A`{Cn{ce}}}}}Abh{{Cl{c}}}}1{{{d{A`{Aj{c}}}}g{d{Fh}}B`}{{Ah{AbAf}}}h{{Bf{Bd}}}{{Bh{}{{j{e}}}}}}{{{d{Eb}}{d{Eb}}}Ad}{{{d{{f{c}}}}e}{{Ah{AbAf}}}{}{{n{{d{c}}}{{j{Ad}}}}}}{{{f{{b{c}}}}}{{f{c}}}h}{{{Bb{{b{c}}c}}}{{Bb{cc}}}h}`{{{d{{Cb{ce}}}}{d{A`Fj}}}Flh{{Cd{c}}}}{{{d{{f{c}}}}{d{A`Fj}}}FlFb}{{{d{{D`{ce}}}}{d{A`Fj}}}Fl{Fbh}{Fb{Dj{c}}}}{{{d{E`}}{d{A`Fj}}}Fl}{{{d{Eb}}{d{A`Fj}}}Fl}{{{d{Dl}}{d{A`Fj}}}Fl}{{{d{{Bb{ce}}}}{d{A`Fj}}}FlFb{Fbh}}{{{d{{Aj{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{Cf{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{Cn{ce}}}}{d{A`Fj}}}Fl{Fbh}{Fb{Cl{c}}}}{cc{}}{{{f{c}}}{{f{{b{c}}}}}h}111{B`E`}{B`Eb}3333{{{d{A`Fn}}}{{Aj{c}}}h}{{{d{A`Bn}}}{{Cf{c}}}h}55{e{{f{g}}}{}{{Gb{}{{G`{{f{c}}}}}}}{{Gd{c}}}}{{{d{{Cl{}{{Cj{c}}}}}}Gf}{{f{e}}}{{Cl{e}}}h}{{{d{{Cn{ce}}}}Gf}{{f{c}}}h{{Cl{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}}{{d{A`c}}}{{Cl{e}}}h}{{{d{A`{Cn{ce}}}}}{{d{A`g}}}h{{Cl{c}}}{}}{{}B`}000000000{{{d{A`{Aj{c}}}}{An{Bl}}B`}{{Ah{{f{c}}Af}}}h}{ce{}{}}000000000{{{f{e}}}{{f{{b{c}}}}}h{{Bf{{b{c}}}}}}{{{d{{f{e}}}}}{{f{{b{c}}}}}h{{Ff{{b{c}}}}}}{c{{f{c}}}{}}`{{{d{{F`{}{{El{c}}{En{e}}}}}}}{{d{e}}}{FbDn}{FbDn}}{{{f{c}}g}{{f{e}}}{}{}{{n{c}{{j{e}}}}}}{{{d{{f{c}}}}{f{c}}}e{}{}}{{{f{c}}{f{{d{c}}}}}g{{Gh{d}{{j{}}}}}{}{}}{{{f{c}}{d{{f{c}}}}}g{{Gh{d}{{j{}}}}}{}{}}{{{f{{d{{b{c}}}}}}{f{c}}}eh{}}{{{d{{f{c}}}}{d{{f{c}}}}}e{}{}}{{{f{{b{c}}}}{f{c}}}eh{}}{{{f{{d{c}}}}{f{c}}}e{}{}}{{{f{{b{c}}}}c}eh{}}{{{f{e}}{f{e}}}g{}{{Gh{}{{j{c}}}}}{}}{{{f{{d{{b{c}}}}}}c}eh{}}{{{d{A`{Aj{c}}}}gi}Abh{{Bf{Bd}}}{{Bh{}{{j{e}}}}}{{Bf{{An{Gj}}}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}i}{{Cn{ec}}}{{Cl{e}}}h{{Bf{Bd}}}{{n{}{{j{g}}}}}}{{{f{c}}}eGl{}}{{{d{A`e}}{d{{Gn{C`}}}}}{{Cb{ce}}}h{{Cd{c}}}}{{Ed{d{e}}d{d{{Eh{c}}}}{d{{Gn{{Df{c}}}}}}}{{D`{ce}}}h{{Dj{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}{Dh{Bd}}}Ab{{Cl{e}}}h}{{{d{A`{Cn{ce}}}}{Dh{Bd}}}Abh{{Cl{c}}}}{{{d{A`{Cl{}{{Cj{c}}}}}}i}Ab{{Cl{e}}}h{{Bf{Bd}}}{{n{}{{j{g}}}}}}{{{d{A`{Cn{ce}}}}i}Abh{{Cl{c}}}{{Bf{Bd}}}{{n{}{{j{g}}}}}}``{{{d{{f{e}}}}}{{f{{b{c}}}}}h{{Ff{{b{c}}}}}}{{{f{e}}{f{e}}}g{}{{H`{}{{j{c}}}}}{}}{{{d{{f{c}}}}{d{{f{c}}}}}e{}{}}{{{f{{d{{b{c}}}}}}{f{c}}}eh{}}{{{d{{f{c}}}}{f{c}}}e{}{}}{{{f{{d{c}}}}{f{c}}}e{}{}}{{{f{c}}{f{{d{c}}}}}g{{H`{d}{{j{}}}}}{}{}}{{{f{{d{{b{c}}}}}}c}eh{}}{{{f{{b{c}}}}c}eh{}}{{{f{{b{c}}}}{f{c}}}eh{}}{{{f{c}}{d{{f{c}}}}}g{{H`{d}{{j{}}}}}{}{}}{{{d{{f{c}}}}}{{f{{b{e}}}}}{}h}{{{d{c}}}e{}{}}0000{{{f{{Hb{c}}}}}{{Hb{{f{c}}}}}Fd}{{{f{e}}B`}{{Df{{f{c}}}}}{}{{Gb{}{{G`{c}}}}}}{c{{Ah{e}}}{}{}}0000000000000000000{{{d{c}}}Hd{}}000000000{{}{{f{c}}}{}}{{{f{{Ej{ce}}}}}{{Ej{{f{c}}{f{e}}}}}{}{}}{{{d{{Bb{ce}}}}}{{f{{d{c}}}}}{}h}{{{d{{Bb{ce}}}}}{{f{{b{e}}}}}{}h}{ce{}{}}000000000{{{f{c}}{f{e}}}{{f{{Ej{ce}}}}}{}{}}``````{{{d{A`{Hf{ce}}}}im}{{Ah{kAf}}}h{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{}{{Bj{{Aj{c}}}{{j{{Ah{kAf}}}}}}}}{{{d{A`{Hf{ce}}}}ik}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{{Bj{{Cf{c}}}{{j{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{A`{Hf{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}h{{Cd{c}}Hh}}{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{{Hf{ce}}}}{d{A`Fj}}}Flh{{Cd{c}}}}{{{d{Hj}}{d{A`Fj}}}Fl}{cc{}}0{{{d{{Hf{ce}}}}Gf}{{f{c}}}h{{Cd{c}}Hh}}{{{d{A`{Hf{ce}}}}}{{d{A`g}}}h{{Cd{c}}Hh}{}}{{}B`}0??{{{d{A`e}}{Df{{An{Ch}}}}}{{Ah{{Hf{ce}}Af}}}h{{Cd{c}}}}{{{d{A`{Hf{ce}}}}{Dh{Bd}}}Abh{{Cd{c}}Hh}}{{{d{A`{Hf{ce}}}}i}Abh{{Cd{c}}Hh}{{Bf{Bd}}}{{n{}{{j{g}}}}}}{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Dj{c}}}}{c{{Ah{e}}}{}{}}000{{{d{c}}}Hd{}}0{ce{}{}}0````{{{d{A`{Hl{ce}}}}im}{{Ah{kAf}}}h{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{}{{Bj{{Aj{c}}}{{j{{Ah{kAf}}}}}}}}{{{d{A`{Hl{ce}}}}ik}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}{{Bj{{Cf{c}}}{{j{{Ah{AbAf}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}000{{{d{A`c}}}{{d{A`e}}}{}{}}000{{{d{A`{Hl{ce}}}}Dl{An{Bl}}B`}{{Ah{AbAf}}}h{{Cd{c}}Hh}}{B`{{d{c}}}{}}000{B`{{d{A`c}}}{}}000{B`Ab}000{{{d{Hn}}{d{A`Fj}}}Fl}{{{d{{Hl{ce}}}}{d{A`Fj}}}Fl{Fbh}{Fb{Cd{c}}}}{{{d{I`}}{d{A`Fj}}}Fl}{{{d{{Ib{ce}}}}{d{A`Fj}}}Fl{Fbh}{Fb{Cd{c}}}}{cc{}}000{{{d{{Hl{ce}}}}Gf}{{f{c}}}h{{Cd{c}}Hh}}{{{d{A`{Hl{ce}}}}}{{d{A`g}}}h{{Cd{c}}Hh}{}}{{}B`}000{ce{}{}}000{{{d{A`{Hl{ce}}}}{Dh{Bd}}}Abh{{Cd{c}}Hh}}{{{d{A`{Hl{ce}}}}i}Abh{{Cd{c}}Hh}{{Bf{Bd}}}{{n{}{{j{g}}}}}}`{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Dj{c}}}}{c{{Ah{e}}}{}{}}0000000{{{d{c}}}Hd{}}0005555```````{{{d{A`Fn}}{d{Bh}}{An{Al}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Id}}{d{Bh}}{An{Al}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Fn}}{d{Bh}}{An{Al}}B`{b{c}}}{{Ah{DlAf}}}h}{{{d{A`Id}}{d{Bh}}{An{Al}}B`{b{c}}}{{Ah{DlAf}}}h}{{{d{A`Fn}}{d{Bh}}{An{Bl}}B`{An{Al}}B`}{{Ah{{Ej{Dl{f{c}}}}Af}}}h}{{{d{A`Id}}{d{Bh}}{An{Bl}}B`{An{Al}}B`}{{Ah{{Ej{Dl{f{c}}}}Af}}}h}{{{d{A`Bn}}{d{Bh}}C`B`{d{A`Bj}}}{{Ah{AbAf}}}}{{{d{A`Fn}}{d{Bh}}{An{Ch}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{A`Id}}{d{Bh}}{An{Ch}}B`{d{A`Bj}}}{{Ah{DlAf}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{Id}}}Id}{{{d{If}}}If}{{{d{c}}{d{A`e}}}Ab{}{}}0{{{d{If}}{d{If}}}Ih}{{{d{Id}}}{{d{{Ij{If}}}}}}{{{d{A`Fn}}Dl{b{c}}}{{Ah{AbAf}}}h}{{{d{A`Id}}Dl{b{c}}}{{Ah{AbAf}}}h}{{{d{A`Fn}}DlDl}{{Ah{AbAf}}}}{{{d{A`Id}}DlDl}{{Ah{AbAf}}}}{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{A`Fn}}{d{Bh}}{d{Fh}}B`}{{Ah{AbAf}}}}{{{d{A`Id}}{d{Bh}}{d{Fh}}B`}{{Ah{AbAf}}}}{{{d{If}}{d{If}}}Ad}{{{d{Id}}{d{A`Fj}}}Fl}{{{d{If}}{d{A`Fj}}}Fl}{cc{}}{FhIf}{{{An{Gj}}}If}2{{{d{If}}{d{A`c}}}AbIl}{{}B`}0{{{d{A`Fn}}{An{Bl}}B`}{{Ah{{f{c}}Af}}}h}{{{d{A`Id}}{An{Bl}}B`}{{Ah{{f{c}}Af}}}h}{ce{}{}}0{{{d{A`Fn}}{d{Bh}}{An{Gj}}}Ab}{{{d{A`Id}}{d{Bh}}{An{Gj}}}Ab}{E`Id}{{{d{If}}{d{If}}}{{Dh{Ih}}}}{{{d{Id}}}E`}{{{d{Id}}}B`}{{{d{c}}}e{}{}}0{c{{Ah{e}}}{}{}}000{{{d{c}}}Hd{}}099```````````````````````{{{d{{In{c}}}}}{{d{{Df{{Df{{J`{c}}}}}}}}}{JbJd}}{{{d{A`{In{c}}}}B`}{{d{A`{Gn{{J`{c}}}}}}}h}{{{d{{In{c}}}}{An{Al}}}{{d{{Gn{{J`{c}}}}}}}{JbJd}}{{{d{A`{In{c}}}}g{An{Gj}}}Abh{{Bf{Bd}}}{{n{}{{j{e}}}}}}{{{d{{In{c}}}}}Ab{JbJd}}{{{d{{In{c}}}}ee}Ab{JbJd}{Dn{Jf{}{{G`{B`}}}}}}{{{d{A`{In{c}}}}g{An{Al}}B`k}{{Ah{AbAf}}}h{{Bf{Bd}}}{{n{}{{j{e}}}}}{{Bf{{b{c}}}}}{{n{}{{j{{f{i}}}}}}}}{{{d{A`{In{c}}}}g{An{Ch}}B`k}{{Ah{AbAf}}}h{{Bf{Bd}}}{{n{}{{j{e}}}}}{{Bf{{b{c}}}}}{{n{}{{j{{f{i}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}0000000{{{d{A`c}}}{{d{A`e}}}{}{}}0000000{{{d{e}}}Bdh{{Dj{c}}}}{{{d{Jh}}}Jh}{{{d{Jj}}}Jj}{{{d{{J`{c}}}}}{{J`{c}}}{Dnh}}{{{d{{Jl{c}}}}}{{Jl{c}}}{Dnh}}{{{d{c}}{d{A`e}}}Ab{}{}}000{{}Jn}{{{d{A`{In{c}}}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}h}``{{{d{{In{c}}}}}{{d{{Eh{c}}}}}{JbJd}}{{}K`}{B`{{d{c}}}{}}0000000{B`{{d{A`c}}}{}}0000000{B`Ab}0000000{{{d{Jj}}{d{{In{c}}}}}Abh}{{{d{A`{In{c}}}}g{d{Fh}}B`}{{Ah{AbAf}}}h{{Bf{Bd}}}{{n{}{{j{e}}}}}}{{{d{A`{In{c}}}}g}Abh{{Bf{Bd}}}{{n{}{{j{e}}}}}}{{{d{Jh}}{d{Jh}}}Ad}{{{d{Jj}}{d{Jj}}}Ad}{{{d{{J`{c}}}}{d{{J`{c}}}}}Ad{Kbh}}{{{d{{Jl{c}}}}{d{{Jl{c}}}}}Ad{Kbh}}{{{d{A`{In{c}}}}}Abh}{{{d{A`{In{c}}}}{An{Ch}}B`{f{{b{c}}}}}{{Ah{AbAf}}}h}{{{d{{In{c}}}}}{{d{{Df{{Df{{J`{c}}}}}}}}}{JbJd}}{{{d{{In{c}}}}{An{Ch}}}{{d{{Gn{{J`{c}}}}}}}{JbJd}}{{{d{Jh}}{d{A`Fj}}}Fl}0{{{d{Jj}}{d{A`Fj}}}Fl}0{{{d{Jn}}{d{A`Fj}}}Fl}{{{d{Jn}}{d{A`Fj}}}{{Ah{AbKd}}}}{{{d{{Kf{c}}}}{d{A`Fj}}}Fl{FbKh}}{{{d{K`}}{d{A`Fj}}}Fl}{{{d{{J`{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{In{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{Jl{c}}}}{d{A`Fj}}}Fl{Fbh}}{cc{}}0000000{{{d{{In{c}}}}Gf}{{f{c}}}h}{{}B`}0000000{{{d{{In{c}}}}}{{d{{Df{{Df{{Jl{c}}}}}}}}}{JbJd}}{{{d{A`{In{c}}}}B`}{{d{A`{Gn{{Jl{c}}}}}}}h}{ce{}{}}0000000{{K`Ad}K`}`{{{d{A`{In{c}}}}{Dh{Bd}}}Abh}{{{d{A`{In{c}}}}g}Abh{{Bf{Bd}}}{{n{}{{j{e}}}}}}{{{d{Jn}}}Bd}{{{d{{In{c}}}}{An{Bl}}B`}{{Ah{{f{c}}Af}}}h}{{K`Ed{d{e}}{d{{Kl{gKj}}}}}{{Ah{AbKn}}}h{{Dj{c}}}L`}{{Ed{d{e}}{Df{{Df{c}}}}}{{Ah{{In{c}}Af}}}{JbJd}{{Dj{c}}}}{{{d{{In{c}}}}}{{d{{Df{{Df{Ad}}}}}}}{JbJd}}77{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Dj{c}}}}{{{d{c}}}e{}{}}000{{{d{c}}}Bd{}}00{c{{Ah{e}}}{}{}}000000000000000{{{d{c}}}Hd{}}0000000{{{d{{In{c}}}}}{{d{{Lb{B`}}}}}{JbJd}}{{{d{{Jl{c}}}}}ch}{{{d{{In{c}}}}}{{Ah{Ab{Df{Jj}}}}}{JbJd}}{{{d{{In{c}}}}ee}{{Ah{Ab{Df{Jj}}}}}{JbJd}{Dn{Jf{}{{G`{B`}}}}}}{{K`{Lb{B`}}}K`}0{ce{}{}}0000000````````````````````````````{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{{Ld{ce}}}}{d{A`Fj}}}Fl{FbLf}{FbDj}}{{{d{{Lh{c}}}}{d{A`Fj}}}Fl{FbLf}}{{{d{{Lj{c}}}}{d{A`Fj}}}Fl{FbLf}}{cc{}}00{{}B`}00:::{{{d{{Ld{ce}}}}}{{Lh{c}}}LfDj}{{Ed{d{c}}}{{Ld{ec}}}DjLf}{{{d{{Ld{ce}}}}B`}{{Lj{c}}}LfDj}{c{{Ah{e}}}{}{}}00000{{{d{c}}}Hd{}}00???````````````>>>>>>>======={{{d{Ll}}}Ll}{{{d{Ln}}}Ln}{{{d{M`}}}M`}{{{d{Mb}}}Mb}{{{d{c}}{d{A`e}}}Ab{}{}}000{{{d{Ll}}{d{Ll}}}Ih}`{B`{{d{c}}}{}}000000{B`{{d{A`c}}}{}}000000{c{{Ah{M`}}}Md}{c{{Ah{Mf}}}Md}{B`Ab}000000{{{d{Mh}}{d{Mh}}}Ad}{{{d{Ll}}{d{Ll}}}Ad}`{{{d{Mh}}{d{A`Fj}}}Fl}{{{d{Mj}}{d{A`Fj}}}Fl}{{{d{Ll}}{d{A`Fj}}}Fl}{{{d{Ln}}{d{A`Fj}}}Fl}{{{d{M`}}{d{A`Fj}}}Fl}{{{d{Mb}}{d{A`Fj}}}Fl}{{{d{Mf}}{d{A`Fj}}}Fl}{cc{}}000000{{Ed{d{e}}{Df{{Df{c}}}}}Mj{JdhJb}{{Dj{c}}}}{{Ed{d{e}}{Df{{Df{c}}}}Mh}Mf{JdhJb}{{Dj{c}}}}{{{d{Ml}}}{{Ah{Llc}}}{}}`{{}B`}000000`{ce{}{}}000000{{{d{Mj}}Mh}Mf}``````{{{d{Ll}}{d{Ll}}}{{Dh{Ih}}}}````{{{d{M`}}c}AhMn}{{{d{Mf}}c}AhMn}```{{{d{c}}}e{}{}}000{c{{Ah{e}}}{}{}}0000000000000{{{d{c}}}Hd{}}0000007777777`````{{{d{c}}}{{d{e}}}{}{}}0000{{{d{A`c}}}{{d{A`e}}}{}{}}0000{{{d{N`}}}N`}{{{d{Nb}}}Nb}{{{d{Nd}}}Nd}{{{d{Nf}}}Nf}{{{d{Nh}}}Nh}{{{d{c}}{d{A`e}}}Ab{}{}}0000{{{d{N`}}{d{N`}}}Ih}{{{d{Nb}}{d{Nb}}}Ih}`{B`{{d{c}}}{}}0000{B`{{d{A`c}}}{}}0000{B`Ab}0000{{{d{N`}}{d{N`}}}Ad}{{{d{Nb}}{d{Nb}}}Ad}{{{d{Nd}}{d{Nd}}}Ad}{{{d{Nf}}{d{Nf}}}Ad}{{{d{Nh}}{d{Nh}}}Ad}{{{d{N`}}{d{A`Fj}}}{{Ah{AbKd}}}}0{{{d{Nb}}{d{A`Fj}}}Fl}0{{{d{Nd}}{d{A`Fj}}}Fl}0{{{d{Nf}}{d{A`Fj}}}Fl}0{{{d{Nh}}{d{A`Fj}}}Fl}0{cc{}}{{{An{Gj}}}N`}1{{{Ej{cN`Nj}}}Nb{{Nl{Ml}}}}{{{Ej{N`Nj}}}Nb}{NnNb}4{{{Ej{B`c}}}Nd{{Nl{Ml}}}}5{{{Ej{NdB`c}}}Nf{{Nl{Ml}}}}6{{{Ej{B`{d{Ml}}{Dd{N`Bd}}}}}Nh}{{{Ej{B`Bd}}}Nh}{{{Ej{B`Bd{Dd{N`Bd}}}}}Nh}{{{Ej{B`{d{Ml}}}}}Nh}{{{d{N`}}{d{A`c}}}AbIl}`{{}B`}0000{ce{}{}}0000{{GjB`}N`}{{{d{N`}}{d{N`}}}{{Dh{Ih}}}}{{{d{Nb}}{d{Nb}}}{{Dh{Ih}}}}{{{d{c}}}e{}{}}0000{{{d{c}}}Bd{}}0000{c{{Ah{e}}}{}{}}000000000{{{d{c}}}Hd{}}000077777```````````{{{b{c}}{b{c}}}{{b{c}}}h}{{{d{{b{c}}}}{d{{b{c}}}}}{{b{c}}}h}{{{b{c}}c}{{b{c}}}h}{{{d{{b{c}}}}c}{{b{c}}}h}{{{d{{b{c}}}}{b{c}}}{{b{c}}}h}{{{b{c}}{d{{b{c}}}}}{{b{c}}}h}{{{d{A`{b{c}}}}{b{c}}}Abh}{{{d{A`{b{c}}}}{d{{b{c}}}}}Abh}{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{{b{c}}}}}{{b{c}}}Dn}{{{d{c}}{d{A`e}}}Ab{}{}}{{{d{{b{c}}}}}{{b{c}}}h}{{{d{{b{c}}}}}{{Dh{c}}}h}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}3{B`Ab}{{{d{{b{c}}}}{d{{b{c}}}}}Adh}{{{b{c}}}ch}{{{d{{b{c}}}}{d{A`Fj}}}FlFb}{{{Ej{cc}}}{{b{c}}}h}8{{{d{c}}}{{b{c}}}h}{cc{}}{c{{b{c}}}h}{{}B`}{ce{}{}}={{{d{{b{c}}}}}Adh}{{{b{c}}{d{{b{c}}}}}{{b{c}}}h}{{{b{c}}c}{{b{c}}}h}{{{b{c}}{b{c}}}{{b{c}}}h}{{{d{{b{c}}}}c}{{b{c}}}h}{{{d{A`{b{c}}}}{b{c}}}Abh}{{{d{A`{b{c}}}}{d{{b{c}}}}}Abh}{{{d{{b{c}}}}}eh{}}{{{b{c}}}eh{}}{{{d{{b{c}}}}}ch}{{{d{{b{c}}}}}{{b{c}}}h}67{{{d{{b{c}}}}{b{c}}}{{b{c}}}h}{{{d{{b{c}}}}{d{{b{c}}}}}{{b{c}}}h}:;76{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}``````````{{{d{A`Cd}}e{An{Gj}}}Ab{{Bf{Bd}}}{{n{}{{j{c}}}}}}{{{d{A`Cd}}e{An{Al}}B`k}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{j{c}}}}}h{{Bf{{b{g}}}}}{{n{}{{j{{f{i}}}}}}}}{{{d{A`Cd}}e{An{Ch}}B`k}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{j{c}}}}}h{{Bf{{b{g}}}}}{{n{}{{j{{f{i}}}}}}}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{{{d{Al}}}Al}{{{d{Ch}}}Ch}{{{d{Bl}}}Bl}{{{d{c}}{d{A`e}}}Ab{}{}}00`{{{d{A`{Eh{c}}}}}eh{}}{{{d{A`{Eh{c}}}}e}gh{}{}}`{{{d{A`Cd}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}}{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{A`Cd}}e{d{Fh}}B`}{{Ah{AbAf}}}{{Bf{Bd}}}{{n{}{{j{c}}}}}}{{{d{A`Cd}}e}Ab{{Bf{Bd}}}{{n{}{{j{c}}}}}}{{{d{Al}}{d{Al}}}Ad}{{{d{Ch}}{d{Ch}}}Ad}{{{d{Bl}}{d{Bl}}}Ad}{{{d{A`Cd}}}Ab}`{{{d{A`Cd}}{An{Ch}}B`{f{{b{c}}}}}{{Ah{AbAf}}}h}{{{d{Al}}{d{A`Fj}}}Fl}{{{d{Ch}}{d{A`Fj}}}Fl}{{{d{Bl}}{d{A`Fj}}}Fl}{cc{}}00{{{d{Cd}}Gf}{{f{c}}}h}{{{d{Al}}{d{A`c}}}AbIl}{{{d{Ch}}{d{A`c}}}AbIl}{{{d{Bl}}{d{A`c}}}AbIl}{{}B`}00{ce{}{}}00{{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}}gDnKhOd}{{{d{A`Cd}}{Dh{Bd}}}Ab}{{{d{A`Cd}}e}Ab{{Bf{Bd}}}{{n{}{{j{c}}}}}}{{{d{Of}}B`Oh}{{Oj{c}}}h}{{{d{Al}}B`Oh}{{Oj{c}}}h}{{{d{Ch}}B`Oh}{{Oj{c}}}h}{{{d{Bl}}B`Oh}{{Oj{c}}}h}{{{d{Cd}}{An{Bl}}B`}{{Ah{{f{c}}Af}}}h}{{{d{A`e}}{d{g}}{Df{{An{Ch}}}}}{{Ah{AbAf}}}h{{Cd{c}}Hh}{{Dj{c}}}}{{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}ck}{{Ah{AbAf}}}DnKhOdh{{Cl{i}}}}{{{d{c}}}e{}{}}00{c{{Ah{e}}}{}{}}00000{{{d{c}}}Hd{}}00==={{{d{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}}}{{Dj{}{{El{c}}{O`{e}}{Ob{g}}}}}DnKhOd}``````{{{d{A`{Eh{c}}}}}{{An{Al}}}h}{{{d{A`{Eh{c}}}}e}{{An{Al}}}hOl}{{{d{{Eh{c}}}}}{{Df{Db}}}h}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Al}}Oh}}}}}}}h}{{{d{A`{Eh{c}}}}ei}Abh{{Bf{{An{Gj}}}}}{{Bf{Bd}}}{{Bh{}{{j{g}}}}}}0{{{d{A`{Eh{c}}}}C`g}Abh{{Bf{Bd}}}{{Bh{}{{j{e}}}}}}{{{d{{Eh{c}}}}}B`h}{{{d{c}}}{{d{e}}}{}{}}00000{{{d{A`c}}}{{d{A`e}}}{}{}}000006{{{d{A`{Eh{c}}}}e}GfhOl}{{{d{Nn}}}Nn}{{{d{{On{c}}}}}{{On{c}}}{Dnh}}{{{d{{Eh{c}}}}}{{Eh{c}}}{Dnh}}{{{d{c}}{d{A`e}}}Ab{}{}}00`{{{d{A`{Eh{c}}}}}Fhh}{{{Eh{c}}{Df{{Df{Ad}}}}}{{Ej{{Eh{c}}{Df{{Df{c}}}}}}}h}{{{d{{Eh{c}}}}}{{d{{Df{{An{Ch}}}}}}}h}{{{d{{On{c}}}}B`}{{d{Ml}}}h}{{{d{A`{Eh{c}}}}ek}Abh{{Nl{Ml}}}{{Bf{{A@`{c}}}}}{{Gb{}{{G`{g}}}}}{{n{{d{A`{A@b{c}}}}}{{j{i}}}}}}{{}{{Eh{c}}}h}={B`{{d{c}}}{}}00000{B`{{d{A`c}}}{}}000006{B`Ab}00000{{{d{A`{Eh{c}}}}{An{Ch}}}Abh}{{{d{A`{Eh{c}}}}e}Abh{{Bf{{An{Gj}}}}}}{{{d{A`{Eh{c}}}}}{{An{Ch}}}h}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Ch}}Oh}}}}}}}h}{{{d{Nn}}{d{A`Fj}}}Fl}{{{d{{A@`{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{A@d{ceg}}}}{d{A`Fj}}}Fl{Fbh}{Fb{Bf{{A@`{c}}}}}{Fb{Gb{}{{G`{e}}}}}}{{{d{{On{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{Eh{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{d{{A@b{c}}}}{d{A`Fj}}}Fl{Fbh}}{{{Ej{cOh}}}Nn{{Bf{{An{Gj}}}}}}{cc{}}{{{Ej{c{Oj{e}}}}}{{A@`{e}}}{{Nl{Ml}}}h}{{{Oj{c}}}{{A@`{c}}}h}22222{{{d{{Eh{c}}}}}{{d{{Df{{On{c}}}}}}}h}{{{d{{Eh{c}}}}}{{d{{Dd{N`Bd}}}}}h}{{{d{{Eh{c}}}}{An{Gj}}Oh}B`h}{{}B`}00000{{{d{A`{Eh{c}}}}}{{An{Bl}}}h}{{{d{{Eh{c}}}}}{{d{{Df{{Ej{{An{Bl}}Oh}}}}}}}h}{ce{}{}}00000{{{A@d{ceg}}}ih{{Bf{{A@`{c}}}}}{{Gb{}{{G`{e}}}}}{}}{{{d{A`{Eh{c}}}}eg}B`h{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{j{{Df{{Ej{{Oj{c}}C`}}}}}}}}}}{{{d{A`{Eh{c}}}}eg}B`h{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{j{{Df{{Ej{{Oj{c}}{Oj{c}}}}}}}}}}}}{{{d{A`{Eh{c}}}}}C`h}{{{d{{Eh{c}}}}}{{d{{Df{{A@f{c}}}}}}}h}{{{d{{Eh{c}}}}}B`h}{{{d{{On{c}}}}}{{d{Ml}}}h}11111{{{d{{Eh{c}}}}}{{d{A@h}}}h}{{{d{{Eh{c}}}}}{{`{{Jf{}{{G`{A@j}}}}}}}h}{{{d{{On{c}}}}}{{d{{Gn{{Oj{c}}}}}}}h}{{{d{{On{c}}}}}{{d{{Gn{Nn}}}}}h}{{{d{{On{c}}}}}{{d{{Gn{Fh}}}}}h}{{{d{A`{A@b{c}}}}{An{Al}}Oh}{{Oj{c}}}h}{{{d{A`{A@b{c}}}}eOh}{{Oj{c}}}h{{Bf{{An{Gj}}}}}}{{{d{A`{A@b{c}}}}Gf}{{Oj{c}}}h}{{{d{A`{A@b{c}}}}{An{Ch}}Oh}{{Oj{c}}}h}{{{d{A`{A@b{c}}}}{An{Bl}}Oh}{{Oj{c}}}h}{{{d{A`{A@b{c}}}}Fh}{{Oj{c}}}h}`{{{d{A`{Eh{c}}}}}Fhh}{{{d{A`{Eh{c}}}}B`}Abh}{{{d{A`{Eh{c}}}}eg}B`h{{Nl{Ml}}}{{n{{d{A`{A@b{c}}}}}{{j{{Df{{Ej{{Oj{c}}{Oj{c}}}}}}}}}}}}{{{d{{Eh{c}}}}}{{d{{Df{{A@l{c}}}}}}}h}{{{d{c}}}e{}{}}00{c{{Ah{e}}}{}{}}00000000000{{{d{c}}}Hd{}}00000{{{d{A`{Eh{c}}}}}{{An{Al}}}h}{{{d{A`{Eh{c}}}}e}{{An{Al}}}hOl}{ce{}{}}00000{{{Oj{c}}g}{{A@d{ceg}}}h{{Bf{{A@`{c}}}}}{{Gb{}{{G`{e}}}}}}``````````````````````{{{Oj{c}}{Oj{c}}}{{Oj{c}}}h}{{{d{c}}}{{d{e}}}{}{}}0000000000{{{d{A`c}}}{{d{A`e}}}{}{}}0000000000{{{d{{An{c}}}}}{{An{c}}}{DnOf}}{{{d{Fh}}}Fh}{{{d{A@n}}}A@n}{{{d{AA`}}}AA`}{{{d{AAb}}}AAb}{{{d{C`}}}C`}{{{d{Gf}}}Gf}{{{d{{Oj{c}}}}}{{Oj{c}}}Dn}{{{d{c}}{d{A`e}}}Ab{}{}}0000000{{{d{{An{c}}}}{d{{An{c}}}}}IhOf}{{{d{C`}}{d{C`}}}Ih}{{{d{A@n}}}B`}{{{d{AA`}}}B`}{{{d{AAb}}}B`}```{{{d{{An{c}}}}}{{d{c}}}Of}`{{{d{{Oj{c}}}}}B`h}{{{d{{An{c}}}}}{{Oj{e}}}Ofh}1{B`{{d{c}}}{}}0000000000{B`{{d{A`c}}}{}}0000000000{B`Ab}0000000000{{{d{Fh}}{d{A`{Aj{c}}}}B`}{{Ah{AbAf}}}h}{{{d{{An{c}}}}{d{{An{c}}}}}Ad{KbOf}}{{{d{Fh}}{d{Fh}}}Ad}{{{d{A@n}}{d{A@n}}}Ad}{{{d{AA`}}{d{AA`}}}Ad}{{{d{AAb}}{d{AAb}}}Ad}{{{d{C`}}{d{C`}}}Ad}{{{d{Gf}}{d{Gf}}}Ad}{{{d{{Oj{c}}}}{d{{Oj{c}}}}}AdKb}{{{d{{Oj{c}}}}{d{g}}{d{i}}{d{k}}{d{m}}{d{o}}{d{Aa}}{d{Ac}}{d{Ae}}{d{Ag}}{d{Ai}}}eh{}{{Bh{c}{{j{e}}}}}{{Bh{Fh}{{j{e}}}}}{{Bh{A@n}{{j{e}}}}}{{Bh{AA`}{{j{e}}}}}{{Bh{AAb}{{j{e}}}}}{{Bh{Gf}{{j{e}}}}}{{Bh{e}{{j{e}}}}}{{Bh{ee}{{j{e}}}}}{{Bh{ee}{{j{e}}}}}{{Bh{ec}{{j{e}}}}}}{{{d{{Oj{c}}}}{d{g}}{d{i}}{d{k}}{d{m}}{d{o}}{d{Aa}}{d{Ac}}{d{Ae}}{d{Ag}}{d{Ai}}{d{e}}}ehKb{{Bh{c}{{j{e}}}}}{{Bh{Fh}{{j{e}}}}}{{Bh{A@n}{{j{e}}}}}{{Bh{AA`}{{j{e}}}}}{{Bh{AAb}{{j{e}}}}}{{Bh{Gf}{{j{e}}}}}{{Bh{e}{{j{e}}}}}{{Bh{ee}{{j{e}}}}}{{Bh{ee}{{j{e}}}}}{{Bh{ec}{{j{e}}}}}}{{{d{Fh}}}{{Oj{c}}}h}{{{d{Gf}}}{{Oj{c}}}h}{{{d{{An{c}}}}{d{A`Fj}}}Fl{FbOf}}{{{d{AAd}}{d{A`Fj}}}Fl}{{{d{AAf}}{d{A`Fj}}}Fl}{{{d{AAh}}{d{A`Fj}}}Fl}{{{d{Fh}}{d{A`Fj}}}Fl}{{{d{A@n}}{d{A`Fj}}}Fl}{{{d{AA`}}{d{A`Fj}}}Fl}{{{d{AAb}}{d{A`Fj}}}Fl}{{{d{C`}}{d{A`Fj}}}Fl}{{{d{Gf}}{d{A`Fj}}}Fl}{{{d{{Oj{c}}}}{d{A`Fj}}}FlFb}{{{An{Bl}}}{{An{Gj}}}}{{{An{Al}}}{{An{Gj}}}}{cc{}}{N`{{An{Gj}}}}{{{An{Ch}}}{{An{Gj}}}}222222222{AAjGf}3{{{d{{An{c}}}}{d{A`e}}}Ab{AAlOf}Il}{{{d{Fh}}{d{A`c}}}AbIl}{{{d{C`}}{d{A`c}}}AbIl}{{{d{Gf}}{d{A`c}}}AbIl}{{{d{{Oj{c}}}}}Bdh}{{{d{{An{c}}}}}B`Of}{{{d{Fh}}}B`}{{{d{Gf}}}B`}`````{{}B`}0000000000{{{d{C`}}}{{An{Ch}}}}{ce{}{}}0000000000{{{d{Fh}}}Ad}{{{Oj{c}}{Oj{c}}}{{Oj{c}}}h}{{{Oj{c}}c}{{Oj{c}}}h}{{{Oj{c}}}eh{}}{{B`c}{{An{c}}}Of}{{{d{{An{c}}}}}{{Oj{e}}}Ofh}{{{d{{An{c}}}}{d{{An{c}}}}}{{Dh{Ih}}}Of}{{{d{C`}}{d{C`}}}{{Dh{Ih}}}}{{{d{Gf}}}Db}3{e{{Oj{c}}}h{{Jf{}{{G`{{Oj{c}}}}}}}}{{{d{{An{c}}}}Oh}{{Oj{e}}}Ofh}{{{d{A`{Oj{c}}}}{d{A`{A@b{c}}}}}Abh}{{{d{{An{c}}}}Nj}{{Oj{e}}}Ofh}{{{d{A@n}}}Oh}{{{d{AA`}}}Oh}{{{d{AAb}}}Oh}````{{{Oj{c}}}{{Oj{c}}}h}?7{{{d{c}}}e{}{}}0000000{AAdA@j}{AAfA@j}{AAhA@j}{c{{Ah{e}}}{}{}}{{{An{Gj}}}{{Ah{{An{Al}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Ch}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Bl}}c}}}{}}333333333333333333333{{{d{c}}}Hd{}}0000000000{ce{}{}}0000000000``{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{A@j}}}A@j}{{{d{c}}{d{A`e}}}Ab{}{}}{{{d{A@j}}{d{A@j}}}Ih}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}{B`Ab}{{{d{A@j}}{d{A@j}}}Ad}{{{d{A@j}}{d{A`Fj}}}Fl}{cc{}}{{{d{A@j}}{d{A`c}}}AbIl}{{}B`}={{{d{A@j}}{d{A@j}}}{{Dh{Ih}}}}{{{d{A@j}}}{{Dh{A@j}}}}{{{d{c}}}e{}{}}{AAnA@j}{A@jA@j}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}`````````````{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{B`{{d{c}}}{}}0{B`{{d{A`c}}}{}}0{B`Ab}0{{{d{Af}}{d{A`Fj}}}Fl}0{{{d{AB`}}{d{A`Fj}}}Fl}0{cc{}}0{{}B`}099{EdAf}{{{d{c}}}Bd{}}0====<<;;``:9{{{d{{A@f{c}}}}}{{A@f{c}}}{Dnh}}{{{d{c}}{d{A`e}}}Ab{}{}}:98{{{d{{A@f{c}}}}{d{A`Fj}}}Flh}65{{{d{{A@f{c}}}}}{{d{{Df{{Oj{c}}}}}}}h}?{{{d{{A@f{c}}}}}{{d{Ml}}}h}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@f{e}}}{{Nl{Ml}}}h}2{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}`{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{{{d{A@h}}}A@h};{{}A@h}{B`{{d{c}}}{}}{B`{{d{A`c}}}{}}{B`Ab}{{{d{A@h}}{d{A`Fj}}}Fl}{cc{}}{{{d{A@h}}}{{Df{{An{Gj}}}}}}{{}B`};>==<;`:9{{{d{{A@l{c}}}}}{{A@l{c}}}{Dnh}}{{{d{c}}{d{A`e}}}Ab{}{}}876{{{d{{A@l{c}}}}{d{A`Fj}}}Flh}53{{{d{{A@l{c}}}}}{{d{{Df{{Oj{c}}}}}}}h}?{{{d{{A@l{c}}}}}{{d{Ml}}}h}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@l{e}}}{{Nl{Ml}}}h}2{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}{ce{}{}}","D":"DE`","p":[[6,"Assigned",980],[1,"reference"],[5,"Value",3,1677],[10,"Field",1678],[17,"Output"],[10,"Add",1679],[10,"FnOnce",1680],[0,"mut"],[1,"unit"],[1,"bool"],[6,"Error",1571],[6,"Result",1681],[5,"Region",3],[5,"Advice",1037],[5,"Column",1281],[1,"usize"],[5,"AssignedCell",3],[5,"String",1682],[10,"Into",1683],[10,"Fn",1680],[10,"FnMut",1680],[5,"Instance",1037],[10,"TableLayouter",381,1684],[5,"TableColumn",1281],[5,"SimpleTableLayouter",3,1684],[10,"Assignment",1037],[5,"Table",3],[5,"Fixed",1037],[17,"Root"],[10,"Layouter",3],[5,"NamespacedLayouter",3],[5,"WitnessCalculator",3],[1,"u8"],[5,"HashMap",1685],[5,"Vec",1686],[6,"Option",1687],[10,"Circuit",1037],[5,"Cell",3],[10,"Clone",1688],[5,"RegionIndex",3],[5,"RegionStart",3],[1,"u32"],[5,"CompiledCircuit",1689],[5,"ConstraintSystem",1126],[1,"tuple"],[17,"Config"],[17,"Loaded"],[10,"Chip",3],[10,"Debug",1690],[10,"Copy",1691],[10,"Borrow",1692],[5,"Selector",1281],[5,"Formatter",1690],[8,"Result",1690],[10,"RegionLayouter",381],[17,"Item"],[10,"IntoIterator",1693],[10,"FromIterator",1693],[5,"Challenge",1281],[10,"Mul",1679],[6,"Any",1689],[10,"Neg",1679],[1,"slice"],[10,"Sub",1679],[1,"array"],[5,"TypeId",1694],[5,"SingleChipLayouter",279],[10,"SyncDeps",381],[5,"SimpleFloorPlanner",279],[5,"V1Pass",316],[5,"V1",316],[5,"MeasurementPass",316],[5,"AssignmentPass",316],[5,"RegionShape",381],[6,"RegionColumn",381],[6,"Ordering",1695],[5,"HashSet",1696],[10,"Hasher",1697],[5,"MockProver",449],[6,"CellValue",449],[10,"FromUniformBytes",1678],[10,"Ord",1695],[10,"Iterator",1698],[6,"FailureLocation",449,1699],[6,"VerifyFailure",449,1699],[6,"InstanceValue",449],[5,"CircuitGates",449,1700],[5,"CircuitLayout",449,1701],[10,"PartialEq",1695],[5,"Error",1690],[5,"TracingFloorPlanner",449,1702],[10,"FloorPlanner",1037],[5,"Shift",1703],[5,"DrawingArea",1704],[6,"DrawingAreaErrorKind",1704],[10,"DrawingBackend",1705],[5,"Range",1706],[5,"CircuitCost",666],[10,"PrimeGroup",1707],[5,"MarginalProofSize",666],[5,"ProofSize",666],[5,"Poly",711],[5,"Lookup",711],[5,"Permutation",711],[5,"Shuffle",711],[10,"Deserializer",1708],[5,"ModelCircuit",711],[6,"CommitmentScheme",711],[5,"CostOptions",711],[1,"str"],[10,"Serializer",1709],[5,"Column",855],[5,"VirtualCell",855],[5,"Gate",855],[5,"Constraint",855],[5,"Region",855],[1,"i32"],[10,"AsRef",1683],[5,"VirtualCell",1126],[17,"FloorPlanner"],[17,"Params"],[10,"Default",1710],[10,"ColumnType",1037],[5,"Rotation",1711],[6,"Expression",1281],[10,"Phase",1281],[5,"Gate",1126],[5,"Constraint",1126],[5,"VirtualCells",1126],[5,"Constraints",1126],[5,"Argument",1616],[5,"Argument",1637],[5,"Phase",1546],[5,"Argument",1656],[5,"FixedQuery",1281],[5,"AdviceQuery",1281],[5,"InstanceQuery",1281],[5,"FirstPhase",1281],[5,"SecondPhase",1281],[5,"ThirdPhase",1281],[5,"ChallengeMid",1689],[10,"Hash",1697],[10,"SealedPhase",1546],[6,"TableError",1571],[15,"InRegion",641],[15,"OutsideRegion",641],[15,"ConstraintNotSatisfied",644],[15,"CellNotAssigned",644],[15,"InstanceCellNotAssigned",644],[15,"Permutation",644],[15,"ConstraintPoisoned",644],[15,"Lookup",644],[15,"Shuffle",644],[15,"NotEnoughRowsAvailable",1615]],"r":[[14,279],[15,1684],[17,1684],[18,1677],[275,316],[276,316],[387,1684],[453,666],[454,1700],[455,1701],[458,1699],[469,1702],[471,1699],[496,1712]],"b":[[20,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[21,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[22,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[23,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[24,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[25,"impl-Add-for-Value%3CV%3E"],[26,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[27,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[28,"impl-Add-for-%26Value%3CV%3E"],[29,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[78,"impl-Value%3C%26V%3E"],[79,"impl-Value%3C%26mut+V%3E"],[87,"impl-Value%3C%26V%3E"],[88,"impl-Value%3C%26mut+V%3E"],[190,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[191,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[192,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[193,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[194,"impl-Mul-for-%26Value%3CV%3E"],[195,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[196,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[197,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[198,"impl-Mul-for-Value%3CV%3E"],[199,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[212,"impl-Sub-for-Value%3CV%3E"],[213,"impl-Sub-for-%26Value%3CV%3E"],[214,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[215,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[216,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[217,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[218,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[219,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[220,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[221,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[423,"impl-From%3CSelector%3E-for-RegionColumn"],[424,"impl-From%3CColumn%3CAny%3E%3E-for-RegionColumn"],[546,"impl-Debug-for-FailureLocation"],[547,"impl-Display-for-FailureLocation"],[548,"impl-Debug-for-VerifyFailure"],[549,"impl-Display-for-VerifyFailure"],[550,"impl-Debug-for-CircuitGates"],[551,"impl-Display-for-CircuitGates"],[903,"impl-Display-for-ColumnMid"],[904,"impl-Debug-for-ColumnMid"],[905,"impl-Debug-for-VirtualCell"],[906,"impl-Display-for-VirtualCell"],[907,"impl-Debug-for-Gate"],[908,"impl-Display-for-Gate"],[909,"impl-Debug-for-Constraint"],[910,"impl-Display-for-Constraint"],[911,"impl-Display-for-Region"],[912,"impl-Debug-for-Region"],[916,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[917,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[918,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[924,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[925,"impl-From%3C(usize,+String)%3E-for-Region"],[926,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[927,"impl-From%3C(usize,+%26str)%3E-for-Region"],[984,"impl-Add-for-Assigned%3CF%3E"],[985,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[986,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[987,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[988,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[989,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[990,"impl-AddAssign-for-Assigned%3CF%3E"],[991,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1005,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1006,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1007,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1009,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1014,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1015,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1016,"impl-Mul-for-Assigned%3CF%3E"],[1017,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1018,"impl-MulAssign-for-Assigned%3CF%3E"],[1019,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1020,"impl-Neg-for-%26Assigned%3CF%3E"],[1021,"impl-Neg-for-Assigned%3CF%3E"],[1024,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1025,"impl-Sub-for-Assigned%3CF%3E"],[1026,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1027,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1028,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1029,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1030,"impl-SubAssign-for-Assigned%3CF%3E"],[1031,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1199,"impl-From%3C(S,+Expression%3CF%3E)%3E-for-Constraint%3CF%3E"],[1200,"impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E"],[1412,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1413,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1415,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1416,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1465,"impl-Mul-for-Expression%3CF%3E"],[1466,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1500,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1501,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1502,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1594,"impl-Debug-for-Error"],[1595,"impl-Display-for-Error"],[1596,"impl-Debug-for-TableError"],[1597,"impl-Display-for-TableError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGUEjAAAAAAAAwAAAA8AAAAVAAkAKAAAACwAAAAuABQARQAJAFcAAABcAAAAXgAVAHUACgCBAAAAhgAJAJEAAACVAAEAmwABAKEAAACjAAoAvwAJAMsAAADPAAAA0QAAANUACQDgAAQA5wAdAAkBCQAUAQMAGgEOACsBAwAyAQoAQQEaAGABBQBqARMAhgEAAIgBAACKAQAAjQEJAJkBAACbAQYAowEDAKgBAQCrAQIArwEAALMBAAC1AQAAuAEJAMYBAADcAQAA3wERAPIBBwD7AQAA/wEYABkCBwAjAgoANgIIAEsCAQBOAgAAVAIfAHoCBwCeAhEAswICALwCCwDUAhYA7AIYAAYDBgAWAwAAGAMGAC4DAAAzAwEAOAMfAF0DFQB0Ax0AkwMAAJUDAgCZAwAAmwMAAJ0DBACjAwQArQMlANQDAADZAwsA5wMBAOoDAQDtAwMA8gMBAPcDBwABBAwAGwQMACoEAAAsBAgANwQCADsEAAA9BAIARAQFAFEEAgBXBA4AdQQLAIMEBgCPBAAAkQQLAJ4EBQCoBAYAsAQBALkEBgDIBAAA1wQBAN8EAADkBBQA+wQFABgFKABIBQAATAUgAG4FBwB6BQwAiAUBAJMFAACVBQMAnQUAAKEFCwC6BQMAvwUBAMMFAADNBQAAzwU7AA0GCQAYBgEAGwYIADEGDQBBBgEARgYJAFIGBwBbBgAAYQYEAGcGCAByBgAAdAYEAHoGBwCDBgAAiQYEAA=="}],\ ["halo2_middleware",{"t":"CCEECCCCCCPGFPFFFPFIPFIPPFPPFPPGONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNOONNNNNNNNNNNNNNNNNNNNOONOONNOOOONNNOONONOONOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNPGPPPPKNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNMNFINNNNNNNNNNOONOOOONNNNNKKKKRRRRRRRKKFKNNMNNNNNNNNNNNNNHNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMHNMNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNFFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNFINNNNNNNNNNOONOOOONNNNNCCFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRKMMMMMM","n":["circuit","expression","ff","halo2curves","lookup","multicore","permutation","poly","shuffle","zal","Advice","Any","Cell","Challenge","ChallengeMid","ColumnMid","CompiledCircuit","Constant","ConstraintSystemMid","ExpressionMid","Fixed","Gate","GateMid","Instance","Negated","Preprocessing","Product","Query","QueryMid","Sum","Var","VarMid","advice_column_phase","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","column","column_index","column_type","column_type","complexity","cs","degree","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","hash","hash","hash","index","index","index","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lookups","minimum_degree","name","name","name","new","new","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phase","phases","poly","poly","polynomial","preprocessing","rotation","row","shuffles","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_columns","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_identifier","Constant","Expression","Negated","Product","Sum","Var","Variable","add","borrow","borrow_mut","clone","clone_into","complexity","complexity","degree","degree","deref","deref_mut","drop","eq","evaluate","fmt","from","identifier","init","into","mul","mul","neg","product","sub","sum","to_owned","try_from","try_into","type_id","vzip","write_identifier","write_identifier","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","table_expressions","table_expressions","to_owned","try_from","try_into","type_id","vzip","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","ArgumentMid","AssemblyMid","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","columns","copies","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Rotation","borrow","borrow_mut","clone","clone_into","cmp","cur","deref","deref_mut","drop","eq","fmt","from","hash","init","into","next","partial_cmp","prev","to_owned","try_from","try_into","type_id","vzip","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","shuffle_expressions","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip","impls","traits","H2cEngine","H2cMsmBaseDesc","H2cMsmCoeffsDesc","HasCurve","HasMsmEngine","NoCurve","NoMsmEngine","PlonkEngine","PlonkEngineConfig","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build_default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","fmt","from","from","from","from","from","from","from","from","from","get_base_descriptor","get_coeffs_descriptor","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","msm","msm_backend","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars","new","new","set_curve","set_msm","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","BaseDescriptor","CoeffsDescriptor","MsmAccel","get_base_descriptor","get_coeffs_descriptor","msm","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars"],"q":[[0,"halo2_middleware"],[10,"halo2_middleware::circuit"],[251,"halo2_middleware::expression"],[290,"halo2_middleware::lookup"],[314,"halo2_middleware::multicore"],[458,"halo2_middleware::permutation"],[494,"halo2_middleware::poly"],[518,"halo2_middleware::shuffle"],[542,"halo2_middleware::zal"],[544,"halo2_middleware::zal::impls"],[680,"halo2_middleware::zal::traits"],[689,"core::clone"],[690,"ff"],[691,"core::cmp"],[692,"core::fmt"],[693,"core::hash"],[694,"core::option"],[695,"alloc::string"],[696,"core::result"],[697,"core::any"],[698,"std::io::error"],[699,"std::io"],[700,"core::ops::function"],[701,"core::iter::traits::iterator"],[702,"rayon::iter"],[703,"core::marker"],[704,"rayon::slice"],[705,"rayon::iter::blocks"],[706,"rayon::iter::chain"],[707,"rayon::iter::chunks"],[708,"rayon::iter::cloned"],[709,"alloc::vec"],[710,"alloc::collections::linked_list"],[711,"rayon::iter::copied"],[712,"rayon::iter::plumbing"],[713,"rayon::iter::enumerate"],[714,"rayon::iter::filter"],[715,"rayon::iter::filter_map"],[716,"rayon::iter::flat_map"],[717,"rayon::iter::flat_map_iter"],[718,"core::iter::traits::collect"],[719,"rayon::iter::flatten"],[720,"rayon::iter::flatten_iter"],[721,"rayon_core::scope"],[722,"rayon::iter::fold"],[723,"rayon::iter::fold_chunks"],[724,"rayon::iter::fold_chunks_with"],[725,"rayon::iter::inspect"],[726,"rayon::iter::interleave"],[727,"rayon::iter::interleave_shortest"],[728,"rayon::iter::intersperse"],[729,"rayon::iter::map"],[730,"rayon::iter::map_with"],[731,"rayon::iter::panic_fuse"],[732,"rayon::slice::chunk_by"],[733,"rayon::slice::chunks"],[734,"rayon::slice::rchunks"],[735,"core::default"],[736,"either"],[737,"rayon::iter::positions"],[738,"core::iter::traits::accum"],[739,"rayon::iter::rev"],[740,"rayon::iter::skip"],[741,"rayon::iter::skip_any"],[742,"rayon::iter::skip_any_while"],[743,"rayon_core::broadcast"],[744,"rayon::iter::step_by"],[745,"rayon::iter::take"],[746,"rayon::iter::take_any"],[747,"rayon::iter::take_any_while"],[748,"rayon::iter::try_fold"],[749,"rayon::iter::private"],[750,"rayon::iter::update"],[751,"rayon::iter::while_some"],[752,"rayon::iter::len"],[753,"rayon::iter::zip"],[754,"rayon::iter::zip_eq"],[755,"pasta_curves::arithmetic::curves"],[756,"rayon_core"],[757,"rayon_core::join"]],"i":[0,0,0,0,0,0,0,0,0,0,13,0,0,5,0,0,0,133,0,0,13,0,0,13,133,0,133,5,0,133,133,0,10,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,10,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,13,14,15,15,4,4,14,5,12,5,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,3,4,5,13,14,15,11,3,4,5,5,6,10,11,12,13,14,14,15,3,4,5,6,10,11,12,13,14,15,10,10,3,13,14,3,3,14,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,10,10,6,134,6,4,14,10,10,10,10,13,14,15,10,11,3,3,10,134,6,6,12,4,15,10,3,4,5,6,10,11,12,13,14,15,5,14,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,3,4,5,6,10,11,12,13,14,15,10,3,4,5,6,10,11,12,13,14,15,5,28,0,28,28,28,28,0,28,28,28,28,28,9,28,9,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,9,28,0,0,39,39,39,39,39,39,39,39,39,39,135,39,39,135,39,135,39,39,39,39,39,39,0,0,0,0,49,87,88,40,49,87,88,0,0,0,0,40,40,43,66,66,45,45,40,45,40,45,40,45,40,40,40,0,66,66,45,40,66,45,45,40,40,40,40,40,40,40,40,40,40,40,40,66,40,45,45,40,40,40,40,66,45,45,66,40,45,45,40,66,49,0,45,45,45,40,40,40,40,40,40,40,40,40,45,40,40,43,43,43,87,88,43,43,43,43,43,43,43,43,43,43,43,45,40,40,45,45,45,45,40,40,40,45,0,45,40,40,66,66,45,40,45,40,40,40,110,40,40,40,40,66,66,40,40,66,40,45,40,66,40,45,45,45,45,45,0,0,119,120,119,120,119,120,119,120,120,119,119,120,119,120,119,120,119,120,119,120,119,120,119,120,119,120,119,120,119,120,119,120,119,120,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,121,121,121,121,121,121,121,121,121,121,136,121,121,136,121,136,121,121,121,121,121,121,0,0,0,0,0,0,0,0,0,0,0,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,124,124,128,124,129,122,130,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,125,137,138,123,128,125,124,129,122,130,128,128,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,128,125,128,128,128,128,124,124,124,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,137,138,123,128,125,124,129,122,130,127,127,0,127,127,127,127,127,127],"f":"`````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}000000000{{{b{dc}}}{{b{de}}}{}{}}000000000`{{{b{f}}}f}{{{b{h}}}h}{{{b{j}}}j}{{{b{{l{ce}}}}}{{l{ce}}}{nA`}{nAb}}{{{b{{Ad{c}}}}}{{Ad{c}}}{nA`}}{{{b{{Af{c}}}}}{{Af{c}}}{nA`}}{{{b{{Ah{c}}}}}{{Ah{c}}}{nA`}}{{{b{Aj}}}Aj}{{{b{Al}}}Al}{{{b{An}}}An}{{{b{c}}{b{de}}}B`{}{}}000000000{{{b{Aj}}{b{Aj}}}Bb}{{{b{Al}}{b{Al}}}Bb}{{{b{An}}{b{An}}}Bb}````{{{b{j}}}Bd}`0{Bd{{b{c}}}{}}000000000{Bd{{b{dc}}}{}}000000000{BdB`}000000000{{{b{f}}{b{f}}}Bf}{{{b{h}}{b{h}}}Bf}{{{b{j}}{b{j}}}Bf}{{{b{Aj}}{b{Aj}}}Bf}{{{b{Al}}{b{Al}}}Bf}{{{b{An}}{b{An}}}Bf}`{{{b{f}}{b{dBh}}}Bj}{{{b{h}}{b{dBh}}}Bj}{{{b{j}}{b{dBh}}}Bj}0{{{b{{l{ce}}}}{b{dBh}}}Bj{BlA`}{BlAb}}{{{b{{Ad{c}}}}{b{dBh}}}Bj{BlA`}}{{{b{{Af{c}}}}{b{dBh}}}Bj{BlA`}}{{{b{{Ah{c}}}}{b{dBh}}}Bj{BlA`}}{{{b{Aj}}{b{dBh}}}Bj}{{{b{Al}}{b{dBh}}}Bj}0{{{b{An}}{b{dBh}}}Bj}{cc{}}000000000``{{{b{f}}{b{dc}}}B`Bn}{{{b{Aj}}{b{dc}}}B`Bn}{{{b{Al}}{b{dc}}}B`Bn}{{{b{f}}}Bd}``{{}Bd}000000000{ce{}{}}000000000``{{{b{{l{ce}}}}}{{b{C`}}}A`Ab}``{{AjBdCb}h}{{AjBd}Al}````{{{b{Aj}}{b{Aj}}}{{Cd{Bb}}}}{{{b{Al}}{b{Al}}}{{Cd{Bb}}}}{{{b{An}}{b{An}}}{{Cd{Bb}}}}``{{{b{f}}}Cf}`{{{b{{Ad{c}}}}}BdA`}``{{{b{{l{ce}}}}}{{b{{Ch{ce}}}}}A`Ab}````{{{b{c}}}e{}{}}000000000{{{b{c}}}Cj{}}0{c{{Cl{e}}}{}{}}0000000000000000000{{{b{c}}}Cn{}}000000000`=========={{{b{j}}{b{dc}}}{{D`{B`}}}Db}```````{{{Ch{ce}}{Ch{ce}}}{{Ch{ce}}}A`Ab}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{Ch{ce}}}}}{{Ch{ce}}}n{nAb}}{{{b{c}}{b{de}}}B`{}{}}{{{b{Ab}}}Bd}{{{b{{Ch{ce}}}}}BdA`Ab}10{Bd{{b{c}}}{}}{Bd{{b{dc}}}{}}{BdB`}{{{b{{Ch{ce}}}}{b{{Ch{ce}}}}}BfDd{DdAb}}{{{b{{Ch{ce}}}}{b{i}}{b{k}}{b{m}}{b{o}}{b{Aa}}}gA`Ab{}{{Dh{c}{{Df{g}}}}}{{Dh{e}{{Df{g}}}}}{{Dh{g}{{Df{g}}}}}{{Dh{gg}{{Df{g}}}}}{{Dh{gg}{{Df{g}}}}}}{{{b{{Ch{ce}}}}{b{dBh}}}BjBl{BlAb}}{cc{}}{{{b{{Ch{ce}}}}}CjA`Ab}{{}Bd}{ce{}{}}{{{Ch{ce}}{Ch{ce}}}{{Ch{ce}}}A`Ab}{{{Ch{ce}}c}{{Ch{ce}}}A`Ab}{{{Ch{ce}}}gA`Ab{}}{g{{Ch{ce}}}A`Ab{{Dl{}{{Dj{{Ch{ce}}}}}}}}30{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Cn{}}7{{{b{Ab}}{b{dc}}}{{D`{B`}}}Db}{{{b{{Ch{ce}}}}{b{dg}}}{{D`{B`}}}A`AbDb}``{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{Dn{ce}}}}}{{Dn{ce}}}{nA`}{nAb}}{{{b{c}}{b{de}}}B`{}{}}{Bd{{b{c}}}{}}{Bd{{b{dc}}}{}}{BdB`}{{{b{{Dn{ce}}}}{b{dBh}}}Bj{BlA`}{BlAb}}{cc{}}{{}Bd}``{ce{}{}}````?>>=0```````````````{{{E`{}{{Dj{c}}}}e}BfEb{{Dh{c}{{Df{Bf}}}}EdEb}}0{{{b{dEf}}}{{b{d{Eh{c}}}}}Eb}<;{Ej{{El{Ej}}}}{{EjBd}{{En{Ej}}}}{{{E`{}{{Dj{c}}}}e}{{F`{{E`{}{{Dj{c}}}}}}}Eb{{Fb{}{{Dj{c}}}}}}{{EjBd}{{Fd{Ej}}}}{{{E`{}{{Dj{c}}}}}{{Ff{{E`{}{{Dj{c}}}}}}}Eb}{{Eje}Bb{}{{Fb{}{{Dj{c}}}}}}{{{E`{}{{Dj{c}}}}}eEb{{Fh{c}}}}{{Ej{b{d{Fj{c}}}}}B`{}}{{{E`{}{{Dj{c}}}}}{{Fl{{Fj{c}}}}}Eb}{{{E`{}{{Dj{c}}}}}{{Fn{{E`{}{{Dj{c}}}}}}}Eb}{{{E`{}{{Dj{c}}}}}BdEb}>{Bd{{b{c}}}{}}{Bd{{b{dc}}}{}}{{Eje}{}{}{{G`{c}}}}{{{E`{}{{Dj{c}}}}e}{}Eb{{Gb{c}}}}{BdB`}{Ej{{Gd{Ej}}}}{{Ejc}BfFb}{{{E`{}{{Dj{c}}}}e}{{Gf{{E`{}{{Dj{c}}}}e}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}{{{E`{}{{Dj{c}}}}g}{{Gh{{E`{}{{Dj{c}}}}g}}}EbEb{{Dh{c}{{Df{{Cd{e}}}}}}EdEb}}{{{E`{}{{Dj{c}}}}e}{{Cd{c}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}00{{{E`{}{{Dj{c}}}}g}{{Cd{e}}}EbEb{{Dh{c}{{Df{{Cd{e}}}}}}EdEb}}00{{{E`{}{{Dj{c}}}}g}{{Gj{{E`{}{{Dj{c}}}}g}}}EbFb{{Dh{c}{{Df{e}}}}EdEb}}{{{E`{}{{Dj{c}}}}g}{{Gl{{E`{}{{Dj{c}}}}g}}}EbGn{{Dh{c}{{Df{e}}}}EdEb}}{{{E`{}{{Dj{c}}}}}{{H`{{E`{}{{Dj{c}}}}}}}Eb}{{{E`{}{{Dj{c}}}}}{{Hb{{E`{}{{Dj{c}}}}}}}Eb}{{{b{Hd}}{b{dBh}}}{{Cl{B`Hf}}}}{{{E`{}{{Dj{c}}}}gi}{{Hh{{E`{}{{Dj{c}}}}gi}}}EbEb{{Dh{}{{Df{e}}}}EdEb}{{Dh{ec}{{Df{e}}}}EdEb}}{{EjBdei}{{Hj{Ejei}}}Eb{{Dh{}{{Df{c}}}}EbEd}{}{{Dh{cg}{{Df{c}}}}EbEd}}{{EjBdcg}{{Hl{Ejcg}}}{Ebn}{}{{Dh{ce}{{Df{c}}}}EbEd}}{{{E`{}{{Dj{c}}}}eg}{{Hn{{E`{}{{Dj{c}}}}eg}}}Eb{Ebn}{{Dh{ec}{{Df{e}}}}EdEb}}{{{E`{}{{Dj{c}}}}e}B`Eb{{Dh{c}}EdEb}}{{{E`{}{{Dj{c}}}}gi}B`Eb{}{{Dh{}{{Df{e}}}}EdEb}{{Dh{{b{de}}c}}EdEb}}{{{E`{}{{Dj{c}}}}eg}B`Eb{Ebn}{{Dh{{b{de}}c}}EdEb}}{cc{}}{{Ejc}BfFb}0{{}Bd}{{{E`{}{{Dj{c}}}}e}{{I`{{E`{}{{Dj{c}}}}e}}}Eb{{Dh{{b{c}}}}EdEb}}{{Eje}{{Ib{Ej}}}{}{{Fb{}{{Dj{c}}}}}}{{Eje}{{Id{Ej}}}{}{{Fb{}{{Dj{c}}}}}}{{{E`{}{{Dj{c}}}}c}{{If{{E`{}{{Dj{c}}}}}}}Eb}{ce{}{}}{{{Fb{}{{Ih{c}}{Dj{e}}}}}c{{E`{}{{Dj{e}}}}}Eb}{{ei}{{Ij{cg}}}Eb{{Il{}{{Df{c}}}}Eb}Eb{{Il{}{{Df{g}}}}Eb}}8{{{b{Ej}}}Bd}9{{{E`{}{{Dj{c}}}}g}{{In{{E`{}{{Dj{c}}}}g}}}EbEb{{Dh{c}{{Df{e}}}}EdEb}}{{{E`{}{{Dj{c}}}}gk}{{J`{{E`{}{{Dj{c}}}}gk}}}Eb{}{{Dh{}{{Df{e}}}}EdEb}Eb{{Dh{{b{de}}c}{{Df{i}}}}EdEb}}{{{E`{}{{Dj{c}}}}ei}{{Jb{{E`{}{{Dj{c}}}}ei}}}Eb{Ebn}Eb{{Dh{{b{de}}c}{{Df{g}}}}EdEb}}{{{E`{}{{Dj{c}}}}}{{Cd{c}}}Eb}{{{E`{}{{Dj{c}}}}e}{{Cd{c}}}Eb{EdEb{Dh{{b{c}}{b{c}}}{{Df{Bb}}}}}}{{{E`{}{{Dj{c}}}}g}{{Cd{c}}}Eb{JdEb}{EdEb{Dh{{b{c}}}{{Df{e}}}}}}210?{{{b{{E`{}{{Dj{c}}}}}}}{{Cd{Bd}}}Eb}{{{E`{}{{Dj{c}}}}}{{Jf{{E`{}{{Dj{c}}}}}}}Eb}{{{b{dEf}}e}{{Jh{ce}}}Eb{{Dh{{b{c}}{b{c}}}{{Df{Bf}}}}EbEd}}{{{b{dEf}}Bd}{{Jj{c}}}Eb}{{{b{dEf}}Bd}{{Jl{c}}}Eb}{{{b{{Jn{}{{Ih{c}}{Dj{e}}}}}}}c{{E`{}{{Dj{e}}}}}Eb}{{{b{d{K`{}{{Ih{c}}{Dj{e}}}}}}}c{{E`{}{{Dj{e}}}}}Eb}{{{b{dEf}}Bd}{{Kb{c}}}Eb}{{{b{dEf}}Bd}{{Kd{c}}}Eb}{{{b{dEf}}}B`}{{{b{dEf}}e}B`Eb{{Dh{{b{c}}{b{c}}}{{Df{Bb}}}}Ed}}{{{b{dEf}}g}B`Eb{JdEb}{{Dh{{b{c}}}{{Df{e}}}}Ed}}{{{b{dEf}}g}B`EbJd{{Dh{{b{c}}}{{Df{e}}}}Ed}}320{{{b{dEf}}e}{{Kf{ce}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}{{{b{dEf}}e}{{Kh{ce}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}{{Ejc}{{Cd{Bb}}}Fb}{{{E`{}{{Dj{c}}}}e}{{Ij{gi}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}{KjEb{Kl{c}}}{KjEb{Kl{c}}}}{{{E`{}{{Dj{c}}}}i}{{Ij{km}}}EbEbEb{{Dh{c}{{Df{{Kn{eg}}}}}}EdEb}{KjEb{Kl{e}}}{KjEb{Kl{g}}}}{{Eje}{{Cd{Bd}}}{}{{Dh{c}{{Df{Bf}}}}EdEb}}00{{Eje}{{L`{Eje}}}{}{{Dh{c}{{Df{Bf}}}}EdEb}}{{{E`{}{{Dj{c}}}}}eEb{Eb{Lb{c}}Lb}}{{{E`{}{{Dj{c}}}}eg}cEb{{Dh{}{{Df{c}}}}EdEb}{{Dh{cc}{{Df{c}}}}EdEb}}{{{E`{}{{Dj{c}}}}e}{{Cd{c}}}Eb{{Dh{cc}{{Df{c}}}}EdEb}}{Ej{{Ld{Ej}}}}{ecEb{{Il{{b{Hd}}}{{Df{c}}}}Eb}}{{EjBd}{{Lf{Ej}}}}{{{E`{}{{Dj{c}}}}Bd}{{Lh{{E`{}{{Dj{c}}}}}}}Eb}{{{E`{}{{Dj{c}}}}e}{{Lj{{E`{}{{Dj{c}}}}e}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}{{{b{Hd}}c}B`{{Il{{b{Hd}}}}Eb}}{{{b{Hd}}c}B`{{Dh{{b{Hd}}Ll}}EbEd}}{{EjBd}{{Ln{Ej}}}}{{{E`{}{{Dj{c}}}}}eEb{Eb{M`{c}}M`}}{{EjBd}{{Mb{Ej}}}}{{{E`{}{{Dj{c}}}}Bd}{{Md{{E`{}{{Dj{c}}}}}}}Eb}{{{E`{}{{Dj{c}}}}e}{{Mf{{E`{}{{Dj{c}}}}e}}}Eb{{Dh{{b{c}}}{{Df{Bf}}}}EdEb}}{{{E`{}{{Dj{c}}}}gk}{{Mh{{E`{}{{Dj{c}}}}igk}}}Eb{}{{Dh{}{{Df{e}}}}EdEb}{{Mj{}{{Df{e}}}}Eb}{{Dh{ec}{{Df{i}}}}EdEb}}{{Mlei}{{Cl{cg}}}{}{{Dh{}{{Df{c}}}}EbEd}{}{{Dh{c{Cl{cg}}}{{Df{{Cl{cg}}}}}}EbEd}}{{{E`{}{{Dj{c}}}}ei}{{Mn{{E`{}{{Dj{c}}}}gi}}}Eb{nEb}{{Mj{}{{Df{e}}}}Eb}{{Dh{ec}{{Df{g}}}}EdEb}}{{{E`{}{{Dj{c}}}}g}eEb{{Mj{}{{Df{B`}}}}Eb}{{Dh{c}{{Df{e}}}}EdEb}}{{{E`{}{{Dj{c}}}}gk}iEb{}{{Dh{}{{Df{e}}}}EdEb}{{Mj{}{{Df{B`}}}}Eb}{{Dh{{b{de}}c}{{Df{i}}}}EdEb}}{{{E`{}{{Dj{c}}}}ei}gEb{Ebn}{{Mj{}{{Df{B`}}}}Eb}{{Dh{{b{de}}c}{{Df{g}}}}EdEb}}{c{{Cl{e}}}{}{}}0{{{E`{}{{Dj{c}}}}gi}cEb{}{{Dh{}{{Df{e}}}}EdEb}{{Dh{ee}{{Df{c}}}}EdEb}}{{{E`{}{{Dj{c}}}}g}{{Cd{c}}}Eb{}{{Dh{ee}{{Df{c}}}}EdEb}}{{{b{c}}}Cn{}}{{{E`{}{{Dj{c}}}}}{{Ij{gk}}}EbEb{KjEb{Kl{e}}}Eb{KjEb{Kl{i}}}}{{Ej{b{d{Fj{c}}}}{b{d{Fj{e}}}}}B`EbEb}{{{E`{}{{Dj{c}}}}e}{{N`{{E`{}{{Dj{c}}}}e}}}Eb{{Dh{{b{dc}}}}EdEb}}{ce{}{}}{{{E`{}{{Dj{c}}}}}{{Nb{{E`{}{{Dj{c}}}}}}}Eb}{{EjBd}{{Nd{Ej}}}}{{EjBd}{{Nf{Ej}}}}{{Eje}{}{}{{Nh{c}}}}{{Ejc}{{Nj{Ej}}}Fb}{{Ejc}{{Nl{Ej}}}Fb}``{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{Nn}}}Nn}{{{b{O`}}}O`}{{{b{c}}{b{de}}}B`{}{}}0``{Bd{{b{c}}}{}}0{Bd{{b{dc}}}{}}0{BdB`}0{{{b{Nn}}{b{dBh}}}Bj}{{{b{O`}}{b{dBh}}}Bj}{cc{}}0{{}Bd}0{ce{}{}}0{{{b{c}}}e{}{}}0{c{{Cl{e}}}{}{}}000{{{b{c}}}Cn{}}033`?>{{{b{Cb}}}Cb}<{{{b{Cb}}{b{Cb}}}Bb}{{}Cb}=<;{{{b{Cb}}{b{Cb}}}Bf}{{{b{Cb}}{b{dBh}}}Bj}:{{{b{Cb}}{b{dc}}}B`Bn}:93{{{b{Cb}}{b{Cb}}}{{Cd{Bb}}}}49887:``{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{Ob{ce}}}}}{{Ob{ce}}}{nA`}{nAb}}{{{b{c}}{b{de}}}B`{}{}}{Bd{{b{c}}}{}}{Bd{{b{dc}}}{}}{BdB`}{{{b{{Ob{ce}}}}{b{dBh}}}Bj{BlA`}{BlAb}}{cc{}}{{}Bd}``{ce{}{}}````{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Cn{}}3```````````=========<<<<<<<<<{{{Oh{{Od{c}}{Of{ce}}}}}{{Oj{ce}}}Ol{{On{c}}}}{{}{{Oj{cA@`}}}Ol}{{}A@`}{{}{{Oh{ce}}}KjKj}{{}A@b}{{}{{Od{c}}}{KjOl}}{{}A@d}{Bd{{b{c}}}{}}00000000{Bd{{b{dc}}}{}}00000000{BdB`}00000000{{{b{{Oj{ce}}}}{b{dBh}}}Bj{BlOl}{Bl{On{c}}}}{cc{}}00000000{{{b{A@`}}{b{{Eh{c}}}}}eOl{}}{{{b{A@`}}{b{Eh}}}c{}}{{}Bd}00000000{ce{}{}}00000000{{{b{A@`}}{b{Eh}}{b{{Eh{c}}}}}{}Ol}`{{{b{A@`}}{b{Eh}}{b{c}}}{}{}}{{{b{A@`}}{b{c}}{b{e}}}{}{}{}}{{{b{A@`}}{b{c}}{b{{Eh{e}}}}}{}{}Ol}{{}A@`}{{}{{Oh{A@bA@d}}}}{{{Oh{A@bA@d}}}{{Oh{{Od{c}}A@d}}}Ol}{{{Oh{{Od{c}}e}}g}{{Oh{{Od{c}}{Of{cg}}}}}Ol{}{{On{c}}}}{c{{Cl{e}}}{}{}}00000000000000000{{{b{c}}}Cn{}}00000000:::::::::```{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{{Eh{g}}}}}e{}{}Ol}{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{Eh}}}c{}{}}{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{Eh}}{b{{Eh{g}}}}}{}{}{}Ol}{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{Eh}}{b{e}}}{}{}{}}{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{c}}{b{e}}}{}{}{}}{{{b{{On{}{{A@f{c}}{A@h{e}}}}}}{b{c}}{b{{Eh{g}}}}}{}{}{}Ol}","D":"AMf","p":[[1,"reference"],[0,"mut"],[5,"ChallengeMid",10],[5,"QueryMid",10],[6,"VarMid",10],[5,"Gate",10],[10,"Clone",689],[10,"Field",690],[10,"Variable",251],[5,"ConstraintSystemMid",10],[5,"Preprocessing",10],[5,"CompiledCircuit",10],[6,"Any",10],[5,"ColumnMid",10],[5,"Cell",10],[1,"unit"],[6,"Ordering",691],[1,"usize"],[1,"bool"],[5,"Formatter",692],[8,"Result",692],[10,"Debug",692],[10,"Hasher",693],[1,"str"],[5,"Rotation",494],[6,"Option",694],[1,"u8"],[6,"Expression",251],[5,"String",695],[6,"Result",696],[5,"TypeId",697],[8,"Result",698],[10,"Write",699],[10,"PartialEq",691],[17,"Output"],[10,"Fn",700],[17,"Item"],[10,"Iterator",701],[5,"Argument",290],[10,"ParallelIterator",314,702],[10,"Send",703],[10,"Sync",703],[10,"ParallelSliceMut",314,704],[1,"slice"],[10,"IndexedParallelIterator",314,702],[5,"ExponentialBlocks",705],[5,"UniformBlocks",705],[5,"Chain",706],[10,"IntoParallelIterator",314,702],[5,"Chunks",707],[5,"Cloned",708],[10,"FromParallelIterator",702],[5,"Vec",709],[5,"LinkedList",710],[5,"Copied",711],[10,"Consumer",712],[10,"UnindexedConsumer",712],[5,"Enumerate",713],[5,"Filter",714],[5,"FilterMap",715],[5,"FlatMap",716],[5,"FlatMapIter",717],[10,"IntoIterator",718],[5,"Flatten",719],[5,"FlattenIter",720],[5,"Scope",314,721],[5,"Error",692],[5,"Fold",722],[5,"FoldChunks",723],[5,"FoldChunksWith",724],[5,"FoldWith",722],[5,"Inspect",725],[5,"Interleave",726],[5,"InterleaveShortest",727],[5,"Intersperse",728],[17,"Iter"],[1,"tuple"],[10,"FnOnce",700],[5,"Map",729],[5,"MapInit",730],[5,"MapWith",730],[10,"Ord",691],[5,"PanicFuse",731],[5,"ChunkByMut",732],[5,"ChunksExactMut",733],[5,"ChunksMut",733],[10,"IntoParallelRefIterator",314,702],[10,"IntoParallelRefMutIterator",314,702],[5,"RChunksExactMut",734],[5,"RChunksMut",734],[5,"SplitInclusiveMut",704],[5,"SplitMut",704],[10,"Default",735],[10,"ParallelExtend",702],[6,"Either",736],[5,"Positions",737],[10,"Product",738],[5,"Rev",739],[5,"Skip",740],[5,"SkipAny",741],[5,"SkipAnyWhile",742],[5,"BroadcastContext",743],[5,"StepBy",744],[10,"Sum",738],[5,"Take",745],[5,"TakeAny",746],[5,"TakeAnyWhile",747],[5,"TryFold",748],[10,"Try",749],[10,"TryFoldAndReduce",314],[5,"TryFoldWith",748],[5,"Update",750],[5,"WhileSome",751],[5,"MaxLen",752],[5,"MinLen",752],[10,"ProducerCallback",712],[5,"Zip",753],[5,"ZipEq",754],[5,"AssemblyMid",458],[5,"ArgumentMid",458],[5,"Argument",518],[5,"HasCurve",544],[5,"HasMsmEngine",544],[5,"PlonkEngineConfig",544],[5,"PlonkEngine",544],[10,"CurveAffine",755],[10,"MsmAccel",680],[5,"H2cEngine",544],[5,"NoCurve",544],[5,"NoMsmEngine",544],[17,"CoeffsDescriptor"],[17,"BaseDescriptor"],[8,"ExpressionMid",10],[8,"GateMid",10],[8,"ArgumentMid",290],[8,"ArgumentMid",518],[5,"H2cMsmCoeffsDesc",544],[5,"H2cMsmBaseDesc",544]],"r":[[314,702],[315,702],[316,702],[317,702],[325,702],[326,704],[327,721],[345,756],[383,757],[426,721]],"b":[[123,"impl-Display-for-VarMid"],[124,"impl-Debug-for-VarMid"],[130,"impl-Debug-for-ColumnMid"],[131,"impl-Display-for-ColumnMid"],[277,"impl-Mul-for-Expression%3CF,+V%3E"],[278,"impl-Mul%3CF%3E-for-Expression%3CF,+V%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMYBMgAAAAkAFAAAABcAAAAdAAAAIAAAACIAEwA3ABcAUgAzAJAABACWAAAAmAAJAKwAAQCvAAwAvQAAAL8AAQDCAAAAxAArAPEACgACAQUADAEDABEBAAAUAQAAFgEKACIBAAAkAQgALgECADIBCABJAQAATQEBAFsBAQBfAQAAbgEAAHkBAAC8AQEAwAEAAMQBAADMAQgA1gEIAOEBAQDlAQkA8AEEAPYBBAD8AQEAAAIAAAICBAAIAggAEgICABYCSABoAgoAfAI1AA=="}],\ -["halo2_proofs",{"t":"PPPGCNNCNNNNCNNNENNCCNCNNNNRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMFFKRKRFFFRFFFNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNCNNFFNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNCNNNNNNNNPFPPGPPPFPPPGNNNNNNNNNNNNNNNHNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGGKPPPFPKFPPKRPFPFFGGGGFFPPFKRPFPPPPPPPPPPPRKPFPPFFPPPFPFPPFFPNNNNNNNNNNNNONMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNMNNMNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONMNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHNNNNOONNNNNNNNNNNNNNNNNONONONONNNNNNNONNNNHMNNMNNMNNNNNNNNMNNNNNNONNNNONNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNMNNOOFRFKNNNNNNNNNNNCNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNCNCNNNMNNNNNMNNNNNNNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKRKKKKKNNNNNNNNNNNNNMNNMNNNNNNNNNNNNMNNNNNNNMNMMNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNMNMN","n":["Processed","RawBytes","RawBytesUnchecked","SerdeFormat","arithmetic","borrow","borrow_mut","circuit","clone","clone_into","deref","deref_mut","dev","drop","fmt","from","halo2curves","init","into","plonk","poly","to_owned","transcript","try_from","try_into","type_id","vzip","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into_field","invert","known","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_challenge","get_root","init","init","into","into","pop_namespace","push_namespace","single_pass","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","v1","vzip","vzip","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow_mut","constrain_instance","deref","deref_mut","drop","fmt","from","get_challenge","get_root","init","into","new","pop_namespace","push_namespace","try_from","try_into","type_id","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","strategy","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","CellNotAssigned","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","Lookup","MockProver","OutsideRegion","Permutation","Shuffle","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone_into","copy","cost_model","cs","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","init","init","init","init","instance","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","query_instance","render","run","selectors","show_equality_constraints","show_labels","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","usable_rows","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","Any","Assigned","Assignment","Backend","BoundsFailure","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotInPermutation","ColumnNotInPermutation","ColumnType","Config","Constant","ConstraintSystem","ConstraintSystemFailure","ConstraintSystemMid","Constraints","Error","ErrorBack","ErrorFront","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Frontend","Instance","Instance","Instance","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","NotEnoughRowsAvailable","Opening","Other","Other","Params","Phase","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","ThirdPhase","Transcript","Trivial","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","advice_column","advice_column_in","advice_column_phase","advice_column_phase","advice_queries","annotate_column","annotate_column","annotate_lookup_any_column","annotate_lookup_column","assign_advice","assign_fixed","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_phase","challenge_usable_after","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","column_index","column_index","column_type","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","constants","copy","create_gate","create_proof","create_proof_with_engine","cube","cur","default","degree","degree","denominator","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","enable_constant","enable_equality","enable_selector","enter_region","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","fixed_column","fixed_commitments","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","gates","gates","general_column_annotations","general_column_annotations","get_any_query_index","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","inner","instance_column","instance_queries","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_pk_custom","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","lookups","minimum_degree","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","next","not_enough_rows_available","not_enough_rows_available","num_advice_columns","num_advice_columns","num_challenges","num_challenges","num_fixed_columns","num_fixed_columns","num_instance_columns","num_instance_columns","num_selectors","numerator","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phases","phases","pinned","pk_read","pop_namespace","prev","product","push_namespace","query_advice","query_any","query_cell","query_cell","query_cell","query_cell","query_cell","query_cell","query_cells","query_challenge","query_fixed","query_instance","query_instance","query_selector","read","read","rot","rotation","rotation","selector","set_minimum_degree","shuffle","shuffles","shuffles","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sum","synthesize","synthesize","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","to_string","to_string","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","unblinded_advice_columns","verify_proof","vk_read","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","without_witnesses","write","write","current_k","current_k","EvaluationDomain","Output","Rotation","VerificationStrategy","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","deref","deref","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","hash","init","init","into","into","ipa","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","new","new","next","partial_cmp","pinned","prev","process","rotate_extended","rotate_omega","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Blind","COMMIT_INSTANCE","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit_lagrange","commit_lagrange","deref","deref","deref","deref_mut","deref_mut","deref_mut","downsize","downsize","drop","drop","drop","empty_msm","empty_msm","fmt","fmt","fmt","from","from","from","from_parts","init","init","init","into","into","into","k","k","n","n","new","new_params","read","read","read_custom","read_custom","read_params","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verifier_params","vzip","vzip","vzip","write","write","write_custom","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","into","into","into","new","new","read_point","read_point","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":[[0,"halo2_proofs"],[27,"halo2_proofs::arithmetic"],[64,"halo2_proofs::circuit"],[293,"halo2_proofs::circuit::floor_planner"],[331,"halo2_proofs::circuit::floor_planner::single_pass"],[354,"halo2_proofs::circuit::floor_planner::v1"],[385,"halo2_proofs::dev"],[495,"halo2_proofs::dev::FailureLocation"],[498,"halo2_proofs::dev::VerifyFailure"],[520,"halo2_proofs::dev::cost_model"],[664,"halo2_proofs::dev::metadata"],[779,"halo2_proofs::plonk"],[1426,"halo2_proofs::plonk::ErrorBack"],[1427,"halo2_proofs::plonk::ErrorFront"],[1428,"halo2_proofs::poly"],[1500,"halo2_proofs::poly::commitment"],[1566,"halo2_proofs::poly::ipa"],[1570,"halo2_proofs::poly::ipa::commitment"],[1615,"halo2_proofs::poly::ipa::msm"],[1645,"halo2_proofs::poly::ipa::multiopen"],[1677,"halo2_proofs::poly::ipa::strategy"],[1750,"halo2_proofs::poly::kzg"],[1754,"halo2_proofs::poly::kzg::commitment"],[1827,"halo2_proofs::poly::kzg::msm"],[1876,"halo2_proofs::poly::kzg::multiopen"],[1941,"halo2_proofs::poly::kzg::strategy"],[2001,"halo2_proofs::transcript"],[2089,"halo2_backend::helpers"],[2090,"core::fmt"],[2091,"core::result"],[2092,"core::any"],[2093,"pasta_curves::arithmetic::curves"],[2094,"subtle"],[2095,"ff"],[2096,"core::cmp"],[2097,"core::ops::arith"],[2098,"core::ops::function"],[2099,"alloc::boxed"],[2100,"core::marker"],[2101,"core::clone"],[2102,"core::convert"],[2103,"rand_core"],[2104,"halo2_frontend::plonk::assigned"],[2105,"halo2_frontend::circuit::value"],[2106,"halo2_frontend::circuit"],[2107,"halo2_frontend::plonk::circuit"],[2108,"halo2_frontend::plonk::circuit::expression"],[2109,"alloc::string"],[2110,"core::borrow"],[2111,"halo2_frontend::circuit::floor_planner::single_pass"],[2112,"halo2_frontend::circuit::layouter"],[2113,"halo2_frontend::circuit::table_layouter"],[2114,"core::iter::traits::collect"],[2115,"halo2_middleware::circuit"],[2116,"core::option"],[2117,"alloc::vec"],[2118,"halo2_frontend::circuit::floor_planner::v1"],[2119,"halo2_frontend::dev"],[2120,"core::iter::traits::iterator"],[2121,"halo2_frontend::dev::failure"],[2122,"halo2_frontend::plonk::circuit::constraint_system"],[2123,"halo2_frontend::dev::graph::layout"],[2124,"plotters::coord"],[2125,"plotters::drawing::area"],[2126,"plotters_backend"],[2127,"core::ops::range"],[2128,"halo2_frontend::dev::cost_model"],[2129,"serde::de"],[2130,"serde::ser"],[2131,"halo2_frontend::dev::metadata"],[2132,"std::collections::hash::map"],[2133,"core::hash"],[2134,"halo2_middleware::poly"],[2135,"halo2_backend::plonk"],[2136,"halo2_proofs::plonk::error"],[2137,"halo2_backend::transcript"],[2138,"halo2_middleware::zal::impls"],[2139,"halo2_middleware::zal::traits"],[2140,"std::io::error"],[2141,"halo2_backend::plonk::circuit"],[2142,"halo2_backend::poly::domain"],[2143,"halo2_backend::poly::commitment"],[2144,"halo2_frontend::plonk::lookup"],[2145,"core::default"],[2146,"halo2_frontend::plonk::permutation"],[2147,"halo2_frontend::plonk::circuit::expression::sealed"],[2148,"std::io"],[2149,"halo2_frontend::plonk::shuffle"],[2150,"core::error"],[2151,"halo2_backend::poly::strategy"],[2152,"halo2_backend::poly"],[2153,"halo2_backend::poly::query"],[2154,"halo2_backend::poly::ipa::commitment"],[2155,"halo2_backend::poly::ipa::msm"],[2156,"halo2_backend::poly::ipa::strategy"],[2157,"halo2_backend::poly::ipa::multiopen::prover"],[2158,"halo2_backend::poly::ipa::multiopen::verifier"],[2159,"halo2_backend::poly::kzg::commitment"],[2160,"pairing"],[2161,"halo2_backend::poly::kzg::msm"],[2162,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[2163,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[2164,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[2165,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[2166,"halo2_backend::poly::kzg::strategy"],[2167,"halo2_backend::arithmetic"],[2168,"halo2_frontend::circuit::floor_planner"],[2169,"halo2_frontend::dev::graph"],[2170,"halo2_proofs::plonk::prover"],[2171,"halo2_proofs::plonk::keygen"],[2172,"halo2_backend::plonk::verifier"],[2173,"halo2_backend::poly::ipa"],[2174,"halo2_backend::poly::ipa::commitment::prover"],[2175,"halo2_backend::poly::ipa::commitment::verifier"],[2176,"halo2_backend::poly::kzg"]],"i":[3,3,3,0,0,3,3,0,3,3,3,3,0,3,3,3,0,3,3,0,0,3,0,3,3,3,3,19,19,13,19,0,0,13,0,20,19,13,20,19,13,19,13,13,20,20,19,13,19,20,19,13,20,20,19,19,0,20,20,20,20,20,20,20,0,0,0,59,0,59,0,0,0,53,0,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,41,41,41,49,41,53,54,53,54,64,37,56,55,44,41,49,54,64,37,56,55,44,41,49,54,44,37,56,55,44,37,56,55,44,37,37,55,59,41,41,53,54,37,37,44,37,37,64,37,56,56,55,44,41,49,54,64,37,56,55,44,41,49,54,37,64,37,56,55,44,41,49,54,54,41,37,37,44,0,64,37,56,55,44,41,49,54,64,37,37,56,56,55,44,41,41,49,49,54,37,53,54,53,54,64,37,56,55,44,41,49,54,41,64,37,56,55,44,41,49,54,37,37,37,59,37,37,37,37,37,37,37,37,37,37,37,41,53,37,53,54,53,54,55,55,37,37,37,37,37,37,37,37,37,37,37,64,37,37,56,55,44,37,37,64,37,56,55,44,41,49,54,64,37,56,55,44,41,49,54,64,37,56,55,44,41,49,54,37,37,44,44,64,37,56,55,44,41,49,54,37,0,0,80,80,81,80,81,80,80,81,80,81,80,81,80,81,80,81,80,80,80,81,80,81,80,80,80,0,81,81,80,81,80,81,80,0,81,80,0,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,0,0,0,0,83,84,83,84,83,84,83,84,83,84,83,84,83,84,83,84,83,84,0,83,84,83,84,83,84,83,84,92,0,92,92,0,89,92,92,0,89,92,92,0,85,85,85,85,85,85,85,89,92,91,85,89,92,91,85,0,89,89,85,0,85,91,89,92,91,85,89,92,91,85,89,92,91,85,92,85,85,89,92,85,85,85,85,89,89,92,92,91,85,89,92,91,85,85,89,92,91,85,85,89,92,91,85,91,0,85,85,85,91,85,85,91,91,89,89,92,89,92,91,85,89,92,91,85,89,92,91,85,85,85,85,91,91,89,92,91,85,217,217,218,219,220,221,222,219,223,220,221,220,221,219,224,225,222,224,224,225,220,220,221,221,225,0,0,107,107,107,0,0,0,0,0,108,106,107,108,100,101,102,103,106,107,108,100,101,102,103,106,100,101,102,103,100,101,102,103,100,106,107,108,100,101,102,103,106,107,108,100,101,102,103,106,102,106,107,108,100,101,102,103,106,107,100,108,107,108,100,101,102,103,106,107,108,100,101,102,103,106,0,0,100,108,107,108,100,101,102,103,106,108,107,108,100,101,102,103,106,108,108,106,108,106,106,108,100,108,106,106,100,102,106,108,106,106,100,101,102,103,107,108,100,101,102,103,106,107,108,100,101,102,103,106,107,108,100,101,102,103,106,107,108,100,101,102,103,106,0,0,0,0,0,110,114,111,112,113,110,114,111,112,113,110,111,112,113,110,111,112,113,110,114,110,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,110,114,114,111,111,112,112,113,113,110,110,114,114,114,114,111,111,112,112,113,113,113,113,113,110,110,110,114,111,112,113,110,114,111,112,113,110,110,114,110,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,0,71,119,0,0,0,130,139,40,0,119,0,0,139,40,0,78,119,0,139,0,0,0,0,0,0,0,0,71,119,0,0,78,130,0,71,119,139,139,119,40,139,40,139,139,40,78,0,119,0,36,119,0,0,119,119,40,0,40,0,139,36,0,0,36,36,36,36,36,36,36,119,36,36,90,90,90,123,90,76,90,90,90,76,76,90,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,90,123,90,123,71,124,125,36,90,43,63,127,50,70,119,42,51,48,123,71,124,125,36,90,43,63,127,50,70,119,42,51,48,71,43,50,127,127,43,43,90,119,90,78,78,90,76,90,0,0,36,43,90,90,119,36,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,90,36,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,63,90,90,76,76,71,36,43,63,127,50,70,119,42,51,48,36,119,119,76,63,70,76,90,124,90,130,130,123,71,139,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,40,130,130,130,123,123,71,71,71,71,139,139,124,125,36,36,36,36,36,140,90,129,43,43,43,43,43,141,142,143,63,127,50,70,70,119,42,51,48,40,124,125,90,123,90,123,90,76,124,125,71,43,63,50,70,42,51,48,124,119,43,63,70,43,127,70,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,50,90,90,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,140,36,63,36,0,0,0,0,90,90,90,90,123,123,90,36,36,36,36,119,119,36,36,36,36,119,43,43,139,40,90,123,90,123,90,123,90,123,90,36,78,71,43,50,90,123,70,123,90,124,0,76,43,119,76,129,129,126,71,43,42,51,48,119,129,129,76,129,129,124,125,43,127,127,90,90,90,90,123,139,36,119,36,36,36,36,36,36,119,36,36,119,156,78,124,125,123,71,124,125,36,90,43,63,127,50,70,119,42,51,48,141,142,143,130,139,40,124,130,123,71,139,124,125,36,140,90,129,43,43,43,43,141,142,143,63,127,50,70,119,42,51,48,40,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,90,90,123,0,0,130,123,71,139,124,125,36,140,90,129,43,141,142,143,63,127,50,70,119,42,51,48,40,140,78,124,125,226,227,0,167,0,0,122,149,122,149,122,149,122,149,122,149,149,0,149,149,122,122,149,122,149,149,122,149,149,149,149,122,149,149,149,167,122,149,122,149,149,149,149,149,122,122,149,122,149,0,149,0,149,149,149,167,149,122,122,149,122,167,149,149,122,149,122,149,122,149,122,149,122,149,0,181,0,165,166,0,181,166,0,0,165,0,165,0,178,166,165,0,175,175,175,176,176,176,175,175,176,175,175,177,152,178,178,175,175,175,152,175,181,175,176,175,175,175,175,152,175,175,175,152,177,178,166,175,165,152,165,176,176,175,175,175,175,166,175,152,0,0,0,0,0,0,0,187,189,187,189,187,187,187,187,0,187,189,187,189,187,187,189,187,187,189,187,189,187,189,187,189,187,187,187,189,187,189,187,187,189,187,189,187,189,0,187,189,187,0,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,0,0,191,192,191,192,191,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,192,191,192,0,0,0,0,190,193,194,195,190,193,194,195,190,193,190,193,190,190,193,194,195,190,193,194,195,190,193,194,195,194,195,190,193,194,195,190,193,194,195,193,190,193,194,195,190,193,194,195,194,195,194,195,190,193,190,193,194,195,190,193,194,195,190,193,194,195,193,190,190,190,193,194,195,0,0,0,0,0,0,0,196,198,200,196,198,200,196,198,196,198,196,196,198,196,198,200,196,198,200,196,198,196,198,200,196,198,196,198,200,196,198,200,196,196,198,200,196,198,200,196,198,196,198,196,200,196,198,196,198,200,196,196,198,196,198,200,196,198,200,196,198,200,196,196,198,200,196,198,196,198,0,0,199,201,199,199,199,201,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,201,199,201,0,0,0,0,203,205,204,206,203,205,204,206,203,204,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,204,206,203,205,204,206,203,205,204,206,203,205,204,206,205,206,203,205,204,206,0,0,0,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,208,209,209,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,0,0,0,0,131,0,0,0,0,0,131,212,213,214,212,213,214,212,213,214,212,213,214,151,212,213,151,212,213,212,213,214,214,212,213,214,212,213,214,215,213,212,213,214,212,213,214,131,214,216,215,212,212,213,213,214,212,213,214,131,214,168,212,168,212,151,212,213,151,212,213,214,212,213,214,212,213,214,212,213,214,212,213,214,132,213,132,213],"f":"`````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}`{{{b{f}}}f}{{{b{c}}{b{de}}}h{}{}}{j{{b{c}}}{}}{j{{b{dc}}}{}}`{jh}{{{b{f}}{b{dl}}}{{A`{hn}}}}{cc{}}`{{}j}{ce{}{}}``{{{b{c}}}e{}{}}`{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}3````````````{{}c{}}000{{{b{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}{{An{{Al{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}}}{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bh}}}Bh}0{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{cc}{{An{{Aj{}{{Ad{e}}{Af{c}}{Ah{g}}}}}}}{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bn}}}{{Cb{C`}}}}{{{b{Bh}}}{{An{Bh}}}}{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}CdB`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{{b{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}Cd{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bh}}}Cd}{{{b{Bh}}}Cf}{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}{{Ch{eee}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{ccc}{{An{{Bf{}{{Ad{e}}{Af{c}}{Bd{g}}}}}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{e}}{Bl{e}}}}{{{b{d{Cj{c}}}}e}hCl{{C`{{b{d{Cj{c}}}}j}}ClCnD`}}{{{b{Bh}}c}Bh{{Dd{{Cj{Db}}}}}}0{cBhDf}9{{{b{Bh}}}{{Ch{CdBh}}}}{{{b{Bh}}{b{Bh}}}{{Ch{CdBh}}}}?`````````````{{{Dj{{Dh{c}}}}{Dj{c}}}{}Bh}{{{Dj{{Dh{c}}}}c}{}Bh}{{{Dj{{b{{Dh{c}}}}}}c}{}Bh}{{{Dj{{b{{Dh{c}}}}}}{Dj{c}}}{}Bh}{{{Dj{c}}{b{{Dj{c}}}}}{}{{Dl{b}{{Bj{}}}}}{}}{{{Dj{{b{c}}}}{Dj{c}}}{}{}}{{{Dj{c}}{Dj{{b{c}}}}}{}{{Dl{b}{{Bj{}}}}}{}}{{{Dj{e}}{Dj{e}}}{}{}{{Dl{}{{Bj{c}}}}}}{{{b{{Dj{c}}}}{Dj{c}}}{}{}}{{{b{{Dj{c}}}}{b{{Dj{c}}}}}{}{}}{{{Dj{c}}g}{{Dj{e}}}{}{}{{Dn{c}{{Bj{{Dj{e}}}}}}}}{{{b{d{Dj{c}}}}}{{Dj{{b{dc}}}}}{}}{{{b{{Dj{c}}}}}{{Dj{{b{c}}}}}{}}{{{b{{Dj{c}}}}e}h{}{{Dn{{b{c}}}{{Bj{Cf}}}}}}{{{Dj{c}}}{{A`{cE`}}}{}}{{{b{d{Eb{c}}}}g{Ef{Ed}}jk}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}{{En{}{{Bj{{Dj{i}}}}}}}}{{{b{d{Eb{c}}}}g{Ef{Ed}}ji}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}}{{{b{d{Eb{c}}}}g{Ef{F`}}j{Ef{Ed}}j}{{A`{{Eh{cc}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{d{Fb{c}}}}gFdjk}{{A`{hE`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{{El{{Dh{c}}}}}{{En{}{{Bj{{Dj{i}}}}}}}}{{{b{d{Eb{c}}}}g{Ef{Ff}}jk}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}{{En{}{{Bj{{Dj{i}}}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}im}{{A`{kE`}}}{{Fj{e}}}Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{e}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Fl{ce}}}}im}{{A`{kE`}}}Bh{{Fj{c}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}ik}{{A`{hE`}}}{{Fj{e}}}Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{e}}}{{Bj{{A`{hE`}}}}}}}}{{{b{d{Fl{ce}}}}ik}{{A`{hE`}}}Bh{{Fj{c}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000000{{{b{dc}}}{{b{de}}}{}{}}0000000{{{b{{Eh{ce}}}}}Fn{}Bh}{{{b{{Dj{c}}}}}{{Dj{c}}}D`}{{{b{G`}}}G`}{{{b{Fn}}}Fn}{{{b{{Eh{ce}}}}}{{Eh{ce}}}D`{D`Bh}}{{{b{c}}{b{de}}}h{}{}}000{{{Dj{{b{dc}}}}}{{Dj{c}}}D`}{{{Dj{{b{c}}}}}{{Dj{c}}}D`}`{{{b{{Gf{}{{Gb{c}}{Gd{e}}}}}}}{{b{c}}}{GhD`}{GhD`}}{{{b{d{Eb{c}}}}Fne}{{A`{hE`}}}Bh{{El{{Dh{c}}}}}}{{{b{d{Eb{c}}}}FnFn}{{A`{hE`}}}Bh}{{{b{d{Fj{}{{Fh{c}}}}}}Fn{Ef{F`}}j}{{A`{hE`}}}{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Fj{c}}}}{{{Dj{{b{c}}}}}{{Dj{c}}}Gj}{{{Dj{{b{dc}}}}}{{Dj{c}}}Gj}{{{b{{Eh{ce}}}}i{b{d{Eb{e}}}}{Ef{Ed}}j}{{A`{{Eh{ce}}E`}}}D`Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}}{{{b{{Dj{e}}}}}{{Dj{{Dh{c}}}}}Bh{{Gl{{Dh{c}}}}}}{{}{{Dj{c}}}{}}{j{{b{c}}}{}}00{{{b{G`}}}b}11111{j{{b{dc}}}{}}00000004{jh}0000000{{{b{d{Fl{ce}}}}}hBh{{Fj{c}}}}{{{b{d{Eb{c}}}}g{b{Gn}}j}{{A`{hE`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{{Dj{c}}}}e}{{A`{hE`}}}{}{{Dn{{b{c}}}{{Bj{Cf}}}}}}{{{Dj{{Dh{c}}}}}{{Dj{c}}}Bh}{{{Eh{{Dh{c}}c}}}{{Eh{cc}}}Bh}`{{{b{H`}}{b{dl}}}{{A`{hn}}}}{{{b{{Dj{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{G`}}{b{dl}}}{{A`{hn}}}}{{{b{Fn}}{b{dl}}}{{A`{hn}}}}{{{b{{Eh{ce}}}}{b{dl}}}{{A`{hn}}}Gh{GhBh}}{{{b{{Eb{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Fb{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Fl{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Fj{c}}}}{cc{}}{{{Dj{c}}}{{Dj{{Dh{c}}}}}Bh}1{jG`}2222{{{b{dHb}}}{{Eb{c}}}Bh}3{{{b{dHd}}}{{Fb{c}}}Bh}4{e{{Dj{g}}}{}{{Hh{}{{Hf{{Dj{c}}}}}}}{{Hj{c}}}}{{{b{{Fj{}{{Fh{c}}}}}}Hl}{{Dj{e}}}{{Fj{e}}}Bh}{{{b{{Fl{ce}}}}Hl}{{Dj{c}}}Bh{{Fj{c}}}}{{{b{d{Fj{}{{Fh{c}}}}}}}{{b{dc}}}{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}}{{b{d}}}Bh{{Fj{c}}}}{{}j}0000000{{{b{d{Eb{c}}}}{Ef{F`}}j}{{A`{{Dj{c}}E`}}}Bh}{ce{}{}}0000000{{{Dj{e}}}{{Dj{{Dh{c}}}}}Bh{{El{{Dh{c}}}}}}{{{b{{Dj{e}}}}}{{Dj{{Dh{c}}}}}Bh{{Gl{{Dh{c}}}}}}{c{{Dj{c}}}{}}{{{b{{Gf{}{{Gb{c}}{Gd{e}}}}}}}{{b{e}}}{GhD`}{GhD`}}{{{Dj{c}}g}{{Dj{e}}}{}{}{{Dn{c}{{Bj{e}}}}}}{{{b{{Dj{c}}}}{b{{Dj{c}}}}}{}{}}{{{Dj{{Dh{c}}}}c}{}Bh}{{{Dj{{Dh{c}}}}{Dj{c}}}{}Bh}{{{b{{Dj{c}}}}{Dj{c}}}{}{}}{{{Dj{e}}{Dj{e}}}{}{}{{Bl{}{{Bj{c}}}}}}{{{Dj{{b{c}}}}{Dj{c}}}{}{}}{{{Dj{c}}{b{{Dj{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{Dj{c}}{Dj{{b{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{Dj{{b{{Dh{c}}}}}}c}{}Bh}{{{Dj{{b{{Dh{c}}}}}}{Dj{c}}}{}Bh}{{{b{d{Eb{c}}}}gi}hBh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{{El{{Ef{Hn}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}i}{{Fl{ec}}}{{Fj{e}}}Bh{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{{{Dj{c}}}{}I`}{{{b{d{Fj{}{{Fh{c}}}}}}{Ib{Ej}}}h{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}{Ib{Ej}}}hBh{{Fj{c}}}}{{{b{d{Fj{}{{Fh{c}}}}}}i}h{{Fj{e}}}Bh{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{{{b{d{Fl{ce}}}}i}hBh{{Fj{c}}}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}``{{{b{{Dj{e}}}}}{{Dj{{Dh{c}}}}}Bh{{Gl{{Dh{c}}}}}}{{{Dj{e}}{Dj{e}}}{}{}{{Id{}{{Bj{c}}}}}}{{{Dj{c}}{Dj{{b{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}>{{{b{{Dj{c}}}}{b{{Dj{c}}}}}{}{}}{{{Dj{{Dh{c}}}}c}{}Bh}{{{b{{Dj{c}}}}{Dj{c}}}{}{}}={{{Dj{c}}{b{{Dj{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}?{{{Dj{{Dh{c}}}}{Dj{c}}}{}Bh}{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{{{b{{Dj{c}}}}}{{Dj{{Dh{e}}}}}{}Bh}{{{b{c}}}e{}{}}000{{{Dj{{In{c}}}}}{{In{{Dj{c}}}}}Gj}{{{Dj{e}}j}{{If{{Dj{c}}}}}{}{{Hh{}{{Hf{c}}}}}}{c{{A`{e}}}{}{}}000000000000000{{{b{c}}}Ab{}}0000000{{}{{Dj{c}}}{}}{{{Dj{{Ch{ce}}}}}{{Ch{{Dj{c}}{Dj{e}}}}}{}{}}{{{b{{Eh{ce}}}}}{{Dj{{b{c}}}}}{}Bh}{{{b{{Eh{ce}}}}}{{Dj{{Dh{e}}}}}{}Bh}{ce{}{}}0000000{{{Dj{c}}{Dj{e}}}{{Dj{{Ch{ce}}}}}{}{}}``{{{b{d{J`{ce}}}}im}{{A`{kE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{J`{ce}}}}ik}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{d{J`{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Ih{c}}Ij}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{jh}0{{{b{Jb}}{b{dl}}}{{A`{hn}}}}{{{b{{J`{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Ih{c}}}}{cc{}}0{{{b{{J`{ce}}}}Hl}{{Dj{c}}}Bh{{Ih{c}}Ij}}{{{b{d{J`{ce}}}}}{{b{d}}}Bh{{Ih{c}}Ij}}{{}j}0??{{{b{d{J`{ce}}}}{Ib{Ej}}}hBh{{Ih{c}}Ij}}{{{b{d{J`{ce}}}}i}hBh{{Ih{c}}Ij}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}`{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0`{ce{}{}}0``{{{b{d{Jd{ce}}}}im}{{A`{kE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Jd{ce}}}}ik}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{d{Jd{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Ih{c}}Ij}}{j{{b{c}}}{}}{j{{b{dc}}}{}}{jh}{{{b{{Jd{ce}}}}{b{dl}}}{{A`{hn}}}Bh{{Ih{c}}}}{cc{}}{{{b{{Jd{ce}}}}Hl}{{Dj{c}}}Bh{{Ih{c}}Ij}}{{{b{d{Jd{ce}}}}}{{b{d}}}Bh{{Ih{c}}Ij}}{{}j}={{{b{de}}{If{{Ef{Ff}}}}}{{A`{{Jd{ce}}E`}}}Bh{{Ih{c}}}}{{{b{d{Jd{ce}}}}{Ib{Ej}}}hBh{{Ih{c}}Ij}}{{{b{d{Jd{ce}}}}i}hBh{{Ih{c}}Ij}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}{ce{}{}}````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0??>>=={{{b{Jf}}{b{dl}}}{{A`{hn}}}}{{{b{{Jh{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Ih{c}}}}==::44`66665544`````````````{{{b{{Jj{c}}}}}{{b{{If{{If{{Jl{c}}}}}}}}}{JnBb}}{{{b{{Jj{c}}}}{Ef{Ed}}}{{b{{Cj{{Jl{c}}}}}}}{JnBb}}{{{b{d{Jj{c}}}}g{Ef{Hn}}}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{{Jj{c}}}}}h{JnBb}}{{{b{{Jj{c}}}}ee}h{JnBb}{D`{K`{}{{Hf{j}}}}}}{{{b{d{Jj{c}}}}g{Ef{Ed}}jk}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}{{El{{Dh{c}}}}}{{Dn{}{{Bj{{Dj{i}}}}}}}}{{{b{d{Jj{c}}}}g{Ef{Ff}}jk}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}{{El{{Dh{c}}}}}{{Dn{}{{Bj{{Dj{i}}}}}}}}::::9999{{{b{e}}}EjBh{{Il{c}}}}{{{b{Kb}}}Kb}{{{b{c}}{b{de}}}h{}{}}{{{b{d{Jj{c}}}}{Ef{Hn}}j{Ef{Hn}}j}{{A`{hE`}}}Bh}`{{{b{{Jj{c}}}}}{{b{{Kd{c}}}}}{JnBb}}{{}Kf}{j{{b{c}}}{}}000{j{{b{dc}}}{}}000{jh}000{{{b{Kh}}{b{{Jj{c}}}}}hBh}{{{b{d{Jj{c}}}}g{b{Gn}}j}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{d{Jj{c}}}}g}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{Kb}}{b{Kb}}}Cf}{{{b{Kh}}{b{Kh}}}Cf}{{{b{d{Jj{c}}}}}hBh}{{{b{d{Jj{c}}}}{Ef{Ff}}j{Dj{{Dh{c}}}}}{{A`{hE`}}}Bh}{{{b{{Jj{c}}}}}{{b{{If{{If{{Jl{c}}}}}}}}}{JnBb}}{{{b{{Jj{c}}}}{Ef{Ff}}}{{b{{Cj{{Jl{c}}}}}}}{JnBb}}{{{b{Kb}}{b{dl}}}{{A`{hn}}}}0{{{b{Kh}}{b{dl}}}{{A`{hn}}}}0{{{b{Kf}}{b{dl}}}{{A`{hn}}}}{{{b{{Jj{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{cc{}}000{{{b{{Jj{c}}}}Hl}{{Dj{c}}}Bh}{{}j}000{{{b{{Jj{c}}}}}{{b{{If{{If{{Kj{c}}}}}}}}}{JnBb}}{ce{}{}}000{{KfCf}Kf}`{{{b{d{Jj{c}}}}{Ib{Ej}}}hBh}{{{b{d{Jj{c}}}}g}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{{Jj{c}}}}{Ef{F`}}j}{{A`{{Dj{c}}E`}}}Bh}{{KfKl{b{e}}{b{{L`{gKn}}}}}{{A`{hLb}}}Bh{{Il{c}}}Ld}{{Kl{b{e}}{If{{If{c}}}}}{{A`{{Jj{c}}E`}}}{JnBb}{{Il{c}}}}{{{b{{Jj{c}}}}}{{b{{If{{If{Cf}}}}}}}{JnBb}}66{{{b{c}}}e{}{}}{{{b{c}}}Ej{}}0{c{{A`{e}}}{}{}}0000000{{{b{c}}}Ab{}}000{{{b{{Jj{c}}}}}{{b{{Lf{j}}}}}{JnBb}}{{{b{{Jj{c}}}}}{{A`{h{If{Kh}}}}}{JnBb}}{{{b{{Jj{c}}}}ee}{{A`{h{If{Kh}}}}}{JnBb}{D`{K`{}{{Hf{j}}}}}}{{Kf{Lf{j}}}Kf}0????`````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}000000{{{b{dc}}}{{b{de}}}{}{}}000000{{{b{Lh}}}Lh}{{{b{Lj}}}Lj}{{{b{Ll}}}Ll}{{{b{Ln}}}Ln}{{{b{c}}{b{de}}}h{}{}}000{{{b{Lh}}{b{Lh}}}M`}`{j{{b{c}}}{}}000000{j{{b{dc}}}{}}000000{c{{A`{Ll}}}Mb}{c{{A`{Md}}}Mb}{jh}000000{{{b{Mf}}{b{Mf}}}Cf}{{{b{Lh}}{b{Lh}}}Cf}`{{{b{Mf}}{b{dl}}}{{A`{hn}}}}{{{b{Mh}}{b{dl}}}{{A`{hn}}}}{{{b{Lh}}{b{dl}}}{{A`{hn}}}}{{{b{Lj}}{b{dl}}}{{A`{hn}}}}{{{b{Ll}}{b{dl}}}{{A`{hn}}}}{{{b{Ln}}{b{dl}}}{{A`{hn}}}}{{{b{Md}}{b{dl}}}{{A`{hn}}}}{cc{}}000000{{Kl{b{e}}{If{{If{c}}}}}Mh{BbBhJn}{{Il{c}}}}{{Kl{b{e}}{If{{If{c}}}}Mf}Md{BbBhJn}{{Il{c}}}}{{{b{Bn}}}{{A`{Lh}}}}`{{}j}000000`{ce{}{}}000000{{{b{Mh}}Mf}Md}``````{{{b{Lh}}{b{Lh}}}{{Ib{M`}}}}````{{{b{Ll}}c}A`Mj}{{{b{Md}}c}A`Mj}```{{{b{c}}}e{}{}}000{c{{A`{e}}}{}{}}0000000000000{{{b{c}}}Ab{}}0000007777777`````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000{{{b{Ml}}}Ml}{{{b{Mn}}}Mn}{{{b{N`}}}N`}{{{b{Nb}}}Nb}{{{b{c}}{b{de}}}h{}{}}000{{{b{Ml}}{b{Ml}}}M`}{{{b{Nd}}{b{Nd}}}M`}`{j{{b{c}}}{}}0000{j{{b{dc}}}{}}0000{jh}0000{{{b{Ml}}{b{Ml}}}Cf}{{{b{Nd}}{b{Nd}}}Cf}{{{b{Mn}}{b{Mn}}}Cf}{{{b{N`}}{b{N`}}}Cf}{{{b{Nb}}{b{Nb}}}Cf}{{{b{Ml}}{b{dl}}}{{A`{hn}}}}0{{{b{Nd}}{b{dl}}}{{A`{hn}}}}0{{{b{Mn}}{b{dl}}}{{A`{hn}}}}0{{{b{N`}}{b{dl}}}{{A`{hn}}}}0{{{b{Nb}}{b{dl}}}{{A`{hn}}}}0{cc{}}{{{Ef{Hn}}}Ml}1{{{Ch{MlNf}}}Nd}{{{Ch{cMlNf}}}Nd{{Dd{Bn}}}}{NhNd}4{{{Ch{jc}}}Mn{{Dd{Bn}}}}{{{Ch{Mnjc}}}N`{{Dd{Bn}}}}6{{{Ch{j{b{Bn}}}}}Nb}{{{Ch{jEj{Nj{MlEj}}}}}Nb}8{{{Ch{j{b{Bn}}{Nj{MlEj}}}}}Nb}{{{Ch{jEj}}}Nb}{{{b{Ml}}{b{dc}}}hNl}`{{}j}0000{ce{}{}}0000{{Hnj}Ml}{{{b{Ml}}{b{Ml}}}{{Ib{M`}}}}{{{b{Nd}}{b{Nd}}}{{Ib{M`}}}}{{{b{c}}}e{}{}}000{{{b{c}}}Ej{}}0000{c{{A`{e}}}{}{}}000000000{{{b{c}}}Ab{}}000077777`````````````````````````````````````````````````````````````````{{{b{{Dh{c}}}}c}{{Dh{c}}}Bh}{{{Dh{c}}c}{{Dh{c}}}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}{Dh{c}}}{{Dh{c}}}Bh}{{{Dh{c}}{Dh{c}}}{{Dh{c}}}Bh}{{{Nn{c}}{Nn{c}}}{{Nn{c}}}Bh}{{{b{d{Dh{c}}}}{Dh{c}}}hBh}{{{b{d{Dh{c}}}}{b{{Dh{c}}}}}hBh}{{{b{d{Kd{c}}}}}{{Ef{Ed}}}Bh}{{{b{d{Kd{c}}}}e}{{Ef{Ed}}}BhO`}{{{b{{Kd{c}}}}}{{If{Ob}}}Bh}`{{{b{{Kd{c}}}}}{{b{{If{{Ch{{Ef{Ed}}Od}}}}}}}Bh}{{{b{dIh}}e{Ef{Hn}}}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{d{Kd{c}}}}ei}hBh{{El{{Ef{Hn}}}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}}0{{{b{d{Kd{c}}}}Fdg}hBh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{dIh}}e{Ef{Ed}}jk}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}Bh{{El{{Dh{g}}}}}{{Dn{}{{Bj{{Dj{i}}}}}}}}{{{b{dIh}}e{Ef{Ff}}jk}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}Bh{{El{{Dh{g}}}}}{{Dn{}{{Bj{{Dj{i}}}}}}}}{{{b{{Kd{c}}}}}jBh}{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}00000000000000000000009`{{{b{d{Kd{c}}}}e}HlBhO`}{{{b{{Of{c}}}}}{{Of{c}}}{D`Bh}}{{{b{Hn}}}Hn}{{{b{{Oh{c}}}}}{{Oh{c}}}{D`Aj}}{{{b{{Oj{c}}}}}{{Oj{c}}}{D`Aj}}{{{b{{Dh{c}}}}}{{Dh{c}}}D`}{{{b{{Kd{c}}}}}{{Kd{c}}}{D`Bh}}{{{b{{Ef{c}}}}}{{Ef{c}}}{D`Ol}}{{{b{Gn}}}Gn}{{{b{On}}}On}{{{b{Fd}}}Fd}{{{b{Hl}}}Hl}{{{b{{Nn{c}}}}}{{Nn{c}}}D`}{{{b{Ed}}}Ed}{{{b{Ff}}}Ff}{{{b{F`}}}F`}{{{b{c}}{b{de}}}h{}{}}00000000000000{{{b{Hn}}{b{Hn}}}M`}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}M`Ol}{{{b{Fd}}{b{Fd}}}M`}{{{b{On}}}j}`{{{b{{Ef{c}}}}}{{b{c}}}Ol}`{{{b{d{Kd{c}}}}}GnBh}{{{b{{Nn{c}}}}}jBh}{{{Kd{c}}{If{{If{Cf}}}}}{{Ch{{Kd{c}}{If{{If{c}}}}}}}Bh}{{{b{d{Kd{c}}}}}eBh{}}{{{b{d{Kd{c}}}}e}gBh{}{}}{{{b{{Kd{c}}}}}{{b{{If{{Ef{Ff}}}}}}}Bh}{{{b{dIh}}{Ef{Hn}}j{Ef{Hn}}j}{{A`{hE`}}}}{{{b{d{Kd{c}}}}ek}hBh{{Dd{Bn}}}{{El{{A@`{c}}}}}{{Hh{}{{Hf{g}}}}}{{Dn{{b{d{A@b{c}}}}}{{Bj{i}}}}}}{{b{b{Oj}}{b{{Cj{c}}}}{b{{Cj{{If{If}}}}}}e{b{di}}}{{A`{hA@d}}}IlDfA@f{{A@h{g}}}}{{{A@j{c}}b{b{Oj}}{b{{Cj{e}}}}{b{{Cj{{If{If}}}}}}g{b{dk}}}{{A`{hA@d}}}A@lIlDfA@f{{A@h{i}}}}{{{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{b{{Ef{c}}}}}{{Nn{e}}}OlBh}{{}{{Kd{c}}}Bh}{{{b{{Kd{c}}}}}jBh}<{{{b{{Dh{c}}}}}{{Ib{c}}}Bh}{j{{b{c}}}{}}0000000000000000000000{j{{b{dc}}}{}}0000000000000000000000>6{jh}0000000000000000000000{{{b{Gn}}{b{d{Eb{c}}}}j}{{A`{hE`}}}Bh}{{{b{d{Kd{c}}}}{Ef{Ff}}}hBh}{{{b{d{Kd{c}}}}e}hBh{{El{{Ef{Hn}}}}}}{{{b{dIh}}e{b{Gn}}j}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{dIh}}e}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{Hn}}{b{Hn}}}Cf}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}CfBh}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}Cf{A@nOl}}{{{b{Gn}}{b{Gn}}}Cf}{{{b{On}}{b{On}}}Cf}{{{b{Fd}}{b{Fd}}}Cf}{{{b{Hl}}{b{Hl}}}Cf}{{{b{{Nn{c}}}}{b{{Nn{c}}}}}CfA@n}{{{b{Ed}}{b{Ed}}}Cf}{{{b{Ff}}{b{Ff}}}Cf}{{{b{F`}}{b{F`}}}Cf}{{{Dh{c}}}cBh}{{{b{{Nn{c}}}}{b{g}}{b{i}}{b{k}}{b{m}}{b{o}}{b{Aa}}{b{Ac}}{b{Ae}}{b{Ag}}{b{Ai}}}eBh{}{{C`{c}{{Bj{e}}}}}{{C`{Gn}{{Bj{e}}}}}{{C`{On}{{Bj{e}}}}}{{C`{AA`}{{Bj{e}}}}}{{C`{AAb}{{Bj{e}}}}}{{C`{Hl}{{Bj{e}}}}}{{C`{e}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ec}{{Bj{e}}}}}}{{{b{{Nn{c}}}}{b{g}}{b{i}}{b{k}}{b{m}}{b{o}}{b{Aa}}{b{Ac}}{b{Ae}}{b{Ag}}{b{Ai}}{b{e}}}eBhA@n{{C`{c}{{Bj{e}}}}}{{C`{Gn}{{Bj{e}}}}}{{C`{On}{{Bj{e}}}}}{{C`{AA`}{{Bj{e}}}}}{{C`{AAb}{{Bj{e}}}}}{{C`{Hl}{{Bj{e}}}}}{{C`{e}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ec}{{Bj{e}}}}}}{{{b{dIh}}}h}{{{b{Gn}}}{{Nn{c}}}Bh}{{{b{Hl}}}{{Nn{c}}}Bh}{{{b{dIh}}{Ef{Ff}}j{Dj{{Dh{c}}}}}{{A`{hE`}}}Bh}{{{b{d{Kd{c}}}}}{{Ef{Ff}}}Bh}{{{b{{Oh{c}}}}}{{b{{If{c}}}}}Aj}{{{b{{Kd{c}}}}}{{b{{If{{Ch{{Ef{Ff}}Od}}}}}}}Bh}{{{b{A@d}}{b{dl}}}AAd}0{{{b{{Of{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{Hn}}{b{dl}}}{{A`{hn}}}}{{{b{AAf}}{b{dl}}}{{A`{hn}}}}0{{{b{{Oh{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{Oj{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{Dh{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{{AAh{ceg}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{El{{A@`{c}}}}}{Gh{Hh{}{{Hf{e}}}}}}{{{b{{Kd{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{A@b{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Ef{c}}}}{b{dl}}}{{A`{hn}}}{GhOl}}{{{b{AAj}}{b{dl}}}{{A`{hn}}}}{{{b{AAl}}{b{dl}}}{{A`{hn}}}}{{{b{AAn}}{b{dl}}}{{A`{hn}}}}{{{b{Gn}}{b{dl}}}{{A`{hn}}}}{{{b{On}}{b{dl}}}{{A`{hn}}}}{{{b{Fd}}{b{dl}}}{{A`{hn}}}}{{{b{Hl}}{b{dl}}}{{A`{hn}}}}{{{b{{Nn{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{Ed}}{b{dl}}}{{A`{hn}}}}{{{b{Ff}}{b{dl}}}{{A`{hn}}}}{{{b{F`}}{b{dl}}}{{A`{hn}}}}{{{b{E`}}{b{dl}}}{{A`{hn}}}}0{E`A@d}{cc{}}{AAfA@d}1{{{Kd{c}}}{{Of{c}}}Bh}{F`Hn}3{FfHn}{EdHn}{AB`AAf}6666{c{{Dh{c}}}Bh}{{{b{c}}}{{Dh{c}}}Bh}{{{Ch{cc}}}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}}{{Dh{c}}}Bh}:::{Ml{{Ef{Hn}}}}{{{Ef{Ed}}}{{Ef{Hn}}}}<{{{Ef{F`}}}{{Ef{Hn}}}}{{{Ef{Ff}}}{{Ef{Hn}}}}>>>>>>{ABbHl}??????{{{b{{Cj{Ob}}}}fABd}{{A`{{Oh{c}}AB`}}}ABf}{{{b{{Cj{Ob}}}}fABd}{{A`{{Oj{c}}AB`}}}ABf}{{{b{{Kd{c}}}}}{{b{{If{{ABh{c}}}}}}}Bh}`{{{b{{Kd{c}}}}}{{b{{Nj{MlEj}}}}}Bh}`{{{b{{Kd{c}}}}{Ef{Hn}}Od}jBh}{{{b{Ih}}Hl}{{Dj{c}}}Bh}{{{b{{Oh{c}}}}}{{b{ABj}}}Aj}{{{b{{Oj{c}}}}}{{b{{Oh{c}}}}}Aj}{{{b{Hn}}{b{dc}}}hNl}{{{b{{Ef{c}}}}{b{de}}}h{ABlOl}Nl}{{{b{Gn}}{b{dc}}}hNl}{{{b{Fd}}{b{dc}}}hNl}{{{b{Hl}}{b{dc}}}hNl}{{{b{Ed}}{b{dc}}}hNl}{{{b{Ff}}{b{dc}}}hNl}{{{b{F`}}{b{dc}}}hNl}{{{b{{Oh{c}}}}{b{dg}}}{{A`{hAB`}}}Aj{{A@f{c}}}{{ABn{ce}}}}{{{b{{Nn{c}}}}}EjBh}{{{b{{Ef{c}}}}}jOl}{{{b{Gn}}}j}{{{b{Hl}}}j}```{{}j}0000000000000000000000{{{b{Fd}}}{{Ef{Ff}}}}{{{b{d{Kd{c}}}}}{{Ef{F`}}}Bh}{{{b{{Kd{c}}}}}{{b{{If{{Ch{{Ef{F`}}Od}}}}}}}Bh}{ce{}{}}0000000000000000000000{{{AAh{ceg}}}{}Bh{{El{{A@`{c}}}}}{{Hh{}{{Hf{e}}}}}}{{{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{b{Gn}}}Cf}{{{b{{Dh{c}}}}}CfBh}{{{b{e}}{Oh{c}}{b{g}}}{{A`{{Oj{c}}A@d}}}Aj{{AC`{c}}}Il}{{{b{e}}{Oh{c}}{b{g}}Cf}{{A`{{Oj{c}}A@d}}}Aj{{AC`{c}}}Il}{{{b{e}}{b{g}}}{{A`{{Oh{c}}A@d}}}Aj{{AC`{c}}}Il}{{{b{e}}{b{g}}Cf}{{A`{{Oh{c}}A@d}}}Aj{{AC`{c}}}Il}{{{b{d{Kd{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@b{c}}}}}{{Bj{{If{{Ch{{Nn{c}}Fd}}}}}}}}}}{{{b{d{Kd{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@b{c}}}}}{{Bj{{If{{Ch{{Nn{c}}{Nn{c}}}}}}}}}}}}{{{b{d{Kd{c}}}}}FdBh}{{{b{{Kd{c}}}}}{{b{{If{{ACb{c}}}}}}}Bh}``{{{b{{Kd{c}}}}}jBh}{{{Dh{c}}{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{Dh{c}}c}{{Dh{c}}}Bh}{{{Dh{c}}{Dh{c}}}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}c}{{Dh{c}}}Bh}{{{Nn{c}}c}{{Nn{c}}}Bh}{{{Nn{c}}{Nn{c}}}{{Nn{c}}}Bh}{{{b{d{Dh{c}}}}{Dh{c}}}hBh}{{{b{d{Dh{c}}}}{b{{Dh{c}}}}}hBh}{{{b{{Dh{c}}}}}{}Bh}{{{Dh{c}}}{}Bh}{{{Nn{c}}}{}Bh}{{jc}{{Ef{c}}}Ol}{{{b{{Ef{c}}}}}{{Nn{e}}}OlBh}{KlAAf}{KlE`}?`?`?`?`?{{{b{{Dh{c}}}}}cBh}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}}gD`AChACj}{{{b{Hn}}{b{Hn}}}{{Ib{M`}}}}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}{{Ib{M`}}}Ol}{{{b{Fd}}{b{Fd}}}{{Ib{M`}}}}{{{b{{Kd{c}}}}}{{b{ACl}}}Bh}`{{{b{Hl}}}Ob}{{{b{{Of{c}}}}}jBh}{{{b{{Kd{c}}}}}{{`{{K`{}{{Hf{ACn}}}}}}}Bh}{{{b{{Oh{c}}}}}{{AD`{c}}}Aj}{{{b{dc}}fKl{b{e}}Cf}{{ADb{{Oj{g}}}}}ADdIlABf}{{{b{dIh}}{Ib{Ej}}}h}>{e{{Nn{c}}}Bh{{K`{}{{Hf{{Nn{c}}}}}}}}{{{b{dIh}}e}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{d{A@b{c}}}}{Ef{Ed}}Od}{{Nn{c}}}Bh}{{{b{d{A@b{c}}}}eOd}{{Nn{c}}}Bh{{El{{Ef{Hn}}}}}}{{{b{Ol}}jOd}{{Nn{c}}}Bh}{{{b{Hn}}jOd}{{Nn{c}}}Bh}{{{b{{Ef{c}}}}Od}{{Nn{e}}}OlBh}{{{b{Ed}}jOd}{{Nn{c}}}Bh}{{{b{Ff}}jOd}{{Nn{c}}}Bh}{{{b{F`}}jOd}{{Nn{c}}}Bh}{{{b{d{Nn{c}}}}{b{d{A@b{c}}}}}hBh}{{{b{d{A@b{c}}}}Hl}{{Nn{c}}}Bh}{{{b{d{A@b{c}}}}{Ef{Ff}}Od}{{Nn{c}}}Bh}{{{b{Ih}}{Ef{F`}}j}{{A`{{Dj{c}}E`}}}Bh}{{{b{d{A@b{c}}}}{Ef{F`}}Od}{{Nn{c}}}Bh}{{{b{d{A@b{c}}}}Gn}{{Nn{c}}}Bh}{{{b{dc}}fABd}{{A`{{Oh{e}}AB`}}}ADdABf}{{{b{dc}}fABd}{{A`{{Oj{e}}AB`}}}ADdABf}{{{b{{Ef{c}}}}Nf}{{Nn{e}}}OlBh}{{{b{On}}}Od}`{{{b{d{Kd{c}}}}}GnBh}{{{b{d{Kd{c}}}}j}hBh}{{{b{d{Kd{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@b{c}}}}}{{Bj{{If{{Ch{{Nn{c}}{Nn{c}}}}}}}}}}}}{{{b{{Kd{c}}}}}{{b{{If{{ADf{c}}}}}}}Bh}`{{{b{AAf}}}{{Ib{{b{ADh}}}}}}{{{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{Nn{c}}}{{Nn{c}}}Bh}{{{b{{Dh{c}}}}{Dh{c}}}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}c}{{Dh{c}}}Bh}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{Dh{c}}c}{{Dh{c}}}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{{Dh{c}}}Bh}{{{Dh{c}}{Dh{c}}}{{Dh{c}}}Bh}{{{Nn{c}}{Nn{c}}}{{Nn{c}}}Bh}{{{b{d{Dh{c}}}}{b{{Dh{c}}}}}hBh}{{{b{d{Dh{c}}}}{Dh{c}}}hBh}{e{{Nn{c}}}Bh{{K`{}{{Hf{{Nn{c}}}}}}}}{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}ck}{{A`{hE`}}}D`AChACjBh{{Fj{i}}}}{{{b{{Oh{c}}}}f}{{If{Ob}}}ABf}{{{b{{Oj{c}}}}f}{{If{Ob}}}ABf}{{{b{c}}}e{}{}}00000000000000{AAjACn}{AAlACn}{AAnACn}{{{b{c}}}Ej{}}00{{{b{{Oh{c}}}}}{}Aj}{c{{A`{e}}}{}{}}000000000{{{Ef{Hn}}}{{A`{{Ef{Ed}}}}}}{{{Ef{Hn}}}{{A`{{Ef{Ff}}}}}}{{{Ef{Hn}}}{{A`{{Ef{F`}}}}}}333333333333333333333333333333333333{{{b{c}}}Ab{}}0000000000000000000000{{{b{d{Kd{c}}}}}{{Ef{Ed}}}Bh}{{{b{d{Kd{c}}}}e}{{Ef{Ed}}}BhO`}`{{b{b{Oh}}g{b{{Cj{{If{If}}}}}}{b{dk}}}{{A`{AAf}}}ADj{{ADl{c}}}{{ADn{ce}}}A@f{{AE`{i}}}}{{{b{dc}}fKl{b{e}}Cf}{{ADb{{Oh{g}}}}}ADdIlABf}{ce{}{}}0000000000000000000000{{{Nn{c}}g}{{AAh{ceg}}}Bh{{El{{A@`{c}}}}}{{Hh{}{{Hf{e}}}}}}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}}{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}D`AChACj}{{{b{{Oh{c}}}}{b{de}}f}{{A`{hAB`}}}ABfAEb}{{{b{{Oj{c}}}}{b{de}}f}{{A`{hAB`}}}ABfAEb}``````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{Od}}}Od}{{{b{{ABj{c}}}}}{{ABj{c}}}{D`Bh}}{{{b{c}}{b{de}}}h{}{}}0{{{b{Od}}{b{Od}}}M`}{{{b{{ABj{c}}}}{If{c}}}{{AEf{cAEd}}}B`}{{{b{{ABj{c}}}}{AEf{cAEd}}}{{AEf{cAEh}}}B`}`{{{b{{ABj{c}}}}c}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}c}{{AEf{cAEj}}}B`}{{}Od}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{{{b{{ABj{c}}}}{AEf{cAEh}}}{{AEf{cAEh}}}B`}{jh}0{{{b{{ABj{c}}}}}{{AEf{cAEd}}}B`}{{{b{{ABj{c}}}}}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}}{{AEf{cAEj}}}B`}{{{b{Od}}{b{Od}}}Cf}{{{b{{ABj{c}}}}}KlB`}{{{b{{ABj{c}}}}}jB`}{{{b{{ABj{c}}}}{AEf{cAEh}}}{{If{c}}}B`}{{{ADn{}{{Bj{c}}}}}Cf{}}{{{b{Od}}{b{dl}}}{{A`{hn}}}}{{{b{{ABj{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{cc{}}0{{{b{{ABj{c}}}}}cB`}006{{{b{Od}}{b{dc}}}hNl}{{}j}0{ce{}{}}0`:`{{{b{{ABj{c}}}}cce}{{If{c}}}B`{{Hh{}{{Hf{Nf}}}}D`}}{{{b{{ABj{c}}}}{If{c}}}{{AEf{cAEj}}}B`}{{{b{{ABj{c}}}}{AEf{cAEj}}}{{AEf{cAEd}}}B`}{b{{ADn{}{{Bj{c}}}}}{}}{{KlKl}{{ABj{c}}}B`}{{}Od}{{{b{Od}}{b{Od}}}{{Ib{M`}}}}{{{b{{ABj{c}}}}}{{AEl{c}}}B`}2{{{ADn{}{{Bj{c}}}}e}{{A`{cAAf}}}{}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{b{{ABj{c}}}}{b{{AEf{cAEh}}}}Od}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}cOd}cB`}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0>>``````````````````{{{AEn{c}}{AEn{c}}}{{AEn{c}}}Bh}{{{b{d{AEn{c}}}}{AEn{c}}}hBh}{{{b{d{AEn{c}}}}c}hBh}{{{b{dAF`}}{b{AF`}}}h}{{{b{dAF`}}}h}{{{b{AF`}}}If}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{AF`}}{b{e}}}CfAj{{A@l{c}}}}{{{b{{AEn{c}}}}}{{AEn{c}}}D`}{{{b{c}}{b{de}}}h{}{}}{{{b{AFb}}{b{e}}{b{{AEf{AEd}}}}AEn}{}Aj{{A@l{c}}}}{{{b{AC`}}{b{e}}{b{{AEf{AEj}}}}AEn}{}Aj{{A@l{c}}}}{{{b{AFd}}c{b{dg}}i}{{A`{hAB`}}}DfA@f{{A@h{e}}}{{Hh{}{{Hf{AFf}}}}D`}}{{{b{AFd}}{b{c}}e{b{di}}k}{{A`{hAB`}}}A@lDfA@f{{A@h{g}}}{{Hh{}{{Hf{AFf}}}}D`}}{{}{{AEn{c}}}Bh}{j{{b{c}}}{}}{j{{b{dc}}}{}}{{{b{dAC`}}Kl}h}{jh}{{{b{{AFj{}{{AFh{c}}}}}}}c{{AF`{e}}}Aj}{{{b{{AEn{c}}}}{b{{AEn{c}}}}}CfA@n}{{{b{AF`}}{b{e}}}{}Aj{{A@l{c}}}}{{{b{{AEn{c}}}}{b{dl}}}{{A`{hn}}}Gh}{cc{}}{{}j}{ce{}{}}{{{b{AC`}}}Kl}{{{AEn{c}}{AEn{c}}}{{AEn{c}}}Bh}{{{b{d{AEn{c}}}}c}hBh}{{{b{d{AEn{c}}}}{AEn{c}}}hBh}{{{b{AC`}}}Db}{KlAFb}{bAFd}{{}{{ADl{}{{AFl{c}}{AFn{g}}}}}{{AG`{e}{{AFn{g}}}}}ADj{}}{{{b{dc}}}{{AEn{e}}}DfBh}{Klc{}}{{{b{dc}}}{{A`{AC`AB`}}}ADd}{{{b{dc}}}{{A`{eAB`}}}ADd{}}{{{b{AF`}}}If}{{{b{dAF`}}}h}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}{{{b{{ADl{}{{AFl{c}}{AFn{g}}}}}}{b{dk}}mg}{{A`{cAGb}}}{{AG`{e}{{AFn{g}}}}}ADj{}A@f{{AE`{i}}}{{Hh{}{{Hf{AGd}}}}D`}}{ce{}{}}{{{b{AC`}}{b{dc}}}{{A`{hAB`}}}AEb}```````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AGf{c}}}}}{{AGf{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}{{{b{{AGf{c}}}}{b{e}}{b{{AEf{AEd}}}}AEn}{}Aj{{A@l{c}}}}{{{b{{AGf{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}Aj{{A@l{c}}}}{{{b{e}}{b{{AGf{c}}}}g{b{dk}}{b{{AEf{AEd}}}}AEn}{{A`{hAB`}}}Aj{{A@l{c}}}Df{{A@f{c}}}{{A@h{ci}}}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{{{b{d{AGf{c}}}}Kl}hAj}{jh}0{{{b{{AGf{c}}}}}{{AGh{c}}}Aj}{{{b{{AGf{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AGj{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}0{{}j}0{ce{}{}}0{{{b{{AGf{c}}}}}KlAj}{{{b{{AGf{c}}}}}DbAj}{Kl{{AGf{c}}}Aj}{Kl}{{{b{dc}}}{{A`{{AGf{e}}AB`}}}ADdAj}{{{b{dc}}}{{A`{AB`}}}ADd}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0{{{AGh{c}}{b{dg}}}{{A`{{AGl{c}}AGb}}}Aj{{A@f{c}}}{{AE`{ce}}}}::{{{b{{AGf{c}}}}{b{de}}}{{A`{hAB`}}}AjAEb}`{{{b{d{AGh{c}}}}}hAj}{{{b{d{AGh{c}}}}{b{{AGh{c}}}}}hAj}0{{{b{d{AGh{c}}}}{b{Cj}}}hAj}222{{{b{{AGh{c}}}}}IfAj}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{AGh{c}}}}{b{e}}}CfAj{{A@l{c}}}}{{{b{{AGh{c}}}}}{{AGh{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}{j{{b{c}}}{}}{j{{b{dc}}}{}}{jh}{{{b{{AGh{c}}}}{b{e}}}{}Aj{{A@l{c}}}}{{{b{{AGh{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}{{}j}{ce{}{}}{{{b{{AGf{c}}}}}{{AGh{c}}}Aj}>{{{b{d{AGh{c}}}}}hAj}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}5``{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AGn{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}Aj{{A@l{c}}}Df{{A@f{c}}}{{A@h{ci}}}{{Hh{}{{Hf{{AFf{c}}}}}}D`}}??>>=={{{b{{AGn{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AH`{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}<<;;::{{{b{{AGf{c}}}}}{{AGn{c}}}Aj}{{}{{AH`{c}}}Aj}888877{{{b{{AH`{c}}}}{b{dg}}i{AGh{c}}}{{A`{AGb}}}Aj{{A@f{c}}}{{AE`{ce}}}{{Hh{}{{Hf{{AGd{c{AGh{c}}}}}}}}D`}}==````77776666{{{b{{AGl{c}}}}}{{AGl{c}}}{D`Aj}}{{{b{{AHb{c}}}}}{{AHb{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}0{{{b{{AGl{c}}}}{b{e}}}cAj{{A@l{c}}}}{j{{b{c}}}{}}000{j{{b{dc}}}{}}000{jh}000{{{AHd{c}}}CfAj}{{{AHf{c}}}CfAj}{{{b{{AGl{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHb{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHd{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHf{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}000`{{}j}000{ce{}{}}000{{{b{{AGf{c}}}}}{{AHd{c}}}Aj}{{{b{{AGf{c}}}}}{{AHf{c}}}Aj}{{{AHd{c}}e}{{A`{AAf}}}Aj{{Dn{{AGh{c}}}{{Bj{{A`{{AGl{c}}AAf}}}}}}}}{{{AHf{c}}e}{{A`{AAf}}}Aj{{Dn{{AGh{c}}}{{Bj{{A`{{AGl{c}}AAf}}}}}}}}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}0000000{{{b{c}}}Ab{}}000`{{{AGl{c}}}{{AGh{c}}}Aj}{{{AGl{c}}c}{{Ch{{AGh{c}}{AHb{c}}}}}Aj}9999```````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AHh{c}}}}}{{AHh{c}}}{D`AHj}}{{{b{{AHl{c}}}}}{{AHl{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}0{{{b{{AHh{c}}}}{b{e}}{b{{AEf{AEd}}}}AEn}{}AHjA@l}{{{b{{AHh{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}AHjA@l}{{{b{{AHl{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}AHjA@l}{j{{b{c}}}{}}00{j{{b{dc}}}{}}00{{{b{d{AHh{c}}}}Kl}hAHj}{{{b{d{AHl{c}}}}Kl}hAHj}{jh}00{{{b{{AHh{c}}}}}{{AHn{c}}}AHj}{{{b{{AHl{c}}}}}{{AHn{c}}}AHj}{{{b{{AHh{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AHl{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AI`{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}00{{{b{{AHh{c}}}}KlIf{Ib{If}}}{{AHh{c}}}AHj}{{}j}00{ce{}{}}00{{{b{{AHh{c}}}}}KlAHj}{{{b{{AHl{c}}}}}KlAHj}{{{b{{AHh{c}}}}}DbAHj}{{{b{{AHl{c}}}}}DbAHj}{Kl{{AHh{c}}}AHj}{Kl}{{{b{dc}}}{{A`{{AHh{e}}AB`}}}ADdAHj}{{{b{dc}}}{{A`{{AHl{e}}AB`}}}ADdAHj}{{{b{dc}}f}{{A`{{AHh{e}}AB`}}}ADdAHj}{{{b{dc}}f}{{A`{{AHl{e}}AB`}}}ADdAHj}{{{b{dc}}}{{A`{AB`}}}ADd}{{Klc}{{AHh{e}}}DfAHj}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00{{{b{{AHh{c}}}}}{{AHl{c}}}AHj}{ce{}{}}00{{{b{{AHh{c}}}}{b{de}}}{{A`{hAB`}}}AHjAEb}{{{b{{AHl{c}}}}{b{de}}}{{A`{hAB`}}}AHjAEb}{{{b{{AHh{c}}}}{b{de}}f}{{A`{hAB`}}}AHjAEb}{{{b{{AHl{c}}}}{b{de}}f}{{A`{hAB`}}}AHjAEb}``{{{b{d{AHn{c}}}}{b{{AHn{c}}}}}hAHj}{{{b{d{AIb{c}}}}{AIb{c}}}hAId}{{{b{d{AHn{c}}}}}hAHj}{{{b{{AHn{c}}}}}IfAHj}{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AHn{c}}}}{b{e}}}CfAHjA@l}{{{AIb{c}}{b{e}}{b{{AHl{c}}}}}CfAIdA@l}{{{b{{AHn{c}}}}}{{AHn{c}}}{D`AHj}}{{{b{{AIb{c}}}}}{{AIb{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}08{{}{{AHn{c}}}{ACjAHj}}{{}{{AIb{c}}}{ACjAHj}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{jh}0{{{b{{AHn{c}}}}{b{e}}}{}AHjA@l}{{{b{{AHn{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIb{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}0{{}j}0{ce{}{}}0{{}{{AHn{c}}}AHj}{{}{{AIb{c}}}AId}{{{b{{AHn{c}}}}}IfAHj}{{{b{d{AHn{c}}}}}hAHj}{{{b{d{AIb{c}}}}}hAId}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}088````{{{b{c}}}{{b{e}}}{}{}}000{{{b{dc}}}{{b{de}}}{}{}}000{{{b{{AIf{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}{AHjGh}A@lDfA@f{{A@h{i}}}{{Hh{}{{Hf{AFf}}}}D`}}{{{b{{AIh{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}{AHjGh}A@lDfA@f{{A@h{i}}}{{Hh{}{{Hf{AFf}}}}D`}}{j{{b{c}}}{}}000{j{{b{dc}}}{}}000{jh}000{{{b{{AIf{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIj{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIh{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIl{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}000{{}j}000{ce{}{}}000{{{b{{AHh{c}}}}}{{AIf{c}}}{AHjGh}}{{}{{AIj{c}}}{AIdGh}}{{{b{{AHh{c}}}}}{{AIh{c}}}{AHjGh}}{{{b{{AHh{c}}}}}{{AIh{c}}}AHj}{{}{{AIl{c}}}{AIdGh}}{c{{A`{e}}}{}{}}0000000{{{b{c}}}Ab{}}000{{{b{{AIj{c}}}}{b{dg}}i{AIb{c}}}{{A`{AGb}}}{AIdGh}A@f{{AE`{e}}}{{Hh{}{{Hf{{AGd{{AHn{c}}}}}}}}D`}}{{{b{{AIl{c}}}}{b{dg}}i{AIb{c}}}{{A`{AGb}}}{AIdGh}A@f{{AE`{e}}}{{Hh{}{{Hf{{AGd{{AHn{c}}}}}}}}D`}}9999```{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AIn{c}}}}}{{AIn{c}}}{D`AId}}{{{b{{AJ`{c}}}}}{{AJ`{c}}}{D`AHj}}{{{b{{AJb{c}}}}}{{AJb{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}00{j{{b{c}}}{}}00{j{{b{dc}}}{}}00{jh}00{{{AJ`{c}}}Cf{AIdGh}}{{{AJb{c}}}Cf{AIdGh}}{{{b{{AIn{c}}}}{b{dl}}}{{A`{hn}}}{GhAId}}{{{b{{AJ`{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AJb{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}00{{}j}00{ce{}{}}00{{{b{{AHl{c}}}}}{{AJ`{c}}}AId}{{{b{{AHl{c}}}}}{{AJ`{c}}}{AIdGh}}{{{b{{AHl{c}}}}}{{AJb{c}}}{AIdGh}}0{{{AJ`{c}}e}{{A`{AAf}}}{AIdGh}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{AJb{c}}e}{{A`{AAf}}}{AIdGh}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{b{c}}}e{}{}}00{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00888{{{AIb{c}}{b{{AHl{c}}}}}{{AJ`{c}}}AId}``````````{{{b{{A@f{}{{AJd{c}}}}}}}{{AJf{eg}}}{}Aj{}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AJh{ceg}}}}}{{AJh{ceg}}}{D`ADd}{D`Aj}{D`{A@f{e}}}}{{{b{{AJj{ceg}}}}}{{AJj{ceg}}}{D`AEb}{D`Aj}{D`{A@f{e}}}}{{{b{{AJl{c}}}}}{{AJl{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}00{{{b{dABn}}c}{{A`{hAB`}}}Aj}{{{b{d{AJh{ce{AJl{e}}}}}}e}{{A`{hAB`}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}e}{{A`{hAB`}}}AEbAj}{{{b{dABn}}}{{A`{hAB`}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{hAB`}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}}{{A`{hAB`}}}AEbAj}{j{{b{c}}}{}}0{{{b{{AJl{c}}}}}bAj}1{j{{b{dc}}}{}}00{jh}00{AJncAEb}{{{AJj{ce{AJl{e}}}}}cAEbAj}{{{b{{AJh{ceg}}}}{b{dl}}}{{A`{hn}}}{GhADd}{GhAj}{Gh{A@f{e}}}}{{{b{{AJj{ceg}}}}{b{dl}}}{{A`{hn}}}{GhAEb}{GhAj}{Gh{A@f{e}}}}{{{b{{AJl{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}00{{{b{{A@f{}{{AJd{c}}}}}}}{}{}}{{{b{{AJl{c}}}}}{}Aj}{cAK`ADd}{cAJnAEb}{{}j}{c{{AJh{ce{AJl{e}}}}}ADdAj}{c{{AJj{ce{AJl{e}}}}}AEbAj}22{ce{}{}}00{{{b{c}}}{{A@f{}{{AJd{c}}}}}{}}{{{b{{In{Ob}}}}}{{AJl{c}}}Aj}{{{b{dAE`}}}{{A`{cAB`}}}Aj}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{eAB`}}}ADdAj}{{{b{dAE`}}}{{A`{AB`}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{AB`}}}ADdAj}{{{b{dABn}}}eAj{{A@f{c}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{AJl{e}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}}{{AJl{e}}}AEbAj}{{{b{dABn}}}{{AJf{ce}}}Aj{}}{{{b{c}}}e{}{}}00{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00==={{{b{dA@h}}c}{{A`{hAB`}}}Aj}{{{b{d{AJj{ce{AJl{e}}}}}}e}{{A`{hAB`}}}AEbAj}{{{b{dA@h}}}{{A`{hAB`}}}}{{{b{d{AJj{ce{AJl{e}}}}}}}{{A`{hAB`}}}AEbAj}","D":"EO`","p":[[1,"reference"],[0,"mut"],[6,"SerdeFormat",0,2089],[1,"unit"],[1,"usize"],[5,"Formatter",2090],[5,"Error",2090],[6,"Result",2091],[5,"TypeId",2092],[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",27,2093],[5,"Coordinates",2093],[5,"CtOption",2094],[10,"WithSmallOrderMulGroup",2095],[10,"Ord",2096],[17,"AffineExt"],[10,"CurveExt",27,2093],[10,"Field",27,2095],[17,"Output"],[10,"Mul",2097],[1,"str"],[10,"Fn",2098],[5,"Box",2099],[5,"Choice",2094],[1,"bool"],[1,"tuple"],[1,"slice"],[10,"Send",2100],[10,"Sync",2100],[10,"Clone",2101],[1,"u64"],[10,"AsRef",2102],[10,"RngCore",2103],[6,"Assigned",779,2104],[5,"Value",64,2105],[10,"Add",2097],[10,"FnOnce",2098],[6,"ErrorFront",779],[5,"Region",64,2106],[5,"Advice",779,2107],[5,"Column",779,2108],[5,"AssignedCell",64,2106],[5,"String",2109],[10,"Into",2102],[10,"FnMut",2098],[5,"Instance",779,2107],[5,"Table",64,2106],[5,"TableColumn",779,2108],[5,"Fixed",779,2107],[17,"Root"],[10,"Layouter",64,2106],[5,"NamespacedLayouter",64,2106],[5,"Cell",64,2106],[5,"RegionIndex",64,2106],[17,"Config"],[17,"Loaded"],[10,"Chip",64,2106],[10,"Debug",2090],[10,"Copy",2100],[10,"Borrow",2110],[5,"Selector",779,2108],[5,"SimpleFloorPlanner",64,2111],[10,"RegionLayouter",2112],[10,"TableLayouter",2113],[17,"Item"],[10,"IntoIterator",2114],[10,"FromIterator",2114],[5,"Challenge",779,2108],[6,"Any",779,2115],[10,"Neg",2097],[6,"Option",2116],[10,"Sub",2097],[5,"Vec",2117],[10,"Assignment",779,2107],[10,"SyncDeps",2112],[10,"Circuit",779,2107],[1,"array"],[5,"V1Pass",293,2118],[5,"V1",293,2118],[5,"SingleChipLayouter",331,2111],[5,"MeasurementPass",354,2118],[5,"AssignmentPass",354,2118],[5,"MockProver",385,2119],[6,"CellValue",2119],[10,"FromUniformBytes",2095],[10,"Iterator",2120],[6,"FailureLocation",385,2121],[5,"ConstraintSystem",779,2122],[5,"CircuitLayout",385,2123],[6,"VerifyFailure",385,2121],[6,"InstanceValue",2119],[1,"u32"],[5,"Shift",2124],[5,"DrawingArea",2125],[6,"DrawingAreaErrorKind",2125],[10,"DrawingBackend",2126],[5,"Range",2127],[5,"Poly",520,2128],[5,"Lookup",520,2128],[5,"Permutation",520,2128],[5,"Shuffle",520,2128],[6,"Ordering",2096],[10,"Deserializer",2129],[5,"ModelCircuit",520,2128],[6,"CommitmentScheme",520,2128],[5,"CostOptions",520,2128],[10,"Serializer",2130],[5,"Column",664],[5,"Gate",664,2131],[5,"Constraint",664,2131],[5,"Region",664,2131],[5,"VirtualCell",664,2131],[1,"i32"],[5,"VirtualCell",2122],[5,"HashMap",2132],[10,"Hasher",2133],[6,"Expression",779,2108],[10,"Phase",779,2108],[1,"u8"],[5,"Rotation",1428,2134],[5,"ConstraintSystemMid",779,2115],[5,"VerifyingKey",779,2135],[5,"ProvingKey",779,2135],[10,"ColumnType",779,2107],[5,"FixedQuery",779,2108],[5,"Constraint",2122],[5,"VirtualCells",779,2122],[6,"Error",779,2136],[10,"EncodedChallenge",2001,2137],[10,"TranscriptWrite",2001,2137],[5,"PlonkEngine",2138],[10,"MsmAccel",2139],[10,"PartialEq",2096],[5,"AdviceQuery",2108],[5,"InstanceQuery",2108],[8,"Result",2090],[6,"ErrorBack",779],[5,"Constraints",779,2122],[5,"FirstPhase",779,2108],[5,"SecondPhase",779,2108],[5,"ThirdPhase",779,2108],[5,"Error",2140],[5,"ChallengeMid",2115],[5,"ConstraintSystemBack",2141],[10,"SerdeCurveAffine",2089],[5,"Gate",2122],[5,"EvaluationDomain",1428,2142],[10,"Hash",2133],[10,"Transcript",2001,2137],[10,"Params",1500,2143],[5,"Argument",2144],[17,"FloorPlanner"],[17,"Params"],[10,"FloorPlanner",779,2107],[10,"Default",2145],[5,"Argument",2146],[5,"Phase",2147],[5,"PinnedVerificationKey",2135],[8,"Result",2140],[10,"Read",2148],[5,"Argument",2149],[10,"Error",2150],[10,"CommitmentScheme",1500,2143],[10,"Verifier",1500,2143],[10,"VerificationStrategy",1428,2151],[10,"TranscriptRead",2001,2137],[10,"Write",2148],[5,"Coeff",2152],[5,"Polynomial",2152],[5,"ExtendedLagrangeCoeff",2152],[5,"LagrangeCoeff",2152],[5,"PinnedEvaluationDomain",2142],[5,"Blind",1500,2143],[10,"MSM",1500,2143],[10,"ParamsProver",1500,2143],[10,"Prover",1500,2143],[5,"ProverQuery",2153],[17,"MSM"],[10,"ParamsVerifier",1500,2143],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",2151],[6,"Error",2152],[5,"VerifierQuery",2153],[5,"ParamsIPA",1570,2154],[5,"MSMIPA",1615,2155],[5,"IPACommitmentScheme",1570,2154],[5,"GuardIPA",1677,2156],[5,"ProverIPA",1645,2157],[5,"VerifierIPA",1645,2158],[5,"Accumulator",1677,2156],[5,"AccumulatorStrategy",1677,2156],[5,"SingleStrategy",1677,2156],[5,"ParamsKZG",1754,2159],[10,"Engine",2160],[5,"ParamsVerifierKZG",1754,2159],[5,"MSMKZG",1827,2161],[5,"KZGCommitmentScheme",1754,2159],[5,"DualMSM",1827,2161],[10,"MultiMillerLoop",2160],[5,"ProverGWC",1876,2162],[5,"ProverSHPLONK",1876,2163],[5,"VerifierGWC",1876,2164],[5,"VerifierSHPLONK",1876,2165],[5,"GuardKZG",1941,2166],[5,"AccumulatorStrategy",1941,2166],[5,"SingleStrategy",1941,2166],[17,"Input"],[5,"ChallengeScalar",2137],[5,"Blake2bRead",2001,2137],[5,"Blake2bWrite",2001,2137],[5,"Challenge255",2001,2137],[10,"TranscriptWriterBuffer",2001,2137],[10,"TranscriptReadBuffer",2001,2137],[15,"InRegion",495],[15,"OutsideRegion",495],[15,"ConstraintNotSatisfied",498],[15,"CellNotAssigned",498],[15,"InstanceCellNotAssigned",498],[15,"Permutation",498],[15,"ConstraintPoisoned",498],[15,"Lookup",498],[15,"Shuffle",498],[15,"NotEnoughRowsAvailable",1426],[15,"NotEnoughRowsAvailable",1427]],"r":[[3,2089],[31,2093],[32,2093],[34,2095],[56,2167],[64,2106],[65,2106],[66,2106],[68,2106],[70,2106],[71,2106],[72,2106],[74,2111],[75,2106],[76,2105],[170,2106],[293,2118],[294,2118],[320,2168],[328,2168],[331,2111],[332,2111],[354,2118],[355,2118],[356,2118],[357,2118],[376,2118],[386,2123],[389,2121],[393,2119],[397,2121],[413,2169],[417,2119],[462,2119],[520,2128],[521,2128],[525,2128],[526,2128],[527,2128],[528,2128],[529,2128],[596,2128],[597,2128],[665,2131],[666,2131],[667,2131],[668,2131],[779,2107],[782,2115],[783,2104],[784,2107],[788,2108],[790,2107],[791,2108],[794,2107],[797,2122],[799,2115],[800,2122],[801,2136],[804,2108],[805,2108],[806,2107],[809,2108],[810,2107],[813,2107],[826,2108],[828,2135],[831,2108],[832,2108],[836,2108],[838,2108],[841,2135],[842,2122],[959,2170],[960,2170],[1208,2171],[1209,2171],[1210,2171],[1211,2171],[1397,2172],[1428,2142],[1430,2134],[1431,2151],[1443,2152],[1475,2152],[1477,2152],[1500,2143],[1502,2143],[1505,2143],[1508,2143],[1509,2143],[1511,2143],[1513,2143],[1517,2143],[1566,2173],[1567,2173],[1568,2173],[1569,2173],[1570,2154],[1571,2154],[1572,2154],[1581,2174],[1611,2175],[1615,2155],[1645,2157],[1646,2158],[1677,2156],[1678,2156],[1679,2156],[1680,2156],[1750,2176],[1751,2176],[1752,2176],[1753,2176],[1754,2159],[1755,2159],[1756,2159],[1827,2161],[1828,2161],[1876,2162],[1877,2163],[1878,2164],[1879,2165],[1941,2166],[1942,2166],[1943,2166],[2001,2137],[2002,2137],[2003,2137],[2004,2137],[2006,2137],[2007,2137],[2008,2137],[2009,2137],[2010,2137]],"b":[[77,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[78,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[79,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[80,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[81,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[82,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[83,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[84,"impl-Add-for-Value%3CV%3E"],[85,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[86,"impl-Add-for-%26Value%3CV%3E"],[126,"impl-Value%3C%26mut+V%3E"],[127,"impl-Value%3C%26V%3E"],[134,"impl-Value%3C%26V%3E"],[135,"impl-Value%3C%26mut+V%3E"],[218,"impl-Mul-for-%26Value%3CV%3E"],[219,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[220,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[221,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[222,"impl-Mul-for-Value%3CV%3E"],[223,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[224,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[225,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[226,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[227,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[238,"impl-Sub-for-Value%3CV%3E"],[239,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[240,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[241,"impl-Sub-for-%26Value%3CV%3E"],[242,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[243,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[244,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[245,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[246,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[247,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[441,"impl-Debug-for-FailureLocation"],[442,"impl-Display-for-FailureLocation"],[443,"impl-Debug-for-VerifyFailure"],[444,"impl-Display-for-VerifyFailure"],[710,"impl-Debug-for-ColumnMid"],[711,"impl-Display-for-ColumnMid"],[712,"impl-Display-for-VirtualCell"],[713,"impl-Debug-for-VirtualCell"],[714,"impl-Display-for-Gate"],[715,"impl-Debug-for-Gate"],[716,"impl-Debug-for-Constraint"],[717,"impl-Display-for-Constraint"],[718,"impl-Debug-for-Region"],[719,"impl-Display-for-Region"],[723,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[724,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[725,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[730,"impl-From%3C(usize,+%26str)%3E-for-Region"],[731,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[733,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[734,"impl-From%3C(usize,+String)%3E-for-Region"],[844,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[845,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[846,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[847,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[848,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[849,"impl-Add-for-Assigned%3CF%3E"],[851,"impl-AddAssign-for-Assigned%3CF%3E"],[852,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1064,"impl-Debug-for-Error"],[1065,"impl-Display-for-Error"],[1068,"impl-Debug-for-Error"],[1069,"impl-Display-for-Error"],[1088,"impl-Display-for-Error"],[1089,"impl-Debug-for-Error"],[1090,"impl-From%3CError%3E-for-Error"],[1092,"impl-From%3CError%3E-for-Error"],[1095,"impl-From%3CInstance%3E-for-Any"],[1097,"impl-From%3CFixed%3E-for-Any"],[1098,"impl-From%3CAdvice%3E-for-Any"],[1104,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1105,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1106,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1107,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1111,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1112,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1114,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1115,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1219,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1220,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1221,"impl-Mul-for-Assigned%3CF%3E"],[1222,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1223,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1224,"impl-Mul-for-Expression%3CF%3E"],[1225,"impl-MulAssign-for-Assigned%3CF%3E"],[1226,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1227,"impl-Neg-for-%26Assigned%3CF%3E"],[1228,"impl-Neg-for-Assigned%3CF%3E"],[1286,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1287,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1288,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1289,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1290,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1291,"impl-Sub-for-Assigned%3CF%3E"],[1293,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1294,"impl-SubAssign-for-Assigned%3CF%3E"],[1332,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1333,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1334,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1519,"impl-AddAssign-for-Blind%3CF%3E"],[1520,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1547,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1548,"impl-MulAssign-for-Blind%3CF%3E"],[1617,"impl-MSMIPA%3C\'a,+C%3E"],[1618,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[1920,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[1921,"impl-ProverSHPLONK%3C\'a,+E%3E"],[1979,"impl-AccumulatorStrategy%3CE%3E"],[1980,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[1981,"impl-SingleStrategy%3CE%3E"],[1982,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADEFsgAGAAEACQADAA4AAQARAAEAFgAAABgAAwBOAAkAYwAAAGUAEAB3AAcAhgAAAIsAEQCeAAgArAAHALUAAAC3AAAAvAAAAL4AAADCAAAAxAAIANsACQDnAAAA6QAAAOsAAADvAAoA+wADAAEBFwAdAQcAKAEOADkBAwA/AQwATgEIAFgBAgBdAQUAZwELAHUBAQB5AQgAkQEAAJQBCQCfAQIApAEMALIBBQC6AQUAxAEEANABAgDYAQ4A7AEDABUCFgAtAhgARwIGAFcCAABZAgYAbwIAAHQCAQB5Ah8AngITALMCHQDSAgAA1AICANgCAQDbAgEA3gICAOICBADsAh8ATQMIAGIDLQCTAyAAtwMAAMQDAADIAy0A+AMWABQECgApBBoARQQAAEcEAQBKBAIAUQQDAFgEAQBbBAEAYwQAAG0EAABvBAEAdAQHAIEEAACDBBcAtQQAAMEEAQDEBAsA1AQAANYEAADYBAAA2gQAAN4EAgDiBAAA6gQAAO8EAADxBAIAAwUBAAcFCQAVBRQAKwVHAHgFFgCZBQgAqAUDAK0FAQCyBQAAtwUBAL8FAgDNBQAA0wUJAO8FAgD1BQEA+AUBAP4FAgACBgAABAYAAAYGAAAIBgAACwYCABgGAwAdBgAAJgYFAC8GCQA7BgEAPwYBAEIGAABEBgcATQYBAFcGCwBkBgAAZwYGAHAGAwB1BgcAfwYBAIMGCgCSBgsAnwYLAK0GAwC2BgMAvgYRANMGAwDeBhwA/wYCAAUHBQAOBwEAEQcOACMHAAAmBwAAKAcGADAHAwA1BwoAQgcBAEgHAQBLBwkAWQcHAGMHDwB3BwMAfwcCAIMHDQCSBwMAmQcZALYHAgC9BwAAvwcRAN0HCwDqBwEA7QcLAPoHAwACCAAABQgAAAgIAQAOCAAAEAgAABIIAAAUCAEAFwgOACcIAAApCAAA"}],\ +["halo2_proofs",{"t":"PPPGCNNCNNNNCNNNENNCCNCNNNNRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMFFKRKRFFFRFFFNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNCNNFFNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNCNNNNNNNNPPPGFPPGPPGPFPPPPPPGNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGGKPPPFPKFPPKRPFPFFGGGGFFPPFKRPFPPPPPPPPPPPRKPFPPFFPPPFPFPPFFPNNNNNNNNNNNNONMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNMNNMNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONMNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHNNNNOONNNNNNNNNNNNNNNNNONONONONNNNNNNONNNNHMNNMNNMNNNNNNNNMNNNNNNONNNNONNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNMNNOOFRFKNNNNNNNNNNNCNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNCNCNNNMNNNNNMNNNNNNNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKRKKKKKNNNNNNNNNNNNNMNNMNNNNNNNNNNNNMNNNNNNNMNMMNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNMNMN","n":["Processed","RawBytes","RawBytesUnchecked","SerdeFormat","arithmetic","borrow","borrow_mut","circuit","clone","clone_into","deref","deref_mut","dev","drop","fmt","from","halo2curves","init","into","plonk","poly","to_owned","transcript","try_from","try_into","type_id","vzip","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into_field","invert","known","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_challenge","get_root","init","init","into","into","pop_namespace","push_namespace","single_pass","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","v1","vzip","vzip","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow_mut","constrain_instance","deref","deref_mut","drop","fmt","from","get_challenge","get_root","init","into","new","pop_namespace","push_namespace","try_from","try_into","type_id","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","strategy","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Assigned","Assigned","CellNotAssigned","CellValue","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","InstanceValue","Lookup","MockProver","OutsideRegion","Padding","Permutation","Poison","Shuffle","Unassigned","VerifyFailure","advice","advice_mut","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","copy","cost_model","cs","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","instance","instance_mut","into","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","query_instance","render","run","selectors","show_equality_constraints","show_labels","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","usable_rows","value","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","Any","Assigned","Assignment","Backend","BoundsFailure","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotInPermutation","ColumnNotInPermutation","ColumnType","Config","Constant","ConstraintSystem","ConstraintSystemFailure","ConstraintSystemMid","Constraints","Error","ErrorBack","ErrorFront","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Frontend","Instance","Instance","Instance","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","NotEnoughRowsAvailable","Opening","Other","Other","Params","Phase","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","ThirdPhase","Transcript","Trivial","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","advice_column","advice_column_in","advice_column_phase","advice_column_phase","advice_queries","annotate_column","annotate_column","annotate_lookup_any_column","annotate_lookup_column","assign_advice","assign_fixed","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_phase","challenge_usable_after","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","column_index","column_index","column_type","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","constants","copy","create_gate","create_proof","create_proof_with_engine","cube","cur","default","degree","degree","denominator","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","enable_constant","enable_equality","enable_selector","enter_region","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","fixed_column","fixed_commitments","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","gates","gates","general_column_annotations","general_column_annotations","get_any_query_index","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","inner","instance_column","instance_queries","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_pk_custom","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","lookups","minimum_degree","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","next","not_enough_rows_available","not_enough_rows_available","num_advice_columns","num_advice_columns","num_challenges","num_challenges","num_fixed_columns","num_fixed_columns","num_instance_columns","num_instance_columns","num_selectors","numerator","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phases","phases","pinned","pk_read","pop_namespace","prev","product","push_namespace","query_advice","query_any","query_cell","query_cell","query_cell","query_cell","query_cell","query_cell","query_cells","query_challenge","query_fixed","query_instance","query_instance","query_selector","read","read","rot","rotation","rotation","selector","set_minimum_degree","shuffle","shuffles","shuffles","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sum","synthesize","synthesize","to_bytes","to_bytes","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","to_string","to_string","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","unblinded_advice_columns","verify_proof","vk_read","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","without_witnesses","write","write","current_k","current_k","EvaluationDomain","Output","Rotation","VerificationStrategy","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","deref","deref","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","hash","init","init","into","into","ipa","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","new","new","next","partial_cmp","pinned","prev","process","rotate_extended","rotate_omega","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Blind","COMMIT_INSTANCE","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit_lagrange","commit_lagrange","deref","deref","deref","deref_mut","deref_mut","deref_mut","downsize","downsize","drop","drop","drop","empty_msm","empty_msm","fmt","fmt","fmt","from","from","from","from_parts","init","init","init","into","into","into","k","k","n","n","new","new_params","read","read","read_custom","read_custom","read_params","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verifier_params","vzip","vzip","vzip","write","write","write_custom","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","into","into","into","new","new","read_point","read_point","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":[[0,"halo2_proofs"],[27,"halo2_proofs::arithmetic"],[64,"halo2_proofs::circuit"],[293,"halo2_proofs::circuit::floor_planner"],[331,"halo2_proofs::circuit::floor_planner::single_pass"],[354,"halo2_proofs::circuit::floor_planner::v1"],[385,"halo2_proofs::dev"],[542,"halo2_proofs::dev::FailureLocation"],[545,"halo2_proofs::dev::VerifyFailure"],[567,"halo2_proofs::dev::cost_model"],[711,"halo2_proofs::dev::metadata"],[829,"halo2_proofs::plonk"],[1476,"halo2_proofs::plonk::ErrorBack"],[1477,"halo2_proofs::plonk::ErrorFront"],[1478,"halo2_proofs::poly"],[1550,"halo2_proofs::poly::commitment"],[1616,"halo2_proofs::poly::ipa"],[1620,"halo2_proofs::poly::ipa::commitment"],[1665,"halo2_proofs::poly::ipa::msm"],[1695,"halo2_proofs::poly::ipa::multiopen"],[1727,"halo2_proofs::poly::ipa::strategy"],[1800,"halo2_proofs::poly::kzg"],[1804,"halo2_proofs::poly::kzg::commitment"],[1877,"halo2_proofs::poly::kzg::msm"],[1926,"halo2_proofs::poly::kzg::multiopen"],[1991,"halo2_proofs::poly::kzg::strategy"],[2051,"halo2_proofs::transcript"],[2139,"halo2_backend::helpers"],[2140,"core::fmt"],[2141,"core::result"],[2142,"core::any"],[2143,"pasta_curves::arithmetic::curves"],[2144,"subtle"],[2145,"ff"],[2146,"core::cmp"],[2147,"core::ops::arith"],[2148,"core::ops::function"],[2149,"alloc::boxed"],[2150,"core::marker"],[2151,"core::clone"],[2152,"core::convert"],[2153,"rand_core"],[2154,"halo2_frontend::circuit::value"],[2155,"halo2_frontend::plonk::assigned"],[2156,"halo2_frontend::circuit"],[2157,"halo2_frontend::plonk::circuit"],[2158,"halo2_frontend::plonk::circuit::expression"],[2159,"alloc::string"],[2160,"core::borrow"],[2161,"halo2_frontend::circuit::floor_planner::single_pass"],[2162,"halo2_frontend::circuit::layouter"],[2163,"halo2_frontend::circuit::table_layouter"],[2164,"core::iter::traits::collect"],[2165,"halo2_middleware::circuit"],[2166,"core::option"],[2167,"alloc::vec"],[2168,"halo2_frontend::circuit::floor_planner::v1"],[2169,"halo2_frontend::dev"],[2170,"core::iter::traits::iterator"],[2171,"halo2_frontend::dev::failure"],[2172,"halo2_frontend::plonk::circuit::constraint_system"],[2173,"halo2_frontend::dev::graph::layout"],[2174,"plotters::coord"],[2175,"plotters::drawing::area"],[2176,"plotters_backend"],[2177,"core::ops::range"],[2178,"halo2_frontend::dev::cost_model"],[2179,"serde::de"],[2180,"serde::ser"],[2181,"halo2_frontend::dev::metadata"],[2182,"std::collections::hash::map"],[2183,"core::hash"],[2184,"halo2_middleware::poly"],[2185,"halo2_backend::plonk"],[2186,"halo2_proofs::plonk::error"],[2187,"halo2_backend::transcript"],[2188,"halo2_middleware::zal::impls"],[2189,"halo2_middleware::zal::traits"],[2190,"std::io::error"],[2191,"halo2_backend::plonk::circuit"],[2192,"halo2_backend::poly::domain"],[2193,"halo2_backend::poly::commitment"],[2194,"halo2_frontend::plonk::lookup"],[2195,"core::default"],[2196,"halo2_frontend::plonk::permutation"],[2197,"halo2_frontend::plonk::circuit::expression::sealed"],[2198,"std::io"],[2199,"halo2_frontend::plonk::shuffle"],[2200,"core::error"],[2201,"halo2_backend::poly::strategy"],[2202,"halo2_backend::poly"],[2203,"halo2_backend::poly::query"],[2204,"halo2_backend::poly::ipa::commitment"],[2205,"halo2_backend::poly::ipa::msm"],[2206,"halo2_backend::poly::ipa::strategy"],[2207,"halo2_backend::poly::ipa::multiopen::prover"],[2208,"halo2_backend::poly::ipa::multiopen::verifier"],[2209,"halo2_backend::poly::kzg::commitment"],[2210,"pairing"],[2211,"halo2_backend::poly::kzg::msm"],[2212,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[2213,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[2214,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[2215,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[2216,"halo2_backend::poly::kzg::strategy"],[2217,"halo2_backend::arithmetic"],[2218,"halo2_frontend::circuit::floor_planner"],[2219,"halo2_frontend::dev::graph"],[2220,"halo2_proofs::plonk::prover"],[2221,"halo2_proofs::plonk::keygen"],[2222,"halo2_backend::plonk::verifier"],[2223,"halo2_backend::poly::ipa"],[2224,"halo2_backend::poly::ipa::commitment::prover"],[2225,"halo2_backend::poly::ipa::commitment::verifier"],[2226,"halo2_backend::poly::kzg"]],"i":[3,3,3,0,0,3,3,0,3,3,3,3,0,3,3,3,0,3,3,0,0,3,0,3,3,3,3,19,19,13,19,0,0,13,0,20,19,13,20,19,13,19,13,13,20,20,19,13,19,20,19,13,20,20,19,19,0,20,20,20,20,20,20,20,0,0,0,59,0,59,0,0,0,53,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,41,41,41,49,41,53,54,53,54,64,36,56,55,44,41,49,54,64,36,56,55,44,41,49,54,44,36,56,55,44,36,56,55,44,36,36,55,59,41,41,53,54,36,36,44,36,36,64,36,56,56,55,44,41,49,54,64,36,56,55,44,41,49,54,36,64,36,56,55,44,41,49,54,54,41,36,36,44,0,64,36,56,55,44,41,49,54,64,36,36,56,56,55,44,41,41,49,49,54,36,53,54,53,54,64,36,56,55,44,41,49,54,41,64,36,56,55,44,41,49,54,36,36,36,59,36,36,36,36,36,36,36,36,36,36,36,41,53,36,53,54,53,54,55,55,36,36,36,36,36,36,36,36,36,36,36,64,36,36,56,55,44,36,36,64,36,56,55,44,41,49,54,64,36,56,55,44,41,49,54,64,36,56,55,44,41,49,54,36,36,44,44,64,36,56,55,44,41,49,54,36,0,0,80,80,81,80,81,80,80,81,80,81,80,81,80,81,80,81,80,80,80,81,80,81,80,80,80,0,81,81,80,81,80,81,80,0,81,80,0,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,0,0,0,0,83,84,83,84,83,84,83,84,83,84,83,84,83,84,83,84,83,84,0,83,84,83,84,83,84,83,84,86,91,90,0,0,90,90,0,89,90,0,90,0,89,91,90,86,90,86,0,85,85,85,85,85,85,85,85,89,90,93,86,85,91,89,90,93,86,85,91,0,89,90,86,91,89,90,86,91,85,0,85,93,89,90,93,86,85,91,89,90,93,86,85,91,89,90,93,86,85,91,90,85,85,89,90,86,91,85,85,85,85,89,89,90,90,93,86,85,91,89,90,93,86,85,91,85,89,90,93,86,85,91,85,85,89,90,93,86,85,91,93,0,85,85,85,93,85,85,93,93,89,90,86,91,89,90,89,90,93,86,85,91,89,90,93,86,85,91,89,90,93,86,85,91,85,91,85,85,93,93,89,90,93,86,85,91,217,217,218,219,220,221,222,219,223,220,221,220,221,219,224,225,222,224,224,225,220,220,221,221,225,0,0,108,108,108,0,0,0,0,0,109,107,108,109,101,102,103,104,107,108,109,101,102,103,104,107,101,102,103,104,101,102,103,104,101,107,108,109,101,102,103,104,107,108,109,101,102,103,104,107,103,107,108,109,101,102,103,104,107,108,101,109,108,109,101,102,103,104,107,108,109,101,102,103,104,107,0,0,101,109,108,109,101,102,103,104,107,109,108,109,101,102,103,104,107,109,109,107,109,107,107,109,101,109,107,107,101,103,107,109,107,107,101,102,103,104,108,109,101,102,103,104,107,108,109,101,102,103,104,107,108,109,101,102,103,104,107,108,109,101,102,103,104,107,0,0,0,0,0,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,111,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,111,112,112,113,113,114,114,115,115,111,111,112,112,112,112,113,113,114,114,115,115,115,115,115,111,111,111,112,113,114,115,111,112,113,114,115,111,111,112,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,111,112,113,114,115,0,71,120,0,0,0,131,139,40,0,120,0,0,139,40,0,78,120,0,139,0,0,0,0,0,0,0,0,71,120,0,0,78,131,0,71,120,139,139,120,40,139,40,139,139,40,78,0,120,0,38,120,0,0,120,120,40,0,40,0,139,38,0,0,38,38,38,38,38,38,38,120,38,38,92,92,92,124,92,76,92,92,92,76,76,92,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,92,124,92,124,71,125,126,38,92,43,63,128,50,70,120,42,51,48,124,71,125,126,38,92,43,63,128,50,70,120,42,51,48,71,43,50,128,128,43,43,92,120,92,78,78,92,76,92,0,0,38,43,92,92,120,38,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,92,38,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,63,92,92,76,76,71,38,43,63,128,50,70,120,42,51,48,38,120,120,76,63,70,76,92,125,92,131,131,124,71,139,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,40,131,131,131,124,124,71,71,71,71,139,139,125,126,38,38,38,38,38,140,92,130,43,43,43,43,43,141,142,143,63,128,50,70,70,120,42,51,48,40,125,126,92,124,92,124,92,76,125,126,71,43,63,50,70,42,51,48,125,120,43,63,70,43,128,70,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,50,92,92,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,140,38,63,38,0,0,0,0,92,92,92,92,124,124,92,38,38,38,38,120,120,38,38,38,38,120,43,43,139,40,92,124,92,124,92,124,92,124,92,38,78,71,43,50,92,124,70,124,92,125,0,76,43,120,76,130,130,127,71,43,42,51,48,120,130,130,76,130,130,125,126,43,128,128,92,92,92,92,124,139,38,120,38,38,38,38,38,38,120,38,38,120,156,78,125,126,124,71,125,126,38,92,43,63,128,50,70,120,42,51,48,141,142,143,131,139,40,125,131,124,71,139,125,126,38,140,92,130,43,43,43,43,141,142,143,63,128,50,70,120,42,51,48,40,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,92,92,124,0,0,131,124,71,139,125,126,38,140,92,130,43,141,142,143,63,128,50,70,120,42,51,48,40,140,78,125,126,226,227,0,167,0,0,123,149,123,149,123,149,123,149,123,149,149,0,149,149,123,123,149,123,149,149,123,149,149,149,149,123,149,149,149,167,123,149,123,149,149,149,149,149,123,123,149,123,149,0,149,0,149,149,149,167,149,123,123,149,123,167,149,149,123,149,123,149,123,149,123,149,123,149,0,181,0,165,166,0,181,166,0,0,165,0,165,0,178,166,165,0,175,175,175,176,176,176,175,175,176,175,175,177,152,178,178,175,175,175,152,175,181,175,176,175,175,175,175,152,175,175,175,152,177,178,166,175,165,152,165,176,176,175,175,175,175,166,175,152,0,0,0,0,0,0,0,187,189,187,189,187,187,187,187,0,187,189,187,189,187,187,189,187,187,189,187,189,187,189,187,189,187,187,187,189,187,189,187,187,189,187,189,187,189,0,187,189,187,0,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,0,0,191,192,191,192,191,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,191,192,192,191,192,0,0,0,0,190,193,194,195,190,193,194,195,190,193,190,193,190,190,193,194,195,190,193,194,195,190,193,194,195,194,195,190,193,194,195,190,193,194,195,193,190,193,194,195,190,193,194,195,194,195,194,195,190,193,190,193,194,195,190,193,194,195,190,193,194,195,193,190,190,190,193,194,195,0,0,0,0,0,0,0,196,198,200,196,198,200,196,198,196,198,196,196,198,196,198,200,196,198,200,196,198,196,198,200,196,198,196,198,200,196,198,200,196,196,198,200,196,198,200,196,198,196,198,196,200,196,198,196,198,200,196,196,198,196,198,200,196,198,200,196,198,200,196,196,198,200,196,198,196,198,0,0,199,201,199,199,199,201,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,201,199,199,201,199,201,199,201,199,201,199,201,199,201,0,0,0,0,203,205,204,206,203,205,204,206,203,204,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,206,203,205,204,204,206,203,205,204,206,203,205,204,206,203,205,204,206,205,206,203,205,204,206,0,0,0,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,208,209,209,208,209,207,208,209,207,208,209,207,208,209,207,208,209,207,208,209,208,0,0,0,0,132,0,0,0,0,0,132,212,213,214,212,213,214,212,213,214,212,213,214,151,212,213,151,212,213,212,213,214,214,212,213,214,212,213,214,215,213,212,213,214,212,213,214,132,214,216,215,212,212,213,213,214,212,213,214,132,214,168,212,168,212,151,212,213,151,212,213,214,212,213,214,212,213,214,212,213,214,212,213,214,133,213,133,213],"f":"`````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}`{{{b{f}}}f}{{{b{c}}{b{de}}}h{}{}}{j{{b{c}}}{}}{j{{b{dc}}}{}}`{jh}{{{b{f}}{b{dl}}}{{A`{hn}}}}{cc{}}`{{}j}{ce{}{}}``{{{b{c}}}e{}{}}`{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}3````````````{{}c{}}000{{{b{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}{{An{{Al{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}}}{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bh}}}Bh}0{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{cc}{{An{{Aj{}{{Ad{e}}{Af{c}}{Ah{g}}}}}}}{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bn}}}{{Cb{C`}}}}{{{b{Bh}}}{{An{Bh}}}}{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}CdB`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{{b{{Aj{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}Cd{B`Bb}{B`Bb}{{Bf{}{{Bd{}}{Ad{}}}}}}{{{b{Bh}}}Cd}{{{b{Bh}}}Cf}{{{b{{Bf{}{{Ad{c}}{Af{e}}{Bd{g}}}}}}}{{Ch{eee}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{c}}{Bl{c}}}}{{ccc}{{An{{Bf{}{{Ad{e}}{Af{c}}{Bd{g}}}}}}}B`B`{{Aj{}{{Ah{}}{Ad{}}{Bj{}}{Bj{}}}}{Bl{e}}{Bl{e}}}}{{{b{d{Cj{c}}}}e}hCl{{C`{{b{d{Cj{c}}}}j}}ClCnD`}}{{{b{Bh}}c}Bh{{Dd{{Cj{Db}}}}}}0{cBhDf}9{{{b{Bh}}}{{Ch{CdBh}}}}{{{b{Bh}}{b{Bh}}}{{Ch{CdBh}}}}?`````````````{{{Dh{e}}{Dh{e}}}{}{}{{Dj{}{{Bj{c}}}}}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{c}}g}{{Dh{e}}}{}{}{{Dn{c}{{Bj{{Dh{e}}}}}}}}{{{b{d{Dh{c}}}}}{{Dh{{b{dc}}}}}{}}{{{b{{Dh{c}}}}}{{Dh{{b{c}}}}}{}}{{{b{{Dh{c}}}}e}h{}{{Dn{{b{c}}}{{Bj{Cf}}}}}}{{{Dh{c}}}{{A`{cE`}}}{}}{{{b{d{Eb{c}}}}g{Ef{Ed}}jk}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}{{En{}{{Bj{{Dh{i}}}}}}}}{{{b{d{Eb{c}}}}g{Ef{Ed}}ji}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}}{{{b{d{Eb{c}}}}g{Ef{F`}}j{Ef{Ed}}j}{{A`{{Eh{cc}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{d{Fb{c}}}}gFdjk}{{A`{hE`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{{El{{Dl{c}}}}}{{En{}{{Bj{{Dh{i}}}}}}}}{{{b{d{Eb{c}}}}g{Ef{Ff}}jk}{{A`{{Eh{ic}}E`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{}{{En{}{{Bj{{Dh{i}}}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}im}{{A`{kE`}}}{{Fj{e}}}Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{e}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Fl{ce}}}}im}{{A`{kE`}}}Bh{{Fj{c}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}ik}{{A`{hE`}}}{{Fj{e}}}Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{e}}}{{Bj{{A`{hE`}}}}}}}}{{{b{d{Fl{ce}}}}ik}{{A`{hE`}}}Bh{{Fj{c}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000000{{{b{dc}}}{{b{de}}}{}{}}0000000{{{b{{Eh{ce}}}}}Fn{}Bh}{{{b{{Dh{c}}}}}{{Dh{c}}}D`}{{{b{G`}}}G`}{{{b{Fn}}}Fn}{{{b{{Eh{ce}}}}}{{Eh{ce}}}D`{D`Bh}}{{{b{c}}{b{de}}}h{}{}}000{{{Dh{{b{c}}}}}{{Dh{c}}}D`}{{{Dh{{b{dc}}}}}{{Dh{c}}}D`}`{{{b{{Gf{}{{Gb{c}}{Gd{e}}}}}}}{{b{c}}}{GhD`}{GhD`}}{{{b{d{Eb{c}}}}Fne}{{A`{hE`}}}Bh{{El{{Dl{c}}}}}}{{{b{d{Eb{c}}}}FnFn}{{A`{hE`}}}Bh}{{{b{d{Fj{}{{Fh{c}}}}}}Fn{Ef{F`}}j}{{A`{hE`}}}{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Fj{c}}}}{{{Dh{{b{dc}}}}}{{Dh{c}}}Gj}{{{Dh{{b{c}}}}}{{Dh{c}}}Gj}{{{b{{Eh{ce}}}}i{b{d{Eb{e}}}}{Ef{Ed}}j}{{A`{{Eh{ce}}E`}}}D`Bh{{El{Ej}}}{{C`{}{{Bj{g}}}}}}{{{b{{Dh{e}}}}}{{Dh{{Dl{c}}}}}Bh{{Gl{{Dl{c}}}}}}{{}{{Dh{c}}}{}}{j{{b{c}}}{}}00{{{b{G`}}}b}11111{j{{b{dc}}}{}}00000004{jh}000000{{{b{d{Fl{ce}}}}}hBh{{Fj{c}}}}1{{{b{d{Eb{c}}}}g{b{Gn}}j}{{A`{hE`}}}Bh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{{Dh{c}}}}e}{{A`{hE`}}}{}{{Dn{{b{c}}}{{Bj{Cf}}}}}}{{{Dh{{Dl{c}}}}}{{Dh{c}}}Bh}{{{Eh{{Dl{c}}c}}}{{Eh{cc}}}Bh}`{{{b{H`}}{b{dl}}}{{A`{hn}}}}{{{b{{Dh{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{G`}}{b{dl}}}{{A`{hn}}}}{{{b{Fn}}{b{dl}}}{{A`{hn}}}}{{{b{{Eh{ce}}}}{b{dl}}}{{A`{hn}}}Gh{GhBh}}{{{b{{Eb{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Fb{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Fl{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Fj{c}}}}{cc{}}{{{Dh{c}}}{{Dh{{Dl{c}}}}}Bh}11{jG`}22{{{b{dHb}}}{{Eb{c}}}Bh}3{{{b{dHd}}}{{Fb{c}}}Bh}44{e{{Dh{g}}}{}{{Hh{}{{Hf{{Dh{c}}}}}}}{{Hj{c}}}}{{{b{{Fj{}{{Fh{c}}}}}}Hl}{{Dh{e}}}{{Fj{e}}}Bh}{{{b{{Fl{ce}}}}Hl}{{Dh{c}}}Bh{{Fj{c}}}}{{{b{d{Fj{}{{Fh{c}}}}}}}{{b{dc}}}{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}}{{b{d}}}Bh{{Fj{c}}}}{{}j}0000000{{{b{d{Eb{c}}}}{Ef{F`}}j}{{A`{{Dh{c}}E`}}}Bh}{ce{}{}}0000000{{{Dh{e}}}{{Dh{{Dl{c}}}}}Bh{{El{{Dl{c}}}}}}{{{b{{Dh{e}}}}}{{Dh{{Dl{c}}}}}Bh{{Gl{{Dl{c}}}}}}{c{{Dh{c}}}{}}{{{b{{Gf{}{{Gb{c}}{Gd{e}}}}}}}{{b{e}}}{GhD`}{GhD`}}{{{Dh{c}}g}{{Dh{e}}}{}{}{{Dn{c}{{Bj{e}}}}}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{Dh{e}}{Dh{e}}}{}{}{{Bl{}{{Bj{c}}}}}}{{{b{d{Eb{c}}}}gi}hBh{{El{Ej}}}{{C`{}{{Bj{e}}}}}{{El{{Ef{Hn}}}}}}{{{b{d{Fj{}{{Fh{c}}}}}}i}{{Fl{ec}}}{{Fj{e}}}Bh{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{{{Dh{c}}}{}I`}{{{b{d{Fj{}{{Fh{c}}}}}}{Ib{Ej}}}h{{Fj{e}}}Bh}{{{b{d{Fl{ce}}}}{Ib{Ej}}}hBh{{Fj{c}}}}{{{b{d{Fj{}{{Fh{c}}}}}}i}h{{Fj{e}}}Bh{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{{{b{d{Fl{ce}}}}i}hBh{{Fj{c}}}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}``{{{b{{Dh{e}}}}}{{Dh{{Dl{c}}}}}Bh{{Gl{{Dl{c}}}}}}{{{Dh{e}}{Dh{e}}}{}{}{{Id{}{{Bj{c}}}}}}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}<=>{{{Dh{c}}{b{{Dh{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{{{b{{Dh{c}}}}}{{Dh{{Dl{e}}}}}{}Bh}{{{b{c}}}e{}{}}000{{{Dh{{In{c}}}}}{{In{{Dh{c}}}}}Gj}{{{Dh{e}}j}{{If{{Dh{c}}}}}{}{{Hh{}{{Hf{c}}}}}}{c{{A`{e}}}{}{}}000000000000000{{{b{c}}}Ab{}}0000000{{}{{Dh{c}}}{}}{{{Dh{{Ch{ce}}}}}{{Ch{{Dh{c}}{Dh{e}}}}}{}{}}{{{b{{Eh{ce}}}}}{{Dh{{b{c}}}}}{}Bh}{{{b{{Eh{ce}}}}}{{Dh{{Dl{e}}}}}{}Bh}{ce{}{}}0000000{{{Dh{c}}{Dh{e}}}{{Dh{{Ch{ce}}}}}{}{}}``{{{b{d{J`{ce}}}}im}{{A`{kE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{J`{ce}}}}ik}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{d{J`{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Ih{c}}Ij}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{jh}0{{{b{Jb}}{b{dl}}}{{A`{hn}}}}{{{b{{J`{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Ih{c}}}}{cc{}}0{{{b{{J`{ce}}}}Hl}{{Dh{c}}}Bh{{Ih{c}}Ij}}{{{b{d{J`{ce}}}}}{{b{d}}}Bh{{Ih{c}}Ij}}{{}j}0??{{{b{d{J`{ce}}}}{Ib{Ej}}}hBh{{Ih{c}}Ij}}{{{b{d{J`{ce}}}}i}hBh{{Ih{c}}Ij}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}`{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0`{ce{}{}}0``{{{b{d{Jd{ce}}}}im}{{A`{kE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{}{{En{{Eb{c}}}{{Bj{{A`{kE`}}}}}}}}{{{b{d{Jd{ce}}}}ik}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{El{Ej}}}{{C`{}{{Bj{g}}}}}{{En{{Fb{c}}}{{Bj{{A`{hE`}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{d{Jd{ce}}}}Fn{Ef{F`}}j}{{A`{hE`}}}Bh{{Ih{c}}Ij}}{j{{b{c}}}{}}{j{{b{dc}}}{}}{jh}{{{b{{Jd{ce}}}}{b{dl}}}{{A`{hn}}}Bh{{Ih{c}}}}{cc{}}{{{b{{Jd{ce}}}}Hl}{{Dh{c}}}Bh{{Ih{c}}Ij}}{{{b{d{Jd{ce}}}}}{{b{d}}}Bh{{Ih{c}}Ij}}{{}j}={{{b{de}}{If{{Ef{Ff}}}}}{{A`{{Jd{ce}}E`}}}Bh{{Ih{c}}}}{{{b{d{Jd{ce}}}}{Ib{Ej}}}hBh{{Ih{c}}Ij}}{{{b{d{Jd{ce}}}}i}hBh{{Ih{c}}Ij}{{El{Ej}}}{{Dn{}{{Bj{g}}}}}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}{ce{}{}}````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0??>>=={{{b{Jf}}{b{dl}}}{{A`{hn}}}}{{{b{{Jh{ce}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{Ih{c}}}}==::44`66665544````````````````````{{{b{{Jj{c}}}}}{{b{{If{{If{{Jl{c}}}}}}}}}{JnBb}}{{{b{d{Jj{c}}}}j}{{b{d{Cj{{Jl{c}}}}}}}Bh}{{{b{{Jj{c}}}}{Ef{Ed}}}{{b{{Cj{{Jl{c}}}}}}}{JnBb}}{{{b{d{Jj{c}}}}g{Ef{Hn}}}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{{Jj{c}}}}}h{JnBb}}{{{b{{Jj{c}}}}ee}h{JnBb}{D`{K`{}{{Hf{j}}}}}}{{{b{d{Jj{c}}}}g{Ef{Ed}}jk}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}{{El{{Dl{c}}}}}{{Dn{}{{Bj{{Dh{i}}}}}}}}{{{b{d{Jj{c}}}}g{Ef{Ff}}jk}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}{{El{{Dl{c}}}}}{{Dn{}{{Bj{{Dh{i}}}}}}}};;;;;;::::::{{{b{e}}}EjBh{{Il{c}}}}{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{{b{{Jl{c}}}}}{{Jl{c}}}{D`Bh}}{{{b{{Kf{c}}}}}{{Kf{c}}}{D`Bh}}{{{b{c}}{b{de}}}h{}{}}000{{{b{d{Jj{c}}}}{Ef{Hn}}j{Ef{Hn}}j}{{A`{hE`}}}Bh}`{{{b{{Jj{c}}}}}{{b{{Kh{c}}}}}{JnBb}}{{}Kj}{j{{b{c}}}{}}00000{j{{b{dc}}}{}}00000{jh}00000{{{b{Kd}}{b{{Jj{c}}}}}hBh}{{{b{d{Jj{c}}}}g{b{Gn}}j}{{A`{hE`}}}Bh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{d{Jj{c}}}}g}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{Kb}}{b{Kb}}}Cf}{{{b{Kd}}{b{Kd}}}Cf}{{{b{{Jl{c}}}}{b{{Jl{c}}}}}Cf{KlBh}}{{{b{{Kf{c}}}}{b{{Kf{c}}}}}Cf{KlBh}}{{{b{d{Jj{c}}}}}hBh}{{{b{d{Jj{c}}}}{Ef{Ff}}j{Dh{{Dl{c}}}}}{{A`{hE`}}}Bh}{{{b{{Jj{c}}}}}{{b{{If{{If{{Jl{c}}}}}}}}}{JnBb}}{{{b{{Jj{c}}}}{Ef{Ff}}}{{b{{Cj{{Jl{c}}}}}}}{JnBb}}{{{b{Kb}}{b{dl}}}{{A`{hn}}}}0{{{b{Kd}}{b{dl}}}{{A`{hn}}}}0{{{b{Kj}}{b{dl}}}{{A`{hn}}}}{{{b{{Jl{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Jj{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Kf{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{cc{}}00000{{{b{{Jj{c}}}}Hl}{{Dh{c}}}Bh}{{}j}00000{{{b{{Jj{c}}}}}{{b{{If{{If{{Kf{c}}}}}}}}}{JnBb}}{{{b{d{Jj{c}}}}j}{{b{d{Cj{{Kf{c}}}}}}}Bh}{ce{}{}}00000{{KjCf}Kj}`{{{b{d{Jj{c}}}}{Ib{Ej}}}hBh}{{{b{d{Jj{c}}}}g}hBh{{El{Ej}}}{{Dn{}{{Bj{e}}}}}}{{{b{{Jj{c}}}}{Ef{F`}}j}{{A`{{Dh{c}}E`}}}Bh}{{KjKn{b{e}}{b{{Lb{gL`}}}}}{{A`{hLd}}}Bh{{Il{c}}}Lf}{{Kn{b{e}}{If{{If{c}}}}}{{A`{{Jj{c}}E`}}}{JnBb}{{Il{c}}}}{{{b{{Jj{c}}}}}{{b{{If{{If{Cf}}}}}}}{JnBb}}66{{{b{c}}}e{}{}}000{{{b{c}}}Ej{}}0{c{{A`{e}}}{}{}}00000000000{{{b{c}}}Ab{}}00000{{{b{{Jj{c}}}}}{{b{{Lh{j}}}}}{JnBb}}{{{b{{Kf{c}}}}}cBh}{{{b{{Jj{c}}}}}{{A`{h{If{Kd}}}}}{JnBb}}{{{b{{Jj{c}}}}ee}{{A`{h{If{Kd}}}}}{JnBb}{D`{K`{}{{Hf{j}}}}}}{{Kj{Lh{j}}}Kj}0{ce{}{}}00000`````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}000000{{{b{dc}}}{{b{de}}}{}{}}000000{{{b{Lj}}}Lj}{{{b{Ll}}}Ll}{{{b{Ln}}}Ln}{{{b{M`}}}M`}{{{b{c}}{b{de}}}h{}{}}000{{{b{Lj}}{b{Lj}}}Mb}`{j{{b{c}}}{}}000000{j{{b{dc}}}{}}000000{c{{A`{Ln}}}Md}{c{{A`{Mf}}}Md}{jh}000000{{{b{Mh}}{b{Mh}}}Cf}{{{b{Lj}}{b{Lj}}}Cf}`{{{b{Mh}}{b{dl}}}{{A`{hn}}}}{{{b{Mj}}{b{dl}}}{{A`{hn}}}}{{{b{Lj}}{b{dl}}}{{A`{hn}}}}{{{b{Ll}}{b{dl}}}{{A`{hn}}}}{{{b{Ln}}{b{dl}}}{{A`{hn}}}}{{{b{M`}}{b{dl}}}{{A`{hn}}}}{{{b{Mf}}{b{dl}}}{{A`{hn}}}}{cc{}}000000{{Kn{b{e}}{If{{If{c}}}}}Mj{BbBhJn}{{Il{c}}}}{{Kn{b{e}}{If{{If{c}}}}Mh}Mf{BbBhJn}{{Il{c}}}}{{{b{Bn}}}{{A`{Lj}}}}`{{}j}000000`{ce{}{}}000000{{{b{Mj}}Mh}Mf}``````{{{b{Lj}}{b{Lj}}}{{Ib{Mb}}}}````{{{b{Ln}}c}A`Ml}{{{b{Mf}}c}A`Ml}```{{{b{c}}}e{}{}}000{c{{A`{e}}}{}{}}0000000000000{{{b{c}}}Ab{}}0000007777777`````{{{b{c}}}{{b{e}}}{}{}}0000{{{b{dc}}}{{b{de}}}{}{}}0000{{{b{Mn}}}Mn}{{{b{N`}}}N`}{{{b{Nb}}}Nb}{{{b{Nd}}}Nd}{{{b{Nf}}}Nf}{{{b{c}}{b{de}}}h{}{}}0000{{{b{Mn}}{b{Mn}}}Mb}{{{b{N`}}{b{N`}}}Mb}`{j{{b{c}}}{}}0000{j{{b{dc}}}{}}0000{jh}0000{{{b{Mn}}{b{Mn}}}Cf}{{{b{N`}}{b{N`}}}Cf}{{{b{Nb}}{b{Nb}}}Cf}{{{b{Nd}}{b{Nd}}}Cf}{{{b{Nf}}{b{Nf}}}Cf}{{{b{Mn}}{b{dl}}}{{A`{hn}}}}0{{{b{N`}}{b{dl}}}{{A`{hn}}}}0{{{b{Nb}}{b{dl}}}{{A`{hn}}}}0{{{b{Nd}}{b{dl}}}{{A`{hn}}}}0{{{b{Nf}}{b{dl}}}{{A`{hn}}}}0{{{Ef{Hn}}}Mn}{cc{}}0{NhN`}{{{Ch{MnNj}}}N`}{{{Ch{cMnNj}}}N`{{Dd{Bn}}}}3{{{Ch{jc}}}Nb{{Dd{Bn}}}}{{{Ch{Nbjc}}}Nd{{Dd{Bn}}}}55{{{Ch{jEj{Nl{MnEj}}}}}Nf}{{{Ch{j{b{Bn}}{Nl{MnEj}}}}}Nf}{{{Ch{jEj}}}Nf}{{{Ch{j{b{Bn}}}}}Nf}{{{b{Mn}}{b{dc}}}hNn}`{{}j}0000{ce{}{}}0000{{Hnj}Mn}{{{b{Mn}}{b{Mn}}}{{Ib{Mb}}}}{{{b{N`}}{b{N`}}}{{Ib{Mb}}}}{{{b{c}}}e{}{}}0000{{{b{c}}}Ej{}}0000{c{{A`{e}}}{}{}}000000000{{{b{c}}}Ab{}}000077777`````````````````````````````````````````````````````````````````{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{O`{c}}{O`{c}}}{{O`{c}}}Bh}{{{b{d{Dl{c}}}}{b{{Dl{c}}}}}hBh}{{{b{d{Dl{c}}}}{Dl{c}}}hBh}{{{b{d{Kh{c}}}}}{{Ef{Ed}}}Bh}{{{b{d{Kh{c}}}}e}{{Ef{Ed}}}BhOb}{{{b{{Kh{c}}}}}{{If{Od}}}Bh}`{{{b{{Kh{c}}}}}{{b{{If{{Ch{{Ef{Ed}}Of}}}}}}}Bh}{{{b{dIh}}e{Ef{Hn}}}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{d{Kh{c}}}}ei}hBh{{El{{Ef{Hn}}}}}{{El{Ej}}}{{C`{}{{Bj{g}}}}}}0{{{b{d{Kh{c}}}}Fdg}hBh{{El{Ej}}}{{C`{}{{Bj{e}}}}}}{{{b{dIh}}e{Ef{Ed}}jk}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}Bh{{El{{Dl{g}}}}}{{Dn{}{{Bj{{Dh{i}}}}}}}}{{{b{dIh}}e{Ef{Ff}}jk}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}Bh{{El{{Dl{g}}}}}{{Dn{}{{Bj{{Dh{i}}}}}}}}{{{b{{Kh{c}}}}}jBh}{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000{{{b{dc}}}{{b{de}}}{}{}}00000000000000000000009`{{{b{d{Kh{c}}}}e}HlBhOb}{{{b{{Oh{c}}}}}{{Oh{c}}}{D`Bh}}{{{b{Hn}}}Hn}{{{b{{Oj{c}}}}}{{Oj{c}}}{D`Aj}}{{{b{{Ol{c}}}}}{{Ol{c}}}{D`Aj}}{{{b{{Dl{c}}}}}{{Dl{c}}}D`}{{{b{{Kh{c}}}}}{{Kh{c}}}{D`Bh}}{{{b{{Ef{c}}}}}{{Ef{c}}}{D`On}}{{{b{Gn}}}Gn}{{{b{A@`}}}A@`}{{{b{Fd}}}Fd}{{{b{Hl}}}Hl}{{{b{{O`{c}}}}}{{O`{c}}}D`}{{{b{Ed}}}Ed}{{{b{Ff}}}Ff}{{{b{F`}}}F`}{{{b{c}}{b{de}}}h{}{}}00000000000000{{{b{Hn}}{b{Hn}}}Mb}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}MbOn}{{{b{Fd}}{b{Fd}}}Mb}{{{b{A@`}}}j}`{{{b{{Ef{c}}}}}{{b{c}}}On}`{{{b{d{Kh{c}}}}}GnBh}{{{b{{O`{c}}}}}jBh}{{{Kh{c}}{If{{If{Cf}}}}}{{Ch{{Kh{c}}{If{{If{c}}}}}}}Bh}{{{b{d{Kh{c}}}}}eBh{}}{{{b{d{Kh{c}}}}e}gBh{}{}}{{{b{{Kh{c}}}}}{{b{{If{{Ef{Ff}}}}}}}Bh}{{{b{dIh}}{Ef{Hn}}j{Ef{Hn}}j}{{A`{hE`}}}}{{{b{d{Kh{c}}}}ek}hBh{{Dd{Bn}}}{{El{{A@b{c}}}}}{{Hh{}{{Hf{g}}}}}{{Dn{{b{d{A@d{c}}}}}{{Bj{i}}}}}}{{b{b{Ol}}{b{{Cj{c}}}}{b{{Cj{{If{If}}}}}}e{b{di}}}{{A`{hA@f}}}IlDfA@h{{A@j{g}}}}{{{A@l{c}}b{b{Ol}}{b{{Cj{e}}}}{b{{Cj{{If{If}}}}}}g{b{dk}}}{{A`{hA@f}}}A@nIlDfA@h{{A@j{i}}}}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Ef{c}}}}}{{O`{e}}}OnBh}{{}{{Kh{c}}}Bh}{{{b{{Kh{c}}}}}jBh}<{{{b{{Dl{c}}}}}{{Ib{c}}}Bh}{j{{b{c}}}{}}0000000000000000000000{j{{b{dc}}}{}}0000000000000000000000>6{jh}0000000000000000000000{{{b{Gn}}{b{d{Eb{c}}}}j}{{A`{hE`}}}Bh}{{{b{d{Kh{c}}}}{Ef{Ff}}}hBh}{{{b{d{Kh{c}}}}e}hBh{{El{{Ef{Hn}}}}}}{{{b{dIh}}e{b{Gn}}j}{{A`{hE`}}}{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{dIh}}e}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{Hn}}{b{Hn}}}Cf}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}CfBh}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}Cf{KlOn}}{{{b{Gn}}{b{Gn}}}Cf}{{{b{A@`}}{b{A@`}}}Cf}{{{b{Fd}}{b{Fd}}}Cf}{{{b{Hl}}{b{Hl}}}Cf}{{{b{{O`{c}}}}{b{{O`{c}}}}}CfKl}{{{b{Ed}}{b{Ed}}}Cf}{{{b{Ff}}{b{Ff}}}Cf}{{{b{F`}}{b{F`}}}Cf}{{{Dl{c}}}cBh}{{{b{{O`{c}}}}{b{g}}{b{i}}{b{k}}{b{m}}{b{o}}{b{Aa}}{b{Ac}}{b{Ae}}{b{Ag}}{b{Ai}}}eBh{}{{C`{c}{{Bj{e}}}}}{{C`{Gn}{{Bj{e}}}}}{{C`{A@`}{{Bj{e}}}}}{{C`{AA`}{{Bj{e}}}}}{{C`{AAb}{{Bj{e}}}}}{{C`{Hl}{{Bj{e}}}}}{{C`{e}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ec}{{Bj{e}}}}}}{{{b{{O`{c}}}}{b{g}}{b{i}}{b{k}}{b{m}}{b{o}}{b{Aa}}{b{Ac}}{b{Ae}}{b{Ag}}{b{Ai}}{b{e}}}eBhKl{{C`{c}{{Bj{e}}}}}{{C`{Gn}{{Bj{e}}}}}{{C`{A@`}{{Bj{e}}}}}{{C`{AA`}{{Bj{e}}}}}{{C`{AAb}{{Bj{e}}}}}{{C`{Hl}{{Bj{e}}}}}{{C`{e}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ee}{{Bj{e}}}}}{{C`{ec}{{Bj{e}}}}}}{{{b{dIh}}}h}{{{b{Gn}}}{{O`{c}}}Bh}{{{b{Hl}}}{{O`{c}}}Bh}{{{b{dIh}}{Ef{Ff}}j{Dh{{Dl{c}}}}}{{A`{hE`}}}Bh}{{{b{d{Kh{c}}}}}{{Ef{Ff}}}Bh}{{{b{{Oj{c}}}}}{{b{{If{c}}}}}Aj}{{{b{{Kh{c}}}}}{{b{{If{{Ch{{Ef{Ff}}Of}}}}}}}Bh}{{{b{A@f}}{b{dl}}}AAd}0{{{b{{Oh{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{Hn}}{b{dl}}}{{A`{hn}}}}{{{b{AAf}}{b{dl}}}{{A`{hn}}}}0{{{b{{Oj{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{Ol{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{Dl{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{{AAh{ceg}}}}{b{dl}}}{{A`{hn}}}{GhBh}{Gh{El{{A@b{c}}}}}{Gh{Hh{}{{Hf{e}}}}}}{{{b{{Kh{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{A@d{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{{{b{{Ef{c}}}}{b{dl}}}{{A`{hn}}}{GhOn}}{{{b{AAj}}{b{dl}}}{{A`{hn}}}}{{{b{AAl}}{b{dl}}}{{A`{hn}}}}{{{b{AAn}}{b{dl}}}{{A`{hn}}}}{{{b{Gn}}{b{dl}}}{{A`{hn}}}}{{{b{A@`}}{b{dl}}}{{A`{hn}}}}{{{b{Fd}}{b{dl}}}{{A`{hn}}}}{{{b{Hl}}{b{dl}}}{{A`{hn}}}}{{{b{{O`{c}}}}{b{dl}}}{{A`{hn}}}Gh}{{{b{Ed}}{b{dl}}}{{A`{hn}}}}{{{b{Ff}}{b{dl}}}{{A`{hn}}}}{{{b{F`}}{b{dl}}}{{A`{hn}}}}{{{b{E`}}{b{dl}}}{{A`{hn}}}}0{AAfA@f}{E`A@f}{cc{}}{{{Kh{c}}}{{Oh{c}}}Bh}1{EdHn}2{FfHn}{F`Hn}{AB`AAf}5555{{{Ch{cc}}}{{Dl{c}}}Bh}{{{b{c}}}{{Dl{c}}}Bh}{c{{Dl{c}}}Bh}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}999{Mn{{Ef{Hn}}}}{{{Ef{Ff}}}{{Ef{Hn}}}}{{{Ef{Ed}}}{{Ef{Hn}}}}{{{Ef{F`}}}{{Ef{Hn}}}}======={ABbHl}>>>>>>{{{b{{Cj{Od}}}}fABd}{{A`{{Oj{c}}AB`}}}ABf}{{{b{{Cj{Od}}}}fABd}{{A`{{Ol{c}}AB`}}}ABf}{{{b{{Kh{c}}}}}{{b{{If{{ABh{c}}}}}}}Bh}`{{{b{{Kh{c}}}}}{{b{{Nl{MnEj}}}}}Bh}`{{{b{{Kh{c}}}}{Ef{Hn}}Of}jBh}{{{b{Ih}}Hl}{{Dh{c}}}Bh}{{{b{{Oj{c}}}}}{{b{ABj}}}Aj}{{{b{{Ol{c}}}}}{{b{{Oj{c}}}}}Aj}{{{b{Hn}}{b{dc}}}hNn}{{{b{{Ef{c}}}}{b{de}}}h{ABlOn}Nn}{{{b{Gn}}{b{dc}}}hNn}{{{b{Fd}}{b{dc}}}hNn}{{{b{Hl}}{b{dc}}}hNn}{{{b{Ed}}{b{dc}}}hNn}{{{b{Ff}}{b{dc}}}hNn}{{{b{F`}}{b{dc}}}hNn}{{{b{{Oj{c}}}}{b{dg}}}{{A`{hAB`}}}Aj{{A@h{c}}}{{ABn{ce}}}}{{{b{{O`{c}}}}}EjBh}{{{b{{Ef{c}}}}}jOn}{{{b{Gn}}}j}{{{b{Hl}}}j}```{{}j}0000000000000000000000{{{b{Fd}}}{{Ef{Ff}}}}{{{b{d{Kh{c}}}}}{{Ef{F`}}}Bh}{{{b{{Kh{c}}}}}{{b{{If{{Ch{{Ef{F`}}Of}}}}}}}Bh}{ce{}{}}0000000000000000000000{{{AAh{ceg}}}{}Bh{{El{{A@b{c}}}}}{{Hh{}{{Hf{e}}}}}}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{Gn}}}Cf}{{{b{{Dl{c}}}}}CfBh}{{{b{e}}{Oj{c}}{b{g}}}{{A`{{Ol{c}}A@f}}}Aj{{AC`{c}}}Il}{{{b{e}}{Oj{c}}{b{g}}Cf}{{A`{{Ol{c}}A@f}}}Aj{{AC`{c}}}Il}{{{b{e}}{b{g}}}{{A`{{Oj{c}}A@f}}}Aj{{AC`{c}}}Il}{{{b{e}}{b{g}}Cf}{{A`{{Oj{c}}A@f}}}Aj{{AC`{c}}}Il}{{{b{d{Kh{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@d{c}}}}}{{Bj{{If{{Ch{{O`{c}}Fd}}}}}}}}}}{{{b{d{Kh{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@d{c}}}}}{{Bj{{If{{Ch{{O`{c}}{O`{c}}}}}}}}}}}}{{{b{d{Kh{c}}}}}FdBh}{{{b{{Kh{c}}}}}{{b{{If{{ACb{c}}}}}}}Bh}``{{{b{{Kh{c}}}}}jBh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{O`{c}}{O`{c}}}{{O`{c}}}Bh}{{{O`{c}}c}{{O`{c}}}Bh}{{{b{d{Dl{c}}}}{b{{Dl{c}}}}}hBh}{{{b{d{Dl{c}}}}{Dl{c}}}hBh}{{{b{{Dl{c}}}}}{}Bh}{{{Dl{c}}}{}Bh}{{{O`{c}}}{}Bh}{{jc}{{Ef{c}}}On}{{{b{{Ef{c}}}}}{{O`{e}}}OnBh}{KnAAf}{KnE`}?`?`?`?`?{{{b{{Dl{c}}}}}cBh}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}}gD`AChACj}{{{b{Hn}}{b{Hn}}}{{Ib{Mb}}}}{{{b{{Ef{c}}}}{b{{Ef{c}}}}}{{Ib{Mb}}}On}{{{b{Fd}}{b{Fd}}}{{Ib{Mb}}}}{{{b{{Kh{c}}}}}{{b{ACl}}}Bh}`{{{b{Hl}}}Od}{{{b{{Oh{c}}}}}jBh}{{{b{{Kh{c}}}}}{{`{{K`{}{{Hf{ACn}}}}}}}Bh}{{{b{{Oj{c}}}}}{{AD`{c}}}Aj}{{{b{dc}}fKn{b{e}}Cf}{{ADb{{Ol{g}}}}}ADdIlABf}{{{b{dIh}}{Ib{Ej}}}h}>{e{{O`{c}}}Bh{{K`{}{{Hf{{O`{c}}}}}}}}{{{b{dIh}}e}h{{El{Ej}}}{{Dn{}{{Bj{c}}}}}}{{{b{d{A@d{c}}}}{Ef{Ed}}Of}{{O`{c}}}Bh}{{{b{d{A@d{c}}}}eOf}{{O`{c}}}Bh{{El{{Ef{Hn}}}}}}{{{b{On}}jOf}{{O`{c}}}Bh}{{{b{Hn}}jOf}{{O`{c}}}Bh}{{{b{{Ef{c}}}}Of}{{O`{e}}}OnBh}{{{b{Ed}}jOf}{{O`{c}}}Bh}{{{b{Ff}}jOf}{{O`{c}}}Bh}{{{b{F`}}jOf}{{O`{c}}}Bh}{{{b{d{O`{c}}}}{b{d{A@d{c}}}}}hBh}{{{b{d{A@d{c}}}}Hl}{{O`{c}}}Bh}{{{b{d{A@d{c}}}}{Ef{Ff}}Of}{{O`{c}}}Bh}{{{b{Ih}}{Ef{F`}}j}{{A`{{Dh{c}}E`}}}Bh}{{{b{d{A@d{c}}}}{Ef{F`}}Of}{{O`{c}}}Bh}{{{b{d{A@d{c}}}}Gn}{{O`{c}}}Bh}{{{b{dc}}fABd}{{A`{{Oj{e}}AB`}}}ADdABf}{{{b{dc}}fABd}{{A`{{Ol{e}}AB`}}}ADdABf}{{{b{{Ef{c}}}}Nj}{{O`{e}}}OnBh}{{{b{A@`}}}Of}`{{{b{d{Kh{c}}}}}GnBh}{{{b{d{Kh{c}}}}j}hBh}{{{b{d{Kh{c}}}}eg}jBh{{Dd{Bn}}}{{Dn{{b{d{A@d{c}}}}}{{Bj{{If{{Ch{{O`{c}}{O`{c}}}}}}}}}}}}{{{b{{Kh{c}}}}}{{b{{If{{ADf{c}}}}}}}Bh}`{{{b{AAf}}}{{Ib{{b{ADh}}}}}}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{O`{c}}}{{O`{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{O`{c}}{O`{c}}}{{O`{c}}}Bh}{{{b{d{Dl{c}}}}{b{{Dl{c}}}}}hBh}{{{b{d{Dl{c}}}}{Dl{c}}}hBh}{e{{O`{c}}}Bh{{K`{}{{Hf{{O`{c}}}}}}}}{{{b{de}}{b{g}}{If{{Ef{Ff}}}}}{{A`{hE`}}}Bh{{Ih{c}}Ij}{{Il{c}}}}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}ck}{{A`{hE`}}}D`AChACjBh{{Fj{i}}}}{{{b{{Oj{c}}}}f}{{If{Od}}}ABf}{{{b{{Ol{c}}}}f}{{If{Od}}}ABf}{{{b{c}}}e{}{}}00000000000000{AAjACn}{AAlACn}{AAnACn}{{{b{c}}}Ej{}}00{{{b{{Oj{c}}}}}{}Aj}{c{{A`{e}}}{}{}}0000000000{{{Ef{Hn}}}{{A`{{Ef{F`}}}}}}{{{Ef{Hn}}}{{A`{{Ef{Ff}}}}}}{{{Ef{Hn}}}{{A`{{Ef{Ed}}}}}}33333333333333333333333333333333333{{{b{c}}}Ab{}}0000000000000000000000{{{b{d{Kh{c}}}}}{{Ef{Ed}}}Bh}{{{b{d{Kh{c}}}}e}{{Ef{Ed}}}BhOb}`{{b{b{Oj}}g{b{{Cj{{If{If}}}}}}{b{dk}}}{{A`{AAf}}}ADj{{ADl{c}}}{{ADn{ce}}}A@h{{AE`{i}}}}{{{b{dc}}fKn{b{e}}Cf}{{ADb{{Oj{g}}}}}ADdIlABf}{ce{}{}}0000000000000000000000{{{O`{c}}g}{{AAh{ceg}}}Bh{{El{{A@b{c}}}}}{{Hh{}{{Hf{e}}}}}}{{{b{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}}}{{Il{}{{Gb{c}}{ACd{e}}{ACf{g}}}}}D`AChACj}{{{b{{Oj{c}}}}{b{de}}f}{{A`{hAB`}}}ABfAEb}{{{b{{Ol{c}}}}{b{de}}f}{{A`{hAB`}}}ABfAEb}``````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{Of}}}Of}{{{b{{ABj{c}}}}}{{ABj{c}}}{D`Bh}}{{{b{c}}{b{de}}}h{}{}}0{{{b{Of}}{b{Of}}}Mb}{{{b{{ABj{c}}}}{If{c}}}{{AEf{cAEd}}}B`}{{{b{{ABj{c}}}}{AEf{cAEd}}}{{AEf{cAEh}}}B`}`{{{b{{ABj{c}}}}c}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}c}{{AEf{cAEj}}}B`}{{}Of}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{{{b{{ABj{c}}}}{AEf{cAEh}}}{{AEf{cAEh}}}B`}{jh}0{{{b{{ABj{c}}}}}{{AEf{cAEd}}}B`}{{{b{{ABj{c}}}}}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}}{{AEf{cAEj}}}B`}{{{b{Of}}{b{Of}}}Cf}{{{b{{ABj{c}}}}}KnB`}{{{b{{ABj{c}}}}}jB`}{{{b{{ABj{c}}}}{AEf{cAEh}}}{{If{c}}}B`}{{{ADn{}{{Bj{c}}}}}Cf{}}{{{b{Of}}{b{dl}}}{{A`{hn}}}}{{{b{{ABj{c}}}}{b{dl}}}{{A`{hn}}}{GhBh}}{cc{}}0{{{b{{ABj{c}}}}}cB`}006{{{b{Of}}{b{dc}}}hNn}{{}j}0{ce{}{}}0`:`{{{b{{ABj{c}}}}cce}{{If{c}}}B`{{Hh{}{{Hf{Nj}}}}D`}}{{{b{{ABj{c}}}}{If{c}}}{{AEf{cAEj}}}B`}{{{b{{ABj{c}}}}{AEf{cAEj}}}{{AEf{cAEd}}}B`}{b{{ADn{}{{Bj{c}}}}}{}}{{KnKn}{{ABj{c}}}B`}{{}Of}{{{b{Of}}{b{Of}}}{{Ib{Mb}}}}{{{b{{ABj{c}}}}}{{AEl{c}}}B`}2{{{ADn{}{{Bj{c}}}}e}{{A`{cAAf}}}{}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{b{{ABj{c}}}}{b{{AEf{cAEh}}}}Of}{{AEf{cAEh}}}B`}{{{b{{ABj{c}}}}cOf}cB`}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0>>``````````````````{{{AEn{c}}{AEn{c}}}{{AEn{c}}}Bh}{{{b{d{AEn{c}}}}c}hBh}{{{b{d{AEn{c}}}}{AEn{c}}}hBh}{{{b{dAF`}}{b{AF`}}}h}{{{b{dAF`}}}h}{{{b{AF`}}}If}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{AF`}}{b{e}}}CfAj{{A@n{c}}}}{{{b{{AEn{c}}}}}{{AEn{c}}}D`}{{{b{c}}{b{de}}}h{}{}}{{{b{AFb}}{b{e}}{b{{AEf{AEd}}}}AEn}{}Aj{{A@n{c}}}}{{{b{AC`}}{b{e}}{b{{AEf{AEj}}}}AEn}{}Aj{{A@n{c}}}}{{{b{AFd}}c{b{dg}}i}{{A`{hAB`}}}DfA@h{{A@j{e}}}{{Hh{}{{Hf{AFf}}}}D`}}{{{b{AFd}}{b{c}}e{b{di}}k}{{A`{hAB`}}}A@nDfA@h{{A@j{g}}}{{Hh{}{{Hf{AFf}}}}D`}}{{}{{AEn{c}}}Bh}{j{{b{c}}}{}}{j{{b{dc}}}{}}{{{b{dAC`}}Kn}h}{jh}{{{b{{AFj{}{{AFh{c}}}}}}}c{{AF`{e}}}Aj}{{{b{{AEn{c}}}}{b{{AEn{c}}}}}CfKl}{{{b{AF`}}{b{e}}}{}Aj{{A@n{c}}}}{{{b{{AEn{c}}}}{b{dl}}}{{A`{hn}}}Gh}{cc{}}{{}j}{ce{}{}}{{{b{AC`}}}Kn}{{{AEn{c}}{AEn{c}}}{{AEn{c}}}Bh}{{{b{d{AEn{c}}}}c}hBh}{{{b{d{AEn{c}}}}{AEn{c}}}hBh}{{{b{AC`}}}Db}{KnAFb}{bAFd}{{}{{ADl{}{{AFl{c}}{AFn{g}}}}}{{AG`{e}{{AFn{g}}}}}ADj{}}{{{b{dc}}}{{AEn{e}}}DfBh}{Knc{}}{{{b{dc}}}{{A`{AC`AB`}}}ADd}{{{b{dc}}}{{A`{eAB`}}}ADd{}}{{{b{AF`}}}If}{{{b{dAF`}}}h}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}{{{b{{ADl{}{{AFl{c}}{AFn{g}}}}}}{b{dk}}mg}{{A`{cAGb}}}{{AG`{e}{{AFn{g}}}}}ADj{}A@h{{AE`{i}}}{{Hh{}{{Hf{AGd}}}}D`}}{ce{}{}}{{{b{AC`}}{b{dc}}}{{A`{hAB`}}}AEb}```````{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AGf{c}}}}}{{AGf{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}{{{b{{AGf{c}}}}{b{e}}{b{{AEf{AEd}}}}AEn}{}Aj{{A@n{c}}}}{{{b{{AGf{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}Aj{{A@n{c}}}}{{{b{e}}{b{{AGf{c}}}}g{b{dk}}{b{{AEf{AEd}}}}AEn}{{A`{hAB`}}}Aj{{A@n{c}}}Df{{A@h{c}}}{{A@j{ci}}}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{{{b{d{AGf{c}}}}Kn}hAj}{jh}0{{{b{{AGf{c}}}}}{{AGh{c}}}Aj}{{{b{{AGf{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AGj{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}0{{}j}0{ce{}{}}0{{{b{{AGf{c}}}}}KnAj}{{{b{{AGf{c}}}}}DbAj}{Kn{{AGf{c}}}Aj}{Kn}{{{b{dc}}}{{A`{{AGf{e}}AB`}}}ADdAj}{{{b{dc}}}{{A`{AB`}}}ADd}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}0{{{AGh{c}}{b{dg}}}{{A`{{AGl{c}}AGb}}}Aj{{A@h{c}}}{{AE`{ce}}}}::{{{b{{AGf{c}}}}{b{de}}}{{A`{hAB`}}}AjAEb}`{{{b{d{AGh{c}}}}}hAj}{{{b{d{AGh{c}}}}{b{{AGh{c}}}}}hAj}0{{{b{d{AGh{c}}}}{b{Cj}}}hAj}222{{{b{{AGh{c}}}}}IfAj}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{AGh{c}}}}{b{e}}}CfAj{{A@n{c}}}}{{{b{{AGh{c}}}}}{{AGh{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}{j{{b{c}}}{}}{j{{b{dc}}}{}}{jh}{{{b{{AGh{c}}}}{b{e}}}{}Aj{{A@n{c}}}}{{{b{{AGh{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}{{}j}{ce{}{}}{{{b{{AGf{c}}}}}{{AGh{c}}}Aj}>{{{b{d{AGh{c}}}}}hAj}{{{b{c}}}e{}{}}{c{{A`{e}}}{}{}}0{{{b{c}}}Ab{}}5``{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AGn{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}Aj{{A@n{c}}}Df{{A@h{c}}}{{A@j{ci}}}{{Hh{}{{Hf{{AFf{c}}}}}}D`}}??>>=={{{b{{AGn{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AH`{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}<<;;::{{{b{{AGf{c}}}}}{{AGn{c}}}Aj}{{}{{AH`{c}}}Aj}888877{{{b{{AH`{c}}}}{b{dg}}i{AGh{c}}}{{A`{AGb}}}Aj{{A@h{c}}}{{AE`{ce}}}{{Hh{}{{Hf{{AGd{c{AGh{c}}}}}}}}D`}}==````77776666{{{b{{AGl{c}}}}}{{AGl{c}}}{D`Aj}}{{{b{{AHb{c}}}}}{{AHb{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}0{{{b{{AGl{c}}}}{b{e}}}cAj{{A@n{c}}}}{j{{b{c}}}{}}000{j{{b{dc}}}{}}000{jh}000{{{AHd{c}}}CfAj}{{{AHf{c}}}CfAj}{{{b{{AGl{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHb{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHd{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{{{b{{AHf{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}000`{{}j}000{ce{}{}}000{{{b{{AGf{c}}}}}{{AHd{c}}}Aj}{{{b{{AGf{c}}}}}{{AHf{c}}}Aj}{{{AHd{c}}e}{{A`{AAf}}}Aj{{Dn{{AGh{c}}}{{Bj{{A`{{AGl{c}}AAf}}}}}}}}{{{AHf{c}}e}{{A`{AAf}}}Aj{{Dn{{AGh{c}}}{{Bj{{A`{{AGl{c}}AAf}}}}}}}}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}0000000{{{b{c}}}Ab{}}000`{{{AGl{c}}}{{AGh{c}}}Aj}{{{AGl{c}}c}{{Ch{{AGh{c}}{AHb{c}}}}}Aj}9999```````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AHh{c}}}}}{{AHh{c}}}{D`AHj}}{{{b{{AHl{c}}}}}{{AHl{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}0{{{b{{AHh{c}}}}{b{e}}{b{{AEf{AEd}}}}AEn}{}AHjA@n}{{{b{{AHh{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}AHjA@n}{{{b{{AHl{c}}}}{b{e}}{b{{AEf{AEj}}}}AEn}{}AHjA@n}{j{{b{c}}}{}}00{j{{b{dc}}}{}}00{{{b{d{AHh{c}}}}Kn}hAHj}{{{b{d{AHl{c}}}}Kn}hAHj}{jh}00{{{b{{AHh{c}}}}}{{AHn{c}}}AHj}{{{b{{AHl{c}}}}}{{AHn{c}}}AHj}{{{b{{AHh{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AHl{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AI`{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}00{{{b{{AHh{c}}}}KnIf{Ib{If}}}{{AHh{c}}}AHj}{{}j}00{ce{}{}}00{{{b{{AHh{c}}}}}KnAHj}{{{b{{AHl{c}}}}}KnAHj}{{{b{{AHh{c}}}}}DbAHj}{{{b{{AHl{c}}}}}DbAHj}{Kn{{AHh{c}}}AHj}{Kn}{{{b{dc}}}{{A`{{AHh{e}}AB`}}}ADdAHj}{{{b{dc}}}{{A`{{AHl{e}}AB`}}}ADdAHj}{{{b{dc}}f}{{A`{{AHh{e}}AB`}}}ADdAHj}{{{b{dc}}f}{{A`{{AHl{e}}AB`}}}ADdAHj}{{{b{dc}}}{{A`{AB`}}}ADd}{{Knc}{{AHh{e}}}DfAHj}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00{{{b{{AHh{c}}}}}{{AHl{c}}}AHj}{ce{}{}}00{{{b{{AHh{c}}}}{b{de}}}{{A`{hAB`}}}AHjAEb}{{{b{{AHl{c}}}}{b{de}}}{{A`{hAB`}}}AHjAEb}{{{b{{AHh{c}}}}{b{de}}f}{{A`{hAB`}}}AHjAEb}{{{b{{AHl{c}}}}{b{de}}f}{{A`{hAB`}}}AHjAEb}``{{{b{d{AHn{c}}}}{b{{AHn{c}}}}}hAHj}{{{b{d{AIb{c}}}}{AIb{c}}}hAId}{{{b{d{AHn{c}}}}}hAHj}{{{b{{AHn{c}}}}}IfAHj}{{{b{c}}}{{b{e}}}{}{}}0{{{b{dc}}}{{b{de}}}{}{}}0{{{b{{AHn{c}}}}{b{e}}}CfAHjA@n}{{{AIb{c}}{b{e}}{b{{AHl{c}}}}}CfAIdA@n}{{{b{{AHn{c}}}}}{{AHn{c}}}{D`AHj}}{{{b{{AIb{c}}}}}{{AIb{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}08{{}{{AHn{c}}}{ACjAHj}}{{}{{AIb{c}}}{ACjAHj}}{j{{b{c}}}{}}0{j{{b{dc}}}{}}0{jh}0{{{b{{AHn{c}}}}{b{e}}}{}AHjA@n}{{{b{{AHn{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIb{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}0{{}j}0{ce{}{}}0{{}{{AHn{c}}}AHj}{{}{{AIb{c}}}AId}{{{b{{AHn{c}}}}}IfAHj}{{{b{d{AHn{c}}}}}hAHj}{{{b{d{AIb{c}}}}}hAId}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}000{{{b{c}}}Ab{}}088````{{{b{c}}}{{b{e}}}{}{}}000{{{b{dc}}}{{b{de}}}{}{}}000{{{b{{AIf{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}{AHjGh}A@nDfA@h{{A@j{i}}}{{Hh{}{{Hf{AFf}}}}D`}}{{{b{{AIh{c}}}}{b{e}}g{b{dk}}m}{{A`{hAB`}}}{AHjGh}A@nDfA@h{{A@j{i}}}{{Hh{}{{Hf{AFf}}}}D`}}{j{{b{c}}}{}}000{j{{b{dc}}}{}}000{jh}000{{{b{{AIf{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIj{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIh{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AIl{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}000{{}j}000{ce{}{}}000{{{b{{AHh{c}}}}}{{AIf{c}}}{AHjGh}}{{}{{AIj{c}}}{AIdGh}}{{{b{{AHh{c}}}}}{{AIh{c}}}AHj}{{{b{{AHh{c}}}}}{{AIh{c}}}{AHjGh}}{{}{{AIl{c}}}{AIdGh}}{c{{A`{e}}}{}{}}0000000{{{b{c}}}Ab{}}000{{{b{{AIj{c}}}}{b{dg}}i{AIb{c}}}{{A`{AGb}}}{AIdGh}A@h{{AE`{e}}}{{Hh{}{{Hf{{AGd{{AHn{c}}}}}}}}D`}}{{{b{{AIl{c}}}}{b{dg}}i{AIb{c}}}{{A`{AGb}}}{AIdGh}A@h{{AE`{e}}}{{Hh{}{{Hf{{AGd{{AHn{c}}}}}}}}D`}}9999```{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AIn{c}}}}}{{AIn{c}}}{D`AId}}{{{b{{AJ`{c}}}}}{{AJ`{c}}}{D`AHj}}{{{b{{AJb{c}}}}}{{AJb{c}}}{D`AHj}}{{{b{c}}{b{de}}}h{}{}}00{j{{b{c}}}{}}00{j{{b{dc}}}{}}00{jh}00{{{AJ`{c}}}Cf{AIdGh}}{{{AJb{c}}}Cf{AIdGh}}{{{b{{AIn{c}}}}{b{dl}}}{{A`{hn}}}{GhAId}}{{{b{{AJ`{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{{{b{{AJb{c}}}}{b{dl}}}{{A`{hn}}}{GhAHj}}{cc{}}00{{}j}00{ce{}{}}00{{{b{{AHl{c}}}}}{{AJ`{c}}}AId}{{{b{{AHl{c}}}}}{{AJ`{c}}}{AIdGh}}{{{b{{AHl{c}}}}}{{AJb{c}}}{AIdGh}}0{{{AJ`{c}}e}{{A`{AAf}}}{AIdGh}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{AJb{c}}e}{{A`{AAf}}}{AIdGh}{{Dn{}{{Bj{{A`{AAf}}}}}}}}{{{b{c}}}e{}{}}00{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00888{{{AIb{c}}{b{{AHl{c}}}}}{{AJ`{c}}}AId}``````````{{{b{{A@h{}{{AJd{c}}}}}}}{{AJf{eg}}}{}Aj{}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{{AJh{ceg}}}}}{{AJh{ceg}}}{D`ADd}{D`Aj}{D`{A@h{e}}}}{{{b{{AJj{ceg}}}}}{{AJj{ceg}}}{D`AEb}{D`Aj}{D`{A@h{e}}}}{{{b{{AJl{c}}}}}{{AJl{c}}}{D`Aj}}{{{b{c}}{b{de}}}h{}{}}00{{{b{dABn}}c}{{A`{hAB`}}}Aj}{{{b{d{AJh{ce{AJl{e}}}}}}e}{{A`{hAB`}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}e}{{A`{hAB`}}}AEbAj}{{{b{dABn}}}{{A`{hAB`}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{hAB`}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}}{{A`{hAB`}}}AEbAj}{j{{b{c}}}{}}0{{{b{{AJl{c}}}}}bAj}1{j{{b{dc}}}{}}00{jh}00{AJncAEb}{{{AJj{ce{AJl{e}}}}}cAEbAj}{{{b{{AJh{ceg}}}}{b{dl}}}{{A`{hn}}}{GhADd}{GhAj}{Gh{A@h{e}}}}{{{b{{AJj{ceg}}}}{b{dl}}}{{A`{hn}}}{GhAEb}{GhAj}{Gh{A@h{e}}}}{{{b{{AJl{c}}}}{b{dl}}}{{A`{hn}}}{GhAj}}{cc{}}00{{{b{{A@h{}{{AJd{c}}}}}}}{}{}}{{{b{{AJl{c}}}}}{}Aj}{cAK`ADd}{cAJnAEb}{c{{AJh{ce{AJl{e}}}}}ADdAj}{{}j}0{c{{AJj{ce{AJl{e}}}}}AEbAj}1{ce{}{}}00{{{b{c}}}{{A@h{}{{AJd{c}}}}}{}}{{{b{{In{Od}}}}}{{AJl{c}}}Aj}{{{b{dAE`}}}{{A`{cAB`}}}Aj}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{eAB`}}}ADdAj}{{{b{dAE`}}}{{A`{AB`}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{A`{AB`}}}ADdAj}{{{b{dABn}}}eAj{{A@h{c}}}}{{{b{d{AJh{ce{AJl{e}}}}}}}{{AJl{e}}}ADdAj}{{{b{d{AJj{ce{AJl{e}}}}}}}{{AJl{e}}}AEbAj}{{{b{dABn}}}{{AJf{ce}}}Aj{}}{{{b{c}}}e{}{}}00{c{{A`{e}}}{}{}}00000{{{b{c}}}Ab{}}00==={{{b{dA@j}}c}{{A`{hAB`}}}Aj}{{{b{d{AJj{ce{AJl{e}}}}}}e}{{A`{hAB`}}}AEbAj}{{{b{dA@j}}}{{A`{hAB`}}}}{{{b{d{AJj{ce{AJl{e}}}}}}}{{A`{hAB`}}}AEbAj}","D":"F@l","p":[[1,"reference"],[0,"mut"],[6,"SerdeFormat",0,2139],[1,"unit"],[1,"usize"],[5,"Formatter",2140],[5,"Error",2140],[6,"Result",2141],[5,"TypeId",2142],[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",27,2143],[5,"Coordinates",2143],[5,"CtOption",2144],[10,"WithSmallOrderMulGroup",2145],[10,"Ord",2146],[17,"AffineExt"],[10,"CurveExt",27,2143],[10,"Field",27,2145],[17,"Output"],[10,"Mul",2147],[1,"str"],[10,"Fn",2148],[5,"Box",2149],[5,"Choice",2144],[1,"bool"],[1,"tuple"],[1,"slice"],[10,"Send",2150],[10,"Sync",2150],[10,"Clone",2151],[1,"u64"],[10,"AsRef",2152],[10,"RngCore",2153],[5,"Value",64,2154],[10,"Add",2147],[6,"Assigned",829,2155],[10,"FnOnce",2148],[6,"ErrorFront",829],[5,"Region",64,2156],[5,"Advice",829,2157],[5,"Column",829,2158],[5,"AssignedCell",64,2156],[5,"String",2159],[10,"Into",2152],[10,"FnMut",2148],[5,"Instance",829,2157],[5,"Table",64,2156],[5,"TableColumn",829,2158],[5,"Fixed",829,2157],[17,"Root"],[10,"Layouter",64,2156],[5,"NamespacedLayouter",64,2156],[5,"Cell",64,2156],[5,"RegionIndex",64,2156],[17,"Config"],[17,"Loaded"],[10,"Chip",64,2156],[10,"Debug",2140],[10,"Copy",2150],[10,"Borrow",2160],[5,"Selector",829,2158],[5,"SimpleFloorPlanner",64,2161],[10,"RegionLayouter",2162],[10,"TableLayouter",2163],[17,"Item"],[10,"IntoIterator",2164],[10,"FromIterator",2164],[5,"Challenge",829,2158],[6,"Any",829,2165],[10,"Neg",2147],[6,"Option",2166],[10,"Sub",2147],[5,"Vec",2167],[10,"Assignment",829,2157],[10,"SyncDeps",2162],[10,"Circuit",829,2157],[1,"array"],[5,"V1Pass",293,2168],[5,"V1",293,2168],[5,"SingleChipLayouter",331,2161],[5,"MeasurementPass",354,2168],[5,"AssignmentPass",354,2168],[5,"MockProver",385,2169],[6,"CellValue",385,2169],[10,"FromUniformBytes",2145],[10,"Iterator",2170],[6,"FailureLocation",385,2171],[6,"VerifyFailure",385,2171],[6,"InstanceValue",385,2169],[5,"ConstraintSystem",829,2172],[5,"CircuitLayout",385,2173],[10,"PartialEq",2146],[1,"u32"],[5,"Shift",2174],[5,"DrawingArea",2175],[6,"DrawingAreaErrorKind",2175],[10,"DrawingBackend",2176],[5,"Range",2177],[5,"Poly",567,2178],[5,"Lookup",567,2178],[5,"Permutation",567,2178],[5,"Shuffle",567,2178],[6,"Ordering",2146],[10,"Deserializer",2179],[5,"ModelCircuit",567,2178],[6,"CommitmentScheme",567,2178],[5,"CostOptions",567,2178],[10,"Serializer",2180],[5,"Column",711],[5,"VirtualCell",711,2181],[5,"Gate",711,2181],[5,"Constraint",711,2181],[5,"Region",711,2181],[5,"VirtualCell",2172],[1,"i32"],[5,"HashMap",2182],[10,"Hasher",2183],[6,"Expression",829,2158],[10,"Phase",829,2158],[1,"u8"],[5,"Rotation",1478,2184],[5,"ConstraintSystemMid",829,2165],[5,"VerifyingKey",829,2185],[5,"ProvingKey",829,2185],[10,"ColumnType",829,2157],[5,"FixedQuery",829,2158],[5,"Constraint",2172],[5,"VirtualCells",829,2172],[6,"Error",829,2186],[10,"EncodedChallenge",2051,2187],[10,"TranscriptWrite",2051,2187],[5,"PlonkEngine",2188],[10,"MsmAccel",2189],[5,"AdviceQuery",2158],[5,"InstanceQuery",2158],[8,"Result",2140],[6,"ErrorBack",829],[5,"Constraints",829,2172],[5,"FirstPhase",829,2158],[5,"SecondPhase",829,2158],[5,"ThirdPhase",829,2158],[5,"Error",2190],[5,"ChallengeMid",2165],[5,"ConstraintSystemBack",2191],[10,"SerdeCurveAffine",2139],[5,"Gate",2172],[5,"EvaluationDomain",1478,2192],[10,"Hash",2183],[10,"Transcript",2051,2187],[10,"Params",1550,2193],[5,"Argument",2194],[17,"FloorPlanner"],[17,"Params"],[10,"FloorPlanner",829,2157],[10,"Default",2195],[5,"Argument",2196],[5,"Phase",2197],[5,"PinnedVerificationKey",2185],[8,"Result",2190],[10,"Read",2198],[5,"Argument",2199],[10,"Error",2200],[10,"CommitmentScheme",1550,2193],[10,"Verifier",1550,2193],[10,"VerificationStrategy",1478,2201],[10,"TranscriptRead",2051,2187],[10,"Write",2198],[5,"Coeff",2202],[5,"Polynomial",2202],[5,"ExtendedLagrangeCoeff",2202],[5,"LagrangeCoeff",2202],[5,"PinnedEvaluationDomain",2192],[5,"Blind",1550,2193],[10,"MSM",1550,2193],[10,"ParamsProver",1550,2193],[10,"Prover",1550,2193],[5,"ProverQuery",2203],[17,"MSM"],[10,"ParamsVerifier",1550,2193],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",2201],[6,"Error",2202],[5,"VerifierQuery",2203],[5,"ParamsIPA",1620,2204],[5,"MSMIPA",1665,2205],[5,"IPACommitmentScheme",1620,2204],[5,"GuardIPA",1727,2206],[5,"ProverIPA",1695,2207],[5,"VerifierIPA",1695,2208],[5,"Accumulator",1727,2206],[5,"AccumulatorStrategy",1727,2206],[5,"SingleStrategy",1727,2206],[5,"ParamsKZG",1804,2209],[10,"Engine",2210],[5,"ParamsVerifierKZG",1804,2209],[5,"MSMKZG",1877,2211],[5,"KZGCommitmentScheme",1804,2209],[5,"DualMSM",1877,2211],[10,"MultiMillerLoop",2210],[5,"ProverGWC",1926,2212],[5,"ProverSHPLONK",1926,2213],[5,"VerifierGWC",1926,2214],[5,"VerifierSHPLONK",1926,2215],[5,"GuardKZG",1991,2216],[5,"AccumulatorStrategy",1991,2216],[5,"SingleStrategy",1991,2216],[17,"Input"],[5,"ChallengeScalar",2187],[5,"Blake2bRead",2051,2187],[5,"Blake2bWrite",2051,2187],[5,"Challenge255",2051,2187],[10,"TranscriptWriterBuffer",2051,2187],[10,"TranscriptReadBuffer",2051,2187],[15,"InRegion",542],[15,"OutsideRegion",542],[15,"ConstraintNotSatisfied",545],[15,"CellNotAssigned",545],[15,"InstanceCellNotAssigned",545],[15,"Permutation",545],[15,"ConstraintPoisoned",545],[15,"Lookup",545],[15,"Shuffle",545],[15,"NotEnoughRowsAvailable",1476],[15,"NotEnoughRowsAvailable",1477]],"r":[[3,2139],[31,2143],[32,2143],[34,2145],[56,2217],[64,2156],[65,2156],[66,2156],[68,2156],[70,2156],[71,2156],[72,2156],[74,2161],[75,2156],[76,2154],[170,2156],[293,2168],[294,2168],[320,2218],[328,2218],[331,2161],[332,2161],[354,2168],[355,2168],[356,2168],[357,2168],[376,2168],[388,2169],[389,2173],[392,2171],[395,2169],[397,2169],[404,2171],[425,2219],[435,2169],[497,2169],[567,2178],[568,2178],[572,2178],[573,2178],[574,2178],[575,2178],[576,2178],[643,2178],[644,2178],[712,2181],[713,2181],[714,2181],[715,2181],[829,2157],[832,2165],[833,2155],[834,2157],[838,2158],[840,2157],[841,2158],[844,2157],[847,2172],[849,2165],[850,2172],[851,2186],[854,2158],[855,2158],[856,2157],[859,2158],[860,2157],[863,2157],[876,2158],[878,2185],[881,2158],[882,2158],[886,2158],[888,2158],[891,2185],[892,2172],[1009,2220],[1010,2220],[1258,2221],[1259,2221],[1260,2221],[1261,2221],[1447,2222],[1478,2192],[1480,2184],[1481,2201],[1493,2202],[1525,2202],[1527,2202],[1550,2193],[1552,2193],[1555,2193],[1558,2193],[1559,2193],[1561,2193],[1563,2193],[1567,2193],[1616,2223],[1617,2223],[1618,2223],[1619,2223],[1620,2204],[1621,2204],[1622,2204],[1631,2224],[1661,2225],[1665,2205],[1695,2207],[1696,2208],[1727,2206],[1728,2206],[1729,2206],[1730,2206],[1800,2226],[1801,2226],[1802,2226],[1803,2226],[1804,2209],[1805,2209],[1806,2209],[1877,2211],[1878,2211],[1926,2212],[1927,2213],[1928,2214],[1929,2215],[1991,2216],[1992,2216],[1993,2216],[2051,2187],[2052,2187],[2053,2187],[2054,2187],[2056,2187],[2057,2187],[2058,2187],[2059,2187],[2060,2187]],"b":[[77,"impl-Add-for-Value%3CV%3E"],[78,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[79,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[80,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[81,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[82,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[83,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[84,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[85,"impl-Add-for-%26Value%3CV%3E"],[86,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[126,"impl-Value%3C%26V%3E"],[127,"impl-Value%3C%26mut+V%3E"],[134,"impl-Value%3C%26mut+V%3E"],[135,"impl-Value%3C%26V%3E"],[218,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[219,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[220,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[221,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[222,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[223,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[224,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[225,"impl-Mul-for-%26Value%3CV%3E"],[226,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[227,"impl-Mul-for-Value%3CV%3E"],[238,"impl-Sub-for-Value%3CV%3E"],[239,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[240,"impl-Sub-for-%26Value%3CV%3E"],[241,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[242,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[243,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[244,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[245,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[246,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[247,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[467,"impl-Display-for-FailureLocation"],[468,"impl-Debug-for-FailureLocation"],[469,"impl-Display-for-VerifyFailure"],[470,"impl-Debug-for-VerifyFailure"],[759,"impl-Display-for-ColumnMid"],[760,"impl-Debug-for-ColumnMid"],[761,"impl-Debug-for-VirtualCell"],[762,"impl-Display-for-VirtualCell"],[763,"impl-Display-for-Gate"],[764,"impl-Debug-for-Gate"],[765,"impl-Display-for-Constraint"],[766,"impl-Debug-for-Constraint"],[767,"impl-Display-for-Region"],[768,"impl-Debug-for-Region"],[772,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[773,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[774,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[780,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[781,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[782,"impl-From%3C(usize,+String)%3E-for-Region"],[783,"impl-From%3C(usize,+%26str)%3E-for-Region"],[894,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[895,"impl-Add-for-Assigned%3CF%3E"],[896,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[897,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[898,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[899,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[901,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[902,"impl-AddAssign-for-Assigned%3CF%3E"],[1114,"impl-Debug-for-Error"],[1115,"impl-Display-for-Error"],[1118,"impl-Debug-for-Error"],[1119,"impl-Display-for-Error"],[1138,"impl-Debug-for-Error"],[1139,"impl-Display-for-Error"],[1140,"impl-From%3CError%3E-for-Error"],[1141,"impl-From%3CError%3E-for-Error"],[1145,"impl-From%3CAdvice%3E-for-Any"],[1147,"impl-From%3CFixed%3E-for-Any"],[1148,"impl-From%3CInstance%3E-for-Any"],[1154,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1155,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1156,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1157,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1161,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1162,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1163,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1164,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1269,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1270,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1271,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1272,"impl-Mul-for-Assigned%3CF%3E"],[1273,"impl-Mul-for-Expression%3CF%3E"],[1274,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1275,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1276,"impl-MulAssign-for-Assigned%3CF%3E"],[1277,"impl-Neg-for-%26Assigned%3CF%3E"],[1278,"impl-Neg-for-Assigned%3CF%3E"],[1336,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1337,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1338,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1339,"impl-Sub-for-Assigned%3CF%3E"],[1340,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1341,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1343,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1344,"impl-SubAssign-for-Assigned%3CF%3E"],[1383,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1384,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1385,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1569,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1570,"impl-AddAssign-for-Blind%3CF%3E"],[1597,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1598,"impl-MulAssign-for-Blind%3CF%3E"],[1667,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[1668,"impl-MSMIPA%3C\'a,+C%3E"],[1970,"impl-ProverSHPLONK%3C\'a,+E%3E"],[1971,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[2029,"impl-AccumulatorStrategy%3CE%3E"],[2030,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[2031,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"],[2032,"impl-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFUFrwAGAAEACQADAA4AAQARAAEAFgAAABgAAwBOAAkAYwAAAGUAEAB3AAcAhgAAAIsAEQCeAAgArAAHALUAAAC4AAAAuwAAAL0AAADCAAAAxAAIANsACQDnAAAA6QAAAOsAAADvAAoA+wADAAEBFwAdAQcAKAEOADkBAwA/AQwATgEIAFgBAgBdAQUAZwELAHUBAQB5AQgAmQEAAJwBDQCrAQgAtgESAMoBBwDUAQcA4gEGAPMBAgD7ARcAGQIFAEQCFgBcAhgAdgIGAIYCAACIAgYAngIAAKMCAQCoAh8AzQIVAOQCHgAFAwIACQMBAA0DBAATAwQAHQMgAH8DCACUAy0AxQMgAOkDAAD2AwAA+gMtACoEFgBGBAoAWwQbAHgEAAB6BAAAfAQCAIMEAwCKBAMAlQQAAJ8EAAChBAEApgQHALMEAAC1BBcA5wQAAPMEAQD2BAsABgUAAAgFAAAKBQAADAUAABAFAgAUBQAAHAUAACEFAAAjBQIANQUBADkFCQBHBRQAXQVHAKoFFgDLBQgA2gUDAN8FAQDkBQAA6QUBAPEFAgD/BQAABQYJACEGAgAnBgEAKgYBADAGAgA0BgAANgYAADgGAAA6BgAAPQYCAEoGAwBPBgAAWAYFAGEGCQBtBgEAcQYBAHQGAAB2BgcAfwYBAIkGCwCWBgAAmQYGAKIGAwCnBgcAsQYBALUGCgDEBgsA0QYLAN8GAwDoBgMA8AYRAAUHAwAQBxwAMQcCADcHBQBABwEAQwcOAFUHAABYBwAAWgcGAGIHAwBnBwoAdAcBAHoHAQB9BwkAiwcHAJUHDwCpBwMAsQcBALQHDgDEBwMAywcZAOgHAgDvBwEA8gcQAA8ICwAcCAEAHwgLACwIAwA0CAAAOAgBADsIAABACAAAQggAAEQIAABGCAEASQgOAFkIAABbCAAA"}],\ ["p3_frontend",{"t":"PKFPFPPGPPPFFPFPPFGFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Add","AirBuilderWithPublicValues","CompileParams","Constant","FWrap","FirstRow","LastRow","Location","Location","Mul","Neg","PreprocessingInfo","Public","Public","Query","Query","Sub","SymbolicAirBuilder","SymbolicExpression","SymbolicVariable","Transition","Var","Variable","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","as_base_slice","as_base_slice","as_canonical_biguint","as_canonical_u64","as_slice","as_slice_mut","assert_zero","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_witness","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","column","compile_circuit_cs","compile_preprocessing","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","disable_zk","div","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_base","from_base","from_base_fn","from_base_fn","from_base_slice","from_base_slice","from_bool","from_bool","from_canonical_u16","from_canonical_u16","from_canonical_u32","from_canonical_u32","from_canonical_u64","from_canonical_u64","from_canonical_u8","from_canonical_u8","from_canonical_usize","from_canonical_usize","from_f","from_f","from_fn","from_slice","from_slice_mut","from_wrapped_u32","from_wrapped_u32","from_wrapped_u64","from_wrapped_u64","generator","generator","get_public_inputs","hash","index","init","init","init","init","init","init","init","init","init","init","interleave","into","into","into","into","into","into","into","into","into","into","is_first_row","is_last_row","is_next","is_one","is_transition_window","is_zero","is_zero","main","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","neg","neg","neg_one","neg_one","new_public","new_query","one","one","order","partial_cmp","product","product","product","public_values","public_values","serialize","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sum","sum","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","trace_to_wit","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_inverse","two","two","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zero","zero"],"q":[[0,"p3_frontend"],[305,"p3_frontend::fwrap"],[306,"ff"],[307,"p3_frontend::symbolic_expression"],[308,"p3_frontend::symbolic_variable"],[309,"p3_field::field"],[310,"num_bigint::biguint"],[311,"core::hash"],[312,"core::cmp"],[313,"p3_frontend::symbolic_builder"],[314,"core::convert"],[315,"halo2_middleware::circuit"],[316,"alloc::vec"],[317,"core::option"],[318,"core::clone"],[319,"p3_air::air"],[320,"core::default"],[321,"core::result"],[322,"serde::de"],[323,"core::fmt"],[324,"core::ops::function"],[325,"core::iter::traits::iterator"],[326,"p3_frontend::air"],[327,"serde::ser"],[328,"alloc::string"],[329,"p3_matrix::dense"],[330,"core::any"]],"i":[3,0,0,3,0,22,22,0,3,3,3,0,0,23,0,23,3,0,0,0,22,0,3,1,3,3,3,4,4,4,1,3,3,1,3,1,1,1,1,15,15,1,22,3,4,23,24,25,26,27,15,1,22,3,4,23,24,25,26,27,0,1,22,3,4,23,24,25,26,27,1,22,3,4,23,24,25,26,27,1,24,0,0,1,3,27,15,1,22,3,4,23,24,25,26,27,15,1,22,3,4,23,24,25,26,27,1,27,1,3,15,1,22,3,4,23,24,25,26,27,1,1,1,22,22,3,3,4,4,23,24,25,26,27,15,1,22,3,3,3,4,23,24,25,26,27,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,1,1,1,3,1,3,1,3,0,1,25,15,1,22,3,4,23,24,25,26,27,1,15,1,22,3,4,23,24,25,26,27,15,15,24,3,15,1,3,15,1,3,3,3,4,4,4,1,3,3,1,3,1,3,4,4,1,3,1,1,1,3,3,50,15,1,1,3,3,3,4,4,4,1,3,3,1,3,3,1,22,3,4,23,24,25,26,27,1,22,3,4,0,15,1,22,3,4,23,24,25,26,27,15,1,22,3,4,23,24,25,26,27,1,1,3,15,1,22,3,4,23,24,25,26,27,15,1,22,3,4,23,24,25,26,27,1,3],"f":"```````````````````````{{{b{c}}{b{c}}}{{b{c}}}d}{{{f{c}}{h{c}}}ej{}}{{{f{c}}c}{{f{c}}}j}{{{f{c}}{f{c}}}{{f{c}}}j}{{{h{c}}{h{c}}}ej{}}{{{h{c}}c}ej{}}{{{h{c}}{f{c}}}ej{}}{{{n{l{b{c}}}}{b{c}}}A`d}{{{n{l{f{c}}}}c}A`j}{{{n{l{f{c}}}}{f{c}}}A`j}{{{n{c}}}{{n{{Ab{e}}}}}{}{}}0{{{n{{b{c}}}}}Ad{AfAhAj}}{{{n{{b{c}}}}}Al{AfAhAj}}{{{n{c}}}{{n{Ab}}}{}}{{{n{lc}}}{{n{lAb}}}{}}{{{n{l{An{c}}}}g}A`j{}{{B`{e}}}}{{{n{c}}}{{n{e}}}{}{}}000000000{{{n{lc}}}{{n{le}}}{}{}}000000000{{{n{{Bb{c}}}}Bd{n{{Ab{{Bh{{Bf{c}}}}}}}}{n{{Ab{{Bf{c}}}}}}}A`d}{{{n{{b{c}}}}}{{b{c}}}{Bjd}}{{{n{Bl}}}Bl}{{{n{{f{c}}}}}{{f{c}}}{Bjj}}{{{n{{h{c}}}}}{{h{c}}}{Bjj}}{{{n{Bn}}}Bn}{{{n{C`}}}C`}{{{n{Cb}}}Cb}{{{n{Cd}}}Cd}{{{n{Cf}}}Cf}{{{n{c}}{n{le}}}A`{}{}}00000000{{{n{{b{c}}}}{n{{b{c}}}}}Ch{Ajd}}`{{{n{e}}{n{Cf}}Cj}{{Cn{{Cl{c}}Cd}}}{AfAh}{{D`{{An{{b{c}}}}}}}}{{BdCj{n{Cd}}{n{e}}}{{Db{c}}}{AfAh}{{D`{{An{{b{c}}}}}}}}{{}{{b{c}}}{Ddd}}{{}{{f{c}}}j}{{}Cf}{Cj{{n{c}}}{}}000000000{Cj{{n{lc}}}{}}000000000{c{{Df{{b{e}}}}}DhAf}`{{{b{c}}{b{c}}}{{b{c}}}d}{{{n{{f{c}}}}}{{f{c}}}j}{CjA`}000000000{{{n{{b{c}}}}{n{{b{c}}}}}Dj{Dld}}{{{n{{b{c}}}}{n{lDn}}}E`d}{{{n{{b{c}}}}{n{lDn}}}E`{Ebd}}{{{n{Bl}}{n{lDn}}}E`}0{{{n{{f{c}}}}{n{lDn}}}E`{Ebj}}{{{n{{f{c}}}}{n{lDn}}}E`j}{{{n{{h{c}}}}{n{lDn}}}E`j}{{{n{{h{c}}}}{n{lDn}}}E`{Ebj}}{{{n{Bn}}{n{lDn}}}E`}{{{n{C`}}{n{lDn}}}E`}{{{n{Cb}}{n{lDn}}}E`}{{{n{Cd}}{n{lDn}}}E`}{{{n{Cf}}{n{lDn}}}E`}{cc{}}00{c{{f{c}}}j}1{{{h{c}}}{{f{c}}}j}22222222{ec{}{{Ef{Cj}{{Ed{c}}}}}}0{{{n{{Ab{c}}}}}c{}}0{Dj{{b{c}}}{AfAh}}{Dj{{f{c}}}j}{Eh{{b{c}}}{AfAh}}{Eh{{f{c}}}j}{Bd{{b{c}}}{AfAh}}{Bd{{f{c}}}j}{Al{{b{c}}}{AfAh}}{Al{{f{c}}}j}{Ej{{b{c}}}{AfAh}}{Ej{{f{c}}}j}{Cj{{b{c}}}{AfAh}}{Cj{{f{c}}}j}{c{{b{e}}}{}{AfAh}}{c{{f{e}}}{}j}{ce{{Ef{Cj}{{Ed{}}}}}{}}{{{n{Ab}}}{{n{c}}}{}}{{{n{lAb}}}{{n{lc}}}{}}<;:9{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{{{n{Cd}}Cj{n{{Ab{{Bh{{Bf{c}}}}}}}}}{{Bf{{Bf{c}}}}}d}{{{n{{b{c}}}}{n{le}}}A`{Ahd}El}`{{}Cj}000000000{{{n{c}}eCj}{{Cn{ee}}}{}{}}{ce{}{}}000000000{{{n{{An{c}}}}}ej{}}0`{{{n{{f{c}}}}}Djj}{{{n{{An{c}}}}Cj}ej{}}{{{n{{b{c}}}}}Dj{AfAh}}23{{{b{c}}{b{c}}}{{b{c}}}d}{{{f{c}}{f{c}}}{{f{c}}}j}{{{f{c}}c}{{f{c}}}j}{{{f{c}}{h{c}}}ej{}}{{{h{c}}{h{c}}}ej{}}{{{h{c}}c}ej{}}{{{h{c}}{f{c}}}ej{}}{{{n{l{b{c}}}}{b{c}}}A`d}{{{n{l{f{c}}}}{f{c}}}A`j}{{{n{l{f{c}}}}c}A`j}{{{b{c}}}ed{}}{{{f{c}}}{{f{c}}}j}{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{Cj{{h{c}}}j}{{DjCj}{{h{c}}}j}32{{}Ad}{{{n{{b{c}}}}{n{{b{c}}}}}{{Bh{Ch}}}{End}}{e{{b{c}}}d{{Fb{}{{F`{{b{c}}}}}}}}{e{{f{c}}}j{{Fb{}{{F`{{f{c}}}}}}}}{e{{f{c}}}j{{Fb{}{{F`{c}}}}}}{{{n{Fd}}}{{n{{Ab{c}}}}}{}}{{{n{{An{c}}}}}{{n{{Ab{e}}}}}j{}}{{{n{{b{c}}}}e}DfAfFf}{{{b{c}}{b{c}}}{{b{c}}}d}{{{f{c}}c}{{f{c}}}j}{{{f{c}}{h{c}}}ej{}}{{{f{c}}{f{c}}}{{f{c}}}j}{{{h{c}}{f{c}}}ej{}}{{{h{c}}c}ej{}}{{{h{c}}{h{c}}}ej{}}{{{n{l{b{c}}}}{b{c}}}A`d}{{{n{l{f{c}}}}c}A`j}{{{n{l{f{c}}}}{f{c}}}A`j}?>={{{n{c}}}e{}{}}00000000{{{n{c}}}Fh{}}000{{Bd{Fj{{b{c}}}}}{{Bf{{Bh{{Bf{c}}}}}}}d}{c{{Df{e}}}{}{}}0000000000000000000{{{n{{b{c}}}}}{{Bh{{b{c}}}}}{AfAh}}{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{{{n{c}}}Fl{}}000000000{ce{}{}}00000000032","D":"C`","p":[[5,"FWrap",0,305],[10,"Field",306],[6,"SymbolicExpression",0,307],[5,"SymbolicVariable",0,308],[10,"Field",309],[0,"mut"],[1,"reference"],[1,"unit"],[1,"slice"],[5,"BigUint",310],[10,"PrimeField",306],[10,"Hash",311],[10,"Ord",312],[1,"u64"],[5,"SymbolicAirBuilder",0,313],[10,"Into",314],[5,"CompiledCircuit",315],[1,"u32"],[5,"Vec",316],[6,"Option",317],[10,"Clone",318],[6,"Location",0,307],[6,"Var",0,308],[5,"Query",0,308],[5,"Public",0,308],[5,"PreprocessingInfo",0],[5,"CompileParams",0],[6,"Ordering",312],[1,"usize"],[5,"ConstraintSystemMid",315],[1,"tuple"],[10,"Air",319],[5,"Preprocessing",315],[10,"Default",320],[6,"Result",321],[10,"Deserializer",322],[1,"bool"],[10,"PartialEq",312],[5,"Formatter",323],[8,"Result",323],[10,"Debug",323],[17,"Output"],[10,"FnMut",324],[1,"u16"],[1,"u8"],[10,"Hasher",311],[10,"PartialOrd",312],[17,"Item"],[10,"Iterator",325],[10,"AirBuilderWithPublicValues",0,326],[10,"Serializer",327],[5,"String",328],[5,"RowMajorMatrix",329],[5,"TypeId",330]],"r":[[1,326],[4,305],[7,307],[12,308],[14,308],[17,313],[18,307],[19,308],[21,308]],"b":[[24,"impl-Add%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[25,"impl-Add%3CF%3E-for-SymbolicExpression%3CF%3E"],[26,"impl-Add-for-SymbolicExpression%3CF%3E"],[27,"impl-Add-for-SymbolicVariable%3CF%3E"],[28,"impl-Add%3CF%3E-for-SymbolicVariable%3CF%3E"],[29,"impl-Add%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[31,"impl-AddAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[32,"impl-AddAssign-for-SymbolicExpression%3CF%3E"],[121,"impl-Display-for-FWrap%3CF%3E"],[122,"impl-Debug-for-FWrap%3CF%3E"],[123,"impl-Display-for-Location"],[124,"impl-Debug-for-Location"],[125,"impl-Debug-for-SymbolicExpression%3CF%3E"],[126,"impl-Display-for-SymbolicExpression%3CF%3E"],[127,"impl-Display-for-SymbolicVariable%3CF%3E"],[128,"impl-Debug-for-SymbolicVariable%3CF%3E"],[137,"impl-From%3CF%3E-for-SymbolicExpression%3CF%3E"],[139,"impl-From%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[208,"impl-Mul-for-SymbolicExpression%3CF%3E"],[209,"impl-Mul%3CF%3E-for-SymbolicExpression%3CF%3E"],[210,"impl-Mul%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[211,"impl-Mul-for-SymbolicVariable%3CF%3E"],[212,"impl-Mul%3CF%3E-for-SymbolicVariable%3CF%3E"],[213,"impl-Mul%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[215,"impl-MulAssign-for-SymbolicExpression%3CF%3E"],[216,"impl-MulAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[228,"impl-Product-for-SymbolicExpression%3CF%3E"],[229,"impl-Product%3CF%3E-for-SymbolicExpression%3CF%3E"],[234,"impl-Sub%3CF%3E-for-SymbolicExpression%3CF%3E"],[235,"impl-Sub%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[236,"impl-Sub-for-SymbolicExpression%3CF%3E"],[237,"impl-Sub%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[238,"impl-Sub%3CF%3E-for-SymbolicVariable%3CF%3E"],[239,"impl-Sub-for-SymbolicVariable%3CF%3E"],[241,"impl-SubAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[242,"impl-SubAssign-for-SymbolicExpression%3CF%3E"],[244,"impl-Sum-for-SymbolicExpression%3CF%3E"],[245,"impl-Sum%3CF%3E-for-SymbolicExpression%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABkBBgABABAAFQBxAIoAAACMAAAAkwAqAMgAaQA="}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; diff --git a/search.desc/halo2_frontend/halo2_frontend-desc-0-.js b/search.desc/halo2_frontend/halo2_frontend-desc-0-.js index 7cf59eb656..d63cbe2622 100644 --- a/search.desc/halo2_frontend/halo2_frontend-desc-0-.js +++ b/search.desc/halo2_frontend/halo2_frontend-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("halo2_frontend", 0, "Traits and structs for implementing circuit components.\nTools for developing circuits.\nAn assigned cell.\nA pointer to a cell within a circuit.\nA chip implements a set of instructions that can be used …\nA type that holds the configuration for this chip, and any …\nA layout strategy within a circuit. The layouter is …\nA type that holds any general chip state that needs to be …\nThis is a “namespaced” layouter which borrows a …\nA region of the circuit in which a Chip can assign cells.\nIndex of a region in a layouter\nStarting row of a region in a layouter\nRepresents the type of the “root” of this layouter, so …\nA table layouter that can be used to assign values to a …\nA lookup table in the circuit.\nHelper trait for implementing a custom Layouter.\nA value that might exist within a circuit.\nWitness calculator. Frontend function\nReturns Value::unknown() if the value is Value::unknown(), …\nConverts from &mut Value<V> to Value<&mut V>.\nConverts from &Value<V> to Value<&V>.\nEnforces an assertion on the contained value, if known.\nObtains the inner value for assigning into the circuit.\nAssign an advice column value (witness).\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssigns a fixed value to a table cell.\nAssign a fixed value.\nAssign a region of gates to an absolute row number.\nAssign a table region to an absolute row number.\nCalculate witness at phase\nReturns the cell.\nMaps a Value<&mut V> to a Value<V> by cloning the contents …\nMaps a Value<&V> to a Value<V> by cloning the contents of …\nThe column of this cell.\nCompile a circuit. Runs configure and synthesize on the …\nThe chip holds its own configuration.\nConstrains a cell to have a constant value.\nConstrains two cells to have the same value.\nConstrains a Cell to equal an instance column’s row …\nMaps a Value<&V> to a Value<V> by copying the contents of …\nMaps a Value<&mut V> to a Value<V> by copying the contents …\nCopies the value to a given advice cell and constrains …\nCubes this field element.\nmaps from a fixed column to a pair (default value, vector …\nDoubles this field element.\nEnables a selector at the given offset.\nChecks the contained value for an error condition, if …\nEvaluates this value directly, performing an unbatched …\nEvaluates this assigned cell’s value directly, …\nImplementations of common circuit floor planners.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nTakes each element in the Iterator: if it is …\nQueries the value of the given challenge.\nGets the “root” of this assignment, bypassing the …\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the field element corresponding to this value.\nInverts this assigned value (taking the inverse of zero to …\nConstructs a known value.\nImplementations of common circuit layouters.\nProvides access to general chip state loaded at the …\nMaps a Value<V> to Value<W> by applying a function to the …\nAllows the circuit implementor to name/annotate a Column …\nEnters into a namespace.\nReturns a new SimpleTableLayouter\nCreate a new WitnessCalculator\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nIdentifies the region in which this cell resides.\nThe relative offset of this cell within its region.\nSquares this field element.\nReturns the field element corresponding to this value.\nTransposes a Value<[V; LEN]> into a [Value<V>; LEN].\nTransposes a Value<impl IntoIterator<Item = V>> into a …\nConstructs an unwitnessed value.\nUnzips a value containing a tuple of two values.\nReturns the value of the AssignedCell.\nReturns the field element value of the AssignedCell.\nZips self with another Value.\nA simple FloorPlanner that performs minimal optimizations.\nA Layouter for a single-chip circuit.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreates a new single-chip layouter.\nAssigns the circuit.\nMeasures the circuit.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConcrete column\nThe virtual column involved in a region. This includes …\nHelper trait for implementing a custom Layouter.\nThe shape of a region. For a region at a certain index, we …\nVirtual column representing a (boolean) selector\nIntermediate trait requirements for RegionLayouter when …\nHelper trait for implementing a custom Layouter.\nAssign an advice column value (witness)\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssigns a fixed value\nGet a reference to the set of columns used in a RegionShape…\nConstrains a cell to have a constant value.\nConstraint two cells to have the same value.\nEnables a selector at the given offset.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nAllows the circuit implementor to name/annotate a Column …\nCreate a new RegionShape for a region at region_index.\nGet the region_index of a RegionShape.\nGet the row_count of a RegionShape.\nA cell that has been assigned a value.\nAssigned instance value\nA cell used in an active gate was not assigned to.\nThe value of a particular cell within the circuit.\nA struct for collecting and displaying the gates within a …\nGraphical renderer for circuit layouts.\nA constraint was not satisfied for a particular row.\nA constraint was active on an unusable row, and is likely …\nThe location within the circuit at which a particular …\nA location inside a region.\nAn instance cell used in an active gate was not assigned …\nInstance Value\nA lookup input did not exist in its corresponding table.\nA test prover for debugging circuits.\nA location outside of a region.\nPadding\nA permutation did not preserve the original value of a …\nA unique poisoned cell.\nA shuffle input did not exist in its corresponding map.\nA helper type that augments a FloorPlanner with tracing …\nAn unassigned cell.\nThe reasons why a particular circuit is not satisfied.\nReturns the list of Advice Columns used within a …\nReturn the content of an advice column as assigned by the …\nPanics if the circuit being checked by this MockProver is …\nPanics if the circuit being checked by this MockProver is …\nBuilds a dot graph string representing the given circuit.\nCollects the gates from within the circuit.\nDeveloper tools for investigating the cost of a circuit.\nThe cost estimator takes high-level parameters for a …\nReturns the constraint system\nEmits this failure in pretty-printed format to stderr.\nReturns the list of Fixed Columns used within a MockProver …\nReturn the content of a fixed column as assigned by the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of Instance Columns used within a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMarks cells involved in equality constraints, in red.\nMetadata about circuits.\nPrints the queries in this circuit to a CSV grid.\nRenders the given circuit on the given drawing area.\nRuns a synthetic keygen-and-prove operation on the given …\nReturns the list of Selector Columns used within a …\nDraws red lines between equality-constrained cells.\nSets the visibility of region labels.\nReturns the usable rows\nField value on the instance cell\nReturns Ok(()) if this MockProver is satisfied, or a list …\nReturns Ok(()) if this MockProver is satisfied, or a list …\nSets the view height for this layout, as a number of rows.\nSets the view width for this layout, as a number of …\nThe offset (relative to the start of the region) at which …\nThe region in which the failure occurred.\nThe circuit row on which the failure occurred.\nThe values of the virtual cells used by this constraint.\nThe column in which this cell should be assigned.\nThe column in which this cell should be assigned.\nThe column in which this permutation is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe index of the active gate.\nThe index of the active gate.\nThe offset (relative to the start of the region) at which …\nThe offset (relative to the start of the region) at which …\nThe location at which this constraint is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the permutation is not satisfied.\nThe index of the lookup that is not satisfied. These …\nThe name of the lookup that is not satisfied.\nThe name of the lookup that is not satisfied.\nThe offset (relative to the start of the region) at which …\nThe region in which this cell should be assigned.\nThe region in which this gate was activated.\nThe absolute row at which this cell should be assigned.\nThe index of the lookup that is not satisfied. These …\nMeasures a circuit to determine its costs, and explain …\nThe marginal size of a Halo 2 proof, broken down into its …\nThe size of a Halo 2 proof, broken down into its …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the marginal proof size per instance of this …\nMeasures a circuit with parameter constant k.\nReturns the proof size for the given number of instances …\nSupported commitment schemes\nOptions to build a circuit specification to measure the …\nInner Product Argument commitment scheme\nKZG with GWC19 mutli-open strategy\nKZG with BDFG20 mutli-open strategy\nStructure holding the Lookup related data for circuit …\nHigh-level specifications of an abstract circuit.\nNumber of permutation enabled columns\nStructure holding polynomial related data for benchmarks\nStructure holding the Shuffle related data for circuit …\nAn advice column with the given rotations. May be repeated.\nNumber of advice columns.\nNumber of distinct column queries across all gates.\nA fixed column with the given rotations. May be repeated.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGiven a Plonk circuit, this function returns CostOptions\nGiven a Plonk circuit, this function returns a ModelCircuit\nMaximum degree of the custom gates.\nAn instance column with the given rotations. May be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert CostOptions to ModelCircuit. The proof sizè is …\n2^K bound on the number of rows.\nPower-of-2 bound on the number of rows in the circuit.\nA lookup over N columns with max input degree I and max …\nNumber of lookup arguments.\nMaximum degree of the circuit.\nMaximum degree of the constraint system.\nA permutation over N columns. May be repeated.\nEquality constraint enabled columns.\nNumber of distinct sets of points in the multiopening …\nRotations for the given polynomial\nA shuffle over N columns with max input degree I and max …\nNumber of shuffle arguments\nSize of the proof for the circuit\nA column with an index and type\nMetadata about a configured constraint within a circuit.\nMetadata about a configured gate within a circuit.\nMetadata about an assigned region within a circuit.\nA “virtual cell” is a PLONK cell that has been queried …\nThe type of the column.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe index of the column.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nImplementation of permutation argument.\nA value assigned to a cell within a circuit.\nA value stored as a fraction to enable batch inversion.\nA value that does not require inversion to evaluate.\nThe field element zero.\nCubes this element.\nReturns the denominator, if non-trivial.\nDoubles this element.\nEvaluates this assigned value directly, performing an …\nReturns the argument unchanged.\nCalls U::from(self).\nInverts this assigned value (taking the inverse of zero to …\nReturns true iff this element is zero.\nReturns the numerator.\nSquares this element.\nAn advice column\nThis trait allows a Circuit to direct some backend to …\nThis is a trait that circuits provide implementations for …\nA column type\nThis is a configuration object that stores things like …\nA fixed column\nA floor planning strategy for a circuit.\nThe floor planner used for this circuit. This is an …\nAn instance column\nOptional circuit configuration parameters. Requires the …\nAllows the developer to include an annotation for an …\nAssign an advice column value (witness)\nAssign a fixed value\nThe circuit is given an opportunity to describe the exact …\nThe circuit is given an opportunity to describe the exact …\nAssign two cells to have the same value\nEnables a selector at the given row.\nCreates a new region and enters into it.\nExits the current region.\nFills a fixed column starting from the given row with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nQueries the value of the given challenge.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns a reference to the parameters that should be used …\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nReturn expression from cell\nQueries the cell of an instance column at a particular …\nGiven the provided cs, synthesize the given circuit.\nGiven the provided cs, synthesize the circuit. The …\nReturns a copy of this circuit with no witness values …\nAn individual polynomial constraint.\nThis is a description of the circuit environment, such as …\nA set of polynomial constraints with a common selector.\nGate\nA “virtual cell” is a PLONK cell that has been queried …\nExposes the “virtual cells” that can be queried while …\nAllocate a new advice column at FirstPhase\nAllocate a new advice column in given phase\nReturns phase of advice columns\nReturns advice queries\nAnnotate a column.\nAnnotate an Instance column.\nAnnotate a Lookup column.\nCompute the number of blinding factors necessary to …\nReturns phase of challenges\nRequests a challenge that is usable after the given phase.\nAllocate a new complex selector that can appear anywhere …\nThis will compress selectors together depending on their …\nReturns constants\nReturns the name of the constraint at index …\nCreates a new gate.\nCompute the degree of the constraint system (the maximum …\nDoes not combine selectors and directly replaces them …\nEnables this fixed column to be used for global constant …\nEnable the ability to enforce equality over cells in this …\nAllocate a new fixed column\nReturns fixed queries\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns gates\nReturns general column annotations\nAllocate a new instance column\nReturns instance queries\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAdd a lookup argument for some input expressions and table …\nAdd a lookup argument for some input expressions and table …\nAllocates a new fixed column that can be used in a lookup …\nReturns lookup arguments\nReturns the minimum necessary rows that need to exist in …\nReturns the gate name.\nReturns number of advice columns\nReturns number of challenges\nReturns number of fixed columns\nReturns number of instance columns\nReturns number of selectors\nReturns permutation argument\nReturns the list of phases\nReturns constraints of this gate\nQuery an advice column at a relative position\nQuery an Any column at a relative position\nQuery a challenge\nQuery a fixed column at a relative position\nQuery an instance column at a relative position\nQuery a selector at the current position.\nAllocate a new (simple) selector. Simple selectors cannot …\nSets the minimum degree required by the circuit, which can …\nAdd a shuffle argument for some input expressions and …\nReturns shuffle arguments\nAllocate a new unblinded advice column at FirstPhase\nAllocate a new unblinded advice column in given phase. …\nConstructs a set of constraints that are controlled by the …\nThis is an advice (witness) column queried at a certain …\nQuery of advice column at a certain relative location\nA challenge squeezed from transcript after advice columns …\nThis is a challenge\nA column with an index and type\nThis is a constant polynomial\nLow-degree expression representing an identity that must …\nFirst phase\nThis is a fixed column queried at a certain relative …\nQuery of fixed column at a certain relative location\nThis is an instance (external) column queried at a certain …\nQuery of instance column at a certain relative location\nThis is a negated polynomial\nPhase of advice column\nThis is the product of two polynomials\nThis is a scaled polynomial\nSecond phase\nA selector, representing a fixed boolean value per row of …\nThis is a virtual selector\nThis is the sum of two polynomials\nA fixed column of a lookup table.\nThird phase\nColumn index\nColumn index\nColumn index\nColumn index\nColumn index\nColumn index\nType of this column.\nApproximate the computational complexity of this …\nReturn expression from column at the current row\nCompute the degree of this polynomial\nEnable this selector at the given offset within the given …\nEvaluate the polynomial using the provided closures to …\nEvaluate the polynomial lazily using the provided closures …\nReturn expression from selector\nReturn Expression\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIdentifier for this expression. Expressions with identical …\nIndex of this column.\nReturns index of this selector\nIndex of this challenge.\nQuery index\nQuery index\nQuery index\nReturns inner column\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs this selector “simple”? Simple selectors can only …\nReturn expression from column at the next row\nPhase of this challenge.\nReturn expression from column at the previous row\nReturn expression from column at a relative position\nMake side effects\nReturn expression from column at the specified rotation\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nSquare this expression.\nPhase of advice column\nSealed trait to help keep Phase private.\nReturns the argument unchanged.\nCalls U::from(self).\nOut of bounds index passed to a backend\nA TableColumn has not been assigned.\nThe instance sets up a copy constraint involving a column …\nThis is an error that could occur during circuit synthesis.\nCircuit synthesis requires global constants, but circuit …\nk is too small for the given circuit.\nGeneric error not covered by previous cases\nAttempt to overwrite a default value\nThis is an error that can occur during synthesis of the …\nThis is an error that could occur during table synthesis.\nAn error relating to a lookup table.\nA Table has columns of uneven lengths.\nAttempt to assign a used TableColumn\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nConstructs an Error::NotEnoughRowsAvailable.\nThe current value of k being used.\nExpressions involved in a lookup argument, with a name as …\nReturns the argument unchanged.\nReturns input of this argument\nCalls U::from(self).\nReturns name of this argument\nConstructs a new lookup argument.\nReturns table of this argument\nA permutation argument.\nReturns the argument unchanged.\nReturns columns that participate on the permutation …\nCalls U::from(self).\nExpressions involved in a shuffle argument, with a name as …\nReturns the argument unchanged.\nReturns input of this argument\nCalls U::from(self).\nReturns name of this argument\nConstructs a new shuffle argument.\nReturns table of this argument") \ No newline at end of file +searchState.loadedDescShard("halo2_frontend", 0, "Traits and structs for implementing circuit components.\nTools for developing circuits.\nAn assigned cell.\nA pointer to a cell within a circuit.\nA chip implements a set of instructions that can be used …\nA type that holds the configuration for this chip, and any …\nA layout strategy within a circuit. The layouter is …\nA type that holds any general chip state that needs to be …\nThis is a “namespaced” layouter which borrows a …\nA region of the circuit in which a Chip can assign cells.\nIndex of a region in a layouter\nStarting row of a region in a layouter\nRepresents the type of the “root” of this layouter, so …\nA table layouter that can be used to assign values to a …\nA lookup table in the circuit.\nHelper trait for implementing a custom Layouter.\nA value that might exist within a circuit.\nWitness calculator. Frontend function\nReturns Value::unknown() if the value is Value::unknown(), …\nConverts from &mut Value<V> to Value<&mut V>.\nConverts from &Value<V> to Value<&V>.\nEnforces an assertion on the contained value, if known.\nObtains the inner value for assigning into the circuit.\nAssign an advice column value (witness).\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssigns a fixed value to a table cell.\nAssign a fixed value.\nAssign a region of gates to an absolute row number.\nAssign a table region to an absolute row number.\nCalculate witness at phase\nReturns the cell.\nMaps a Value<&V> to a Value<V> by cloning the contents of …\nMaps a Value<&mut V> to a Value<V> by cloning the contents …\nThe column of this cell.\nCompile a circuit. Runs configure and synthesize on the …\nThe chip holds its own configuration.\nConstrains a cell to have a constant value.\nConstrains two cells to have the same value.\nConstrains a Cell to equal an instance column’s row …\nMaps a Value<&V> to a Value<V> by copying the contents of …\nMaps a Value<&mut V> to a Value<V> by copying the contents …\nCopies the value to a given advice cell and constrains …\nCubes this field element.\nmaps from a fixed column to a pair (default value, vector …\nDoubles this field element.\nEnables a selector at the given offset.\nChecks the contained value for an error condition, if …\nEvaluates this value directly, performing an unbatched …\nEvaluates this assigned cell’s value directly, …\nImplementations of common circuit floor planners.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nTakes each element in the Iterator: if it is …\nQueries the value of the given challenge.\nGets the “root” of this assignment, bypassing the …\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the field element corresponding to this value.\nInverts this assigned value (taking the inverse of zero to …\nConstructs a known value.\nImplementations of common circuit layouters.\nProvides access to general chip state loaded at the …\nMaps a Value<V> to Value<W> by applying a function to the …\nAllows the circuit implementor to name/annotate a Column …\nEnters into a namespace.\nReturns a new SimpleTableLayouter\nCreate a new WitnessCalculator\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nIdentifies the region in which this cell resides.\nThe relative offset of this cell within its region.\nSquares this field element.\nReturns the field element corresponding to this value.\nTransposes a Value<[V; LEN]> into a [Value<V>; LEN].\nTransposes a Value<impl IntoIterator<Item = V>> into a …\nConstructs an unwitnessed value.\nUnzips a value containing a tuple of two values.\nReturns the value of the AssignedCell.\nReturns the field element value of the AssignedCell.\nZips self with another Value.\nA simple FloorPlanner that performs minimal optimizations.\nA Layouter for a single-chip circuit.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreates a new single-chip layouter.\nAssigns the circuit.\nMeasures the circuit.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConcrete column\nThe virtual column involved in a region. This includes …\nHelper trait for implementing a custom Layouter.\nThe shape of a region. For a region at a certain index, we …\nVirtual column representing a (boolean) selector\nIntermediate trait requirements for RegionLayouter when …\nHelper trait for implementing a custom Layouter.\nAssign an advice column value (witness)\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssigns a fixed value\nGet a reference to the set of columns used in a RegionShape…\nConstrains a cell to have a constant value.\nConstraint two cells to have the same value.\nEnables a selector at the given offset.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nAllows the circuit implementor to name/annotate a Column …\nCreate a new RegionShape for a region at region_index.\nGet the region_index of a RegionShape.\nGet the row_count of a RegionShape.\nA cell that has been assigned a value.\nAssigned instance value\nA cell used in an active gate was not assigned to.\nThe value of a particular cell within the circuit.\nA struct for collecting and displaying the gates within a …\nGraphical renderer for circuit layouts.\nA constraint was not satisfied for a particular row.\nA constraint was active on an unusable row, and is likely …\nThe location within the circuit at which a particular …\nA location inside a region.\nAn instance cell used in an active gate was not assigned …\nInstance Value\nA lookup input did not exist in its corresponding table.\nA test prover for debugging circuits.\nA location outside of a region.\nPadding\nA permutation did not preserve the original value of a …\nA unique poisoned cell.\nA shuffle input did not exist in its corresponding map.\nA helper type that augments a FloorPlanner with tracing …\nAn unassigned cell.\nThe reasons why a particular circuit is not satisfied.\nReturns the list of Advice Columns used within a …\nReturn the content of an advice column as mutable\nReturn the content of an advice column as assigned by the …\nPanics if the circuit being checked by this MockProver is …\nPanics if the circuit being checked by this MockProver is …\nBuilds a dot graph string representing the given circuit.\nCollects the gates from within the circuit.\nDeveloper tools for investigating the cost of a circuit.\nThe cost estimator takes high-level parameters for a …\nReturns the constraint system\nEmits this failure in pretty-printed format to stderr.\nReturns the list of Fixed Columns used within a MockProver …\nReturn the content of a fixed column as assigned by the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of Instance Columns used within a …\nReturn the content of an instance column as mutable\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMarks cells involved in equality constraints, in red.\nMetadata about circuits.\nPrints the queries in this circuit to a CSV grid.\nRenders the given circuit on the given drawing area.\nRuns a synthetic keygen-and-prove operation on the given …\nReturns the list of Selector Columns used within a …\nDraws red lines between equality-constrained cells.\nSets the visibility of region labels.\nReturns the usable rows\nField value on the instance cell\nReturns Ok(()) if this MockProver is satisfied, or a list …\nReturns Ok(()) if this MockProver is satisfied, or a list …\nSets the view height for this layout, as a number of rows.\nSets the view width for this layout, as a number of …\nThe offset (relative to the start of the region) at which …\nThe region in which the failure occurred.\nThe circuit row on which the failure occurred.\nThe values of the virtual cells used by this constraint.\nThe column in which this cell should be assigned.\nThe column in which this cell should be assigned.\nThe column in which this permutation is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe index of the active gate.\nThe index of the active gate.\nThe offset (relative to the start of the region) at which …\nThe offset (relative to the start of the region) at which …\nThe location at which this constraint is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the permutation is not satisfied.\nThe index of the lookup that is not satisfied. These …\nThe name of the lookup that is not satisfied.\nThe name of the lookup that is not satisfied.\nThe offset (relative to the start of the region) at which …\nThe region in which this cell should be assigned.\nThe region in which this gate was activated.\nThe absolute row at which this cell should be assigned.\nThe index of the lookup that is not satisfied. These …\nMeasures a circuit to determine its costs, and explain …\nThe marginal size of a Halo 2 proof, broken down into its …\nThe size of a Halo 2 proof, broken down into its …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the marginal proof size per instance of this …\nMeasures a circuit with parameter constant k.\nReturns the proof size for the given number of instances …\nSupported commitment schemes\nOptions to build a circuit specification to measure the …\nInner Product Argument commitment scheme\nKZG with GWC19 mutli-open strategy\nKZG with BDFG20 mutli-open strategy\nStructure holding the Lookup related data for circuit …\nHigh-level specifications of an abstract circuit.\nNumber of permutation enabled columns\nStructure holding polynomial related data for benchmarks\nStructure holding the Shuffle related data for circuit …\nAn advice column with the given rotations. May be repeated.\nNumber of advice columns.\nNumber of distinct column queries across all gates.\nA fixed column with the given rotations. May be repeated.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGiven a Plonk circuit, this function returns CostOptions\nGiven a Plonk circuit, this function returns a ModelCircuit\nMaximum degree of the custom gates.\nAn instance column with the given rotations. May be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert CostOptions to ModelCircuit. The proof sizè is …\n2^K bound on the number of rows.\nPower-of-2 bound on the number of rows in the circuit.\nA lookup over N columns with max input degree I and max …\nNumber of lookup arguments.\nMaximum degree of the circuit.\nMaximum degree of the constraint system.\nA permutation over N columns. May be repeated.\nEquality constraint enabled columns.\nNumber of distinct sets of points in the multiopening …\nRotations for the given polynomial\nA shuffle over N columns with max input degree I and max …\nNumber of shuffle arguments\nSize of the proof for the circuit\nA column with an index and type\nMetadata about a configured constraint within a circuit.\nMetadata about a configured gate within a circuit.\nMetadata about an assigned region within a circuit.\nA “virtual cell” is a PLONK cell that has been queried …\nThe type of the column.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe index of the column.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nImplementation of permutation argument.\nA value assigned to a cell within a circuit.\nA value stored as a fraction to enable batch inversion.\nA value that does not require inversion to evaluate.\nThe field element zero.\nCubes this element.\nReturns the denominator, if non-trivial.\nDoubles this element.\nEvaluates this assigned value directly, performing an …\nReturns the argument unchanged.\nCalls U::from(self).\nInverts this assigned value (taking the inverse of zero to …\nReturns true iff this element is zero.\nReturns the numerator.\nSquares this element.\nAn advice column\nThis trait allows a Circuit to direct some backend to …\nThis is a trait that circuits provide implementations for …\nA column type\nThis is a configuration object that stores things like …\nA fixed column\nA floor planning strategy for a circuit.\nThe floor planner used for this circuit. This is an …\nAn instance column\nOptional circuit configuration parameters. Requires the …\nAllows the developer to include an annotation for an …\nAssign an advice column value (witness)\nAssign a fixed value\nThe circuit is given an opportunity to describe the exact …\nThe circuit is given an opportunity to describe the exact …\nAssign two cells to have the same value\nEnables a selector at the given row.\nCreates a new region and enters into it.\nExits the current region.\nFills a fixed column starting from the given row with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nQueries the value of the given challenge.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns a reference to the parameters that should be used …\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nReturn expression from cell\nQueries the cell of an instance column at a particular …\nGiven the provided cs, synthesize the given circuit.\nGiven the provided cs, synthesize the circuit. The …\nReturns a copy of this circuit with no witness values …\nAn individual polynomial constraint.\nThis is a description of the circuit environment, such as …\nA set of polynomial constraints with a common selector.\nGate\nA “virtual cell” is a PLONK cell that has been queried …\nExposes the “virtual cells” that can be queried while …\nAllocate a new advice column at FirstPhase\nAllocate a new advice column in given phase\nReturns phase of advice columns\nReturns advice queries\nAnnotate a column.\nAnnotate an Instance column.\nAnnotate a Lookup column.\nCompute the number of blinding factors necessary to …\nReturns phase of challenges\nRequests a challenge that is usable after the given phase.\nAllocate a new complex selector that can appear anywhere …\nThis will compress selectors together depending on their …\nReturns constants\nReturns the name of the constraint at index …\nCreates a new gate.\nCompute the degree of the constraint system (the maximum …\nDoes not combine selectors and directly replaces them …\nEnables this fixed column to be used for global constant …\nEnable the ability to enforce equality over cells in this …\nAllocate a new fixed column\nReturns fixed queries\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns gates\nReturns general column annotations\nAllocate a new instance column\nReturns instance queries\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAdd a lookup argument for some input expressions and table …\nAdd a lookup argument for some input expressions and table …\nAllocates a new fixed column that can be used in a lookup …\nReturns lookup arguments\nReturns the minimum necessary rows that need to exist in …\nReturns the gate name.\nReturns number of advice columns\nReturns number of challenges\nReturns number of fixed columns\nReturns number of instance columns\nReturns number of selectors\nReturns permutation argument\nReturns the list of phases\nReturns constraints of this gate\nQuery an advice column at a relative position\nQuery an Any column at a relative position\nQuery a challenge\nQuery a fixed column at a relative position\nQuery an instance column at a relative position\nQuery a selector at the current position.\nAllocate a new (simple) selector. Simple selectors cannot …\nSets the minimum degree required by the circuit, which can …\nAdd a shuffle argument for some input expressions and …\nReturns shuffle arguments\nAllocate a new unblinded advice column at FirstPhase\nAllocate a new unblinded advice column in given phase. …\nConstructs a set of constraints that are controlled by the …\nThis is an advice (witness) column queried at a certain …\nQuery of advice column at a certain relative location\nA challenge squeezed from transcript after advice columns …\nThis is a challenge\nA column with an index and type\nThis is a constant polynomial\nLow-degree expression representing an identity that must …\nFirst phase\nThis is a fixed column queried at a certain relative …\nQuery of fixed column at a certain relative location\nThis is an instance (external) column queried at a certain …\nQuery of instance column at a certain relative location\nThis is a negated polynomial\nPhase of advice column\nThis is the product of two polynomials\nThis is a scaled polynomial\nSecond phase\nA selector, representing a fixed boolean value per row of …\nThis is a virtual selector\nThis is the sum of two polynomials\nA fixed column of a lookup table.\nThird phase\nColumn index\nColumn index\nColumn index\nColumn index\nColumn index\nColumn index\nType of this column.\nApproximate the computational complexity of this …\nReturn expression from column at the current row\nCompute the degree of this polynomial\nEnable this selector at the given offset within the given …\nEvaluate the polynomial using the provided closures to …\nEvaluate the polynomial lazily using the provided closures …\nReturn expression from selector\nReturn Expression\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIdentifier for this expression. Expressions with identical …\nIndex of this column.\nReturns index of this selector\nIndex of this challenge.\nQuery index\nQuery index\nQuery index\nReturns inner column\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIs this selector “simple”? Simple selectors can only …\nReturn expression from column at the next row\nPhase of this challenge.\nReturn expression from column at the previous row\nReturn expression from column at a relative position\nMake side effects\nReturn expression from column at the specified rotation\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nRotation of this query\nSquare this expression.\nPhase of advice column\nSealed trait to help keep Phase private.\nReturns the argument unchanged.\nCalls U::from(self).\nOut of bounds index passed to a backend\nA TableColumn has not been assigned.\nThe instance sets up a copy constraint involving a column …\nThis is an error that could occur during circuit synthesis.\nCircuit synthesis requires global constants, but circuit …\nk is too small for the given circuit.\nGeneric error not covered by previous cases\nAttempt to overwrite a default value\nThis is an error that can occur during synthesis of the …\nThis is an error that could occur during table synthesis.\nAn error relating to a lookup table.\nA Table has columns of uneven lengths.\nAttempt to assign a used TableColumn\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nConstructs an Error::NotEnoughRowsAvailable.\nThe current value of k being used.\nExpressions involved in a lookup argument, with a name as …\nReturns the argument unchanged.\nReturns input of this argument\nCalls U::from(self).\nReturns name of this argument\nConstructs a new lookup argument.\nReturns table of this argument\nA permutation argument.\nReturns the argument unchanged.\nReturns columns that participate on the permutation …\nCalls U::from(self).\nExpressions involved in a shuffle argument, with a name as …\nReturns the argument unchanged.\nReturns input of this argument\nCalls U::from(self).\nReturns name of this argument\nConstructs a new shuffle argument.\nReturns table of this argument") \ No newline at end of file diff --git a/search.desc/halo2_proofs/halo2_proofs-desc-0-.js b/search.desc/halo2_proofs/halo2_proofs-desc-0-.js index 0b910974a2..d6691b0584 100644 --- a/search.desc/halo2_proofs/halo2_proofs-desc-0-.js +++ b/search.desc/halo2_proofs/halo2_proofs-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("halo2_proofs", 0, "Legacy halo2 API that wraps the frontend-backend split …\nCurve elements are serialized in compressed form. Field …\nCurve elements are serialized in uncompressed form. Field …\nSerialization is the same as RawBytes, but no checks are …\nThis enum specifies how various types are serialized and …\nThis module provides common utilities, traits and …\nTraits and structs for implementing circuit components.\nTools for developing circuits.\nReturns the argument unchanged.\nCalls U::from(self).\nThis module provides an implementation of a variant of …\nContains utilities for performing arithmetic over …\nThis module contains utilities and traits for dealing with …\nThe affine version of the curve\nThe base field over which this elliptic curve is …\nThe base field over which this elliptic curve is …\nCURVE_ID used for hash-to-curve.\nThis trait is the affine counterpart to Curve and is used …\nThis trait is a common interface for dealing with elements …\nThe projective form of the curve\nThis trait represents an element of a field.\nThe one element of the field, the multiplicative identity.\nThe scalar field of this elliptic curve.\nThe scalar field of this elliptic curve.\nThe zero element of the field, the additive identity.\nReturns the curve constant a.\nReturns the curve constant $a$.\nReturns the curve constant b.\nReturns the curve constant $b$.\nGets the coordinates of this point.\nCubes this element.\nDoubles this element.\nApply the curve endomorphism by multiplying the …\nObtains a point given $(x, y)$, failing if it is not on the\nRequests a hasher that accepts messages and returns …\nComputes the multiplicative inverse of this element, …\nReturns whether or not this element is on the curve; should\nReturns whether or not this element is on the curve; should\nReturns true iff this element is zero.\nReturns true iff this element is zero.\nReturn the Jacobian coordinates of this point.\nObtains a point given Jacobian coordinates $X : Y : Z$, …\nThis utility function will parallelize an operation that …\nExponentiates self by exp, where exp is a little-endian …\nExponentiates self by exp, where exp is a little-endian …\nReturns an element chosen uniformly at random using a …\nReturns the square root of the field element, if it is …\nEquivalent to Self::sqrt_ratio(self, one()).\nComputes:\nSquares this element.\nAn assigned cell.\nA pointer to a cell within a circuit.\nA chip implements a set of instructions that can be used …\nA type that holds the configuration for this chip, and any …\nA layout strategy within a circuit. The layouter is …\nA type that holds any general chip state that needs to be …\nThis is a “namespaced” layouter which borrows a …\nA region of the circuit in which a Chip can assign cells.\nIndex of a region in a layouter\nRepresents the type of the “root” of this layouter, so …\nA simple FloorPlanner that performs minimal optimizations.\nA lookup table in the circuit.\nA value that might exist within a circuit.\nReturns Value::unknown() if the value is Value::unknown(), …\nConverts from &mut Value<V> to Value<&mut V>.\nConverts from &Value<V> to Value<&V>.\nEnforces an assertion on the contained value, if known.\nObtains the inner value for assigning into the circuit.\nAssign an advice column value (witness).\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssign a fixed value.\nAssign a region of gates to an absolute row number.\nAssign a table region to an absolute row number.\nReturns the cell.\nMaps a Value<&mut V> to a Value<V> by cloning the contents …\nMaps a Value<&V> to a Value<V> by cloning the contents of …\nThe column of this cell.\nThe chip holds its own configuration.\nConstrains a cell to have a constant value.\nConstrains two cells to have the same value.\nConstrains a Cell to equal an instance column’s row …\nMaps a Value<&V> to a Value<V> by copying the contents of …\nMaps a Value<&mut V> to a Value<V> by copying the contents …\nCopies the value to a given advice cell and constrains …\nCubes this field element.\nDoubles this field element.\nEnables a selector at the given offset.\nChecks the contained value for an error condition, if …\nEvaluates this value directly, performing an unbatched …\nEvaluates this assigned cell’s value directly, …\nImplementations of common circuit floor planners.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nTakes each element in the Iterator: if it is …\nQueries the value of the given challenge.\nGets the “root” of this assignment, bypassing the …\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the field element corresponding to this value.\nInverts this assigned value (taking the inverse of zero to …\nConstructs a known value.\nProvides access to general chip state loaded at the …\nMaps a Value<V> to Value<W> by applying a function to the …\nAllows the circuit implementor to name/annotate a Column …\nEnters into a namespace.\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nIdentifies the region in which this cell resides.\nThe relative offset of this cell within its region.\nSquares this field element.\nReturns the field element corresponding to this value.\nTransposes a Value<[V; LEN]> into a [Value<V>; LEN].\nTransposes a Value<impl IntoIterator<Item = V>> into a …\nConstructs an unwitnessed value.\nUnzips a value containing a tuple of two values.\nReturns the value of the AssignedCell.\nReturns the field element value of the AssignedCell.\nZips self with another Value.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA simple FloorPlanner that performs minimal optimizations.\nA Layouter for a single-chip circuit.\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new single-chip layouter.\nAssigns the circuit.\nMeasures the circuit.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA cell used in an active gate was not assigned to.\nGraphical renderer for circuit layouts.\nA constraint was not satisfied for a particular row.\nA constraint was active on an unusable row, and is likely …\nThe location within the circuit at which a particular …\nA location inside a region.\nAn instance cell used in an active gate was not assigned …\nA lookup input did not exist in its corresponding table.\nA test prover for debugging circuits.\nA location outside of a region.\nA permutation did not preserve the original value of a …\nA shuffle input did not exist in its corresponding map.\nThe reasons why a particular circuit is not satisfied.\nReturns the list of Advice Columns used within a …\nReturn the content of an advice column as assigned by the …\nPanics if the circuit being checked by this MockProver is …\nPanics if the circuit being checked by this MockProver is …\nBuilds a dot graph string representing the given circuit.\nThe cost estimator takes high-level parameters for a …\nReturns the constraint system\nEmits this failure in pretty-printed format to stderr.\nReturns the list of Fixed Columns used within a MockProver …\nReturn the content of a fixed column as assigned by the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of Instance Columns used within a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMarks cells involved in equality constraints, in red.\nMetadata about circuits.\nRenders the given circuit on the given drawing area.\nRuns a synthetic keygen-and-prove operation on the given …\nReturns the list of Selector Columns used within a …\nDraws red lines between equality-constrained cells.\nSets the visibility of region labels.\nReturns the usable rows\nReturns Ok(()) if this MockProver is satisfied, or a list …\nReturns Ok(()) if this MockProver is satisfied, or a list …\nSets the view height for this layout, as a number of rows.\nSets the view width for this layout, as a number of …\nThe offset (relative to the start of the region) at which …\nThe region in which the failure occurred.\nThe circuit row on which the failure occurred.\nThe values of the virtual cells used by this constraint.\nThe column in which this cell should be assigned.\nThe column in which this cell should be assigned.\nThe column in which this permutation is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe index of the active gate.\nThe index of the active gate.\nThe offset (relative to the start of the region) at which …\nThe offset (relative to the start of the region) at which …\nThe location at which this constraint is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the permutation is not satisfied.\nThe index of the lookup that is not satisfied. These …\nThe name of the lookup that is not satisfied.\nThe name of the lookup that is not satisfied.\nThe offset (relative to the start of the region) at which …\nThe region in which this cell should be assigned.\nThe region in which this gate was activated.\nThe absolute row at which this cell should be assigned.\nThe index of the lookup that is not satisfied. These …\nSupported commitment schemes\nOptions to build a circuit specification to measure the …\nInner Product Argument commitment scheme\nKZG with GWC19 mutli-open strategy\nKZG with BDFG20 mutli-open strategy\nStructure holding the Lookup related data for circuit …\nHigh-level specifications of an abstract circuit.\nNumber of permutation enabled columns\nStructure holding polynomial related data for benchmarks\nStructure holding the Shuffle related data for circuit …\nAn advice column with the given rotations. May be repeated.\nNumber of advice columns.\nNumber of distinct column queries across all gates.\nA fixed column with the given rotations. May be repeated.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGiven a Plonk circuit, this function returns CostOptions\nGiven a Plonk circuit, this function returns a ModelCircuit\nMaximum degree of the custom gates.\nAn instance column with the given rotations. May be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert CostOptions to ModelCircuit. The proof sizè is …\n2^K bound on the number of rows.\nPower-of-2 bound on the number of rows in the circuit.\nA lookup over N columns with max input degree I and max …\nNumber of lookup arguments.\nMaximum degree of the circuit.\nMaximum degree of the constraint system.\nA permutation over N columns. May be repeated.\nEquality constraint enabled columns.\nNumber of distinct sets of points in the multiopening …\nRotations for the given polynomial\nA shuffle over N columns with max input degree I and max …\nNumber of shuffle arguments\nSize of the proof for the circuit\nA column with an index and type\nMetadata about a configured constraint within a circuit.\nMetadata about a configured gate within a circuit.\nMetadata about an assigned region within a circuit.\nA “virtual cell” is a PLONK cell that has been queried …\nThe type of the column.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe index of the column.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAn advice column\nAn Advice variant\nThis is an advice (witness) column queried at a certain …\nAn enum over the Advice, Fixed, Instance structs\nA value assigned to a cell within a circuit.\nThis trait allows a Circuit to direct some backend to …\nBackend error case\nOut of bounds index passed to a backend\nOut of bounds index passed to a backend\nA challenge squeezed from transcript after advice columns …\nThis is a challenge\nThis is a trait that circuits provide implementations for …\nA column with an index and type\nThe instance sets up a copy constraint involving a column …\nThe instance sets up a copy constraint involving a column …\nA column type\nThis is a configuration object that stores things like …\nThis is a constant polynomial\nThis is a description of the circuit environment, such as …\nThe constraint system is not satisfied.\nThis is a description of the circuit environment, such as …\nA set of polynomial constraints with a common selector.\nThis is an error that could occur during proving or …\nThis is an error that could occur during proving.\nThis is an error that could occur during circuit synthesis.\nLow-degree expression representing an identity that must …\nFirst phase\nA fixed column\nA Fixed variant\nThis is a fixed column queried at a certain relative …\nQuery of fixed column at a certain relative location\nA floor planning strategy for a circuit.\nThe floor planner used for this circuit. This is an …\nFrontend error case\nAn instance column\nAn Instance variant\nThis is an instance (external) column queried at a certain …\nInstance provided exceeds number of available rows\nThe provided instances do not match the circuit parameters.\nThis is a negated polynomial\nCircuit synthesis requires global constants, but circuit …\nk is too small for the given circuit.\nk is too small for the given circuit.\nOpening error\nGeneric error not covered by previous cases\nGeneric error not covered by previous cases\nOptional circuit configuration parameters. Requires the …\nPhase of advice column\nThis is the product of two polynomials\nThis is a proving key which allows for the creation of …\nA value stored as a fraction to enable batch inversion.\nThis is a scaled polynomial\nSecond phase\nA selector, representing a fixed boolean value per row of …\nThis is a virtual selector\nThis is the sum of two polynomials\nThis is an error that can occur during synthesis of the …\nA fixed column of a lookup table.\nAn error relating to a lookup table.\nThird phase\nTranscript error\nA value that does not require inversion to evaluate.\nThis is a verifying key which allows for the verification …\nExposes the “virtual cells” that can be queried while …\nThe field element zero.\nAllocate a new advice column at FirstPhase\nAllocate a new advice column in given phase\nReturns phase of advice columns\nContains the phase for each advice column. Should have …\nReturns advice queries\nAllows the developer to include an annotation for an …\nAnnotate a column.\nAnnotate an Instance column.\nAnnotate a Lookup column.\nAssign an advice column value (witness)\nAssign a fixed value\nCompute the number of blinding factors necessary to …\nReturns phase of challenges\nContains the phase for each challenge. Should have same …\nRequests a challenge that is usable after the given phase.\nColumn index\nColumn index\nType of this column.\nAllocate a new complex selector that can appear anywhere …\nApproximate the computational complexity of this …\nThis will compress selectors together depending on their …\nThe circuit is given an opportunity to describe the exact …\nThe circuit is given an opportunity to describe the exact …\nReturns constants\nAssign two cells to have the same value\nCreates a new gate.\nThis creates a proof for the provided circuit when given …\nThis creates a proof for the provided circuit when given …\nCubes this element.\nReturn expression from column at the current row\nCompute the degree of the constraint system (the maximum …\nCompute the degree of this polynomial\nReturns the denominator, if non-trivial.\nDoes not combine selectors and directly replaces them …\nDoubles this element.\nEnable this selector at the given offset within the given …\nEnables this fixed column to be used for global constant …\nEnable the ability to enforce equality over cells in this …\nEnables a selector at the given row.\nCreates a new region and enters into it.\nEvaluates this assigned value directly, performing an …\nEvaluate the polynomial using the provided closures to …\nEvaluate the polynomial lazily using the provided closures …\nExits the current region.\nReturn expression from selector\nReturn Expression\nFills a fixed column starting from the given row with …\nAllocate a new fixed column\nReturns commitments of fixed polynomials\nReturns fixed queries\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReads a verification key from a slice of bytes using …\nReads a proving key from a slice of bytes using Self::read.\nReturns gates\nReturns general column annotations\nQueries the value of the given challenge.\nGet the underlying EvaluationDomain.\nGet the underlying VerifyingKey.\nHashes a verification key into a transcript.\nIdentifier for this expression. Expressions with identical …\nIndex of this column.\nReturns index of this selector\nIndex of this challenge.\nQuery index\nReturns inner column\nAllocate a new instance column\nReturns instance queries\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nInverts this assigned value (taking the inverse of zero to …\nIs this selector “simple”? Simple selectors can only …\nReturns true iff this element is zero.\nGenerate a ProvingKey from a VerifyingKey and an instance …\nGenerate a ProvingKey from an instance of Circuit.\nGenerate a VerifyingKey from an instance of Circuit. By …\nGenerate a VerifyingKey from an instance of Circuit.\nAdd a lookup argument for some input expressions and table …\nAdd a lookup argument for some input expressions and table …\nAllocates a new fixed column that can be used in a lookup …\nReturns lookup arguments\nReturns the minimum necessary rows that need to exist in …\nReturn expression from column at the next row\nConstructs an Error::NotEnoughRowsAvailable.\nConstructs an Error::NotEnoughRowsAvailable.\nReturns number of advice columns\nReturns number of challenges\nReturns number of fixed columns\nReturns number of instance columns\nReturns number of selectors\nReturns the numerator.\nReturns a reference to the parameters that should be used …\nReturns permutation argument\nPhase of this challenge.\nReturns the number of phases\nReturns the list of phases\nObtains a pinned representation of this verification key …\nReads a proving key from a buffer. Does so by reading …\nExits out of the existing namespace.\nReturn expression from column at the previous row\nCreates a new (sub)namespace and enters into it.\nQuery an advice column at a relative position\nQuery an Any column at a relative position\nReturn expression from cell\nReturn expression from column at a relative position\nMake side effects\nQuery a challenge\nQuery a fixed column at a relative position\nQueries the cell of an instance column at a particular …\nQuery an instance column at a relative position\nQuery a selector at the current position.\nReads a verification key from a buffer.\nReads a proving key from a buffer. Does so by reading …\nReturn expression from column at the specified rotation\nRotation of this query\nRotation of this query\nAllocate a new (simple) selector. Simple selectors cannot …\nSets the minimum degree required by the circuit, which can …\nAdd a shuffle argument for some input expressions and …\nReturns shuffle arguments\nSquares this element.\nSquare this expression.\nGiven the provided cs, synthesize the given circuit.\nGiven the provided cs, synthesize the circuit. The …\nWrites a verifying key to a vector of bytes using …\nWrites a proving key to a vector of bytes using Self::write…\nReturns representative of this VerifyingKey in transcripts\nAllocate a new unblinded advice column at FirstPhase\nAllocate a new unblinded advice column in given phase. …\nContains the index of each advice column that is left …\nReturns a boolean indicating whether or not the proof is …\nReads a verification key from a buffer.\nConstructs a set of constraints that are controlled by the …\nReturns a copy of this circuit with no witness values …\nWrites a verifying key to a buffer.\nWrites a proving key to a buffer.\nThe current value of k being used.\nThe current value of k being used.\nThis structure contains precomputed constants and other …\nThe output type of this verification strategy after …\nDescribes the relative rotation of a vector. Negative …\nTrait representing a strategy for verifying Halo 2 proofs.\nObtains a polynomial in coefficient form when given a …\nThis takes us from an n-length coefficient vector into a …\nGeneric commitment scheme structures\nReturns a constant polynomial in the extended Lagrange …\nReturns a constant polynomial in the Lagrange coefficient …\nThe current location in the evaluation domain\nThis divides the polynomial (in the extended domain) by …\nReturns an empty (zero) polynomial in the coefficient basis\nReturns an empty (zero) polynomial in the extended …\nReturns an empty (zero) polynomial in the Lagrange …\nGet the size of the extended domain\nGet the size of the extended domain\nThis takes us from the extended evaluation domain and gets …\nFinalizes the batch and checks its validity.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the generator of the extended domain’s …\nGet $\\omega$, the generator of the $2^k$ order …\nGet $\\omega^{-1}$, the inverse of the generator of the …\nGets the quotient polynomial’s degree (as a multiple of …\nCalls U::from(self).\nCalls U::from(self).\nInner product argument commitment scheme\nGet the size of the domain\nKZG commitment scheme\nComputes evaluations (at the point x, where xn = x^n) of …\nObtains a polynomial in Lagrange form when given a vector …\nThis takes us from an n-length vector into the coefficient …\nCreates new verification strategy instance\nThis constructs a new evaluation domain object based on …\nThe next location in the evaluation domain\nObtain a pinned version of this evaluation domain; a …\nThe previous location in the evaluation domain\nObtains an MSM from the verifier strategy and yields back …\nRotate the extended domain polynomial over the original …\nMultiplies a value by some power of $\\omega$, essentially …\nWrapper type around a blinding factor.\nCan commit to instance or not.\nDefines components of a commitment scheme.\nElliptic curve used to commit the application and witnesses\nUnfinalized verification result. This is returned in …\nMultiscalar multiplication engine\nMultiscalar multiplication engine\nAccumulator for compressed verification\nCommon for Verifier and Prover.\nParameters for circuit synthesis and prover parameters.\nConstant prover parameters\nVerifier specific functionality with circuit constraints\nConstant verifier parameters\nCommon multi-open prover interface for various commitment …\nQuery instance or not\nQuery instance or not\nApplication field of this commitment scheme\nCommon multi-open verifier interface for various …\nAdd another multiexp into this one\nAdd arbitrary term (the scalar and the point)\nReturn base points\nPerform multiexp and check that it results in zero\nThis computes a commitment to a polynomial described by …\nThis commits to a polynomial using its evaluations over …\nCreate a multi-opening proof\nCreate a multi-opening proof\nDownsize Params with smaller k.\nGenerates an empty multiscalar multiplication struct using …\nPerform multiexp and return the result\nReturns the argument unchanged.\nCalls U::from(self).\nLogarithmic size of the circuit\nSize of the circuit\nReturns new instance of parameters\nCreates new prover instance\nCreates new verifier instance\nGiven rng creates new blinding scalar\nWrapper for parameter generator\nReads params from a buffer.\nWrapper for parameter reader\nScalars\nScale all scalars in the MSM by some scaling factor\nProcess the proof and return unfinished result named Guard\nWrites params to a buffer.\nThis module contains an implementation of the polynomial …\nMultiscalar multiplication engines\nIPA multi-open scheme This module contains an optimisation …\nStrategies used with KZG scheme\nConcrete IPA commitment scheme\nPublic parameters for IPA commitment scheme\nVerifier parameters\nThis computes a commitment to a polynomial described by …\nThis commits to a polynomial using its evaluations over …\nCreate a polynomial commitment opening proof for the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nInitializes parameters for the curve, given a random …\nReads params from a buffer.\nChecks to see if the proof represented within transcript …\nWrites params to a buffer.\nA multiscalar multiplication in the polynomial commitment …\nAdd a value to the first entry of g_scalars.\nAdd another multiexp into this one\nAdd another multiexp into this one\nAdd a vector of scalars to g_scalars. This function will …\nAdd to u_scalar\nAdd to w_scalar\nReturns the argument unchanged.\nCalls U::from(self).\nGiven verifier parameters Creates an empty multi scalar …\nIPA multi-open prover\nIPA multi-open verifier\nCreate a multi-opening proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAn accumulator instance consisting of an evaluation claim …\nA verifier that checks multiple proofs in a batch.\nWrapper for verification accumulator\nA verifier that checks single proof\nComputes G = ⟨s, params.g⟩\nFinalizes the batch and checks its validity.\nFinalizes the batch and checks its validity.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe claimed output of the linear-time polycommit opening …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA vector of challenges u_0, …, u_{k - 1} sampled by the …\nLets caller supply the challenges and obtain an MSM with …\nLets caller supply the purported G point and simply appends\nKZG commitment scheme\nMultiscalar multiplication engines\nKZG multi-open scheme\nStrategies used with KZG scheme\nUmbrella commitment scheme construction for all KZG …\nThese are the public parameters for the polynomial …\nParameters KZG-based proof verification:\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nInitializes parameters for the curve through existing …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReads params from a buffer.\nReads params from a buffer.\nReads params from a buffer.\nInitializes parameters for the curve, draws toxic secret …\nWrites params to a buffer.\nWrites params to a buffer.\nWrites parameters to buffer\nTwo channel MSM accumulator\nA multiscalar multiplication in the polynomial commitment …\nAdd another multiexp into this one\nPerforms final pairing check with given verifier params …\nPrepares all scalars in the MSM to linear combination\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate an empty MSM instance\nCreate a new two channel MSM accumulator instance\nScale all scalars in the MSM by some scaling factor\nConcrete KZG prover with GWC variant\nConcrete KZG prover with SHPLONK variant\nConcrete KZG verifier with GWC variant\nConcrete KZG multiopen verifier with SHPLONK variant\nCreate a multi-opening proof\nCreate a multi-opening proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGiven parameters creates new prover instance\nVerify a multi-opening proof\nA verifier that checks multiple proofs in a batch\nWrapper for linear verification accumulator\nA verifier that checks a single proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs an empty batch verifier\nConstructs an empty batch verifier\nConstructs and initialized new batch verifier\nWe will replace BLAKE2b with an algebraic hash function in …\nWe will replace BLAKE2b with an algebraic hash function in …\nA 255-bit challenge.\nEncodedChallenge<C> defines a challenge encoding with a …\nThe Input type used to derive the challenge encoding. For …\nGeneric transcript view (from either the prover or verifier…\nTranscript view from the perspective of a verifier that …\nInitializes transcript at verifier side.\nTranscript view from the perspective of a prover that has …\nManages beginning and finishing of transcript pipeline.\nCast an encoded challenge as a typed ChallengeScalar.\nWriting the point to the transcript without writing it to …\nWriting the scalar to the transcript without writing it to …\nConclude the interaction and return the output buffer …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a scalar field element from an encoded challenge.\nInitialize a transcript given an input buffer.\nInitialize a transcript given an output buffer.\nInitialize a transcript given an input buffer.\nInitialize a transcript given an output buffer.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet an encoded challenge from a given input challenge.\nRead a curve point from the prover.\nRead a curve scalar from the prover.\nSqueeze an encoded verifier challenge from the transcript.\nSqueeze a typed challenge (in the scalar field) from the …\nWrite a curve point to the proof and the transcript.\nWrite a scalar to the proof and the transcript.") \ No newline at end of file +searchState.loadedDescShard("halo2_proofs", 0, "Legacy halo2 API that wraps the frontend-backend split …\nCurve elements are serialized in compressed form. Field …\nCurve elements are serialized in uncompressed form. Field …\nSerialization is the same as RawBytes, but no checks are …\nThis enum specifies how various types are serialized and …\nThis module provides common utilities, traits and …\nTraits and structs for implementing circuit components.\nTools for developing circuits.\nReturns the argument unchanged.\nCalls U::from(self).\nThis module provides an implementation of a variant of …\nContains utilities for performing arithmetic over …\nThis module contains utilities and traits for dealing with …\nThe affine version of the curve\nThe base field over which this elliptic curve is …\nThe base field over which this elliptic curve is …\nCURVE_ID used for hash-to-curve.\nThis trait is the affine counterpart to Curve and is used …\nThis trait is a common interface for dealing with elements …\nThe projective form of the curve\nThis trait represents an element of a field.\nThe one element of the field, the multiplicative identity.\nThe scalar field of this elliptic curve.\nThe scalar field of this elliptic curve.\nThe zero element of the field, the additive identity.\nReturns the curve constant a.\nReturns the curve constant $a$.\nReturns the curve constant b.\nReturns the curve constant $b$.\nGets the coordinates of this point.\nCubes this element.\nDoubles this element.\nApply the curve endomorphism by multiplying the …\nObtains a point given $(x, y)$, failing if it is not on the\nRequests a hasher that accepts messages and returns …\nComputes the multiplicative inverse of this element, …\nReturns whether or not this element is on the curve; should\nReturns whether or not this element is on the curve; should\nReturns true iff this element is zero.\nReturns true iff this element is zero.\nReturn the Jacobian coordinates of this point.\nObtains a point given Jacobian coordinates $X : Y : Z$, …\nThis utility function will parallelize an operation that …\nExponentiates self by exp, where exp is a little-endian …\nExponentiates self by exp, where exp is a little-endian …\nReturns an element chosen uniformly at random using a …\nReturns the square root of the field element, if it is …\nEquivalent to Self::sqrt_ratio(self, one()).\nComputes:\nSquares this element.\nAn assigned cell.\nA pointer to a cell within a circuit.\nA chip implements a set of instructions that can be used …\nA type that holds the configuration for this chip, and any …\nA layout strategy within a circuit. The layouter is …\nA type that holds any general chip state that needs to be …\nThis is a “namespaced” layouter which borrows a …\nA region of the circuit in which a Chip can assign cells.\nIndex of a region in a layouter\nRepresents the type of the “root” of this layouter, so …\nA simple FloorPlanner that performs minimal optimizations.\nA lookup table in the circuit.\nA value that might exist within a circuit.\nReturns Value::unknown() if the value is Value::unknown(), …\nConverts from &mut Value<V> to Value<&mut V>.\nConverts from &Value<V> to Value<&V>.\nEnforces an assertion on the contained value, if known.\nObtains the inner value for assigning into the circuit.\nAssign an advice column value (witness).\nAssigns a constant value to the column advice at offset …\nAssign the value of the instance column’s cell at …\nAssigns a fixed value to a table cell.\nAssign a fixed value.\nAssign a region of gates to an absolute row number.\nAssign a table region to an absolute row number.\nReturns the cell.\nMaps a Value<&V> to a Value<V> by cloning the contents of …\nMaps a Value<&mut V> to a Value<V> by cloning the contents …\nThe column of this cell.\nThe chip holds its own configuration.\nConstrains a cell to have a constant value.\nConstrains two cells to have the same value.\nConstrains a Cell to equal an instance column’s row …\nMaps a Value<&mut V> to a Value<V> by copying the contents …\nMaps a Value<&V> to a Value<V> by copying the contents of …\nCopies the value to a given advice cell and constrains …\nCubes this field element.\nDoubles this field element.\nEnables a selector at the given offset.\nChecks the contained value for an error condition, if …\nEvaluates this value directly, performing an unbatched …\nEvaluates this assigned cell’s value directly, …\nImplementations of common circuit floor planners.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nTakes each element in the Iterator: if it is …\nQueries the value of the given challenge.\nGets the “root” of this assignment, bypassing the …\nReturns the value of the instance column’s cell at …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the field element corresponding to this value.\nInverts this assigned value (taking the inverse of zero to …\nConstructs a known value.\nProvides access to general chip state loaded at the …\nMaps a Value<V> to Value<W> by applying a function to the …\nAllows the circuit implementor to name/annotate a Column …\nEnters into a namespace.\nExits out of the existing namespace.\nCreates a new (sub)namespace and enters into it.\nIdentifies the region in which this cell resides.\nThe relative offset of this cell within its region.\nSquares this field element.\nReturns the field element corresponding to this value.\nTransposes a Value<[V; LEN]> into a [Value<V>; LEN].\nTransposes a Value<impl IntoIterator<Item = V>> into a …\nConstructs an unwitnessed value.\nUnzips a value containing a tuple of two values.\nReturns the value of the AssignedCell.\nReturns the field element value of the AssignedCell.\nZips self with another Value.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA simple FloorPlanner that performs minimal optimizations.\nA Layouter for a single-chip circuit.\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new single-chip layouter.\nAssigns the circuit.\nMeasures the circuit.\nThe version 1 FloorPlanner provided by halo2.\nA single pass of the V1 layouter.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA cell that has been assigned a value.\nAssigned instance value\nA cell used in an active gate was not assigned to.\nThe value of a particular cell within the circuit.\nGraphical renderer for circuit layouts.\nA constraint was not satisfied for a particular row.\nA constraint was active on an unusable row, and is likely …\nThe location within the circuit at which a particular …\nA location inside a region.\nAn instance cell used in an active gate was not assigned …\nInstance Value\nA lookup input did not exist in its corresponding table.\nA test prover for debugging circuits.\nA location outside of a region.\nPadding\nA permutation did not preserve the original value of a …\nA unique poisoned cell.\nA shuffle input did not exist in its corresponding map.\nAn unassigned cell.\nThe reasons why a particular circuit is not satisfied.\nReturns the list of Advice Columns used within a …\nReturn the content of an advice column as mutable\nReturn the content of an advice column as assigned by the …\nPanics if the circuit being checked by this MockProver is …\nPanics if the circuit being checked by this MockProver is …\nBuilds a dot graph string representing the given circuit.\nThe cost estimator takes high-level parameters for a …\nReturns the constraint system\nEmits this failure in pretty-printed format to stderr.\nReturns the list of Fixed Columns used within a MockProver …\nReturn the content of a fixed column as assigned by the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of Instance Columns used within a …\nReturn the content of an instance column as mutable\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMarks cells involved in equality constraints, in red.\nMetadata about circuits.\nRenders the given circuit on the given drawing area.\nRuns a synthetic keygen-and-prove operation on the given …\nReturns the list of Selector Columns used within a …\nDraws red lines between equality-constrained cells.\nSets the visibility of region labels.\nReturns the usable rows\nField value on the instance cell\nReturns Ok(()) if this MockProver is satisfied, or a list …\nReturns Ok(()) if this MockProver is satisfied, or a list …\nSets the view height for this layout, as a number of rows.\nSets the view width for this layout, as a number of …\nThe offset (relative to the start of the region) at which …\nThe region in which the failure occurred.\nThe circuit row on which the failure occurred.\nThe values of the virtual cells used by this constraint.\nThe column in which this cell should be assigned.\nThe column in which this cell should be assigned.\nThe column in which this permutation is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe polynomial constraint that is not satisfied.\nThe index of the active gate.\nThe index of the active gate.\nThe offset (relative to the start of the region) at which …\nThe offset (relative to the start of the region) at which …\nThe location at which this constraint is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the lookup is not satisfied.\nThe location at which the permutation is not satisfied.\nThe index of the lookup that is not satisfied. These …\nThe name of the lookup that is not satisfied.\nThe name of the lookup that is not satisfied.\nThe offset (relative to the start of the region) at which …\nThe region in which this cell should be assigned.\nThe region in which this gate was activated.\nThe absolute row at which this cell should be assigned.\nThe index of the lookup that is not satisfied. These …\nSupported commitment schemes\nOptions to build a circuit specification to measure the …\nInner Product Argument commitment scheme\nKZG with GWC19 mutli-open strategy\nKZG with BDFG20 mutli-open strategy\nStructure holding the Lookup related data for circuit …\nHigh-level specifications of an abstract circuit.\nNumber of permutation enabled columns\nStructure holding polynomial related data for benchmarks\nStructure holding the Shuffle related data for circuit …\nAn advice column with the given rotations. May be repeated.\nNumber of advice columns.\nNumber of distinct column queries across all gates.\nA fixed column with the given rotations. May be repeated.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGiven a Plonk circuit, this function returns CostOptions\nGiven a Plonk circuit, this function returns a ModelCircuit\nMaximum degree of the custom gates.\nAn instance column with the given rotations. May be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConvert CostOptions to ModelCircuit. The proof sizè is …\n2^K bound on the number of rows.\nPower-of-2 bound on the number of rows in the circuit.\nA lookup over N columns with max input degree I and max …\nNumber of lookup arguments.\nMaximum degree of the circuit.\nMaximum degree of the constraint system.\nA permutation over N columns. May be repeated.\nEquality constraint enabled columns.\nNumber of distinct sets of points in the multiopening …\nRotations for the given polynomial\nA shuffle over N columns with max input degree I and max …\nNumber of shuffle arguments\nSize of the proof for the circuit\nA column with an index and type\nMetadata about a configured constraint within a circuit.\nMetadata about a configured gate within a circuit.\nMetadata about an assigned region within a circuit.\nA “virtual cell” is a PLONK cell that has been queried …\nThe type of the column.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe index of the column.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAn advice column\nAn Advice variant\nThis is an advice (witness) column queried at a certain …\nAn enum over the Advice, Fixed, Instance structs\nA value assigned to a cell within a circuit.\nThis trait allows a Circuit to direct some backend to …\nBackend error case\nOut of bounds index passed to a backend\nOut of bounds index passed to a backend\nA challenge squeezed from transcript after advice columns …\nThis is a challenge\nThis is a trait that circuits provide implementations for …\nA column with an index and type\nThe instance sets up a copy constraint involving a column …\nThe instance sets up a copy constraint involving a column …\nA column type\nThis is a configuration object that stores things like …\nThis is a constant polynomial\nThis is a description of the circuit environment, such as …\nThe constraint system is not satisfied.\nThis is a description of the circuit environment, such as …\nA set of polynomial constraints with a common selector.\nThis is an error that could occur during proving or …\nThis is an error that could occur during proving.\nThis is an error that could occur during circuit synthesis.\nLow-degree expression representing an identity that must …\nFirst phase\nA fixed column\nA Fixed variant\nThis is a fixed column queried at a certain relative …\nQuery of fixed column at a certain relative location\nA floor planning strategy for a circuit.\nThe floor planner used for this circuit. This is an …\nFrontend error case\nAn instance column\nAn Instance variant\nThis is an instance (external) column queried at a certain …\nInstance provided exceeds number of available rows\nThe provided instances do not match the circuit parameters.\nThis is a negated polynomial\nCircuit synthesis requires global constants, but circuit …\nk is too small for the given circuit.\nk is too small for the given circuit.\nOpening error\nGeneric error not covered by previous cases\nGeneric error not covered by previous cases\nOptional circuit configuration parameters. Requires the …\nPhase of advice column\nThis is the product of two polynomials\nThis is a proving key which allows for the creation of …\nA value stored as a fraction to enable batch inversion.\nThis is a scaled polynomial\nSecond phase\nA selector, representing a fixed boolean value per row of …\nThis is a virtual selector\nThis is the sum of two polynomials\nThis is an error that can occur during synthesis of the …\nA fixed column of a lookup table.\nAn error relating to a lookup table.\nThird phase\nTranscript error\nA value that does not require inversion to evaluate.\nThis is a verifying key which allows for the verification …\nExposes the “virtual cells” that can be queried while …\nThe field element zero.\nAllocate a new advice column at FirstPhase\nAllocate a new advice column in given phase\nReturns phase of advice columns\nContains the phase for each advice column. Should have …\nReturns advice queries\nAllows the developer to include an annotation for an …\nAnnotate a column.\nAnnotate an Instance column.\nAnnotate a Lookup column.\nAssign an advice column value (witness)\nAssign a fixed value\nCompute the number of blinding factors necessary to …\nReturns phase of challenges\nContains the phase for each challenge. Should have same …\nRequests a challenge that is usable after the given phase.\nColumn index\nColumn index\nType of this column.\nAllocate a new complex selector that can appear anywhere …\nApproximate the computational complexity of this …\nThis will compress selectors together depending on their …\nThe circuit is given an opportunity to describe the exact …\nThe circuit is given an opportunity to describe the exact …\nReturns constants\nAssign two cells to have the same value\nCreates a new gate.\nThis creates a proof for the provided circuit when given …\nThis creates a proof for the provided circuit when given …\nCubes this element.\nReturn expression from column at the current row\nCompute the degree of the constraint system (the maximum …\nCompute the degree of this polynomial\nReturns the denominator, if non-trivial.\nDoes not combine selectors and directly replaces them …\nDoubles this element.\nEnable this selector at the given offset within the given …\nEnables this fixed column to be used for global constant …\nEnable the ability to enforce equality over cells in this …\nEnables a selector at the given row.\nCreates a new region and enters into it.\nEvaluates this assigned value directly, performing an …\nEvaluate the polynomial using the provided closures to …\nEvaluate the polynomial lazily using the provided closures …\nExits the current region.\nReturn expression from selector\nReturn Expression\nFills a fixed column starting from the given row with …\nAllocate a new fixed column\nReturns commitments of fixed polynomials\nReturns fixed queries\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReads a verification key from a slice of bytes using …\nReads a proving key from a slice of bytes using Self::read.\nReturns gates\nReturns general column annotations\nQueries the value of the given challenge.\nGet the underlying EvaluationDomain.\nGet the underlying VerifyingKey.\nHashes a verification key into a transcript.\nIdentifier for this expression. Expressions with identical …\nIndex of this column.\nReturns index of this selector\nIndex of this challenge.\nQuery index\nReturns inner column\nAllocate a new instance column\nReturns instance queries\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nInverts this assigned value (taking the inverse of zero to …\nIs this selector “simple”? Simple selectors can only …\nReturns true iff this element is zero.\nGenerate a ProvingKey from a VerifyingKey and an instance …\nGenerate a ProvingKey from an instance of Circuit.\nGenerate a VerifyingKey from an instance of Circuit. By …\nGenerate a VerifyingKey from an instance of Circuit.\nAdd a lookup argument for some input expressions and table …\nAdd a lookup argument for some input expressions and table …\nAllocates a new fixed column that can be used in a lookup …\nReturns lookup arguments\nReturns the minimum necessary rows that need to exist in …\nReturn expression from column at the next row\nConstructs an Error::NotEnoughRowsAvailable.\nConstructs an Error::NotEnoughRowsAvailable.\nReturns number of advice columns\nReturns number of challenges\nReturns number of fixed columns\nReturns number of instance columns\nReturns number of selectors\nReturns the numerator.\nReturns a reference to the parameters that should be used …\nReturns permutation argument\nPhase of this challenge.\nReturns the number of phases\nReturns the list of phases\nObtains a pinned representation of this verification key …\nReads a proving key from a buffer. Does so by reading …\nExits out of the existing namespace.\nReturn expression from column at the previous row\nCreates a new (sub)namespace and enters into it.\nQuery an advice column at a relative position\nQuery an Any column at a relative position\nReturn expression from cell\nReturn expression from column at a relative position\nMake side effects\nQuery a challenge\nQuery a fixed column at a relative position\nQueries the cell of an instance column at a particular …\nQuery an instance column at a relative position\nQuery a selector at the current position.\nReads a verification key from a buffer.\nReads a proving key from a buffer. Does so by reading …\nReturn expression from column at the specified rotation\nRotation of this query\nRotation of this query\nAllocate a new (simple) selector. Simple selectors cannot …\nSets the minimum degree required by the circuit, which can …\nAdd a shuffle argument for some input expressions and …\nReturns shuffle arguments\nSquares this element.\nSquare this expression.\nGiven the provided cs, synthesize the given circuit.\nGiven the provided cs, synthesize the circuit. The …\nWrites a verifying key to a vector of bytes using …\nWrites a proving key to a vector of bytes using Self::write…\nReturns representative of this VerifyingKey in transcripts\nAllocate a new unblinded advice column at FirstPhase\nAllocate a new unblinded advice column in given phase. …\nContains the index of each advice column that is left …\nReturns a boolean indicating whether or not the proof is …\nReads a verification key from a buffer.\nConstructs a set of constraints that are controlled by the …\nReturns a copy of this circuit with no witness values …\nWrites a verifying key to a buffer.\nWrites a proving key to a buffer.\nThe current value of k being used.\nThe current value of k being used.\nThis structure contains precomputed constants and other …\nThe output type of this verification strategy after …\nDescribes the relative rotation of a vector. Negative …\nTrait representing a strategy for verifying Halo 2 proofs.\nObtains a polynomial in coefficient form when given a …\nThis takes us from an n-length coefficient vector into a …\nGeneric commitment scheme structures\nReturns a constant polynomial in the extended Lagrange …\nReturns a constant polynomial in the Lagrange coefficient …\nThe current location in the evaluation domain\nThis divides the polynomial (in the extended domain) by …\nReturns an empty (zero) polynomial in the coefficient basis\nReturns an empty (zero) polynomial in the extended …\nReturns an empty (zero) polynomial in the Lagrange …\nGet the size of the extended domain\nGet the size of the extended domain\nThis takes us from the extended evaluation domain and gets …\nFinalizes the batch and checks its validity.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet the generator of the extended domain’s …\nGet $\\omega$, the generator of the $2^k$ order …\nGet $\\omega^{-1}$, the inverse of the generator of the …\nGets the quotient polynomial’s degree (as a multiple of …\nCalls U::from(self).\nCalls U::from(self).\nInner product argument commitment scheme\nGet the size of the domain\nKZG commitment scheme\nComputes evaluations (at the point x, where xn = x^n) of …\nObtains a polynomial in Lagrange form when given a vector …\nThis takes us from an n-length vector into the coefficient …\nCreates new verification strategy instance\nThis constructs a new evaluation domain object based on …\nThe next location in the evaluation domain\nObtain a pinned version of this evaluation domain; a …\nThe previous location in the evaluation domain\nObtains an MSM from the verifier strategy and yields back …\nRotate the extended domain polynomial over the original …\nMultiplies a value by some power of $\\omega$, essentially …\nWrapper type around a blinding factor.\nCan commit to instance or not.\nDefines components of a commitment scheme.\nElliptic curve used to commit the application and witnesses\nUnfinalized verification result. This is returned in …\nMultiscalar multiplication engine\nMultiscalar multiplication engine\nAccumulator for compressed verification\nCommon for Verifier and Prover.\nParameters for circuit synthesis and prover parameters.\nConstant prover parameters\nVerifier specific functionality with circuit constraints\nConstant verifier parameters\nCommon multi-open prover interface for various commitment …\nQuery instance or not\nQuery instance or not\nApplication field of this commitment scheme\nCommon multi-open verifier interface for various …\nAdd another multiexp into this one\nAdd arbitrary term (the scalar and the point)\nReturn base points\nPerform multiexp and check that it results in zero\nThis computes a commitment to a polynomial described by …\nThis commits to a polynomial using its evaluations over …\nCreate a multi-opening proof\nCreate a multi-opening proof\nDownsize Params with smaller k.\nGenerates an empty multiscalar multiplication struct using …\nPerform multiexp and return the result\nReturns the argument unchanged.\nCalls U::from(self).\nLogarithmic size of the circuit\nSize of the circuit\nReturns new instance of parameters\nCreates new prover instance\nCreates new verifier instance\nGiven rng creates new blinding scalar\nWrapper for parameter generator\nReads params from a buffer.\nWrapper for parameter reader\nScalars\nScale all scalars in the MSM by some scaling factor\nProcess the proof and return unfinished result named Guard\nWrites params to a buffer.\nThis module contains an implementation of the polynomial …\nMultiscalar multiplication engines\nIPA multi-open scheme This module contains an optimisation …\nStrategies used with KZG scheme\nConcrete IPA commitment scheme\nPublic parameters for IPA commitment scheme\nVerifier parameters\nThis computes a commitment to a polynomial described by …\nThis commits to a polynomial using its evaluations over …\nCreate a polynomial commitment opening proof for the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nInitializes parameters for the curve, given a random …\nReads params from a buffer.\nChecks to see if the proof represented within transcript …\nWrites params to a buffer.\nA multiscalar multiplication in the polynomial commitment …\nAdd a value to the first entry of g_scalars.\nAdd another multiexp into this one\nAdd another multiexp into this one\nAdd a vector of scalars to g_scalars. This function will …\nAdd to u_scalar\nAdd to w_scalar\nReturns the argument unchanged.\nCalls U::from(self).\nGiven verifier parameters Creates an empty multi scalar …\nIPA multi-open prover\nIPA multi-open verifier\nCreate a multi-opening proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAn accumulator instance consisting of an evaluation claim …\nA verifier that checks multiple proofs in a batch.\nWrapper for verification accumulator\nA verifier that checks single proof\nComputes G = ⟨s, params.g⟩\nFinalizes the batch and checks its validity.\nFinalizes the batch and checks its validity.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe claimed output of the linear-time polycommit opening …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA vector of challenges u_0, …, u_{k - 1} sampled by the …\nLets caller supply the challenges and obtain an MSM with …\nLets caller supply the purported G point and simply appends\nKZG commitment scheme\nMultiscalar multiplication engines\nKZG multi-open scheme\nStrategies used with KZG scheme\nUmbrella commitment scheme construction for all KZG …\nThese are the public parameters for the polynomial …\nParameters KZG-based proof verification:\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nInitializes parameters for the curve through existing …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReads params from a buffer.\nReads params from a buffer.\nReads params from a buffer.\nInitializes parameters for the curve, draws toxic secret …\nWrites params to a buffer.\nWrites params to a buffer.\nWrites parameters to buffer\nTwo channel MSM accumulator\nA multiscalar multiplication in the polynomial commitment …\nAdd another multiexp into this one\nPerforms final pairing check with given verifier params …\nPrepares all scalars in the MSM to linear combination\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCreate an empty MSM instance\nCreate a new two channel MSM accumulator instance\nScale all scalars in the MSM by some scaling factor\nConcrete KZG prover with GWC variant\nConcrete KZG prover with SHPLONK variant\nConcrete KZG verifier with GWC variant\nConcrete KZG multiopen verifier with SHPLONK variant\nCreate a multi-opening proof\nCreate a multi-opening proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGiven parameters creates new prover instance\nVerify a multi-opening proof\nA verifier that checks multiple proofs in a batch\nWrapper for linear verification accumulator\nA verifier that checks a single proof\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs an empty batch verifier\nConstructs an empty batch verifier\nConstructs and initialized new batch verifier\nWe will replace BLAKE2b with an algebraic hash function in …\nWe will replace BLAKE2b with an algebraic hash function in …\nA 255-bit challenge.\nEncodedChallenge<C> defines a challenge encoding with a …\nThe Input type used to derive the challenge encoding. For …\nGeneric transcript view (from either the prover or verifier…\nTranscript view from the perspective of a verifier that …\nInitializes transcript at verifier side.\nTranscript view from the perspective of a prover that has …\nManages beginning and finishing of transcript pipeline.\nCast an encoded challenge as a typed ChallengeScalar.\nWriting the point to the transcript without writing it to …\nWriting the scalar to the transcript without writing it to …\nConclude the interaction and return the output buffer …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a scalar field element from an encoded challenge.\nInitialize a transcript given an input buffer.\nInitialize a transcript given an output buffer.\nInitialize a transcript given an input buffer.\nInitialize a transcript given an output buffer.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nGet an encoded challenge from a given input challenge.\nRead a curve point from the prover.\nRead a curve scalar from the prover.\nSqueeze an encoded verifier challenge from the transcript.\nSqueeze a typed challenge (in the scalar field) from the …\nWrite a curve point to the proof and the transcript.\nWrite a scalar to the proof and the transcript.") \ No newline at end of file diff --git a/src/halo2_frontend/dev.rs.html b/src/halo2_frontend/dev.rs.html index 7ff93b3655..1756dfdd39 100644 --- a/src/halo2_frontend/dev.rs.html +++ b/src/halo2_frontend/dev.rs.html @@ -2137,6 +2137,139 @@ 2121 2122 2123 +2124 +2125 +2126 +2127 +2128 +2129 +2130 +2131 +2132 +2133 +2134 +2135 +2136 +2137 +2138 +2139 +2140 +2141 +2142 +2143 +2144 +2145 +2146 +2147 +2148 +2149 +2150 +2151 +2152 +2153 +2154 +2155 +2156 +2157 +2158 +2159 +2160 +2161 +2162 +2163 +2164 +2165 +2166 +2167 +2168 +2169 +2170 +2171 +2172 +2173 +2174 +2175 +2176 +2177 +2178 +2179 +2180 +2181 +2182 +2183 +2184 +2185 +2186 +2187 +2188 +2189 +2190 +2191 +2192 +2193 +2194 +2195 +2196 +2197 +2198 +2199 +2200 +2201 +2202 +2203 +2204 +2205 +2206 +2207 +2208 +2209 +2210 +2211 +2212 +2213 +2214 +2215 +2216 +2217 +2218 +2219 +2220 +2221 +2222 +2223 +2224 +2225 +2226 +2227 +2228 +2229 +2230 +2231 +2232 +2233 +2234 +2235 +2236 +2237 +2238 +2239 +2240 +2241 +2242 +2243 +2244 +2245 +2246 +2247 +2248 +2249 +2250 +2251 +2252 +2253 +2254 +2255 +2256
    //! Tools for developing circuits.
     
     use std::collections::HashMap;
    @@ -2481,6 +2614,18 @@
         }
     }
     
    +impl<F: Field> MockProver<F> {
    +    /// Return the content of an advice column as mutable
    +    pub fn advice_mut(&mut self, column_index: usize) -> &mut [CellValue<F>] {
    +        self.advice[column_index].as_mut_slice()
    +    }
    +
    +    /// Return the content of an instance column as mutable
    +    pub fn instance_mut(&mut self, column_index: usize) -> &mut [InstanceValue<F>] {
    +        self.instance[column_index].as_mut_slice()
    +    }
    +}
    +
     impl<F: Field> Assignment<F> for MockProver<F> {
         fn enter_region<NR, N>(&mut self, name: N)
         where
    @@ -3385,6 +3530,7 @@
     
         use super::{FailureLocation, MockProver, VerifyFailure};
         use crate::circuit::{Layouter, SimpleFloorPlanner, Value};
    +    use crate::dev::{CellValue, InstanceValue};
         use crate::plonk::{
             Advice, Circuit, Column, ConstraintSystem, Error, Expression, Fixed, Instance, Selector,
             TableColumn,
    @@ -4259,5 +4405,125 @@
                 },])
             )
         }
    +
    +    #[test]
    +    fn modify_proof() {
    +        const K: u32 = 4;
    +
    +        struct EasyCircuit {}
    +
    +        #[derive(Clone)]
    +        struct EasyCircuitConfig {
    +            a: Column<Advice>,
    +            b: Column<Instance>,
    +            q: Selector,
    +        }
    +
    +        impl Circuit<Fp> for EasyCircuit {
    +            type Config = EasyCircuitConfig;
    +            type FloorPlanner = SimpleFloorPlanner;
    +            #[cfg(feature = "circuit-params")]
    +            type Params = ();
    +
    +            fn without_witnesses(&self) -> Self {
    +                Self {}
    +            }
    +
    +            fn configure(meta: &mut ConstraintSystem<Fp>) -> Self::Config {
    +                let a = meta.advice_column();
    +                let b = meta.instance_column();
    +                let q = meta.selector();
    +
    +                meta.enable_equality(a);
    +                meta.enable_equality(b);
    +
    +                meta.create_gate("squared", |cells| {
    +                    let cur = cells.query_advice(a, Rotation::cur());
    +                    let next = cells.query_advice(a, Rotation::next());
    +                    let q = cells.query_selector(q);
    +
    +                    vec![q * (next - cur.clone() * cur)]
    +                });
    +
    +                EasyCircuitConfig { a, b, q }
    +            }
    +
    +            fn synthesize(
    +                &self,
    +                config: Self::Config,
    +                mut layouter: impl Layouter<Fp>,
    +            ) -> Result<(), Error> {
    +                let out = layouter.assign_region(
    +                    || "main region",
    +                    |mut region| {
    +                        config.q.enable(&mut region, 0)?;
    +                        config.q.enable(&mut region, 1)?;
    +
    +                        region.assign_advice(|| "a0", config.a, 0, || Value::known(Fp::from(3)))?;
    +                        region.assign_advice(|| "a1", config.a, 1, || Value::known(Fp::from(9)))?;
    +                        region.assign_advice(|| "a2", config.a, 2, || Value::known(Fp::from(81)))
    +                    },
    +                )?;
    +
    +                layouter.constrain_instance(out.cell(), config.b, 0)
    +            }
    +        }
    +
    +        let mut prover = MockProver::run(K, &EasyCircuit {}, vec![vec![Fp::from(81)]]).unwrap();
    +        assert_eq!(prover.verify(), Ok(()));
    +
    +        let err1 = VerifyFailure::ConstraintNotSatisfied {
    +            constraint: ((0, "squared").into(), 0, "").into(),
    +            location: FailureLocation::InRegion {
    +                region: (0, "main region").into(),
    +                offset: 1,
    +            },
    +            cell_values: vec![
    +                (
    +                    (ColumnMid::new(Any::Advice, 0), 0).into(),
    +                    "0x9".to_string(),
    +                ),
    +                (
    +                    (ColumnMid::new(Any::Advice, 0), 1).into(),
    +                    "0xa".to_string(),
    +                ),
    +            ],
    +        };
    +
    +        let err2 = VerifyFailure::Permutation {
    +            column: ColumnMid::new(Any::Advice, 0),
    +            location: FailureLocation::InRegion {
    +                region: (0, "main region").into(),
    +                offset: 2,
    +            },
    +        };
    +
    +        // first we modify the instance -> this results in the permutation being unsatisfied
    +        let instance = prover.instance_mut(0);
    +        instance[0] = InstanceValue::Assigned(Fp::from(11));
    +        assert_eq!(prover.verify(), Err(vec![err2.clone()]));
    +
    +        // then we modify the witness -> the contraint `squared` will fail
    +        let advice0 = prover.advice_mut(0);
    +        advice0[2] = CellValue::Assigned(Fp::from(10));
    +        assert_eq!(prover.verify(), Err(vec![err1, err2]));
    +
    +        // we reset back to original values
    +        let instance = prover.instance_mut(0);
    +        instance[0] = InstanceValue::Assigned(Fp::from(81));
    +        let advice0 = prover.advice_mut(0);
    +        advice0[2] = CellValue::Assigned(Fp::from(81));
    +        assert_eq!(prover.verify(), Ok(()));
    +
    +        // and now we try to trick the verifier
    +        // we assign on row 0 `Fp - 3`, which is also a square root of 9
    +        // but will overflow the prime field
    +        let sqrt_9 = Fp::zero() - Fp::from(3);
    +        let advice0 = prover.advice_mut(0);
    +        advice0[0] = CellValue::Assigned(sqrt_9);
    +
    +        // if this verifies correctly -> we have an issue and we are missing a range check
    +        assert_eq!(prover.verify(), Ok(()));
    +    }
     }
     

    \ No newline at end of file diff --git a/src/halo2_frontend/dev/failure.rs.html b/src/halo2_frontend/dev/failure.rs.html index 8e54fade59..b758d0b56c 100644 --- a/src/halo2_frontend/dev/failure.rs.html +++ b/src/halo2_frontend/dev/failure.rs.html @@ -1020,7 +1020,7 @@ } /// The reasons why a particular circuit is not satisfied. -#[derive(PartialEq, Eq)] +#[derive(PartialEq, Eq, Clone)] pub enum VerifyFailure { /// A cell used in an active gate was not assigned to. CellNotAssigned { diff --git a/src/halo2_frontend/dev/metadata.rs.html b/src/halo2_frontend/dev/metadata.rs.html index 21cb0576f9..cea10d9a17 100644 --- a/src/halo2_frontend/dev/metadata.rs.html +++ b/src/halo2_frontend/dev/metadata.rs.html @@ -337,7 +337,7 @@ /// A "virtual cell" is a PLONK cell that has been queried at a particular relative offset /// within a custom gate. -#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] pub struct VirtualCell { name: String, pub(super) column: Column, diff --git a/src/halo2_proofs/lib.rs.html b/src/halo2_proofs/lib.rs.html index 45f7d182c0..3c0df09758 100644 --- a/src/halo2_proofs/lib.rs.html +++ b/src/halo2_proofs/lib.rs.html @@ -75,6 +75,8 @@ 59 60 61 +62 +63
    //! Legacy halo2 API that wraps the frontend-backend split API.  This crate doesn't implement any
     //! core functionality, it just imports from the other crates and offers the legacy API in the same
     //! module structure so that projects depending on halo2 can update their dependency towards it
    @@ -105,7 +107,9 @@
     }
     /// Tools for developing circuits.
     pub mod dev {
    -    pub use halo2_frontend::dev::{metadata, FailureLocation, MockProver, VerifyFailure};
    +    pub use halo2_frontend::dev::{
    +        metadata, CellValue, FailureLocation, InstanceValue, MockProver, VerifyFailure,
    +    };
     
         #[cfg(feature = "cost-estimator")]
         pub use halo2_frontend::dev::cost_model;
    diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
    index 4e4a9b01c5..d8d284ed10 100644
    --- a/trait.impl/core/clone/trait.Clone.js
    +++ b/trait.impl/core/clone/trait.Clone.js
    @@ -1,6 +1,6 @@
     (function() {var implementors = {
     "halo2_backend":[["impl Clone for SerdeFormat"],["impl Clone for Coeff"],["impl Clone for ExtendedLagrangeCoeff"],["impl Clone for LagrangeCoeff"],["impl<'params, C: Clone + CurveAffine> Clone for MSMIPA<'params, C>
    where\n C::Scalar: Clone,\n C::Base: Clone,
    "],["impl<'params, C: Clone + CurveAffine> Clone for GuardIPA<'params, C>
    where\n C::Scalar: Clone,
    "],["impl<C: Clone + CurveAffine> Clone for ProvingKey<C>
    where\n C::Scalar: Clone,
    "],["impl<C: Clone + CurveAffine> Clone for VerifyingKey<C>
    where\n C::Scalar: Clone,
    "],["impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>"],["impl<C: Clone + CurveAffine> Clone for Accumulator<C>
    where\n C::Scalar: Clone,
    "],["impl<C: Clone + CurveAffine> Clone for Challenge255<C>"],["impl<C: Clone + CurveAffine, T: Clone> Clone for ChallengeScalar<C, T>
    where\n C::Scalar: Clone,
    "],["impl<E: Clone + Engine> Clone for ParamsKZG<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Engine> Clone for ParamsVerifierKZG<E>
    where\n E::G2Affine: Clone,
    "],["impl<E: Clone + Engine> Clone for DualMSM<E>
    where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,
    "],["impl<E: Clone + Engine> Clone for MSMKZG<E>
    where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Clone,\n E::Fr: Clone,
    "],["impl<E: Clone + Engine> Clone for AccumulatorStrategy<E>
    where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,
    "],["impl<E: Clone + Engine> Clone for SingleStrategy<E>
    where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,
    "],["impl<E: Clone + MultiMillerLoop> Clone for GuardKZG<E>
    where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,
    "],["impl<F: Clone + Field> Clone for EvaluationDomain<F>"],["impl<F: Clone> Clone for Blind<F>"],["impl<F: Clone, B: Clone> Clone for Polynomial<F, B>"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bRead<R, C, E>"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Read<R, C, E>"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bWrite<W, C, E>"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Write<W, C, E>"]], -"halo2_frontend":[["impl Clone for RegionColumn"],["impl Clone for FailureLocation"],["impl Clone for RegionShape"],["impl Clone for Cell"],["impl Clone for RegionIndex"],["impl Clone for RegionStart"],["impl Clone for Lookup"],["impl Clone for Permutation"],["impl Clone for Poly"],["impl Clone for Shuffle"],["impl Clone for Constraint"],["impl Clone for Gate"],["impl Clone for Region"],["impl Clone for VirtualCell"],["impl Clone for Phase"],["impl Clone for AdviceQuery"],["impl Clone for Challenge"],["impl Clone for FixedQuery"],["impl Clone for InstanceQuery"],["impl Clone for Selector"],["impl Clone for TableColumn"],["impl Clone for Advice"],["impl Clone for Fixed"],["impl Clone for Instance"],["impl Clone for Argument"],["impl<C: Clone + ColumnType> Clone for Column<C>"],["impl<F: Clone + Field> Clone for CellValue<F>"],["impl<F: Clone + Field> Clone for InstanceValue<F>"],["impl<F: Clone + Field> Clone for ConstraintSystem<F>"],["impl<F: Clone + Field> Clone for Gate<F>"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl<F: Clone> Clone for Assigned<F>"],["impl<F: Clone> Clone for Expression<F>"],["impl<V: Clone> Clone for Value<V>"],["impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>"]], +"halo2_frontend":[["impl Clone for RegionColumn"],["impl Clone for FailureLocation"],["impl Clone for VerifyFailure"],["impl Clone for RegionShape"],["impl Clone for Cell"],["impl Clone for RegionIndex"],["impl Clone for RegionStart"],["impl Clone for Lookup"],["impl Clone for Permutation"],["impl Clone for Poly"],["impl Clone for Shuffle"],["impl Clone for Constraint"],["impl Clone for Gate"],["impl Clone for Region"],["impl Clone for VirtualCell"],["impl Clone for VirtualCell"],["impl Clone for Phase"],["impl Clone for AdviceQuery"],["impl Clone for Challenge"],["impl Clone for FixedQuery"],["impl Clone for InstanceQuery"],["impl Clone for Selector"],["impl Clone for TableColumn"],["impl Clone for Advice"],["impl Clone for Fixed"],["impl Clone for Instance"],["impl Clone for Argument"],["impl<C: Clone + ColumnType> Clone for Column<C>"],["impl<F: Clone + Field> Clone for CellValue<F>"],["impl<F: Clone + Field> Clone for InstanceValue<F>"],["impl<F: Clone + Field> Clone for ConstraintSystem<F>"],["impl<F: Clone + Field> Clone for Gate<F>"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl<F: Clone> Clone for Assigned<F>"],["impl<F: Clone> Clone for Expression<F>"],["impl<V: Clone> Clone for Value<V>"],["impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>"]], "halo2_middleware":[["impl Clone for Any"],["impl Clone for VarMid"],["impl Clone for Cell"],["impl Clone for ChallengeMid"],["impl Clone for ColumnMid"],["impl Clone for QueryMid"],["impl Clone for ArgumentMid"],["impl Clone for AssemblyMid"],["impl Clone for Rotation"],["impl<F: Clone + Field> Clone for CompiledCircuit<F>"],["impl<F: Clone + Field> Clone for ConstraintSystemMid<F>"],["impl<F: Clone + Field> Clone for Preprocessing<F>"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Gate<F, V>"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>"]], "p3_frontend":[["impl Clone for Location"],["impl Clone for Var"],["impl Clone for CompileParams"],["impl Clone for PreprocessingInfo"],["impl Clone for Public"],["impl Clone for Query"],["impl<F: Clone + Field> Clone for SymbolicExpression<F>"],["impl<F: Clone + Field> Clone for FWrap<F>"],["impl<F: Clone + Field> Clone for SymbolicVariable<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file