diff --git a/halo2_backend/multicore/index.html b/halo2_backend/multicore/index.html index 2bd0e8674..3fb9c5f0a 100644 --- a/halo2_backend/multicore/index.html +++ b/halo2_backend/multicore/index.html @@ -14,7 +14,7 @@ }); -

Module halo2_backend::multicore

source ·

Structs§

Create a multi-opening proof

source§

fn create_proof_with_engine<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptWrite<E::G1Affine, Ch>, R, I>( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, _: R, transcript: &mut T, queries: I diff --git a/halo2_backend/poly/struct.EvaluationDomain.html b/halo2_backend/poly/struct.EvaluationDomain.html index b5ee0554c..04e1bd3db 100644 --- a/halo2_backend/poly/struct.EvaluationDomain.html +++ b/halo2_backend/poly/struct.EvaluationDomain.html @@ -52,7 +52,7 @@ ) -> Polynomial<F, ExtendedLagrangeCoeff>

source

pub fn rotate_extended( &self, poly: &Polynomial<F, ExtendedLagrangeCoeff>, - rotation: Rotation + rotation: Rotation ) -> Polynomial<F, ExtendedLagrangeCoeff>

Rotate the extended domain polynomial over the original domain.

source

pub fn extended_to_coeff( &self, @@ -73,7 +73,7 @@

source

pub fn get_omega_inv(&self) -> F

Get $\omega^{-1}$, the inverse of the generator of the $2^k$ order multiplicative subgroup.

source

pub fn get_extended_omega(&self) -> F

Get the generator of the extended domain’s multiplicative subgroup.

-
source

pub fn rotate_omega(&self, value: F, rotation: Rotation) -> F

Multiplies a value by some power of $\omega$, essentially rotating over +

source

pub fn rotate_omega(&self, value: F, rotation: Rotation) -> F

Multiplies a value by some power of $\omega$, essentially rotating over the domain.

source

pub fn l_i_range<I: IntoIterator<Item = i32> + Clone>( &self, diff --git a/halo2_backend/poly/struct.Polynomial.html b/halo2_backend/poly/struct.Polynomial.html index 1eb4da478..f8347ef9a 100644 --- a/halo2_backend/poly/struct.Polynomial.html +++ b/halo2_backend/poly/struct.Polynomial.html @@ -28,7 +28,7 @@ evaluation form depending on the basis B.

source

pub fn num_coeffs(&self) -> usize

Gets the size of this polynomial in terms of the number of coefficients used to describe it.

-
source§

impl<F: Field> Polynomial<F, LagrangeCoeff>

source

pub fn rotate(&self, rotation: Rotation) -> Polynomial<F, LagrangeCoeff>

Rotates the values in a Lagrange basis polynomial by Rotation

+
source§

impl<F: Field> Polynomial<F, LagrangeCoeff>

source

pub fn rotate(&self, rotation: Rotation) -> Polynomial<F, LagrangeCoeff>

Rotates the values in a Lagrange basis polynomial by Rotation

Methods from Deref<Target = [F]>§

source

pub fn sort_floats(&mut self)

🔬This is a nightly-only experimental API. (sort_floats)

Sorts the slice of floats.

This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses the ordering defined by f64::total_cmp.

diff --git a/halo2_frontend/all.html b/halo2_frontend/all.html index 897fd7d95..a821beddf 100644 --- a/halo2_frontend/all.html +++ b/halo2_frontend/all.html @@ -14,4 +14,4 @@ }); -

List of all items

Structs

Enums

Traits

Functions

\ No newline at end of file +

List of all items

Structs

Enums

Traits

Functions

\ No newline at end of file diff --git a/halo2_frontend/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html b/halo2_frontend/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html index b7fcebec1..aad59a8f6 100644 --- a/halo2_frontend/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html +++ b/halo2_frontend/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html @@ -39,7 +39,7 @@ ) -> Result<(), Error>
Constrains a Cell to equal an instance column’s row value at an absolute position.
source§

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

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

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, name_fn: 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, gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_frontend/circuit/floor_planner/v1/struct.V1Pass.html b/halo2_frontend/circuit/floor_planner/v1/struct.V1Pass.html index d1c1c1858..643bd8c7c 100644 --- a/halo2_frontend/circuit/floor_planner/v1/struct.V1Pass.html +++ b/halo2_frontend/circuit/floor_planner/v1/struct.V1Pass.html @@ -38,7 +38,7 @@ ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an absolute position.
source§

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

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

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, name_fn: 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, gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_frontend/circuit/fn.compile_circuit.html b/halo2_frontend/circuit/fn.compile_circuit.html index 6418a6a21..af34dd350 100644 --- a/halo2_frontend/circuit/fn.compile_circuit.html +++ b/halo2_frontend/circuit/fn.compile_circuit.html @@ -18,7 +18,7 @@ k: u32, circuit: &ConcreteCircuit, compress_selectors: bool -) -> Result<(CompiledCircuit<F>, ConcreteCircuit::Config, ConstraintSystem<F>), Error>
Expand description

Compile a circuit. Runs configure and synthesize on the circuit in order to materialize the +) -> Result<(CompiledCircuit<F>, ConcreteCircuit::Config, ConstraintSystem<F>), Error>

Expand description

Compile a circuit. Runs configure and synthesize on the circuit in order to materialize the circuit into its columns and the column configuration; as well as doing the fixed column and copy constraints assignments. The output of this function can then be used for the key generation, and proof generation. diff --git a/halo2_frontend/circuit/index.html b/halo2_frontend/circuit/index.html index 9cbf13529..adb8a93c0 100644 --- a/halo2_frontend/circuit/index.html +++ b/halo2_frontend/circuit/index.html @@ -14,7 +14,7 @@ }); -

Module halo2_frontend::circuit

source ·
Expand description

Traits and structs for implementing circuit components.

+

Module halo2_frontend::circuit

source ·
Expand description

Traits and structs for implementing circuit components.

Re-exports§

Modules§

  • Implementations of common circuit floor planners.
  • Implementations of common circuit layouters.

Structs§

  • An assigned cell.
  • A pointer to a cell within a circuit.
  • This is a “namespaced” layouter which borrows a Layouter (pushing a namespace context) and, when dropped, pops out of the namespace context.
  • A region of the circuit in which a Chip can assign cells.
  • Index of a region in a layouter
  • Starting row of a region in a layouter
  • A table layouter that can be used to assign values to a table.
  • A lookup table in the circuit.
  • A value that might exist within a circuit.
  • Witness calculator. Frontend function

Traits§

  • A chip implements a set of instructions that can be used by gadgets.
  • A layout strategy within a circuit. The layouter is chip-agnostic and applies its strategy to the context and config it is given.
  • Helper trait for implementing a custom Layouter.

Functions§

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/layouter/struct.RegionShape.html b/halo2_frontend/circuit/layouter/struct.RegionShape.html index 50f971f3f..9cf9b51dd 100644 --- a/halo2_frontend/circuit/layouter/struct.RegionShape.html +++ b/halo2_frontend/circuit/layouter/struct.RegionShape.html @@ -58,7 +58,7 @@ ) -> Result<Cell, Error>

Assigns a fixed value
source§

fn name_column<'v>( &'v mut self, _annotation: &'v (dyn Fn() -> String + 'v), - _column: Column<Any> + _column: Column<Any> )

Allows the circuit implementor to name/annotate a Column within a Region context. Read more
source§

fn constrain_constant( &mut self, _cell: Cell, diff --git a/halo2_frontend/circuit/layouter/trait.RegionLayouter.html b/halo2_frontend/circuit/layouter/trait.RegionLayouter.html index ad35fae76..7d68026e8 100644 --- a/halo2_frontend/circuit/layouter/trait.RegionLayouter.html +++ b/halo2_frontend/circuit/layouter/trait.RegionLayouter.html @@ -25,7 +25,7 @@ fn name_column<'v>( &'v mut self, annotation: &'v (dyn Fn() -> String + 'v), - column: Column<Any> + column: Column<Any> ); fn assign_advice<'v>( &'v mut self, @@ -100,7 +100,7 @@

source

fn name_column<'v>( &'v mut self, annotation: &'v (dyn Fn() -> String + 'v), - column: Column<Any> + column: Column<Any> )

Allows the circuit implementor to name/annotate a Column within a Region context.

This is useful in order to improve the amount of information that prover.verify() and prover.assert_satisfied() can provide.

@@ -152,4 +152,4 @@

Returns an error if the cell is in a column where equality has not been enabled.

source

fn constrain_equal(&mut self, left: Cell, right: Cell) -> Result<(), Error>

Constraint two cells to have the same value.

Returns an error if either of the cells is not within the given permutation.

-

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<F: Field> RegionLayouter<F> for RegionShape

\ No newline at end of file +

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<F: Field> RegionLayouter<F> for RegionShape

\ No newline at end of file diff --git a/halo2_frontend/circuit/layouter/trait.TableLayouter.html b/halo2_frontend/circuit/layouter/trait.TableLayouter.html index 0b1d23919..b1a5f0d00 100644 --- a/halo2_frontend/circuit/layouter/trait.TableLayouter.html +++ b/halo2_frontend/circuit/layouter/trait.TableLayouter.html @@ -33,4 +33,4 @@ to: &'v mut (dyn FnMut() -> Value<Assigned<F>> + 'v) ) -> Result<(), Error>

Assigns a fixed value to a table cell.

Returns an error if the table cell has already been assigned to.

-

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> TableLayouter<F> for SimpleTableLayouter<'r, 'a, F, CS>

\ No newline at end of file +

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> TableLayouter<F> for SimpleTableLayouter<'r, 'a, F, CS>

\ No newline at end of file diff --git a/halo2_frontend/circuit/struct.AssignedCell.html b/halo2_frontend/circuit/struct.AssignedCell.html index 948cee6cc..974b89dea 100644 --- a/halo2_frontend/circuit/struct.AssignedCell.html +++ b/halo2_frontend/circuit/struct.AssignedCell.html @@ -14,16 +14,16 @@ }); -

Struct halo2_frontend::circuit::AssignedCell

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

An assigned cell.

-

Implementations§

source§

impl<V, F: Field> AssignedCell<V, F>

source

pub fn value(&self) -> Value<&V>

Returns the value of the AssignedCell.

-
source

pub fn cell(&self) -> Cell

Returns the cell.

-
source§

impl<V, F: Field> AssignedCell<V, F>
where - for<'v> Assigned<F>: From<&'v V>,

source

pub fn value_field(&self) -> Value<Assigned<F>>

Returns the field element value of the AssignedCell.

-
source§

impl<F: Field> AssignedCell<Assigned<F>, F>

source

pub fn evaluate(self) -> AssignedCell<F, F>

Evaluates this assigned cell’s value directly, performing an unbatched inversion +

Struct halo2_frontend::circuit::AssignedCell

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

An assigned cell.

+

Implementations§

source§

impl<V, F: Field> AssignedCell<V, F>

source

pub fn value(&self) -> Value<&V>

Returns the value of the AssignedCell.

+
source

pub fn cell(&self) -> Cell

Returns the cell.

+
source§

impl<V, F: Field> AssignedCell<V, F>
where + for<'v> Assigned<F>: From<&'v V>,

source

pub fn value_field(&self) -> Value<Assigned<F>>

Returns the field element value of the AssignedCell.

+
source§

impl<F: Field> AssignedCell<Assigned<F>, F>

source

pub fn evaluate(self) -> AssignedCell<F, F>

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

If the denominator is zero, the returned cell’s value is zero.

-
source§

impl<V: Clone, F: Field> AssignedCell<V, F>
where - for<'v> Assigned<F>: From<&'v V>,

source

pub fn copy_advice<A, AR>( +

source§

impl<V: Clone, F: Field> AssignedCell<V, F>
where + for<'v> Assigned<F>: From<&'v V>,

source

pub fn copy_advice<A, AR>( &self, annotation: A, region: &mut Region<'_, F>, @@ -34,7 +34,7 @@ AR: Into<String>,

Copies the value to a given advice cell and constrains them to be equal.

Returns an error if either this cell or the given cell are in columns where equality has not been enabled.

-

Trait Implementations§

source§

impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>

source§

fn clone(&self) -> AssignedCell<V, 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<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<V, F> Freeze for AssignedCell<V, F>
where +

Trait Implementations§

source§

impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>

source§

fn clone(&self) -> AssignedCell<V, 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<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<V, F> Freeze for AssignedCell<V, F>
where V: Freeze,

§

impl<V, F> RefUnwindSafe for AssignedCell<V, F>

§

impl<V, F> Send for AssignedCell<V, F>
where diff --git a/halo2_frontend/circuit/struct.Cell.html b/halo2_frontend/circuit/struct.Cell.html index a9c257233..0d015c204 100644 --- a/halo2_frontend/circuit/struct.Cell.html +++ b/halo2_frontend/circuit/struct.Cell.html @@ -14,15 +14,15 @@ }); -

Struct halo2_frontend::circuit::Cell

source ·
pub struct Cell {
+

Struct halo2_frontend::circuit::Cell

source ·
pub struct Cell {
     pub region_index: RegionIndex,
     pub row_offset: usize,
-    pub column: Column<Any>,
+    pub column: Column<Any>,
 }
Expand description

A pointer to a cell within a circuit.

Fields§

§region_index: RegionIndex

Identifies the region in which this cell resides.

§row_offset: usize

The relative offset of this cell within its region.

-
§column: Column<Any>

The column of this cell.

-

Trait Implementations§

source§

impl Clone for Cell

source§

fn clone(&self) -> Cell

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 Cell

source§

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

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

impl Copy for Cell

Auto Trait Implementations§

§

impl Freeze for Cell

§

impl RefUnwindSafe for Cell

§

impl Send for Cell

§

impl Sync for Cell

§

impl Unpin for Cell

§

impl UnwindSafe for Cell

Blanket Implementations§

source§

impl<T> Any for T
where +
§column: Column<Any>

The column of this cell.

+

Trait Implementations§

source§

impl Clone for Cell

source§

fn clone(&self) -> Cell

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 Cell

source§

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

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

impl Copy for Cell

Auto Trait Implementations§

§

impl Freeze for Cell

§

impl RefUnwindSafe for Cell

§

impl Send for Cell

§

impl Sync for Cell

§

impl Unpin for Cell

§

impl UnwindSafe for Cell

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/circuit/struct.NamespacedLayouter.html b/halo2_frontend/circuit/struct.NamespacedLayouter.html index e03de466c..9ab294a28 100644 --- a/halo2_frontend/circuit/struct.NamespacedLayouter.html +++ b/halo2_frontend/circuit/struct.NamespacedLayouter.html @@ -14,32 +14,32 @@ }); -

Struct halo2_frontend::circuit::NamespacedLayouter

source ·
pub struct NamespacedLayouter<'a, F: Field, L: Layouter<F> + 'a>(/* private fields */);
Expand description

This is a “namespaced” layouter which borrows a Layouter (pushing a namespace +

Struct halo2_frontend::circuit::NamespacedLayouter

source ·
pub struct NamespacedLayouter<'a, F: Field, L: Layouter<F> + 'a>(/* private fields */);
Expand description

This is a “namespaced” layouter which borrows a Layouter (pushing a namespace context) and, when dropped, pops out of the namespace context.

-

Trait Implementations§

source§

impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>

source§

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

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

impl<'a, F: Field, L: Layouter<F> + 'a> Drop for NamespacedLayouter<'a, F, L>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, F: Field, L: Layouter<F> + 'a> Layouter<F> for NamespacedLayouter<'a, F, L>

§

type Root = <L as Layouter<F>>::Root

Represents the type of the “root” of this layouter, so that nested namespaces -can minimize indirection.
source§

fn assign_region<A, AR, N, NR>( +

Trait Implementations§

source§

impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>

source§

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

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

impl<'a, F: Field, L: Layouter<F> + 'a> Drop for NamespacedLayouter<'a, F, L>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, F: Field, L: Layouter<F> + 'a> Layouter<F> for NamespacedLayouter<'a, F, L>

§

type Root = <L as Layouter<F>>::Root

Represents the type of the “root” of this layouter, so that nested namespaces +can minimize indirection.
source§

fn assign_region<A, AR, N, NR>( &mut self, name: N, assignment: A ) -> Result<AR, Error>
where A: FnMut(Region<'_, F>) -> Result<AR, Error>, N: Fn() -> NR, - NR: Into<String>,

Assign a region of gates to an absolute row number. Read more
source§

fn assign_table<A, N, NR>( + NR: Into<String>,

Assign a region of gates to an absolute row number. Read more
source§

fn assign_table<A, N, NR>( &mut self, name: N, assignment: A ) -> Result<(), Error>
where A: FnMut(Table<'_, F>) -> Result<(), Error>, N: Fn() -> NR, - NR: Into<String>,

Assign a table region to an absolute row number. Read more
source§

fn constrain_instance( + NR: Into<String>,

Assign a table region to an absolute row number. Read more
source§

fn constrain_instance( &mut self, cell: Cell, column: Column<Instance>, row: usize ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an -absolute position.
source§

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

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

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, _name_fn: N)
where +absolute position.

source§

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

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

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, _name_fn: 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, _gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_frontend/circuit/struct.Region.html b/halo2_frontend/circuit/struct.Region.html index 8dfeee1b8..128d7ef16 100644 --- a/halo2_frontend/circuit/struct.Region.html +++ b/halo2_frontend/circuit/struct.Region.html @@ -14,7 +14,7 @@ }); -

Struct halo2_frontend::circuit::Region

source ·
pub struct Region<'r, F: Field> { /* private fields */ }
Expand description

A region of the circuit in which a Chip can assign cells.

+

Struct halo2_frontend::circuit::Region

source ·
pub struct Region<'r, F: Field> { /* private fields */ }
Expand description

A region of the circuit in which a Chip can assign cells.

Inside a region, the chip may freely use relative offsets; the Layouter will treat these assignments as a single “region” within the circuit.

The Layouter is allowed to optimise between regions as it sees fit. Chips must use @@ -22,7 +22,7 @@

TODO: It would be great if we could constrain the columns in these types to be “logical” columns that are guaranteed to correspond to the chip (and have come from Chip::Config).

-

Implementations§

source§

impl<'r, F: Field> Region<'r, F>

source

pub fn enable_selector<A, AR>( +

Implementations§

source§

impl<'r, F: Field> Region<'r, F>

source

pub fn enable_selector<A, AR>( &mut self, annotation: A, selector: &Selector, @@ -30,13 +30,13 @@ ) -> Result<(), Error>
where A: Fn() -> AR, AR: Into<String>,

Enables a selector at the given offset.

-
source

pub fn name_column<A, AR, T>(&mut self, annotation: A, column: T)
where +

source

pub fn name_column<A, AR, T>(&mut self, annotation: A, column: T)
where A: Fn() -> AR, AR: Into<String>, - T: Into<Column<Any>>,

Allows the circuit implementor to name/annotate a Column within a Region context.

+ T: Into<Column<Any>>,

Allows the circuit implementor to name/annotate a Column within a Region context.

This is useful in order to improve the amount of information that prover.verify() and prover.assert_satisfied() can provide.

-
source

pub fn assign_advice<'v, V, VR, A, AR>( +

source

pub fn assign_advice<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: Column<Advice>, @@ -48,7 +48,7 @@ A: Fn() -> AR, AR: Into<String>,

Assign an advice column value (witness).

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-
source

pub fn assign_advice_from_constant<VR, A, AR>( +

source

pub fn assign_advice_from_constant<VR, A, AR>( &mut self, annotation: A, column: Column<Advice>, @@ -61,7 +61,7 @@

The constant value will be assigned to a cell within one of the fixed columns configured via ConstraintSystem::enable_constant.

Returns the advice cell.

-

source

pub fn assign_advice_from_instance<A, AR>( +

source

pub fn assign_advice_from_instance<A, AR>( &mut self, annotation: A, instance: Column<Instance>, @@ -73,7 +73,7 @@ AR: Into<String>,

Assign the value of the instance column’s cell at absolute location row to the column advice at offset within this region.

Returns the advice cell, and its value if known.

-
source

pub fn instance_value( +

source

pub fn instance_value( &mut self, instance: Column<Instance>, row: usize @@ -81,7 +81,7 @@

This method is only provided for convenience; it does not create any constraints. Callers still need to use Self::assign_advice_from_instance to constrain the instance values in their circuit.

-

source

pub fn assign_fixed<'v, V, VR, A, AR>( +

source

pub fn assign_fixed<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: Column<Fixed>, @@ -93,17 +93,17 @@ A: Fn() -> AR, AR: Into<String>,

Assign a fixed value.

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-
source

pub fn constrain_constant<VR>( +

source

pub fn constrain_constant<VR>( &mut self, cell: Cell, constant: VR ) -> Result<(), Error>
where VR: Into<Assigned<F>>,

Constrains a cell to have a constant value.

Returns an error if the cell is in a column where equality has not been enabled.

-
source

pub fn constrain_equal(&mut self, left: Cell, right: Cell) -> Result<(), Error>

Constrains two cells to have the same value.

+
source

pub fn constrain_equal(&mut self, left: Cell, right: Cell) -> Result<(), Error>

Constrains two cells to have the same value.

Returns an error if either of the cells are in columns where equality has not been enabled.

-

Trait Implementations§

source§

impl<'r, F: Debug + Field> Debug for Region<'r, F>

source§

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

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

impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Region<'r, F>

§

impl<'r, F> !RefUnwindSafe for Region<'r, F>

§

impl<'r, F> Send for Region<'r, F>

§

impl<'r, F> Sync for Region<'r, F>

§

impl<'r, F> Unpin for Region<'r, F>

§

impl<'r, F> !UnwindSafe for Region<'r, F>

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl<'r, F: Debug + Field> Debug for Region<'r, F>

source§

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

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

impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Region<'r, F>

§

impl<'r, F> !RefUnwindSafe for Region<'r, F>

§

impl<'r, F> Send for Region<'r, F>

§

impl<'r, F> Sync for Region<'r, F>

§

impl<'r, F> Unpin for Region<'r, F>

§

impl<'r, F> !UnwindSafe for Region<'r, F>

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/circuit/struct.RegionIndex.html b/halo2_frontend/circuit/struct.RegionIndex.html index 267ef3457..b474d5d33 100644 --- a/halo2_frontend/circuit/struct.RegionIndex.html +++ b/halo2_frontend/circuit/struct.RegionIndex.html @@ -14,8 +14,8 @@ }); -

Struct halo2_frontend::circuit::RegionIndex

source ·
pub struct RegionIndex(/* private fields */);
Expand description

Index of a region in a layouter

-

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionIndex

source§

fn clone(&self) -> RegionIndex

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 RegionIndex

source§

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

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

impl Deref for RegionIndex

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<usize> for RegionIndex

source§

fn from(idx: usize) -> RegionIndex

Converts to this type from the input type.
source§

impl Copy for RegionIndex

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Struct halo2_frontend::circuit::RegionIndex

source ·
pub struct RegionIndex(/* private fields */);
Expand description

Index of a region in a layouter

+

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionIndex

source§

fn clone(&self) -> RegionIndex

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 RegionIndex

source§

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

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

impl Deref for RegionIndex

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<usize> for RegionIndex

source§

fn from(idx: usize) -> RegionIndex

Converts to this type from the input type.
source§

impl Copy for RegionIndex

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/circuit/struct.RegionStart.html b/halo2_frontend/circuit/struct.RegionStart.html index 769e637a3..fa6dbeaac 100644 --- a/halo2_frontend/circuit/struct.RegionStart.html +++ b/halo2_frontend/circuit/struct.RegionStart.html @@ -14,10 +14,10 @@ }); -

Struct halo2_frontend::circuit::RegionStart

source ·
pub struct RegionStart(/* private fields */);
Expand description

Starting row of a region in a layouter

-

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionStart

source§

fn clone(&self) -> RegionStart

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 RegionStart

source§

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

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

impl Deref for RegionStart

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<usize> for RegionStart

source§

fn from(idx: usize) -> RegionStart

Converts to this type from the input type.
source§

impl PartialEq for RegionStart

source§

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

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

Struct halo2_frontend::circuit::RegionStart

source ·
pub struct RegionStart(/* private fields */);
Expand description

Starting row of a region in a layouter

+

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionStart

source§

fn clone(&self) -> RegionStart

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 RegionStart

source§

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

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

impl Deref for RegionStart

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<usize> for RegionStart

source§

fn from(idx: usize) -> RegionStart

Converts to this type from the input type.
source§

impl PartialEq for RegionStart

source§

fn eq(&self, other: &RegionStart) -> 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 Copy for RegionStart

source§

impl Eq for RegionStart

source§

impl StructuralPartialEq for RegionStart

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl Copy for RegionStart

source§

impl Eq for RegionStart

source§

impl StructuralPartialEq for RegionStart

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/circuit/struct.Table.html b/halo2_frontend/circuit/struct.Table.html index f16a82d0e..2472416c6 100644 --- a/halo2_frontend/circuit/struct.Table.html +++ b/halo2_frontend/circuit/struct.Table.html @@ -14,8 +14,8 @@ }); -

Struct halo2_frontend::circuit::Table

source ·
pub struct Table<'r, F: Field> { /* private fields */ }
Expand description

A lookup table in the circuit.

-

Implementations§

source§

impl<'r, F: Field> Table<'r, F>

source

pub fn assign_cell<'v, V, VR, A, AR>( +

Struct halo2_frontend::circuit::Table

source ·
pub struct Table<'r, F: Field> { /* private fields */ }
Expand description

A lookup table in the circuit.

+

Implementations§

source§

impl<'r, F: Field> Table<'r, F>

source

pub fn assign_cell<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: TableColumn, @@ -28,7 +28,7 @@ AR: Into<String>,

Assigns a fixed value to a table cell.

Returns an error if the table cell has already been assigned to.

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-

Trait Implementations§

source§

impl<'r, F: Debug + Field> Debug for Table<'r, F>

source§

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

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

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Table<'r, F>

§

impl<'r, F> !RefUnwindSafe for Table<'r, F>

§

impl<'r, F> !Send for Table<'r, F>

§

impl<'r, F> !Sync for Table<'r, F>

§

impl<'r, F> Unpin for Table<'r, F>

§

impl<'r, F> !UnwindSafe for Table<'r, F>

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl<'r, F: Debug + Field> Debug for Table<'r, F>

source§

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

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

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Table<'r, F>

§

impl<'r, F> !RefUnwindSafe for Table<'r, F>

§

impl<'r, F> !Send for Table<'r, F>

§

impl<'r, F> !Sync for Table<'r, F>

§

impl<'r, F> Unpin for Table<'r, F>

§

impl<'r, F> !UnwindSafe for Table<'r, F>

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/circuit/struct.WitnessCalculator.html b/halo2_frontend/circuit/struct.WitnessCalculator.html index d485294c9..3616b48e9 100644 --- a/halo2_frontend/circuit/struct.WitnessCalculator.html +++ b/halo2_frontend/circuit/struct.WitnessCalculator.html @@ -14,21 +14,21 @@ }); -

Struct halo2_frontend::circuit::WitnessCalculator

source ·
pub struct WitnessCalculator<'a, F: Field, ConcreteCircuit: Circuit<F>> { /* private fields */ }
Expand description

Witness calculator. Frontend function

-

Implementations§

source§

impl<'a, F: Field, ConcreteCircuit: Circuit<F>> WitnessCalculator<'a, F, ConcreteCircuit>

source

pub fn new( +

Struct halo2_frontend::circuit::WitnessCalculator

source ·
pub struct WitnessCalculator<'a, F: Field, ConcreteCircuit: Circuit<F>> { /* private fields */ }
Expand description

Witness calculator. Frontend function

+

Implementations§

source§

impl<'a, F: Field, ConcreteCircuit: Circuit<F>> WitnessCalculator<'a, F, ConcreteCircuit>

source

pub fn new( k: u32, circuit: &'a ConcreteCircuit, config: &'a ConcreteCircuit::Config, cs: &'a ConstraintSystem<F>, instances: &'a [Vec<F>] ) -> Self

Create a new WitnessCalculator

-
source

pub fn calc( +

source

pub fn calc( &mut self, phase: u8, challenges: &HashMap<usize, F> ) -> Result<Vec<Option<Vec<F>>>, Error>

Calculate witness at phase

-

Trait Implementations§

source§

impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>
where - ConcreteCircuit::Config: Debug,

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, F, ConcreteCircuit> Freeze for WitnessCalculator<'a, F, ConcreteCircuit>

§

impl<'a, F, ConcreteCircuit> RefUnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where +

Trait Implementations§

source§

impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>
where + ConcreteCircuit::Config: Debug,

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, F, ConcreteCircuit> Freeze for WitnessCalculator<'a, F, ConcreteCircuit>

§

impl<'a, F, ConcreteCircuit> RefUnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where ConcreteCircuit: RefUnwindSafe, <ConcreteCircuit as Circuit<F>>::Config: RefUnwindSafe, F: RefUnwindSafe,

§

impl<'a, F, ConcreteCircuit> Send for WitnessCalculator<'a, F, ConcreteCircuit>
where diff --git a/halo2_frontend/circuit/trait.Chip.html b/halo2_frontend/circuit/trait.Chip.html index edadc1e6e..766168d9f 100644 --- a/halo2_frontend/circuit/trait.Chip.html +++ b/halo2_frontend/circuit/trait.Chip.html @@ -14,7 +14,7 @@ }); -

Trait halo2_frontend::circuit::Chip

source ·
pub trait Chip<F: Field>: Sized {
+

Trait halo2_frontend::circuit::Chip

source ·
pub trait Chip<F: Field>: Sized {
     type Config: Debug + Clone;
     type Loaded: Debug + Clone;
 
@@ -27,12 +27,12 @@
 

The chip also loads any fixed configuration needed at synthesis time using its own implementation of load, and stores it in Chip::Loaded. This can be accessed via Chip::loaded.

-

Required Associated Types§

source

type Config: Debug + Clone

A type that holds the configuration for this chip, and any other state it may need +

Required Associated Types§

source

type Config: Debug + Clone

A type that holds the configuration for this chip, and any other state it may need during circuit synthesis, that can be derived during Circuit::configure.

-
source

type Loaded: Debug + Clone

A type that holds any general chip state that needs to be loaded at the start of +

source

type Loaded: Debug + Clone

A type that holds any general chip state that needs to be loaded at the start of Circuit::synthesize. This might simply be () for some chips.

-

Required Methods§

source

fn config(&self) -> &Self::Config

The chip holds its own configuration.

-
source

fn loaded(&self) -> &Self::Loaded

Provides access to general chip state loaded at the beginning of circuit +

Required Methods§

source

fn config(&self) -> &Self::Config

The chip holds its own configuration.

+
source

fn loaded(&self) -> &Self::Loaded

Provides access to general chip state loaded at the beginning of circuit synthesis.

Panics if called before Chip::load.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/halo2_frontend/circuit/trait.Layouter.html b/halo2_frontend/circuit/trait.Layouter.html index 77812183b..af4de5868 100644 --- a/halo2_frontend/circuit/trait.Layouter.html +++ b/halo2_frontend/circuit/trait.Layouter.html @@ -14,7 +14,7 @@ }); -

Trait halo2_frontend::circuit::Layouter

source ·
pub trait Layouter<F: Field> {
+

Trait halo2_frontend::circuit::Layouter

source ·
pub trait Layouter<F: Field> {
     type Root: Layouter<F>;
 
     // Required methods
@@ -57,9 +57,9 @@
 }
Expand description

A layout strategy within a circuit. The layouter is chip-agnostic and applies its strategy to the context and config it is given.

This abstracts over the circuit assignments, handling row indices etc.

-

Required Associated Types§

source

type Root: Layouter<F>

Represents the type of the “root” of this layouter, so that nested namespaces +

Required Associated Types§

source

type Root: Layouter<F>

Represents the type of the “root” of this layouter, so that nested namespaces can minimize indirection.

-

Required Methods§

source

fn assign_region<A, AR, N, NR>( +

Required Methods§

source

fn assign_region<A, AR, N, NR>( &mut self, name: N, assignment: A @@ -75,7 +75,7 @@ let config = chip.config(); region.assign_advice(config.a, offset, || { Some(value)}); });

-

source

fn assign_table<A, N, NR>( +

source

fn assign_table<A, N, NR>( &mut self, name: N, assignment: A @@ -88,27 +88,27 @@ let config = chip.config(); table.assign_fixed(config.a, offset, || { Some(value)}); });

-
source

fn constrain_instance( +

source

fn constrain_instance( &mut self, cell: Cell, column: Column<Instance>, row: usize ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an absolute position.

-
source

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

Queries the value of the given challenge.

+
source

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

Queries the value of the given challenge.

Returns Value::unknown() if the current synthesis phase is before the challenge can be queried.

-
source

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing.

+
source

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing.

Not intended for downstream consumption; use Layouter::namespace instead.

-
source

fn push_namespace<NR, N>(&mut self, name_fn: N)
where +

source

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

Creates a new (sub)namespace and enters into it.

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.

+
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.

-

Provided Methods§

source

fn namespace<NR, N>( +

Provided Methods§

source

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where NR: Into<String>, N: FnOnce() -> NR,

Enters into a namespace.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, F: Field, CS: Assignment<F> + 'a + SyncDeps> Layouter<F> for SingleChipLayouter<'a, F, CS>

§

type Root = SingleChipLayouter<'a, F, CS>

source§

impl<'a, F: Field, L: Layouter<F> + 'a> Layouter<F> for NamespacedLayouter<'a, F, L>

§

type Root = <L as Layouter<F>>::Root

source§

impl<'p, 'a, F: Field, CS: Assignment<F> + SyncDeps> Layouter<F> for V1Pass<'p, 'a, F, CS>

§

type Root = V1Pass<'p, 'a, F, CS>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, F: Field, CS: Assignment<F> + 'a + SyncDeps> Layouter<F> for SingleChipLayouter<'a, F, CS>

§

type Root = SingleChipLayouter<'a, F, CS>

source§

impl<'a, F: Field, L: Layouter<F> + 'a> Layouter<F> for NamespacedLayouter<'a, F, L>

§

type Root = <L as Layouter<F>>::Root

source§

impl<'p, 'a, F: Field, CS: Assignment<F> + SyncDeps> Layouter<F> for V1Pass<'p, 'a, F, CS>

§

type Root = V1Pass<'p, 'a, F, CS>

\ No newline at end of file diff --git a/halo2_frontend/circuit/trait.TableLayouter.html b/halo2_frontend/circuit/trait.TableLayouter.html index ce6e93747..b5b385b9b 100644 --- a/halo2_frontend/circuit/trait.TableLayouter.html +++ b/halo2_frontend/circuit/trait.TableLayouter.html @@ -33,4 +33,4 @@ to: &'v mut (dyn FnMut() -> Value<Assigned<F>> + 'v) ) -> Result<(), Error>

Assigns a fixed value to a table cell.

Returns an error if the table cell has already been assigned to.

-

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> TableLayouter<F> for SimpleTableLayouter<'r, 'a, F, CS>

\ No newline at end of file +

Trait Implementations§

source§

impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Self

Converts to this type from the input type.

Implementors§

source§

impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> TableLayouter<F> for SimpleTableLayouter<'r, 'a, F, CS>

\ No newline at end of file diff --git a/halo2_frontend/dev/enum.VerifyFailure.html b/halo2_frontend/dev/enum.VerifyFailure.html index 03964793d..264863db2 100644 --- a/halo2_frontend/dev/enum.VerifyFailure.html +++ b/halo2_frontend/dev/enum.VerifyFailure.html @@ -19,7 +19,7 @@ gate: Gate, region: Region, gate_offset: usize, - column: Column<Any>, + column: Column<Any>, offset: isize, }, InstanceCellNotAssigned { @@ -57,7 +57,7 @@
§region: Region

The region in which this cell should be assigned.

§gate_offset: usize

The offset (relative to the start of the region) at which the active gate queries this cell.

-
§column: Column<Any>

The column in which this cell should be assigned.

+
§column: Column<Any>

The column in which this cell should be assigned.

§offset: isize

The offset (relative to the start of the region) at which this cell should be assigned. This may be negative (for example, if a selector enables a gate at offset 0, but the gate uses Rotation::prev()).

diff --git a/halo2_frontend/dev/index.html b/halo2_frontend/dev/index.html index a281c3ca6..9d6794d6b 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.Column.html b/halo2_frontend/dev/metadata/struct.Column.html index 58cdbcc4f..854df4a19 100644 --- a/halo2_frontend/dev/metadata/struct.Column.html +++ b/halo2_frontend/dev/metadata/struct.Column.html @@ -14,23 +14,23 @@ }); -

Fields§

§column_type: Any

The type of the column.

§index: usize

The index of the column.

-

Implementations§

source§

impl ColumnMid

source

pub fn new(column_type: Any, index: usize) -> ColumnMid

Trait Implementations§

source§

impl Clone for ColumnMid

source§

fn clone(&self) -> ColumnMid

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 ColumnMid

source§

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

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

impl Display for ColumnMid

source§

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

Formats the value using the given formatter. Read more
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<ColumnMid> for Column<Any>

source§

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

Converts to this type from the input type.
source§

impl Hash for ColumnMid

source§

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

Implementations§

§

impl ColumnMid

pub fn new(column_type: Any, index: usize) -> ColumnMid

Trait Implementations§

§

impl Clone for ColumnMid

§

fn clone(&self) -> ColumnMid

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
§

impl Debug for ColumnMid

§

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

Formats the value using the given formatter. Read more
§

impl Display for ColumnMid

§

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

Formats the value using the given formatter. Read more
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<ColumnMid> for Column<Any>

source§

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

Converts to this type from the input type.
§

impl Hash for ColumnMid

§

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 ColumnMid

source§

fn cmp(&self, other: &ColumnMid) -> 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,

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

impl Ord for ColumnMid

§

fn cmp(&self, other: &ColumnMid) -> 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 ColumnMid

source§

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

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
§

impl PartialEq for ColumnMid

§

fn eq(&self, other: &ColumnMid) -> 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 PartialOrd for ColumnMid

source§

fn partial_cmp(&self, other: &ColumnMid) -> 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 <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for ColumnMid

§

fn partial_cmp(&self, other: &ColumnMid) -> 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 Copy for ColumnMid

source§

impl Eq for ColumnMid

source§

impl StructuralPartialEq for ColumnMid

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

§

impl Copy for ColumnMid

§

impl Eq for ColumnMid

§

impl StructuralPartialEq for ColumnMid

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 dd913178f..244da59f8 100644 --- a/halo2_frontend/dev/struct.MockProver.html +++ b/halo2_frontend/dev/struct.MockProver.html @@ -129,31 +129,31 @@

§Examples

);

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>>( +

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 @@ -164,15 +164,15 @@

§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>( &mut self, @@ -185,7 +185,7 @@

§Examples

&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, desc: A, column: Column<Advice>, @@ -195,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, desc: A, column: Column<Fixed>, @@ -205,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_column: Column<Any>, left_row: usize, - right_column: Column<Any>, + 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/circuit/constraint_system/struct.ConstraintSystem.html b/halo2_frontend/plonk/circuit/constraint_system/struct.ConstraintSystem.html index 80b9d439f..af42c6111 100644 --- a/halo2_frontend/plonk/circuit/constraint_system/struct.ConstraintSystem.html +++ b/halo2_frontend/plonk/circuit/constraint_system/struct.ConstraintSystem.html @@ -19,7 +19,7 @@

Implementations§

source§

impl<F: Field> ConstraintSystem<F>

source

pub fn enable_constant(&mut self, column: Column<Fixed>)

Enables this fixed column to be used for global constant assignments.

§Side-effects

The column will be equality-enabled.

-
source

pub fn enable_equality<C: Into<Column<Any>>>(&mut self, column: C)

Enable the ability to enforce equality over cells in this column

+
source

pub fn enable_equality<C: Into<Column<Any>>>(&mut self, column: C)

Enable the ability to enforce equality over cells in this column

source

pub fn lookup<S: AsRef<str>>( &mut self, name: S, @@ -46,7 +46,7 @@

§Side-effe name: S, shuffle_map: impl FnOnce(&mut VirtualCells<'_, F>) -> Vec<(Expression<F>, Expression<F>)> ) -> usize

Add a shuffle argument for some input expressions and table expressions.

-
source

pub fn get_any_query_index(&self, column: Column<Any>, at: Rotation) -> usize

source

pub fn set_minimum_degree(&mut self, degree: usize)

Sets the minimum degree required by the circuit, which can be set to a +

source

pub fn get_any_query_index(&self, column: Column<Any>, at: Rotation) -> usize

source

pub fn set_minimum_degree(&mut self, degree: usize)

Sets the minimum degree required by the circuit, which can be set to a larger amount than actually needed. This can be used, for example, to force the permutation argument to involve more columns in the same set.

source

pub fn create_gate<C: Into<Constraint<F>>, Iter: IntoIterator<Item = C>, S: AsRef<str>>( @@ -87,11 +87,11 @@

§Panics
source

pub fn annotate_lookup_any_column<A, AR, T>(&mut self, column: T, annotation: A)
where A: Fn() -> AR, AR: Into<String>, - T: Into<Column<Any>>,

Annotate an Instance column.

+ T: Into<Column<Any>>,

Annotate an Instance column.

source

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

Annotate a column.

+ T: Into<Column<Any>>,

Annotate a column.

source

pub fn fixed_column(&mut self) -> Column<Fixed>

Allocate a new fixed column

source

pub fn unblinded_advice_column(&mut self) -> Column<Advice>

Allocate a new unblinded advice column at FirstPhase

source

pub fn advice_column(&mut self) -> Column<Advice>

Allocate a new advice column at FirstPhase

@@ -123,14 +123,14 @@
§Panics
source

pub fn challenge_phase(&self) -> Vec<u8>

Returns phase of challenges

source

pub fn gates(&self) -> &Vec<Gate<F>>

Returns gates

source

pub fn general_column_annotations(&self) -> &HashMap<ColumnMid, String>

Returns general column annotations

-
source

pub fn advice_queries(&self) -> &Vec<(Column<Advice>, Rotation)>

Returns advice queries

-
source

pub fn instance_queries(&self) -> &Vec<(Column<Instance>, Rotation)>

Returns instance queries

-
source

pub fn fixed_queries(&self) -> &Vec<(Column<Fixed>, Rotation)>

Returns fixed queries

+
source

pub fn advice_queries(&self) -> &Vec<(Column<Advice>, Rotation)>

Returns advice queries

+
source

pub fn instance_queries(&self) -> &Vec<(Column<Instance>, Rotation)>

Returns instance queries

+
source

pub fn fixed_queries(&self) -> &Vec<(Column<Fixed>, Rotation)>

Returns fixed queries

source

pub fn permutation(&self) -> &Argument

Returns permutation argument

source

pub fn lookups(&self) -> &Vec<Argument<F>>

Returns lookup arguments

source

pub fn shuffles(&self) -> &Vec<Argument<F>>

Returns shuffle arguments

source

pub fn constants(&self) -> &Vec<Column<Fixed>>

Returns constants

-

Trait Implementations§

source§

impl<F: Clone + Field> Clone for ConstraintSystem<F>

source§

fn clone(&self) -> ConstraintSystem<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 + Field> Debug for ConstraintSystem<F>

source§

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

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

impl<F: Field> Default for ConstraintSystem<F>

source§

fn default() -> ConstraintSystem<F>

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

impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>

source§

fn from(cs: ConstraintSystem<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<F> Freeze for ConstraintSystem<F>

§

impl<F> RefUnwindSafe for ConstraintSystem<F>
where +

Trait Implementations§

source§

impl<F: Clone + Field> Clone for ConstraintSystem<F>

source§

fn clone(&self) -> ConstraintSystem<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 + Field> Debug for ConstraintSystem<F>

source§

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

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

impl<F: Field> Default for ConstraintSystem<F>

source§

fn default() -> ConstraintSystem<F>

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

impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>

source§

fn from(cs: ConstraintSystem<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<F> Freeze for ConstraintSystem<F>

§

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

§

impl<F> Send for ConstraintSystem<F>

§

impl<F> Sync for ConstraintSystem<F>

§

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

§

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

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html index f1a824f28..1d07ddc61 100644 --- a/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html +++ b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCell.html @@ -15,11 +15,11 @@
pub struct VirtualCell {
-    pub column: Column<Any>,
-    pub rotation: Rotation,
+    pub column: Column<Any>,
+    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/constraint_system/struct.VirtualCells.html b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCells.html index 6beb26c99..ee3ccbc93 100644 --- a/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCells.html +++ b/halo2_frontend/plonk/circuit/constraint_system/struct.VirtualCells.html @@ -20,22 +20,22 @@

source

pub fn query_fixed( &mut self, column: Column<Fixed>, - at: Rotation + at: Rotation ) -> Expression<F>

Query a fixed column at a relative position

source

pub fn query_advice( &mut self, column: Column<Advice>, - at: Rotation + at: Rotation ) -> Expression<F>

Query an advice column at a relative position

source

pub fn query_instance( &mut self, column: Column<Instance>, - at: Rotation + at: Rotation ) -> Expression<F>

Query an instance column at a relative position

-
source

pub fn query_any<C: Into<Column<Any>>>( +

source

pub fn query_any<C: Into<Column<Any>>>( &mut self, column: C, - at: Rotation + at: Rotation ) -> Expression<F>

Query an Any column at a relative position

source

pub fn query_challenge(&mut self, challenge: Challenge) -> Expression<F>

Query a challenge

Trait Implementations§

source§

impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, F> Freeze for VirtualCells<'a, F>

§

impl<'a, F> RefUnwindSafe for VirtualCells<'a, F>
where diff --git a/halo2_frontend/plonk/circuit/expression/enum.Expression.html b/halo2_frontend/plonk/circuit/expression/enum.Expression.html index 515f5e99c..65d308502 100644 --- a/halo2_frontend/plonk/circuit/expression/enum.Expression.html +++ b/halo2_frontend/plonk/circuit/expression/enum.Expression.html @@ -72,7 +72,7 @@
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 diff --git a/halo2_frontend/plonk/circuit/expression/struct.AdviceQuery.html b/halo2_frontend/plonk/circuit/expression/struct.AdviceQuery.html index 8aba72e92..9b52df0e5 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.AdviceQuery.html +++ b/halo2_frontend/plonk/circuit/expression/struct.AdviceQuery.html @@ -17,13 +17,13 @@

Struct halo2_frontend::plonk::circuit::expression::AdviceQuery

source ·
pub struct AdviceQuery {
     pub index: Option<usize>,
     pub column_index: usize,
-    pub rotation: Rotation,
+    pub rotation: Rotation,
 }
Expand description

Query of advice column at a certain relative location

Fields§

§index: Option<usize>

Query index

§column_index: usize

Column index

-
§rotation: Rotation

Rotation of this query

+
§rotation: Rotation

Rotation of this query

Implementations§

source§

impl AdviceQuery

source

pub fn column_index(&self) -> usize

Column index

-
source

pub fn rotation(&self) -> Rotation

Rotation of this query

+
source

pub fn rotation(&self) -> Rotation

Rotation of this query

Trait Implementations§

source§

impl Clone for AdviceQuery

source§

fn clone(&self) -> AdviceQuery

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 AdviceQuery

source§

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

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

impl PartialEq for AdviceQuery

source§

fn eq(&self, other: &AdviceQuery) -> 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 Copy for AdviceQuery

source§

impl Eq for AdviceQuery

source§

impl StructuralPartialEq for AdviceQuery

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_frontend/plonk/circuit/expression/struct.Challenge.html b/halo2_frontend/plonk/circuit/expression/struct.Challenge.html index fc8111fb2..448c3912f 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.Challenge.html +++ b/halo2_frontend/plonk/circuit/expression/struct.Challenge.html @@ -21,7 +21,7 @@

Fields§

§index: usize

Implementations§

source§

impl Challenge

source

pub fn index(&self) -> usize

Index of this challenge.

source

pub fn phase(&self) -> u8

Phase of this challenge.

source

pub fn expr<F: Field>(&self) -> Expression<F>

Return Expression

-

Trait Implementations§

source§

impl Clone for Challenge

source§

fn clone(&self) -> Challenge

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 Challenge

source§

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

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

impl From<Challenge> for ChallengeMid

source§

fn from(val: Challenge) -> Self

Converts to this type from the input type.
source§

impl From<ChallengeMid> for Challenge

source§

fn from(c: ChallengeMid) -> Self

Converts to this type from the input type.
source§

impl Hash for Challenge

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 Challenge

source§

fn clone(&self) -> Challenge

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 Challenge

source§

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

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

impl From<Challenge> for ChallengeMid

source§

fn from(val: Challenge) -> Self

Converts to this type from the input type.
source§

impl From<ChallengeMid> for Challenge

source§

fn from(c: ChallengeMid) -> Self

Converts to this type from the input type.
source§

impl Hash for Challenge

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 PartialEq for Challenge

source§

fn eq(&self, other: &Challenge) -> 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/plonk/circuit/expression/struct.Column.html b/halo2_frontend/plonk/circuit/expression/struct.Column.html index 8b9f8f7b0..e1a703d39 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.Column.html +++ b/halo2_frontend/plonk/circuit/expression/struct.Column.html @@ -20,12 +20,12 @@ }
Expand description

A column with an index and type

Fields§

§index: usize§column_type: C

Implementations§

source§

impl<C: ColumnType> Column<C>

source

pub fn new(index: usize, column_type: C) -> Self

source

pub fn index(&self) -> usize

Index of this column.

source

pub fn column_type(&self) -> &C

Type of this column.

-
source

pub fn query_cell<F: Field>(&self, at: Rotation) -> Expression<F>

Return expression from column at a relative position

+
source

pub fn query_cell<F: Field>(&self, at: Rotation) -> Expression<F>

Return expression from column at a relative position

source

pub fn cur<F: Field>(&self) -> Expression<F>

Return expression from column at the current row

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/expression/struct.FixedQuery.html b/halo2_frontend/plonk/circuit/expression/struct.FixedQuery.html index 33f8b568e..ff6000abe 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.FixedQuery.html +++ b/halo2_frontend/plonk/circuit/expression/struct.FixedQuery.html @@ -17,13 +17,13 @@

Struct halo2_frontend::plonk::circuit::expression::FixedQuery

source ·
pub struct FixedQuery {
     pub index: Option<usize>,
     pub column_index: usize,
-    pub rotation: Rotation,
+    pub rotation: Rotation,
 }
Expand description

Query of fixed column at a certain relative location

Fields§

§index: Option<usize>

Query index

§column_index: usize

Column index

-
§rotation: Rotation

Rotation of this query

+
§rotation: Rotation

Rotation of this query

Implementations§

source§

impl FixedQuery

source

pub fn column_index(&self) -> usize

Column index

-
source

pub fn rotation(&self) -> Rotation

Rotation of this query

+
source

pub fn rotation(&self) -> Rotation

Rotation of this query

Trait Implementations§

source§

impl Clone for FixedQuery

source§

fn clone(&self) -> FixedQuery

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 FixedQuery

source§

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

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

impl PartialEq for FixedQuery

source§

fn eq(&self, other: &FixedQuery) -> 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 Copy for FixedQuery

source§

impl Eq for FixedQuery

source§

impl StructuralPartialEq for FixedQuery

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_frontend/plonk/circuit/expression/struct.InstanceQuery.html b/halo2_frontend/plonk/circuit/expression/struct.InstanceQuery.html index 51ec1ab57..27c56ee0a 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.InstanceQuery.html +++ b/halo2_frontend/plonk/circuit/expression/struct.InstanceQuery.html @@ -17,13 +17,13 @@

Struct halo2_frontend::plonk::circuit::expression::InstanceQuery

source ·
pub struct InstanceQuery {
     pub index: Option<usize>,
     pub column_index: usize,
-    pub rotation: Rotation,
+    pub rotation: Rotation,
 }
Expand description

Query of instance column at a certain relative location

Fields§

§index: Option<usize>

Query index

§column_index: usize

Column index

-
§rotation: Rotation

Rotation of this query

+
§rotation: Rotation

Rotation of this query

Implementations§

source§

impl InstanceQuery

source

pub fn column_index(&self) -> usize

Column index

-
source

pub fn rotation(&self) -> Rotation

Rotation of this query

+
source

pub fn rotation(&self) -> Rotation

Rotation of this query

Trait Implementations§

source§

impl Clone for InstanceQuery

source§

fn clone(&self) -> InstanceQuery

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 InstanceQuery

source§

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

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

impl PartialEq for InstanceQuery

source§

fn eq(&self, other: &InstanceQuery) -> 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 Copy for InstanceQuery

source§

impl Eq for InstanceQuery

source§

impl StructuralPartialEq for InstanceQuery

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/halo2_frontend/plonk/circuit/struct.Advice.html b/halo2_frontend/plonk/circuit/struct.Advice.html index 98b265e2a..e0649c5bc 100644 --- a/halo2_frontend/plonk/circuit/struct.Advice.html +++ b/halo2_frontend/plonk/circuit/struct.Advice.html @@ -15,7 +15,7 @@

Struct halo2_frontend::plonk::circuit::Advice

source ·
pub struct Advice;
Expand description

An advice column

-

Trait Implementations§

source§

impl Clone for Advice

source§

fn clone(&self) -> Advice

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 Advice

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Advice

source§

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

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 Hash for Advice

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 Advice

source§

fn clone(&self) -> Advice

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 Advice

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Advice

source§

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

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 Hash for Advice

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 PartialEq for Advice

source§

fn eq(&self, other: &Advice) -> 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/plonk/circuit/struct.Fixed.html b/halo2_frontend/plonk/circuit/struct.Fixed.html index 0b5f9bc88..57620b147 100644 --- a/halo2_frontend/plonk/circuit/struct.Fixed.html +++ b/halo2_frontend/plonk/circuit/struct.Fixed.html @@ -15,7 +15,7 @@

Struct halo2_frontend::plonk::circuit::Fixed

source ·
pub struct Fixed;
Expand description

A fixed column

-

Trait Implementations§

source§

impl Clone for Fixed

source§

fn clone(&self) -> Fixed

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 Fixed

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Fixed

source§

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

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

impl From<Fixed> for Any

source§

fn from(_: Fixed) -> Any

Converts to this type from the input type.
source§

impl Hash for Fixed

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 Fixed

source§

fn clone(&self) -> Fixed

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 Fixed

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Fixed

source§

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

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

impl From<Fixed> for Any

source§

fn from(_: Fixed) -> Any

Converts to this type from the input type.
source§

impl Hash for Fixed

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 PartialEq for Fixed

source§

fn eq(&self, other: &Fixed) -> 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/plonk/circuit/struct.Instance.html b/halo2_frontend/plonk/circuit/struct.Instance.html index a43e0396f..1e0ce44ed 100644 --- a/halo2_frontend/plonk/circuit/struct.Instance.html +++ b/halo2_frontend/plonk/circuit/struct.Instance.html @@ -15,7 +15,7 @@

Struct halo2_frontend::plonk::circuit::Instance

source ·
pub struct Instance;
Expand description

An instance column

-

Trait Implementations§

source§

impl Clone for Instance

source§

fn clone(&self) -> Instance

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 Instance

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Instance

source§

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

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

impl From<Instance> for Any

source§

fn from(_: Instance) -> Any

Converts to this type from the input type.
source§

impl Hash for Instance

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 Instance

source§

fn clone(&self) -> Instance

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 Instance

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell
source§

impl Debug for Instance

source§

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

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

impl From<Instance> for Any

source§

fn from(_: Instance) -> Any

Converts to this type from the input type.
source§

impl Hash for Instance

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 PartialEq for Instance

source§

fn eq(&self, other: &Instance) -> 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/plonk/circuit/trait.Assignment.html b/halo2_frontend/plonk/circuit/trait.Assignment.html index 97e8d25e6..0dd4fb762 100644 --- a/halo2_frontend/plonk/circuit/trait.Assignment.html +++ b/halo2_frontend/plonk/circuit/trait.Assignment.html @@ -19,7 +19,7 @@ fn enter_region<NR, N>(&mut self, name_fn: N) where NR: Into<String>, N: FnOnce() -> NR; - fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>) + fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>) where A: FnOnce() -> AR, AR: Into<String>; fn exit_region(&mut self); @@ -60,9 +60,9 @@ AR: Into<String>; fn copy( &mut self, - left_column: Column<Any>, + left_column: Column<Any>, left_row: usize, - right_column: Column<Any>, + right_column: Column<Any>, right_row: usize ) -> Result<(), Error>; fn fill_from_row( @@ -83,7 +83,7 @@ N: FnOnce() -> NR,

Creates a new region and enters into it.

Panics if we are currently in a region (if exit_region was not called).

Not intended for downstream consumption; use Layouter::assign_region instead.

-
source

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

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.

This is usually useful for debugging circuit failures.

@@ -128,9 +128,9 @@ AR: Into<String>,

Assign a fixed value

source

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

Assign two cells to have the same value

source

fn fill_from_row( @@ -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/circuit/trait.ColumnType.html b/halo2_frontend/plonk/circuit/trait.ColumnType.html index 275da59f6..bca238bc1 100644 --- a/halo2_frontend/plonk/circuit/trait.ColumnType.html +++ b/halo2_frontend/plonk/circuit/trait.ColumnType.html @@ -14,9 +14,9 @@ }); -

Trait halo2_frontend::plonk::circuit::ColumnType

source ·
pub trait ColumnType: 'static + Sized + Copy + Debug + PartialEq + Eq + Into<Any> {
+

Trait halo2_frontend::plonk::circuit::ColumnType

source ·
pub trait ColumnType: 'static + Sized + Copy + Debug + PartialEq + Eq + Into<Any> {
     // Required method
-    fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>;
+    fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>;
 }
Expand description

A column type

-

Required Methods§

source

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ColumnType for Any

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Implementors§

\ No newline at end of file +

Required Methods§

source

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Return expression from cell

+

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ColumnType for Any

source§

fn query_cell<F: Field>(&self, index: usize, at: Rotation) -> Expression<F>

Implementors§

source§

impl ColumnType for Advice

source§

impl ColumnType for Fixed

source§

impl ColumnType for Instance

\ No newline at end of file diff --git a/halo2_frontend/plonk/error/enum.AssignmentError.html b/halo2_frontend/plonk/error/enum.AssignError.html similarity index 73% rename from halo2_frontend/plonk/error/enum.AssignmentError.html rename to halo2_frontend/plonk/error/enum.AssignError.html index f044d927b..16b41936f 100644 --- a/halo2_frontend/plonk/error/enum.AssignmentError.html +++ b/halo2_frontend/plonk/error/enum.AssignError.html @@ -1,4 +1,4 @@ -AssignmentError in halo2_frontend::plonk::error - Rust +AssignError in halo2_frontend::plonk::error - Rust -

Enum halo2_frontend::plonk::error::AssignmentError

source ·
pub enum AssignmentError {
+

Enum halo2_frontend::plonk::error::AssignError

source ·
pub enum AssignError {
     AssignAdvice {
         desc: String,
-        col: Column<Any>,
+        col: Column<Any>,
         row: usize,
         usable_rows: (usize, usize),
         k: u32,
     },
     AssignFixed {
         desc: String,
-        col: Column<Any>,
+        col: Column<Any>,
         row: usize,
         usable_rows: (usize, usize),
         k: u32,
@@ -37,27 +37,31 @@
         k: u32,
     },
     QueryInstance {
-        col: Column<Any>,
+        col: Column<Any>,
         row: usize,
         usable_rows: (usize, usize),
         k: u32,
     },
     Copy {
-        left_col: Column<Any>,
+        left_col: Column<Any>,
         left_row: usize,
-        right_col: Column<Any>,
+        right_col: Column<Any>,
         right_row: usize,
         usable_rows: (usize, usize),
         k: u32,
     },
     FillFromRow {
-        col: Column<Any>,
+        col: Column<Any>,
         from_row: usize,
         usable_rows: (usize, usize),
         k: u32,
     },
+    WitnessMissing {
+        func: String,
+        desc: String,
+    },
 }
Expand description

This is an error that could occur during assign_advice, assign_fixed, copy, etc.

-

Variants§

§

AssignAdvice

Fields

§desc: String
§row: usize
§usable_rows: (usize, usize)
§

AssignFixed

Fields

§desc: String
§row: usize
§usable_rows: (usize, usize)
§

EnableSelector

Fields

§desc: String
§selector: Selector
§row: usize
§usable_rows: (usize, usize)
§

QueryInstance

Fields

§row: usize
§usable_rows: (usize, usize)
§

Copy

Fields

§left_col: Column<Any>
§left_row: usize
§right_col: Column<Any>
§right_row: usize
§usable_rows: (usize, usize)
§

FillFromRow

Fields

§from_row: usize
§usable_rows: (usize, usize)

Trait Implementations§

source§

impl Debug for AssignmentError

source§

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

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

impl Display for AssignmentError

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Variants§

§

AssignAdvice

Fields

§desc: String
§col: Column<Any>
§row: usize
§usable_rows: (usize, usize)
§

AssignFixed

Fields

§desc: String
§col: Column<Any>
§row: usize
§usable_rows: (usize, usize)
§

EnableSelector

Fields

§desc: String
§selector: Selector
§row: usize
§usable_rows: (usize, usize)
§

QueryInstance

Fields

§col: Column<Any>
§row: usize
§usable_rows: (usize, usize)
§

Copy

Fields

§left_col: Column<Any>
§left_row: usize
§right_col: Column<Any>
§right_row: usize
§usable_rows: (usize, usize)
§

FillFromRow

Fields

§col: Column<Any>
§from_row: usize
§usable_rows: (usize, usize)
§

WitnessMissing

Fields

§func: String
§desc: String

Trait Implementations§

source§

impl Debug for AssignError

source§

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

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

impl Display for AssignError

source§

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

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/plonk/error/enum.Error.html b/halo2_frontend/plonk/error/enum.Error.html index 953ddf0e3..a59199f14 100644 --- a/halo2_frontend/plonk/error/enum.Error.html +++ b/halo2_frontend/plonk/error/enum.Error.html @@ -14,19 +14,19 @@ }); -

Enum halo2_frontend::plonk::error::Error

source ·
pub enum Error {
+

Enum halo2_frontend::plonk::error::Error

source ·
pub enum Error {
     Synthesis,
     BoundsFailure,
     NotEnoughRowsAvailable {
         current_k: u32,
     },
     NotEnoughColumnsForConstants,
-    ColumnNotInPermutation(Column<Any>),
+    ColumnNotInPermutation(Column<Any>),
     TableError(TableError),
-    AssignmentError(AssignmentError),
+    AssignError(AssignError),
     Other(String),
 }
Expand description

This is an error that could occur during circuit synthesis.

-

NOTE: AssignmentError is introduced to provide more debugging info
+

NOTE: AssignError is introduced to provide more debugging info
to developers when assigning witnesses to circuit cells.
Hence, they are used for [MockProver] and [WitnessCollection].
The [keygen] process use the [NotEnoughRowsAvailable], since it is just enough.

@@ -37,10 +37,10 @@

Fields

§current_k: u32

The current value of k being used.

§

NotEnoughColumnsForConstants

Circuit synthesis requires global constants, but circuit configuration did not call ConstraintSystem::enable_constant on fixed columns with sufficient space.

-
§

ColumnNotInPermutation(Column<Any>)

The instance sets up a copy constraint involving a column that has not been +

§

ColumnNotInPermutation(Column<Any>)

The instance sets up a copy constraint involving a column that has not been included in the permutation.

§

TableError(TableError)

An error relating to a lookup table.

-
§

AssignmentError(AssignmentError)

An error relating to an Assignment.

+
§

AssignError(AssignError)

An error relating to a circuit assignment.

§

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 diff --git a/halo2_frontend/plonk/error/index.html b/halo2_frontend/plonk/error/index.html index 3d9bccaa3..7e0266763 100644 --- a/halo2_frontend/plonk/error/index.html +++ b/halo2_frontend/plonk/error/index.html @@ -14,4 +14,4 @@ }); -

Module halo2_frontend::plonk::error

source ·

Enums§

  • This is an error that could occur during assign_advice, assign_fixed, copy, etc.
  • This is an error that could occur during circuit synthesis.
  • This is an error that could occur during table synthesis.
\ No newline at end of file +

Module halo2_frontend::plonk::error

source ·

Enums§

  • This is an error that could occur during assign_advice, assign_fixed, copy, etc.
  • This is an error that could occur during circuit synthesis.
  • This is an error that could occur during table synthesis.
\ No newline at end of file diff --git a/halo2_frontend/plonk/error/sidebar-items.js b/halo2_frontend/plonk/error/sidebar-items.js index ae01914de..68a48f9ee 100644 --- a/halo2_frontend/plonk/error/sidebar-items.js +++ b/halo2_frontend/plonk/error/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["AssignmentError","Error","TableError"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["AssignError","Error","TableError"]}; \ No newline at end of file diff --git a/halo2_frontend/plonk/keygen/index.html b/halo2_frontend/plonk/keygen/index.html index b73f601fd..28dc65528 100644 --- a/halo2_frontend/plonk/keygen/index.html +++ b/halo2_frontend/plonk/keygen/index.html @@ -14,4 +14,4 @@ }); -

Module halo2_frontend::plonk::keygen

source ·
\ No newline at end of file +

Module halo2_frontend::plonk::keygen

source ·
\ No newline at end of file diff --git a/halo2_frontend/plonk/permutation/struct.Argument.html b/halo2_frontend/plonk/permutation/struct.Argument.html index af7eee933..6dd9431e5 100644 --- a/halo2_frontend/plonk/permutation/struct.Argument.html +++ b/halo2_frontend/plonk/permutation/struct.Argument.html @@ -15,7 +15,7 @@

Struct halo2_frontend::plonk::permutation::Argument

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

A permutation argument.

-

Implementations§

source§

impl Argument

source

pub fn get_columns(&self) -> Vec<Column<Any>>

Returns columns that participate on the permutation argument.

+

Implementations§

source§

impl Argument

source

pub fn get_columns(&self) -> Vec<Column<Any>>

Returns columns that participate on the permutation argument.

Trait Implementations§

source§

impl Clone for Argument

source§

fn clone(&self) -> Argument

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 Argument

source§

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

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

impl Default for Argument

source§

fn default() -> Argument

Returns the “default value” for a type. 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 diff --git a/halo2_proofs/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html b/halo2_proofs/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html index 56984e4b5..4a8448862 100644 --- a/halo2_proofs/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html +++ b/halo2_proofs/circuit/floor_planner/single_pass/struct.SingleChipLayouter.html @@ -52,7 +52,7 @@ &mut self ) -> &mut <SingleChipLayouter<'a, F, CS> as Layouter<F>>::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, name_fn: 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, gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_proofs/circuit/floor_planner/struct.V1Pass.html b/halo2_proofs/circuit/floor_planner/struct.V1Pass.html index 8f31a12cc..5a6a52327 100644 --- a/halo2_proofs/circuit/floor_planner/struct.V1Pass.html +++ b/halo2_proofs/circuit/floor_planner/struct.V1Pass.html @@ -45,7 +45,7 @@ ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an absolute position.
source§

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

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

fn get_root(&mut self) -> &mut <V1Pass<'p, 'a, F, CS> as Layouter<F>>::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, name_fn: 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, gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_proofs/circuit/floor_planner/v1/struct.V1Pass.html b/halo2_proofs/circuit/floor_planner/v1/struct.V1Pass.html index 6d6bc7335..fe782164a 100644 --- a/halo2_proofs/circuit/floor_planner/v1/struct.V1Pass.html +++ b/halo2_proofs/circuit/floor_planner/v1/struct.V1Pass.html @@ -45,7 +45,7 @@ ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an absolute position.
source§

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

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

fn get_root(&mut self) -> &mut <V1Pass<'p, 'a, F, CS> as Layouter<F>>::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, name_fn: 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, gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_proofs/circuit/struct.AssignedCell.html b/halo2_proofs/circuit/struct.AssignedCell.html index 920b4f792..a65b68d8e 100644 --- a/halo2_proofs/circuit/struct.AssignedCell.html +++ b/halo2_proofs/circuit/struct.AssignedCell.html @@ -14,22 +14,22 @@ }); -

Struct halo2_proofs::circuit::AssignedCell

source ·
pub struct AssignedCell<V, F>
where +

Struct halo2_proofs::circuit::AssignedCell

source ·
pub struct AssignedCell<V, F>
where F: Field,
{ /* private fields */ }
Expand description

An assigned cell.

-

Implementations§

source§

impl<V, F> AssignedCell<V, F>
where - F: Field,

source

pub fn value(&self) -> Value<&V>

Returns the value of the AssignedCell.

-
source

pub fn cell(&self) -> Cell

Returns the cell.

-
source§

impl<V, F> AssignedCell<V, F>
where +

Implementations§

source§

impl<V, F> AssignedCell<V, F>
where + F: Field,

source

pub fn value(&self) -> Value<&V>

Returns the value of the AssignedCell.

+
source

pub fn cell(&self) -> Cell

Returns the cell.

+
source§

impl<V, F> AssignedCell<V, F>
where F: Field, - Assigned<F>: for<'v> From<&'v V>,

source

pub fn value_field(&self) -> Value<Assigned<F>>

Returns the field element value of the AssignedCell.

-
source§

impl<F> AssignedCell<Assigned<F>, F>
where - F: Field,

source

pub fn evaluate(self) -> AssignedCell<F, F>

Evaluates this assigned cell’s value directly, performing an unbatched inversion + Assigned<F>: for<'v> From<&'v V>,

source

pub fn value_field(&self) -> Value<Assigned<F>>

Returns the field element value of the AssignedCell.

+
source§

impl<F> AssignedCell<Assigned<F>, F>
where + F: Field,

source

pub fn evaluate(self) -> AssignedCell<F, F>

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

If the denominator is zero, the returned cell’s value is zero.

-
source§

impl<V, F> AssignedCell<V, F>
where +

source§

impl<V, F> AssignedCell<V, F>
where V: Clone, F: Field, - Assigned<F>: for<'v> From<&'v V>,

source

pub fn copy_advice<A, AR>( + Assigned<F>: for<'v> From<&'v V>,

source

pub fn copy_advice<A, AR>( &self, annotation: A, region: &mut Region<'_, F>, @@ -40,11 +40,11 @@ AR: Into<String>,

Copies the value to a given advice cell and constrains them to be equal.

Returns an error if either this cell or the given cell are in columns where equality has not been enabled.

-

Trait Implementations§

source§

impl<V, F> Clone for AssignedCell<V, F>
where +

Trait Implementations§

source§

impl<V, F> Clone for AssignedCell<V, F>
where V: Clone, - F: Clone + Field,

source§

fn clone(&self) -> AssignedCell<V, 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<V, F> Debug for AssignedCell<V, F>
where + F: Clone + Field,

source§

fn clone(&self) -> AssignedCell<V, 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<V, F> Debug for AssignedCell<V, F>
where V: Debug, - 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<V, F> Freeze for AssignedCell<V, 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<V, F> Freeze for AssignedCell<V, F>
where V: Freeze,

§

impl<V, F> RefUnwindSafe for AssignedCell<V, F>

§

impl<V, F> Send for AssignedCell<V, F>
where diff --git a/halo2_proofs/circuit/struct.Cell.html b/halo2_proofs/circuit/struct.Cell.html index ab1fc2985..7ea9e3baf 100644 --- a/halo2_proofs/circuit/struct.Cell.html +++ b/halo2_proofs/circuit/struct.Cell.html @@ -14,7 +14,7 @@ }); -

Struct halo2_proofs::circuit::Cell

source ·
pub struct Cell {
+

Struct halo2_proofs::circuit::Cell

source ·
pub struct Cell {
     pub region_index: RegionIndex,
     pub row_offset: usize,
     pub column: Column<Any>,
@@ -22,7 +22,7 @@
 

Fields§

§region_index: RegionIndex

Identifies the region in which this cell resides.

§row_offset: usize

The relative offset of this cell within its region.

§column: Column<Any>

The column of this cell.

-

Trait Implementations§

source§

impl Clone for Cell

source§

fn clone(&self) -> Cell

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 Cell

source§

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

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

impl Copy for Cell

Auto Trait Implementations§

§

impl Freeze for Cell

§

impl RefUnwindSafe for Cell

§

impl Send for Cell

§

impl Sync for Cell

§

impl Unpin for Cell

§

impl UnwindSafe for Cell

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Cell

source§

fn clone(&self) -> Cell

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 Cell

source§

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

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

impl Copy for Cell

Auto Trait Implementations§

§

impl Freeze for Cell

§

impl RefUnwindSafe for Cell

§

impl Send for Cell

§

impl Sync for Cell

§

impl Unpin for Cell

§

impl UnwindSafe for Cell

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/circuit/struct.NamespacedLayouter.html b/halo2_proofs/circuit/struct.NamespacedLayouter.html index 7c2c2f512..1c7ba701c 100644 --- a/halo2_proofs/circuit/struct.NamespacedLayouter.html +++ b/halo2_proofs/circuit/struct.NamespacedLayouter.html @@ -14,43 +14,43 @@ }); -

Struct halo2_proofs::circuit::NamespacedLayouter

source ·
pub struct NamespacedLayouter<'a, F, L>(/* private fields */)
+

Struct halo2_proofs::circuit::NamespacedLayouter

source ·
pub struct NamespacedLayouter<'a, F, L>(/* private fields */)
 where
     F: Field,
     L: Layouter<F> + 'a;
Expand description

This is a “namespaced” layouter which borrows a Layouter (pushing a namespace context) and, when dropped, pops out of the namespace context.

-

Trait Implementations§

source§

impl<'a, F, L> Debug for NamespacedLayouter<'a, F, L>
where +

Trait Implementations§

source§

impl<'a, F, L> Debug for NamespacedLayouter<'a, F, L>
where F: Debug + Field, - L: Debug + Layouter<F> + 'a,

source§

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

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

impl<'a, F, L> Drop for NamespacedLayouter<'a, F, L>
where + L: Debug + Layouter<F> + 'a,

source§

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

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

impl<'a, F, L> Drop for NamespacedLayouter<'a, F, L>
where F: Field, - L: Layouter<F> + 'a,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, F, L> Layouter<F> for NamespacedLayouter<'a, F, L>
where + L: Layouter<F> + 'a,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'a, F, L> Layouter<F> for NamespacedLayouter<'a, F, L>
where F: Field, L: Layouter<F> + 'a,

§

type Root = <L as Layouter<F>>::Root

Represents the type of the “root” of this layouter, so that nested namespaces -can minimize indirection.
source§

fn assign_region<A, AR, N, NR>( +can minimize indirection.

source§

fn assign_region<A, AR, N, NR>( &mut self, name: N, assignment: A ) -> Result<AR, Error>
where A: FnMut(Region<'_, F>) -> Result<AR, Error>, N: Fn() -> NR, - NR: Into<String>,

Assign a region of gates to an absolute row number. Read more
source§

fn assign_table<A, N, NR>( + NR: Into<String>,

Assign a region of gates to an absolute row number. Read more
source§

fn assign_table<A, N, NR>( &mut self, name: N, assignment: A ) -> Result<(), Error>
where A: FnMut(Table<'_, F>) -> Result<(), Error>, N: Fn() -> NR, - NR: Into<String>,

Assign a table region to an absolute row number. Read more
source§

fn constrain_instance( + NR: Into<String>,

Assign a table region to an absolute row number. Read more
source§

fn constrain_instance( &mut self, cell: Cell, column: Column<Instance>, row: usize ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an -absolute position.
source§

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

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

fn get_root( +absolute position.

source§

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

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

fn get_root( &mut self -) -> &mut <NamespacedLayouter<'a, F, L> as Layouter<F>>::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, _name_fn: N)
where +) -> &mut <NamespacedLayouter<'a, F, L> as Layouter<F>>::Root

Gets the “root” of this assignment, bypassing the namespacing. Read more
source§

fn push_namespace<NR, N>(&mut self, _name_fn: 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, _gadget_name: Option<String>)

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( + N: FnOnce() -> NR,

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

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

Exits out of the existing namespace. Read more
source§

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where diff --git a/halo2_proofs/circuit/struct.Region.html b/halo2_proofs/circuit/struct.Region.html index 828ed4c91..ef29fce4b 100644 --- a/halo2_proofs/circuit/struct.Region.html +++ b/halo2_proofs/circuit/struct.Region.html @@ -14,7 +14,7 @@ }); -

Struct halo2_proofs::circuit::Region

source ·
pub struct Region<'r, F>
where +

Struct halo2_proofs::circuit::Region

source ·
pub struct Region<'r, F>
where F: Field,
{ /* private fields */ }
Expand description

A region of the circuit in which a Chip can assign cells.

Inside a region, the chip may freely use relative offsets; the Layouter will treat these assignments as a single “region” within the circuit.

@@ -23,8 +23,8 @@

TODO: It would be great if we could constrain the columns in these types to be “logical” columns that are guaranteed to correspond to the chip (and have come from Chip::Config).

-

Implementations§

source§

impl<'r, F> Region<'r, F>
where - F: Field,

source

pub fn enable_selector<A, AR>( +

Implementations§

source§

impl<'r, F> Region<'r, F>
where + F: Field,

source

pub fn enable_selector<A, AR>( &mut self, annotation: A, selector: &Selector, @@ -32,13 +32,13 @@ ) -> Result<(), Error>
where A: Fn() -> AR, AR: Into<String>,

Enables a selector at the given offset.

-
source

pub fn name_column<A, AR, T>(&mut self, annotation: A, column: T)
where +

source

pub fn name_column<A, AR, T>(&mut self, annotation: A, column: T)
where A: Fn() -> AR, AR: Into<String>, T: Into<Column<Any>>,

Allows the circuit implementor to name/annotate a Column within a Region context.

This is useful in order to improve the amount of information that prover.verify() and prover.assert_satisfied() can provide.

-
source

pub fn assign_advice<'v, V, VR, A, AR>( +

source

pub fn assign_advice<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: Column<Advice>, @@ -50,7 +50,7 @@ A: Fn() -> AR, AR: Into<String>,

Assign an advice column value (witness).

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-
source

pub fn assign_advice_from_constant<VR, A, AR>( +

source

pub fn assign_advice_from_constant<VR, A, AR>( &mut self, annotation: A, column: Column<Advice>, @@ -63,7 +63,7 @@

The constant value will be assigned to a cell within one of the fixed columns configured via ConstraintSystem::enable_constant.

Returns the advice cell.

-

source

pub fn assign_advice_from_instance<A, AR>( +

source

pub fn assign_advice_from_instance<A, AR>( &mut self, annotation: A, instance: Column<Instance>, @@ -75,7 +75,7 @@ AR: Into<String>,

Assign the value of the instance column’s cell at absolute location row to the column advice at offset within this region.

Returns the advice cell, and its value if known.

-
source

pub fn instance_value( +

source

pub fn instance_value( &mut self, instance: Column<Instance>, row: usize @@ -83,7 +83,7 @@

This method is only provided for convenience; it does not create any constraints. Callers still need to use Self::assign_advice_from_instance to constrain the instance values in their circuit.

-

source

pub fn assign_fixed<'v, V, VR, A, AR>( +

source

pub fn assign_fixed<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: Column<Fixed>, @@ -95,19 +95,19 @@ A: Fn() -> AR, AR: Into<String>,

Assign a fixed value.

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-
source

pub fn constrain_constant<VR>( +

source

pub fn constrain_constant<VR>( &mut self, cell: Cell, constant: VR ) -> Result<(), Error>
where VR: Into<Assigned<F>>,

Constrains a cell to have a constant value.

Returns an error if the cell is in a column where equality has not been enabled.

-
source

pub fn constrain_equal(&mut self, left: Cell, right: Cell) -> Result<(), Error>

Constrains two cells to have the same value.

+
source

pub fn constrain_equal(&mut self, left: Cell, right: Cell) -> Result<(), Error>

Constrains two cells to have the same value.

Returns an error if either of the cells are in columns where equality has not been enabled.

-

Trait Implementations§

source§

impl<'r, F> Debug for Region<'r, 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<'r, F> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>
where - F: Field,

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Region<'r, F>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Region<'r, F>

§

impl<'r, F> !RefUnwindSafe for Region<'r, F>

§

impl<'r, F> Send for Region<'r, F>

§

impl<'r, F> Sync for Region<'r, F>

§

impl<'r, F> Unpin for Region<'r, F>

§

impl<'r, F> !UnwindSafe for Region<'r, F>

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl<'r, F> Debug for Region<'r, 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<'r, F> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>
where + F: Field,

source§

fn from(region: &'r mut dyn RegionLayouter<F>) -> Region<'r, F>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Region<'r, F>

§

impl<'r, F> !RefUnwindSafe for Region<'r, F>

§

impl<'r, F> Send for Region<'r, F>

§

impl<'r, F> Sync for Region<'r, F>

§

impl<'r, F> Unpin for Region<'r, F>

§

impl<'r, F> !UnwindSafe for Region<'r, F>

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/circuit/struct.RegionIndex.html b/halo2_proofs/circuit/struct.RegionIndex.html index d6bba0e5a..a0ba741a7 100644 --- a/halo2_proofs/circuit/struct.RegionIndex.html +++ b/halo2_proofs/circuit/struct.RegionIndex.html @@ -14,8 +14,8 @@ }); -

Struct halo2_proofs::circuit::RegionIndex

source ·
pub struct RegionIndex(/* private fields */);
Expand description

Index of a region in a layouter

-

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionIndex

source§

fn clone(&self) -> RegionIndex

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 RegionIndex

source§

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

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

impl Deref for RegionIndex

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &<RegionIndex as Deref>::Target

Dereferences the value.
source§

impl From<usize> for RegionIndex

source§

fn from(idx: usize) -> RegionIndex

Converts to this type from the input type.
source§

impl Copy for RegionIndex

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Struct halo2_proofs::circuit::RegionIndex

source ·
pub struct RegionIndex(/* private fields */);
Expand description

Index of a region in a layouter

+

Methods from Deref<Target = usize>§

1.43.0 · source

pub const MIN: usize = 0usize

1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

1.53.0 · source

pub const BITS: u32 = 64u32

Trait Implementations§

source§

impl Clone for RegionIndex

source§

fn clone(&self) -> RegionIndex

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 RegionIndex

source§

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

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

impl Deref for RegionIndex

§

type Target = usize

The resulting type after dereferencing.
source§

fn deref(&self) -> &<RegionIndex as Deref>::Target

Dereferences the value.
source§

impl From<usize> for RegionIndex

source§

fn from(idx: usize) -> RegionIndex

Converts to this type from the input type.
source§

impl Copy for RegionIndex

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_proofs/circuit/struct.Table.html b/halo2_proofs/circuit/struct.Table.html index 958f2a1f3..f3a50d6da 100644 --- a/halo2_proofs/circuit/struct.Table.html +++ b/halo2_proofs/circuit/struct.Table.html @@ -14,10 +14,10 @@ }); -

Struct halo2_proofs::circuit::Table

source ·
pub struct Table<'r, F>
where +

Struct halo2_proofs::circuit::Table

source ·
pub struct Table<'r, F>
where F: Field,
{ /* private fields */ }
Expand description

A lookup table in the circuit.

-

Implementations§

source§

impl<'r, F> Table<'r, F>
where - F: Field,

source

pub fn assign_cell<'v, V, VR, A, AR>( +

Implementations§

source§

impl<'r, F> Table<'r, F>
where + F: Field,

source

pub fn assign_cell<'v, V, VR, A, AR>( &'v mut self, annotation: A, column: TableColumn, @@ -30,9 +30,9 @@ AR: Into<String>,

Assigns a fixed value to a table cell.

Returns an error if the table cell has already been assigned to.

Even though to has FnMut bounds, it is guaranteed to be called at most once.

-

Trait Implementations§

source§

impl<'r, F> Debug for Table<'r, 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<'r, F> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>
where - F: Field,

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Table<'r, F>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Table<'r, F>

§

impl<'r, F> !RefUnwindSafe for Table<'r, F>

§

impl<'r, F> !Send for Table<'r, F>

§

impl<'r, F> !Sync for Table<'r, F>

§

impl<'r, F> Unpin for Table<'r, F>

§

impl<'r, F> !UnwindSafe for Table<'r, F>

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl<'r, F> Debug for Table<'r, 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<'r, F> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>
where + F: Field,

source§

fn from(table: &'r mut dyn TableLayouter<F>) -> Table<'r, F>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'r, F> Freeze for Table<'r, F>

§

impl<'r, F> !RefUnwindSafe for Table<'r, F>

§

impl<'r, F> !Send for Table<'r, F>

§

impl<'r, F> !Sync for Table<'r, F>

§

impl<'r, F> Unpin for Table<'r, F>

§

impl<'r, F> !UnwindSafe for Table<'r, F>

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/circuit/trait.Chip.html b/halo2_proofs/circuit/trait.Chip.html index daacda99a..19ce96f33 100644 --- a/halo2_proofs/circuit/trait.Chip.html +++ b/halo2_proofs/circuit/trait.Chip.html @@ -14,7 +14,7 @@ }); -

Trait halo2_proofs::circuit::Chip

source ·
pub trait Chip<F>: Sized
where +

Trait halo2_proofs::circuit::Chip

source ·
pub trait Chip<F>: Sized
where F: Field,
{ type Config: Debug + Clone; type Loaded: Debug + Clone; @@ -28,12 +28,12 @@

The chip also loads any fixed configuration needed at synthesis time using its own implementation of load, and stores it in Chip::Loaded. This can be accessed via Chip::loaded.

-

Required Associated Types§

source

type Config: Debug + Clone

A type that holds the configuration for this chip, and any other state it may need +

Required Associated Types§

source

type Config: Debug + Clone

A type that holds the configuration for this chip, and any other state it may need during circuit synthesis, that can be derived during Circuit::configure.

-
source

type Loaded: Debug + Clone

A type that holds any general chip state that needs to be loaded at the start of +

source

type Loaded: Debug + Clone

A type that holds any general chip state that needs to be loaded at the start of Circuit::synthesize. This might simply be () for some chips.

-

Required Methods§

source

fn config(&self) -> &Self::Config

The chip holds its own configuration.

-
source

fn loaded(&self) -> &Self::Loaded

Provides access to general chip state loaded at the beginning of circuit +

Required Methods§

source

fn config(&self) -> &Self::Config

The chip holds its own configuration.

+
source

fn loaded(&self) -> &Self::Loaded

Provides access to general chip state loaded at the beginning of circuit synthesis.

Panics if called before Chip::load.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/halo2_proofs/circuit/trait.Layouter.html b/halo2_proofs/circuit/trait.Layouter.html index 3adeec040..2d5da5da3 100644 --- a/halo2_proofs/circuit/trait.Layouter.html +++ b/halo2_proofs/circuit/trait.Layouter.html @@ -14,7 +14,7 @@ }); -

Trait halo2_proofs::circuit::Layouter

source ·
pub trait Layouter<F>
where +

Trait halo2_proofs::circuit::Layouter

source ·
pub trait Layouter<F>
where F: Field,
{ type Root: Layouter<F>; @@ -58,9 +58,9 @@ }
Expand description

A layout strategy within a circuit. The layouter is chip-agnostic and applies its strategy to the context and config it is given.

This abstracts over the circuit assignments, handling row indices etc.

-

Required Associated Types§

source

type Root: Layouter<F>

Represents the type of the “root” of this layouter, so that nested namespaces +

Required Associated Types§

source

type Root: Layouter<F>

Represents the type of the “root” of this layouter, so that nested namespaces can minimize indirection.

-

Required Methods§

source

fn assign_region<A, AR, N, NR>( +

Required Methods§

source

fn assign_region<A, AR, N, NR>( &mut self, name: N, assignment: A @@ -76,7 +76,7 @@ let config = chip.config(); region.assign_advice(config.a, offset, || { Some(value)}); });

-
source

fn assign_table<A, N, NR>( +

source

fn assign_table<A, N, NR>( &mut self, name: N, assignment: A @@ -89,24 +89,24 @@ let config = chip.config(); table.assign_fixed(config.a, offset, || { Some(value)}); }); -

source

fn constrain_instance( +

source

fn constrain_instance( &mut self, cell: Cell, column: Column<Instance>, row: usize ) -> Result<(), Error>

Constrains a Cell to equal an instance column’s row value at an absolute position.

-
source

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

Queries the value of the given challenge.

+
source

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

Queries the value of the given challenge.

Returns Value::unknown() if the current synthesis phase is before the challenge can be queried.

-
source

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing.

+
source

fn get_root(&mut self) -> &mut Self::Root

Gets the “root” of this assignment, bypassing the namespacing.

Not intended for downstream consumption; use Layouter::namespace instead.

-
source

fn push_namespace<NR, N>(&mut self, name_fn: N)
where +

source

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

Creates a new (sub)namespace and enters into it.

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.

+
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.

-

Provided Methods§

source

fn namespace<NR, N>( +

Provided Methods§

source

fn namespace<NR, N>( &mut self, name_fn: N ) -> NamespacedLayouter<'_, F, Self::Root>
where @@ -114,7 +114,7 @@ N: FnOnce() -> NR,

Enters into a namespace.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, F, CS> Layouter<F> for SingleChipLayouter<'a, F, CS>
where F: Field, - CS: Assignment<F> + 'a + SyncDeps,

§

type Root = SingleChipLayouter<'a, F, CS>

source§

impl<'a, F, L> Layouter<F> for NamespacedLayouter<'a, F, L>
where + CS: Assignment<F> + 'a + SyncDeps,

§

type Root = SingleChipLayouter<'a, F, CS>

source§

impl<'a, F, L> Layouter<F> for NamespacedLayouter<'a, F, L>
where F: Field, L: Layouter<F> + 'a,

§

type Root = <L as Layouter<F>>::Root

source§

impl<'p, 'a, F, CS> Layouter<F> for V1Pass<'p, 'a, F, CS>
where F: Field, diff --git a/halo2_proofs/dev/struct.MockProver.html b/halo2_proofs/dev/struct.MockProver.html index dd51a035c..ee07512b3 100644 --- a/halo2_proofs/dev/struct.MockProver.html +++ b/halo2_proofs/dev/struct.MockProver.html @@ -131,20 +131,20 @@

§Examples

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>( +

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 @@ -152,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 @@ -170,12 +170,12 @@

§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.

+
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>, @@ -202,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, desc: A, column: Column<Fixed>, @@ -212,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/plonk/enum.ErrorFront.html b/halo2_proofs/plonk/enum.ErrorFront.html index b1b2b3566..6108b3abb 100644 --- a/halo2_proofs/plonk/enum.ErrorFront.html +++ b/halo2_proofs/plonk/enum.ErrorFront.html @@ -14,7 +14,7 @@ }); -

Enum halo2_proofs::plonk::ErrorFront

source ·
pub enum ErrorFront {
+

Enum halo2_proofs::plonk::ErrorFront

source ·
pub enum ErrorFront {
     Synthesis,
     BoundsFailure,
     NotEnoughRowsAvailable {
@@ -23,10 +23,10 @@
     NotEnoughColumnsForConstants,
     ColumnNotInPermutation(Column<Any>),
     TableError(TableError),
-    AssignmentError(AssignmentError),
+    AssignError(AssignError),
     Other(String),
 }
Expand description

This is an error that could occur during circuit synthesis.

-

NOTE: AssignmentError is introduced to provide more debugging info
+

NOTE: AssignError is introduced to provide more debugging info
to developers when assigning witnesses to circuit cells.
Hence, they are used for [MockProver] and [WitnessCollection].
The [keygen] process use the [NotEnoughRowsAvailable], since it is just enough.

@@ -40,7 +40,7 @@
§

ColumnNotInPermutation(Column<Any>)

The instance sets up a copy constraint involving a column that has not been included in the permutation.

§

TableError(TableError)

An error relating to a lookup table.

-
§

AssignmentError(AssignmentError)

An error relating to an Assignment.

+
§

AssignError(AssignError)

An error relating to a circuit assignment.

§

Other(String)

Generic error not covered by previous cases

Implementations§

source§

impl Error

source

pub fn not_enough_rows_available(current_k: u32) -> Error

Constructs an Error::NotEnoughRowsAvailable.

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

Formats the value using the given formatter. Read more
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 diff --git a/search-index.js b/search-index.js index e4c3c28d6..7c0489f47 100644 --- a/search-index.js +++ b/search-index.js @@ -2,9 +2,9 @@ var searchIndex = new Map(JSON.parse('[\ ["halo2",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["halo2_backend",{"t":"CCCCCCRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMKPPPKGKNNNNNNNNNNNNNNNNNNNNNNKKKKRRRRRRRKKFKNNMNNNNNNNNNNNNNHNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMHNMNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNPPPGPPPPPFFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNCNNNNNNOHHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNHHNKFGFFKKFRPRFFPKONNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFKRFFKKKKKNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMMNNNNNNNNNNNNNNNNMNHHMNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNN","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_extended","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"],[540,"halo2_backend::poly::commitment"],[606,"halo2_backend::poly::ipa"],[610,"halo2_backend::poly::ipa::commitment"],[655,"halo2_backend::poly::ipa::msm"],[685,"halo2_backend::poly::ipa::multiopen"],[717,"halo2_backend::poly::ipa::strategy"],[790,"halo2_backend::poly::kzg"],[794,"halo2_backend::poly::kzg::commitment"],[867,"halo2_backend::poly::kzg::msm"],[916,"halo2_backend::poly::kzg::multiopen"],[981,"halo2_backend::poly::kzg::strategy"],[1041,"halo2_backend::transcript"],[1196,"pasta_curves::arithmetic::curves"],[1197,"subtle"],[1198,"ff"],[1199,"core::cmp"],[1200,"core::ops::arith"],[1201,"core::ops::function"],[1202,"alloc::boxed"],[1203,"core::marker"],[1204,"core::clone"],[1205,"core::convert"],[1206,"rand_core"],[1207,"core::fmt"],[1208,"std::io::error"],[1209,"std::io"],[1210,"core::result"],[1211,"core::any"],[1212,"rayon::iter"],[1213,"rayon::slice"],[1214,"rayon::iter::blocks"],[1215,"rayon::iter::chain"],[1216,"rayon::iter::chunks"],[1217,"rayon::iter::cloned"],[1218,"alloc::vec"],[1219,"alloc::collections::linked_list"],[1220,"rayon::iter::copied"],[1221,"rayon::iter::plumbing"],[1222,"rayon::iter::enumerate"],[1223,"rayon::iter::filter"],[1224,"rayon::iter::filter_map"],[1225,"core::option"],[1226,"rayon::iter::flat_map"],[1227,"rayon::iter::flat_map_iter"],[1228,"core::iter::traits::collect"],[1229,"rayon::iter::flatten"],[1230,"rayon::iter::flatten_iter"],[1231,"rayon_core::scope"],[1232,"rayon::iter::fold"],[1233,"rayon::iter::fold_chunks"],[1234,"rayon::iter::fold_chunks_with"],[1235,"rayon::iter::inspect"],[1236,"rayon::iter::interleave"],[1237,"rayon::iter::interleave_shortest"],[1238,"rayon::iter::intersperse"],[1239,"rayon::iter::map"],[1240,"rayon::iter::map_with"],[1241,"rayon::iter::panic_fuse"],[1242,"rayon::slice::chunk_by"],[1243,"rayon::slice::chunks"],[1244,"rayon::slice::rchunks"],[1245,"core::default"],[1246,"either"],[1247,"rayon::iter::positions"],[1248,"core::iter::traits::accum"],[1249,"rayon::iter::rev"],[1250,"rayon::iter::skip"],[1251,"rayon::iter::skip_any"],[1252,"rayon::iter::skip_any_while"],[1253,"rayon_core::broadcast"],[1254,"rayon::iter::step_by"],[1255,"rayon::iter::take"],[1256,"rayon::iter::take_any"],[1257,"rayon::iter::take_any_while"],[1258,"rayon::iter::try_fold"],[1259,"rayon::iter::private"],[1260,"halo2_middleware::multicore"],[1261,"rayon::iter::update"],[1262,"rayon::iter::while_some"],[1263,"rayon::iter::len"],[1264,"rayon::iter::zip"],[1265,"rayon::iter::zip_eq"],[1266,"halo2_backend::plonk::error"],[1267,"halo2_backend::poly::domain"],[1268,"core::error"],[1269,"alloc::string"],[1270,"halo2_middleware::circuit"],[1271,"std::collections::hash::map"],[1272,"halo2_middleware::zal::traits"],[1273,"halo2_middleware::zal::impls"],[1274,"halo2_backend::plonk::verifier::batch"],[1275,"halo2_backend::poly::strategy"],[1276,"core::ops::range"],[1277,"core::iter::traits::iterator"],[1278,"halo2_middleware::poly"],[1279,"halo2_backend::poly::ipa::multiopen::prover"],[1280,"halo2_backend::poly::ipa::multiopen::verifier"],[1281,"pairing"],[1282,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[1283,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[1284,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[1285,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[1286,"halo2_middleware"],[1287,"rayon_core"],[1288,"rayon_core::join"],[1289,"halo2_backend::poly::ipa::commitment::prover"],[1290,"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,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}}{OhOb}{cc{}}000``{{{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}}}}ACh}{{j{{Bl{c}}}}}{}{}}{{{j{{ABh{ce}}}}Cb}{{j{c}}}{}{}}{{{j{Bj{ABh{ce}}}}ACh}{{j{Bj{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}{ACf{Cb}}}{{j{Bj{Bl{c}}}}}{}{}}{{{j{Bj{ABh{ce}}}}Cb}{{j{Bjc}}}{}{}}{{}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}}}}Cb}{{ABh{cAC`}}}A`}{{{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}}}}c}BnAh}{{{j{Bj{AD`{c}}}}{AD`{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}}}}c}BnAh}{{{j{Bj{AD`{c}}}}{AD`{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`Od}}{{{j{{AFh{c}}}}}{{AGl{c}}}AG`}{{{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{}{}}1{{{j{{AHl{c}}}}}{{j{e}}}h{}}2{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,1196],[1,"reference"],[5,"Coordinates",1196],[5,"CtOption",1197],[10,"WithSmallOrderMulGroup",1198],[10,"Ord",1199],[17,"AffineExt"],[10,"CurveExt",6,1196],[10,"Field",6,1198],[17,"Output"],[10,"Mul",1200],[1,"str"],[10,"Fn",1201],[5,"Box",1202],[5,"Choice",1197],[1,"bool"],[1,"tuple"],[0,"mut"],[1,"slice"],[1,"unit"],[10,"Send",1203],[1,"usize"],[10,"Sync",1203],[10,"Clone",1204],[1,"u64"],[10,"AsRef",1205],[10,"RngCore",1206],[6,"SerdeFormat",43],[5,"Formatter",1207],[8,"Result",1207],[10,"CurveRead",43],[8,"Result",1208],[10,"Read",1209],[10,"SerdeCurveAffine",43],[10,"SerdePrimeField",43],[6,"Result",1210],[5,"TypeId",1211],[10,"Write",1209],[17,"Item"],[10,"ParallelIterator",72,1212],[10,"ParallelSliceMut",72,1213],[10,"IndexedParallelIterator",72,1212],[5,"ExponentialBlocks",1214],[5,"UniformBlocks",1214],[5,"Chain",1215],[10,"IntoParallelIterator",72,1212],[5,"Chunks",1216],[5,"Cloned",1217],[6,"Ordering",1199],[10,"FromParallelIterator",1212],[5,"Vec",1218],[5,"LinkedList",1219],[5,"Copied",1220],[10,"Consumer",1221],[10,"UnindexedConsumer",1221],[5,"Enumerate",1222],[5,"Filter",1223],[5,"FilterMap",1224],[6,"Option",1225],[5,"FlatMap",1226],[5,"FlatMapIter",1227],[10,"IntoIterator",1228],[5,"Flatten",1229],[5,"FlattenIter",1230],[5,"Scope",72,1231],[5,"Error",1207],[5,"Fold",1232],[5,"FoldChunks",1233],[5,"FoldChunksWith",1234],[5,"FoldWith",1232],[5,"Inspect",1235],[5,"Interleave",1236],[5,"InterleaveShortest",1237],[5,"Intersperse",1238],[17,"Iter"],[10,"FnOnce",1201],[5,"Map",1239],[5,"MapInit",1240],[5,"MapWith",1240],[5,"PanicFuse",1241],[5,"ChunkByMut",1242],[5,"ChunksExactMut",1243],[5,"ChunksMut",1243],[10,"IntoParallelRefIterator",72,1212],[10,"IntoParallelRefMutIterator",72,1212],[5,"RChunksExactMut",1244],[5,"RChunksMut",1244],[5,"SplitInclusiveMut",1213],[5,"SplitMut",1213],[10,"Default",1245],[10,"ParallelExtend",1212],[6,"Either",1246],[5,"Positions",1247],[10,"Product",1248],[5,"Rev",1249],[5,"Skip",1250],[5,"SkipAny",1251],[5,"SkipAnyWhile",1252],[5,"BroadcastContext",1253],[5,"StepBy",1254],[10,"Sum",1248],[5,"Take",1255],[5,"TakeAny",1256],[5,"TakeAnyWhile",1257],[5,"TryFold",1258],[10,"Try",1259],[10,"TryFoldAndReduce",72,1260],[5,"TryFoldWith",1258],[5,"Update",1261],[5,"WhileSome",1262],[5,"MaxLen",1263],[5,"MinLen",1263],[10,"ProducerCallback",1221],[5,"Zip",1264],[5,"ZipEq",1265],[5,"VerifyingKey",216],[5,"ProvingKey",216],[6,"Error",216,1266],[10,"Debug",1207],[5,"PinnedVerificationKey",216],[5,"Error",1208],[1,"u8"],[5,"EvaluationDomain",369,1267],[10,"EncodedChallenge",1041],[10,"Transcript",1041],[1,"u32"],[10,"Error",1268],[5,"String",1269],[5,"CompiledCircuit",1270],[10,"Params",540],[5,"ProverSingle",312],[5,"HashMap",1271],[10,"CommitmentScheme",540],[10,"Prover",540],[10,"TranscriptWrite",1041],[10,"MsmAccel",1272],[5,"Prover",312],[5,"H2cEngine",1273],[5,"PlonkEngine",1273],[5,"BatchVerifier",349,1274],[8,"ParamsVerifierIPA",610],[10,"Verifier",540],[10,"VerificationStrategy",369,1275],[10,"TranscriptRead",1041],[5,"Polynomial",369],[10,"Basis",369],[5,"Coeff",369],[5,"LagrangeCoeff",369],[5,"ExtendedLagrangeCoeff",369],[5,"PinnedEvaluationDomain",369,1267],[6,"Error",369],[5,"RangeFrom",1276],[5,"RangeFull",1276],[10,"Iterator",1277],[1,"i32"],[5,"Rotation",1278],[5,"Blind",540],[10,"MSM",540],[10,"ParamsProver",540],[17,"MSM"],[10,"ParamsVerifier",540],[10,"PartialEq",1199],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",369,1275],[5,"ParamsIPA",610],[5,"MSMIPA",655],[5,"IPACommitmentScheme",610],[5,"GuardIPA",717],[5,"ProverIPA",685,1279],[5,"VerifierIPA",685,1280],[5,"Accumulator",717],[5,"AccumulatorStrategy",717],[5,"SingleStrategy",717],[5,"ParamsKZG",794],[10,"Engine",1281],[5,"ParamsVerifierKZG",794],[5,"MSMKZG",867],[5,"KZGCommitmentScheme",794],[5,"DualMSM",867],[10,"MultiMillerLoop",1281],[5,"ProverGWC",916,1282],[5,"ProverSHPLONK",916,1283],[5,"VerifierGWC",916,1284],[5,"VerifierSHPLONK",916,1285],[5,"GuardKZG",981],[5,"AccumulatorStrategy",981],[5,"SingleStrategy",981],[17,"Input"],[5,"ChallengeScalar",1041],[5,"Blake2bRead",1041],[5,"Keccak256Read",1041],[5,"Blake2bWrite",1041],[5,"Keccak256Write",1041],[5,"Challenge255",1041],[10,"TranscriptWriterBuffer",1041],[10,"TranscriptReadBuffer",1041],[1,"array"],[15,"NotEnoughRowsAvailable",309]],"r":[[2,1286],[10,1196],[11,1196],[13,1198],[72,1212],[73,1212],[74,1212],[75,1212],[83,1212],[84,1213],[85,1231],[86,1260],[103,1287],[141,1288],[184,1231],[219,1266],[349,1274],[372,1267],[374,1275],[380,1267],[383,1275],[621,1289],[651,1290],[685,1279],[686,1280],[916,1282],[917,1283],[918,1284],[919,1285]],"b":[[254,"impl-Debug-for-Error"],[255,"impl-Display-for-Error"],[464,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[465,"impl-Index%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[466,"impl-Index%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[467,"impl-IndexMut%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[468,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[469,"impl-IndexMut%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[504,"impl-Sub%3CF%3E-for-%26Polynomial%3CF,+B%3E"],[505,"impl-Sub%3C%26Polynomial%3CF,+B%3E%3E-for-Polynomial%3CF,+B%3E"],[559,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[560,"impl-AddAssign-for-Blind%3CF%3E"],[587,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[588,"impl-MulAssign-for-Blind%3CF%3E"],[657,"impl-MSMIPA%3C\'a,+C%3E"],[658,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[960,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[961,"impl-ProverSHPLONK%3C\'a,+E%3E"],[1019,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[1020,"impl-AccumulatorStrategy%3CE%3E"],[1021,"impl-SingleStrategy%3CE%3E"],[1022,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKoCcgAAAAAAAgABACwAAAAwAAAAMgACADYABQA9AAAAQgAEAFcAAABbAAEAaQABAG0AAAB8AAAAhwAAAMoAAQDOAAAA0gAAAOYAFwD/AAUADgEDABwBAAAfAQIAIwELADABAwA7AQMAQwEHAE0BAQBRAQAAVgEHAGABBQBnAQAAaQEAAGwBAgBxAQAAeAEAAIEBGQCgAQ8AsQEGAL8BBgDRAQwA6wEAAO4BAADxAQAA+QEjAC8CAgA1AgEAOAIBAD4CAgBCAgAARAIAAEYCAABIAgAASwICAFgCAwBdAgAAZgIFAG8CCQB7AgEAfwIBAIICAACEAgcAjQIBAJcCCwCkAgAApwIGALACAwC1AgcAvwIBAMMCCgDSAgsA3wILAO0CAwD2AgMA/gIRABMDAwAeAxwAPwMCAEUDBQBOAwEAUQMOAGMDAABmAwAAaAMGAHADAwB1AwoAggMBAIgDAQCLAwkAmQMHAKMDDwC3AwMAvwMCAMMDDQDSAwMA2QMZAPYDAgD8AwAA/wMRACAEFwA5BAMAPgQXAFcEAABZBAUAZgQAAGoEAABsBAEAcAQCAHoEAgB+BAEAgQQBAIQEAwCJBB0AqAQBAKsEAQA="}],\ ["halo2_debug",{"t":"HCHHHFFFFNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNNNNNNNHHHHNNNNNNNNNNNNNNNNNNNN","n":["check_witness","display","keccak_hex","test_result","test_rng","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"],[5,"halo2_debug::display"],[71,"halo2_middleware::circuit"],[72,"alloc::vec"],[73,"ff"],[74,"alloc::string"],[75,"core::convert"],[76,"core::ops::function"],[77,"core::marker"],[78,"rand_chacha::chacha"],[79,"halo2_middleware::expression"],[80,"std::collections::hash::map"],[81,"core::fmt"],[82,"halo2_middleware::lookup"],[83,"halo2_middleware::shuffle"],[84,"core::result"],[85,"core::any"],[86,"halo2_debug::check_witness"]],"i":[0,0,0,0,0,0,0,0,0,24,19,27,28,24,19,27,28,24,19,27,28,24,19,27,28,24,19,27,28,0,0,24,19,27,28,24,19,27,28,24,19,27,28,24,19,27,28,0,0,0,0,24,19,27,28,24,19,27,28,24,19,27,28,24,19,27,28,24,19,27,28],"f":"{{{d{{b{c}}}}fh{d{{l{{j{c}}}}}}{d{{l{{j{c}}}}}}}nA`}`{cAb{{Af{{l{Ad}}}}}}{{c{d{Ah}}}{{j{Ad}}}{{Al{}{{Aj{{j{Ad}}}}}}An}}{{}B`}````{{{d{c}}}{{d{e}}}{}{}}000{{{d{Bbc}}}{{d{Bbe}}}{}{}}000{h{{d{c}}}{}}000{h{{d{Bbc}}}{}}000{hn}000{{{d{{Bd{ce}}}}}{{Bf{cen}}}A`Bh}{{{d{{Bd{cBj}}}}{d{{Bn{BlAb}}}}}{{Bf{cBj{Bn{BlAb}}}}}A`}{{{d{{C`{c}}}}{d{BbCb}}}CdA`}{{{d{{Bf{ceg}}}}{d{BbCb}}}CdA`Bh{}}{{{d{{Cf{ceg}}}}{d{BbCb}}}CdA`Bh{}}{{{d{{Ch{ceg}}}}{d{BbCb}}}CdA`Bh{}}{cc{}}000{{}h}000{ce{}{}}000{{{d{{Cj{ce}}}}}{{Cf{cen}}}A`Bh}{{{d{{Cj{cBj}}}}{d{{Bn{BlAb}}}}}{{Cf{cBj{Bn{BlAb}}}}}A`}{{{d{{Cl{ce}}}}}{{Ch{cen}}}A`Bh}{{{d{{Cl{cBj}}}}{d{{Bn{BlAb}}}}}{{Ch{cBj{Bn{BlAb}}}}}A`}{{{d{c}}}Ab{}}000{c{{Cn{e}}}{}{}}0000000{{{d{c}}}D`{}}0007777","D":"Bj","p":[[5,"CompiledCircuit",71],[1,"reference"],[1,"u32"],[1,"usize"],[5,"Vec",72],[1,"slice"],[1,"unit"],[10,"PrimeField",73],[5,"String",74],[1,"u8"],[10,"AsRef",75],[1,"str"],[17,"Output"],[10,"FnOnce",76],[10,"Send",77],[5,"ChaCha20Rng",78],[0,"mut"],[6,"Expression",79],[5,"ExprDisp",5],[10,"Variable",79],[6,"VarMid",71],[5,"ColumnMid",71],[5,"HashMap",80],[5,"FDisp",5],[5,"Formatter",81],[8,"Result",81],[5,"LookupArgDisp",5],[5,"ShuffleArgDisp",5],[5,"Argument",82],[5,"Argument",83],[6,"Result",84],[5,"TypeId",85]],"r":[[0,86]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADIABwAAAAAAAgAAAAUAAAAKABMAIAADACgAAwA0ABMA"}],\ -["halo2_frontend",{"t":"CCCFFKRKRFFFFREFFKFFNNNNNNNNNNNNNNNNNNMNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHMNNMNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEECCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPGKFPKKMNMNMNMMNNNNNNNNNNNMNMNNNNNNNMNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNPPPGEFFPPGPPGPFPPPPPFPGNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCCGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKKKRFKRFRMMMNNNNNNNNNNNNCMNCMNNNNNNNNNMMNNNMCMNNNNNNMNNNNNNNNNNMMMNNNMMMNNNNNNNNNNNNNNNMFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFPFPGFPFPFPKPPFFPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKNNNNNNNNNNNNNNNNNMNNNNNPPGPPPPPPGPPPPPPPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNN","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","AssignAdvice","AssignFixed","AssignmentError","AssignmentError","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Copy","EnableSelector","Error","FillFromRow","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","QueryInstance","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","not_enough_rows_available","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","col","col","col","col","desc","desc","desc","from_row","k","k","k","k","k","k","left_col","left_row","right_col","right_row","row","row","row","row","selector","usable_rows","usable_rows","usable_rows","usable_rows","usable_rows","usable_rows","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"],[1638,"halo2_frontend::plonk::error::AssignmentError"],[1667,"halo2_frontend::plonk::error::Error"],[1668,"halo2_frontend::plonk::lookup"],[1689,"halo2_frontend::plonk::permutation"],[1708,"halo2_frontend::plonk::shuffle"],[1729,"halo2_frontend::circuit::value"],[1730,"core::ops::arith"],[1731,"ff"],[1732,"core::ops::function"],[1733,"core::result"],[1734,"alloc::string"],[1735,"core::convert"],[1736,"halo2_frontend::circuit::table_layouter"],[1737,"std::collections::hash::map"],[1738,"alloc::vec"],[1739,"core::option"],[1740,"core::clone"],[1741,"halo2_middleware::circuit"],[1742,"core::fmt"],[1743,"core::marker"],[1744,"core::borrow"],[1745,"core::iter::traits::collect"],[1746,"core::any"],[1747,"core::cmp"],[1748,"std::collections::hash::set"],[1749,"core::hash"],[1750,"core::iter::traits::iterator"],[1751,"halo2_frontend::dev::failure"],[1752,"halo2_frontend::dev::gates"],[1753,"halo2_frontend::dev::graph::layout"],[1754,"halo2_frontend::dev::tfp"],[1755,"plotters::coord"],[1756,"plotters::drawing::area"],[1757,"plotters_backend"],[1758,"core::ops::range"],[1759,"group::prime"],[1760,"serde::de"],[1761,"serde::ser"],[1762,"core::default"],[1763,"halo2_middleware::poly"],[1764,"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,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,146,146,147,148,149,150,151,148,152,149,150,149,150,148,153,154,151,153,153,154,149,149,150,150,154,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,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,145,145,0,11,11,144,11,145,145,0,145,11,11,11,144,145,11,0,11,144,144,11,144,145,11,144,145,11,144,145,11,144,145,11,144,145,11,11,144,144,145,145,11,144,145,11,144,145,11,144,145,11,11,144,145,11,144,145,11,144,145,11,144,145,11,144,145,155,156,157,158,155,156,159,158,155,156,159,157,160,158,160,160,160,160,155,156,159,157,159,155,156,159,157,160,158,161,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":"````````````````````{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{e}}{b{e}}}g{}{{h{}{{f{c}}}}}{}}{{{b{{j{c}}}}c}el{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{b{c}}{b{{d{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{b{c}}{d{{b{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{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{A`c}}}}}{{b{c}}}Fd}{{{b{{d{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}}}{}}000{{{d{E`}}}{{d{c}}}{}}1{{{d{Eb}}}{{d{c}}}{}}22222{B`{{d{A`c}}}{}}0000000005{B`Ab}00000000{{{d{A`{Cn{ce}}}}}Abl{{Cl{c}}}}1{{{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{}}0{{{b{c}}}{{b{{j{c}}}}}l}1{B`E`}22{B`Eb}33{{{d{A`Fn}}}{{Aj{c}}}l}44{{{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{}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{{j{c}}}}c}el{}}{{{b{{d{{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{e}}{b{e}}}g{}{{Gh{}{{f{c}}}}}{}}{{{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}}}}{b{c}}}e{}{}}{{{b{c}}{b{{d{c}}}}}g{{H`{d}{{f{}}}}}{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{{j{c}}}}c}el{}}{{{b{e}}{b{e}}}g{}{{H`{}{{f{c}}}}}{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{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{}}0{FhIf}{{{An{Gj}}}If}{{{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{A`{In{c}}}}B`}{{d{A`{Gn{{J`{c}}}}}}}l}{{{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{Jj}}}Jj}{{{d{{J`{c}}}}}{{J`{c}}}{Dnl}}{{{d{{Jl{c}}}}}{{Jl{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}000{{}Jn}{{{d{A`{In{c}}}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}l}``{{{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}}}}}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{Jj}}{d{Jj}}}Ad}{{{d{{J`{c}}}}{d{{J`{c}}}}}Ad{Kbl}}{{{d{{Jl{c}}}}{d{{Jl{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{Jj}}{d{A`Fj}}}Fl}0{{{d{Jn}}{d{A`Fj}}}{{Ah{AbKd}}}}{{{d{Jn}}{d{A`Fj}}}Fl}{{{d{{Kf{c}}}}{d{A`Fj}}}Fl{FbKh}}{{{d{K`}}{d{A`Fj}}}Fl}{{{d{{J`{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{In{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Jl{c}}}}{d{A`Fj}}}Fl{Fbl}}{cc{}}0000000{{{d{{In{c}}}}Gf}{{b{c}}}l}{{}B`}0000000{{{d{{In{c}}}}}{{d{{Df{{Df{{Jl{c}}}}}}}}}{JbJd}}{{{d{A`{In{c}}}}B`}{{d{A`{Gn{{Jl{c}}}}}}}l}{ce{}{}}0000000{{K`Ad}K`}`{{{d{A`{In{c}}}}{Dh{Bd}}}Abl}{{{d{A`{In{c}}}}g}Abl{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{Jn}}}Bd}{{{d{{In{c}}}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{{K`Ed{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{}{}}000{{{d{c}}}Bd{}}00{c{{Ah{e}}}{}{}}000000000000000{{{d{c}}}Hd{}}0000000{{{d{{In{c}}}}}{{d{{Lb{B`}}}}}{JbJd}}{{{d{{Jl{c}}}}}cl}{{{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{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{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`}{{{Ej{cN`Nj}}}Nb{{Nl{Ml}}}}{NnNb}{{{Ej{N`Nj}}}Nb}44{{{Ej{B`c}}}Nd{{Nl{Ml}}}}{{{Ej{NdB`c}}}Nf{{Nl{Ml}}}}6{{{Ej{B`{d{Ml}}}}}Nh}{{{Ej{B`Bd}}}Nh}{{{Ej{B`Bd{Dd{N`Bd}}}}}Nh}9{{{Ej{B`{d{Ml}}{Dd{N`Bd}}}}}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```````````{{{j{c}}{d{{j{c}}}}}{{j{c}}}l}{{{d{{j{c}}}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}c}{{j{c}}}l}{{{d{{j{c}}}}{d{{j{c}}}}}{{j{c}}}l}{{{j{c}}c}{{j{c}}}l}{{{j{c}}{j{c}}}{{j{c}}}l}{{{d{A`{j{c}}}}{d{{j{c}}}}}Abl}{{{d{A`{j{c}}}}{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}{{{d{c}}}{{j{c}}}l}{{{Ej{cc}}}{{j{c}}}l}9{cc{}}{c{{j{c}}}l}{{}B`}{ce{}{}}={{{d{{j{c}}}}}Adl}{{{j{c}}c}{{j{c}}}l}{{{d{{j{c}}}}c}{{j{c}}}l}{{{j{c}}{d{{j{c}}}}}{{j{c}}}l}{{{j{c}}{j{c}}}{{j{c}}}l}{{{d{A`{j{c}}}}{d{{j{c}}}}}Abl}{{{d{A`{j{c}}}}{j{c}}}Abl}{{{d{{j{c}}}}}el{}}{{{j{c}}}el{}}{{{d{{j{c}}}}}cl}{{{d{{j{c}}}}}{{j{c}}}l}897{{{d{{j{c}}}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}{d{{j{c}}}}}{{j{c}}}l}876{{{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}}{cc{}}{{{Ej{cOh}}}Nn{{Bf{{An{Gj}}}}}}1{{{Oj{c}}}{{A@`{c}}}l}{{{Ej{c{Oj{e}}}}}{{A@`{e}}}{{Nl{Ml}}}l}3333{{{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{Ch}}}{{An{Gj}}}}{cc{}}{{{An{Bl}}}{{An{Gj}}}}{N`{{An{Gj}}}}{{{An{Al}}}{{An{Gj}}}}333333333{AAjGf}4{{{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}{c{{Ah{e}}}{}{}}{{{An{Gj}}}{{Ah{{An{Al}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Bl}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Ch}}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}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{Af}}{d{A`Fj}}}Fl}0{{{d{AB`}}{d{A`Fj}}}Fl}0{{{d{ABb}}{d{A`Fj}}}Fl}0{cc{}}00{{}B`}00:::{EdAf}{{{d{c}}}Bd{}}00>>>>>>===<<<```````````````````````````````;:{{{d{{A@f{c}}}}}{{A@f{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}};:9{{{d{{A@f{c}}}}{d{A`Fj}}}Fll}65{{{d{{A@f{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}{ce{}{}}{{{d{{A@f{c}}}}}{{d{Ml}}}l}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@f{e}}}{{Nl{Ml}}}l}3{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}5`{{{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`}{ce{}{}}>==<0`;:{{{d{{A@l{c}}}}}{{A@l{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}987{{{d{{A@l{c}}}}{d{A`Fj}}}Fll}64{{{d{{A@l{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}4{{{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{}}9","D":"DEh","p":[[5,"Value",3,1729],[1,"reference"],[17,"Output"],[10,"Add",1730],[6,"Assigned",980],[10,"Field",1731],[10,"FnOnce",1732],[0,"mut"],[1,"unit"],[1,"bool"],[6,"Error",1571],[6,"Result",1733],[5,"Region",3],[5,"Advice",1037],[5,"Column",1281],[1,"usize"],[5,"AssignedCell",3],[5,"String",1734],[10,"Into",1735],[10,"Fn",1732],[10,"FnMut",1732],[5,"Instance",1037],[10,"TableLayouter",381,1736],[5,"TableColumn",1281],[5,"SimpleTableLayouter",3,1736],[10,"Assignment",1037],[5,"Table",3],[5,"Fixed",1037],[17,"Root"],[10,"Layouter",3],[5,"NamespacedLayouter",3],[5,"WitnessCalculator",3],[1,"u8"],[5,"HashMap",1737],[5,"Vec",1738],[6,"Option",1739],[10,"Circuit",1037],[5,"Cell",3],[10,"Clone",1740],[5,"RegionIndex",3],[5,"RegionStart",3],[1,"u32"],[5,"CompiledCircuit",1741],[5,"ConstraintSystem",1126],[1,"tuple"],[17,"Config"],[17,"Loaded"],[10,"Chip",3],[10,"Debug",1742],[10,"Copy",1743],[10,"Borrow",1744],[5,"Selector",1281],[5,"Formatter",1742],[8,"Result",1742],[10,"RegionLayouter",381],[17,"Item"],[10,"IntoIterator",1745],[10,"FromIterator",1745],[5,"Challenge",1281],[10,"Mul",1730],[6,"Any",1741],[10,"Neg",1730],[1,"slice"],[10,"Sub",1730],[1,"array"],[5,"TypeId",1746],[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",1747],[5,"HashSet",1748],[10,"Hasher",1749],[5,"MockProver",449],[6,"CellValue",449],[10,"FromUniformBytes",1731],[10,"Ord",1747],[10,"Iterator",1750],[6,"FailureLocation",449,1751],[6,"VerifyFailure",449,1751],[6,"InstanceValue",449],[5,"CircuitGates",449,1752],[5,"CircuitLayout",449,1753],[10,"PartialEq",1747],[5,"Error",1742],[5,"TracingFloorPlanner",449,1754],[10,"FloorPlanner",1037],[5,"Shift",1755],[5,"DrawingArea",1756],[6,"DrawingAreaErrorKind",1756],[10,"DrawingBackend",1757],[5,"Range",1758],[5,"CircuitCost",666],[10,"PrimeGroup",1759],[5,"MarginalProofSize",666],[5,"ProofSize",666],[5,"Poly",711],[5,"Lookup",711],[5,"Permutation",711],[5,"Shuffle",711],[10,"Deserializer",1760],[5,"ModelCircuit",711],[6,"CommitmentScheme",711],[5,"CostOptions",711],[1,"str"],[10,"Serializer",1761],[5,"Column",855],[5,"VirtualCell",855],[5,"Gate",855],[5,"Constraint",855],[5,"Region",855],[1,"i32"],[10,"AsRef",1735],[5,"VirtualCell",1126],[17,"FloorPlanner"],[17,"Params"],[10,"Default",1762],[10,"ColumnType",1037],[5,"Rotation",1763],[6,"Expression",1281],[10,"Phase",1281],[5,"Gate",1126],[5,"Constraint",1126],[5,"VirtualCells",1126],[5,"Constraints",1126],[5,"Argument",1668],[5,"Argument",1689],[5,"Phase",1546],[5,"Argument",1708],[5,"FixedQuery",1281],[5,"AdviceQuery",1281],[5,"InstanceQuery",1281],[5,"FirstPhase",1281],[5,"SecondPhase",1281],[5,"ThirdPhase",1281],[5,"ChallengeMid",1741],[10,"Hash",1749],[10,"SealedPhase",1546],[6,"TableError",1571],[6,"AssignmentError",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,"AssignAdvice",1638],[15,"AssignFixed",1638],[15,"QueryInstance",1638],[15,"FillFromRow",1638],[15,"EnableSelector",1638],[15,"Copy",1638],[15,"NotEnoughRowsAvailable",1667]],"r":[[14,279],[15,1736],[17,1736],[18,1729],[275,316],[276,316],[387,1736],[453,666],[454,1752],[455,1753],[458,1751],[469,1754],[471,1751],[496,1764]],"b":[[20,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[21,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[22,"impl-Add-for-%26Value%3CV%3E"],[23,"impl-Add-for-Value%3CV%3E"],[24,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[25,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[26,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[27,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[28,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[29,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[78,"impl-Value%3C%26mut+V%3E"],[79,"impl-Value%3C%26V%3E"],[87,"impl-Value%3C%26mut+V%3E"],[88,"impl-Value%3C%26V%3E"],[190,"impl-Mul-for-%26Value%3CV%3E"],[191,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[192,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[193,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[194,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[195,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[196,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[197,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[198,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[199,"impl-Mul-for-Value%3CV%3E"],[212,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[213,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[214,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[215,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[216,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[217,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[218,"impl-Sub-for-Value%3CV%3E"],[219,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[220,"impl-Sub-for-%26Value%3CV%3E"],[221,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[424,"impl-From%3CSelector%3E-for-RegionColumn"],[425,"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-Display-for-CircuitGates"],[551,"impl-Debug-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"],[915,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[916,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[917,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[923,"impl-From%3C(usize,+%26str)%3E-for-Region"],[924,"impl-From%3C(usize,+String)%3E-for-Region"],[925,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[927,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[984,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[985,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[986,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[987,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[988,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[989,"impl-Add-for-Assigned%3CF%3E"],[990,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[991,"impl-AddAssign-for-Assigned%3CF%3E"],[1005,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1006,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1007,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1009,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1014,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1015,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1016,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1017,"impl-Mul-for-Assigned%3CF%3E"],[1018,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1019,"impl-MulAssign-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%3CF%3E-for-Assigned%3CF%3E"],[1026,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1027,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1028,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1029,"impl-Sub-for-Assigned%3CF%3E"],[1030,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1031,"impl-SubAssign-for-Assigned%3CF%3E"],[1200,"impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E"],[1201,"impl-From%3C(S,+Expression%3CF%3E)%3E-for-Constraint%3CF%3E"],[1412,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1414,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1415,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1416,"impl-From%3CColumn%3CAdvice%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%3CInstance%3E"],[1502,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1607,"impl-Display-for-Error"],[1608,"impl-Debug-for-Error"],[1609,"impl-Display-for-TableError"],[1610,"impl-Debug-for-TableError"],[1611,"impl-Debug-for-AssignmentError"],[1612,"impl-Display-for-AssignmentError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJUEkAAAAAAAAwAAAA8AAAAVAAkAKAAAACwAAAAuABQARQAJAFcAAABcAAAAXgAVAHUACgCBAAAAhgAJAJIAAACUAAAAlwAAAJoAAACdAAAAoQAAAKMACgC/AAkAywAAAM8AAADRAAAA1QAJAOAABADnAB0ACQEJABQBAwAaAQ4AKwEDADIBCgBBARoAYAEFAGoBEwCGAQAAiAEAAIoBAACNAQkAmQEAAJsBBgCjAQMAqQEEAK8BAACzAQAAtQEAALgBCQDGAQAA3AEAAN8BEQDyAQcA+wEAAP8BGAAZAgcAIwIKADYCCABLAgEATgIAAFQCHwB6AgcAngIRALMCAgC8AgsA1AIWAOwCGAAGAwYAFgMAABgDBgAuAwAAMwMBADgDHwBdAxUAdAMdAJMDAwCZAwEAnAMCAKADAQCjAwQArQMlANQDAADZAwsA5wMBAOoDAQDtAwMA8gMBAPcDBwABBAwAGwQMACoEAAAsBAgANwQCADsEAAA9BAIARAQFAFEEAgBXBA4AdQQLAIMEBgCPBAAAkQQLAJ4EBQCoBAUArwQAALEEAQC5BAYAyAQAANcEAQDfBAAA5AQUAPsEBQAYBSgASAUAAEwFIABuBQcAegULAIcFAgCTBQAAlQUDAJ0FAAChBQsAugUDAL8FAQDDBQAAzQUAAM8FOwANBgkAGAYBABsGCgArBgEALgYAADMGAAA5BhQAUQYCAFgGKwCGBgcAjwYAAJUGBACbBggApgYAAKgGBACuBgcAtwYAAL0GBAA="}],\ +["halo2_frontend",{"t":"CCCFFKRKRFFFFREFFKFFNNNNNNNNNNNNNNNNNNMNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHMNNMNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEECCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPGKFPKKMNMNMNMMNNNNNNNNNNNMNMNNNNNNNMNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNPPPGEFFPPGPPGPFPPPPPFPGNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCCGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKKKRFKRFRMMMNNNNNNNNNNNNCMNCMNNNNNNNNNMMNNNMCMNNNNNNMNNNNNNNNNNMMMNNNMMMNNNNNNNNNNNNNNNMFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPFFPFPGFPFPFPKPPFFPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKNNNNNNNNNNNNNNNNNMNNNNNPGPPPPPPPGPPPPPPPGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNN","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","AssignAdvice","AssignError","AssignError","AssignFixed","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Copy","EnableSelector","Error","FillFromRow","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","QueryInstance","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","WitnessMissing","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","not_enough_rows_available","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","col","col","col","col","desc","desc","desc","desc","from_row","func","k","k","k","k","k","k","left_col","left_row","right_col","right_row","row","row","row","row","selector","usable_rows","usable_rows","usable_rows","usable_rows","usable_rows","usable_rows","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"],[1639,"halo2_frontend::plonk::error::AssignError"],[1670,"halo2_frontend::plonk::error::Error"],[1671,"halo2_frontend::plonk::lookup"],[1692,"halo2_frontend::plonk::permutation"],[1711,"halo2_frontend::plonk::shuffle"],[1732,"halo2_frontend::circuit::value"],[1733,"core::ops::arith"],[1734,"ff"],[1735,"core::ops::function"],[1736,"core::result"],[1737,"alloc::string"],[1738,"core::convert"],[1739,"halo2_frontend::circuit::table_layouter"],[1740,"std::collections::hash::map"],[1741,"alloc::vec"],[1742,"core::option"],[1743,"core::clone"],[1744,"halo2_middleware::circuit"],[1745,"core::fmt"],[1746,"core::marker"],[1747,"core::borrow"],[1748,"core::iter::traits::collect"],[1749,"core::any"],[1750,"core::cmp"],[1751,"std::collections::hash::set"],[1752,"core::hash"],[1753,"core::iter::traits::iterator"],[1754,"halo2_frontend::dev::failure"],[1755,"halo2_frontend::dev::gates"],[1756,"halo2_frontend::dev::graph::layout"],[1757,"halo2_frontend::dev::tfp"],[1758,"plotters::coord"],[1759,"plotters::drawing::area"],[1760,"plotters_backend"],[1761,"core::ops::range"],[1762,"group::prime"],[1763,"serde::de"],[1764,"serde::ser"],[1765,"core::default"],[1766,"halo2_middleware::poly"],[1767,"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,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,146,146,147,148,149,150,151,148,152,149,150,149,150,148,153,154,151,153,153,154,149,149,150,150,154,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,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,117,128,130,127,44,129,117,128,130,127,44,129,44,44,117,127,44,117,127,44,117,44,44,44,127,44,44,44,117,128,130,127,44,129,117,128,130,127,44,129,44,117,128,130,127,44,129,44,44,44,44,117,128,130,127,44,129,117,117,128,128,128,130,127,44,129,44,44,44,117,128,130,127,44,129,44,44,117,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,117,44,44,44,44,117,127,44,117,128,130,127,44,129,117,128,130,127,44,129,117,128,130,127,44,129,44,44,117,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,145,0,11,145,11,144,11,145,145,0,145,11,11,11,144,145,11,0,11,144,144,145,11,144,145,11,144,145,11,144,145,11,144,145,11,144,145,11,11,144,144,145,145,11,144,145,11,144,145,11,144,145,11,11,144,145,11,144,145,11,144,145,11,144,145,11,144,145,155,156,157,158,155,156,159,160,158,160,155,156,159,157,161,158,161,161,161,161,155,156,159,157,159,155,156,159,157,161,158,162,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":"````````````````````{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{e}}{b{e}}}g{}{{h{}{{f{c}}}}}{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{b{{j{c}}}}c}el{}}{{{b{c}}{b{{d{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{c}}{d{{b{c}}}}}g{{h{d}{{f{}}}}}{}{}}{{{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}}}{}}000{{{d{E`}}}{{d{c}}}{}}{{{d{Eb}}}{{d{c}}}{}}222222{B`{{d{A`c}}}{}}0000000005{B`Ab}00000000{{{d{A`{Cn{ce}}}}}Abl{{Cl{c}}}}1{{{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}11{B`E`}2{B`Eb}3333{{{d{A`Fn}}}{{Aj{c}}}l}{{{d{A`Bn}}}{{Cf{c}}}l}55{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}}}}}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{b{e}}{b{e}}}g{}{{Gh{}{{f{c}}}}}{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{b{c}}{b{{d{c}}}}}g{{Gh{d}{{f{}}}}}{}{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}{{{b{c}}{d{{b{c}}}}}g{{Gh{d}{{f{}}}}}{}{}}{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{j{c}}}}c}el{}}{{{b{{d{{j{c}}}}}}c}el{}}{{{b{{j{c}}}}{b{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{e}}{b{e}}}g{}{{H`{}{{f{c}}}}}{}}{{{b{{d{{j{c}}}}}}{b{c}}}el{}}{{{d{{b{c}}}}{d{{b{c}}}}}e{}{}}>{{{b{c}}{b{{d{c}}}}}g{{H`{d}{{f{}}}}}{}{}}{{{b{c}}{d{{b{c}}}}}g{{H`{d}{{f{}}}}}{}{}}{{{b{{d{c}}}}{b{c}}}e{}{}}{{{b{{j{c}}}}c}el{}}{{{d{{b{c}}}}{b{c}}}e{}{}}{{{b{{j{c}}}}{b{c}}}el{}}{{{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{}}{FhIf}{{{An{Gj}}}If}2{{{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{A`{In{c}}}}B`}{{d{A`{Gn{{J`{c}}}}}}}l}{{{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{Jj}}}Jj}{{{d{{J`{c}}}}}{{J`{c}}}{Dnl}}{{{d{{Jl{c}}}}}{{Jl{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}000{{}Jn}{{{d{A`{In{c}}}}{An{Gj}}B`{An{Gj}}B`}{{Ah{AbAf}}}l}``{{{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}}}}}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{Jj}}{d{Jj}}}Ad}{{{d{{J`{c}}}}{d{{J`{c}}}}}Ad{Kbl}}{{{d{{Jl{c}}}}{d{{Jl{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{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{Fbl}}{{{d{{In{c}}}}{d{A`Fj}}}Fl{Fbl}}{{{d{{Jl{c}}}}{d{A`Fj}}}Fl{Fbl}}{cc{}}0000000{{{d{{In{c}}}}Gf}{{b{c}}}l}{{}B`}0000000{{{d{{In{c}}}}}{{d{{Df{{Df{{Jl{c}}}}}}}}}{JbJd}}{{{d{A`{In{c}}}}B`}{{d{A`{Gn{{Jl{c}}}}}}}l}{ce{}{}}0000000{{K`Ad}K`}`{{{d{A`{In{c}}}}{Dh{Bd}}}Abl}{{{d{A`{In{c}}}}g}Abl{{Bf{Bd}}}{{n{}{{f{e}}}}}}{{{d{Jn}}}Bd}{{{d{{In{c}}}}{An{Bl}}B`}{{Ah{{b{c}}Af}}}l}{{K`Ed{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{}{}}000{{{d{c}}}Bd{}}00{c{{Ah{e}}}{}{}}000000000000000{{{d{c}}}Hd{}}0000000{{{d{{In{c}}}}}{{d{{Lb{B`}}}}}{JbJd}}{{{d{{Jl{c}}}}}cl}{{{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{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{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{{{An{Gj}}}N`}{cc{}}{NjNb}1{{{Ej{N`Nl}}}Nb}{{{Ej{cN`Nl}}}Nb{{Nn{Ml}}}}3{{{Ej{B`c}}}Nd{{Nn{Ml}}}}{{{Ej{NdB`c}}}Nf{{Nn{Ml}}}}5{{{Ej{B`Bd}}}Nh}6{{{Ej{B`{d{Ml}}{Dd{N`Bd}}}}}Nh}{{{Ej{B`{d{Ml}}}}}Nh}{{{Ej{B`Bd{Dd{N`Bd}}}}}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```````````{{{j{c}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}{d{{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{{j{c}}}}{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}8{{{d{c}}}{{j{c}}}l}{cc{}}{c{{j{c}}}l}{{}B`}{ce{}{}}={{{d{{j{c}}}}}Adl}{{{j{c}}c}{{j{c}}}l}{{{j{c}}{d{{j{c}}}}}{{j{c}}}l}{{{j{c}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}c}{{j{c}}}l}{{{d{A`{j{c}}}}{d{{j{c}}}}}Abl}{{{d{A`{j{c}}}}{j{c}}}Abl}{{{j{c}}}el{}}{{{d{{j{c}}}}}el{}}{{{d{{j{c}}}}}cl}{{{d{{j{c}}}}}{{j{c}}}l}8967{{{d{{j{c}}}}{j{c}}}{{j{c}}}l}{{{d{{j{c}}}}{d{{j{c}}}}}{{j{c}}}l}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{Nj}}}Nj}{{{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{{Nn{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{Nj}}{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}}}Nj{{Bf{{An{Gj}}}}}}{cc{}}{{{Ej{c{Oj{e}}}}}{{A@`{e}}}{{Nn{Ml}}}l}{{{Oj{c}}}{{A@`{c}}}l}22222{{{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{{Nn{Ml}}}{{n{{d{A`{A@b{c}}}}}{{f{{Df{{Ej{{Oj{c}}C`}}}}}}}}}}{{{d{A`{Eh{c}}}}eg}B`l{{Nn{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{Nj}}}}}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{{Nn{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{Bl}}}{{An{Gj}}}}{N`{{An{Gj}}}}{cc{}}{{{An{Ch}}}{{An{Gj}}}}{{{An{Al}}}{{An{Gj}}}}22222222{AAjGf}33{{{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}}}}Nl}{{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{Bl}}c}}}{}}{{{An{Gj}}}{{Ah{{An{Ch}}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}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{B`{{d{c}}}{}}00{B`{{d{A`c}}}{}}00{B`Ab}00{{{d{Af}}{d{A`Fj}}}Fl}0{{{d{AB`}}{d{A`Fj}}}Fl}0{{{d{ABb}}{d{A`Fj}}}Fl}0{cc{}}00{{}B`}00:::{EdAf}{{{d{c}}}Bd{}}00>>>>>>===<<<`````````````````````````````````;:{{{d{{A@f{c}}}}}{{A@f{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}};:9{{{d{{A@f{c}}}}{d{A`Fj}}}Fll}65{{{d{{A@f{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}{ce{}{}}{{{d{{A@f{c}}}}}{{d{Ml}}}l}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@f{e}}}{{Nn{Ml}}}l}3{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}5`{{{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`}{ce{}{}}>==<0`;:{{{d{{A@l{c}}}}}{{A@l{c}}}{Dnl}}{{{d{c}}{d{A`e}}}Ab{}{}}987{{{d{{A@l{c}}}}{d{A`Fj}}}Fll}64{{{d{{A@l{c}}}}}{{d{{Df{{Oj{c}}}}}}}l}4{{{d{{A@l{c}}}}}{{d{Ml}}}l}{{c{Df{{Ej{{Oj{e}}{Oj{e}}}}}}}{{A@l{e}}}{{Nn{Ml}}}l}2{{{d{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{d{c}}}Hd{}}9","D":"DEh","p":[[5,"Value",3,1732],[1,"reference"],[17,"Output"],[10,"Add",1733],[6,"Assigned",980],[10,"Field",1734],[10,"FnOnce",1735],[0,"mut"],[1,"unit"],[1,"bool"],[6,"Error",1571],[6,"Result",1736],[5,"Region",3],[5,"Advice",1037],[5,"Column",1281],[1,"usize"],[5,"AssignedCell",3],[5,"String",1737],[10,"Into",1738],[10,"Fn",1735],[10,"FnMut",1735],[5,"Instance",1037],[10,"TableLayouter",381,1739],[5,"TableColumn",1281],[5,"SimpleTableLayouter",3,1739],[10,"Assignment",1037],[5,"Table",3],[5,"Fixed",1037],[17,"Root"],[10,"Layouter",3],[5,"NamespacedLayouter",3],[5,"WitnessCalculator",3],[1,"u8"],[5,"HashMap",1740],[5,"Vec",1741],[6,"Option",1742],[10,"Circuit",1037],[5,"Cell",3],[10,"Clone",1743],[5,"RegionIndex",3],[5,"RegionStart",3],[1,"u32"],[5,"CompiledCircuit",1744],[5,"ConstraintSystem",1126],[1,"tuple"],[17,"Config"],[17,"Loaded"],[10,"Chip",3],[10,"Debug",1745],[10,"Copy",1746],[10,"Borrow",1747],[5,"Selector",1281],[5,"Formatter",1745],[8,"Result",1745],[10,"RegionLayouter",381],[17,"Item"],[10,"IntoIterator",1748],[10,"FromIterator",1748],[5,"Challenge",1281],[10,"Mul",1733],[6,"Any",1744],[10,"Neg",1733],[1,"slice"],[10,"Sub",1733],[1,"array"],[5,"TypeId",1749],[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",1750],[5,"HashSet",1751],[10,"Hasher",1752],[5,"MockProver",449],[6,"CellValue",449],[10,"FromUniformBytes",1734],[10,"Ord",1750],[10,"Iterator",1753],[6,"FailureLocation",449,1754],[6,"VerifyFailure",449,1754],[6,"InstanceValue",449],[5,"CircuitGates",449,1755],[5,"CircuitLayout",449,1756],[10,"PartialEq",1750],[5,"Error",1745],[5,"TracingFloorPlanner",449,1757],[10,"FloorPlanner",1037],[5,"Shift",1758],[5,"DrawingArea",1759],[6,"DrawingAreaErrorKind",1759],[10,"DrawingBackend",1760],[5,"Range",1761],[5,"CircuitCost",666],[10,"PrimeGroup",1762],[5,"MarginalProofSize",666],[5,"ProofSize",666],[5,"Poly",711],[5,"Lookup",711],[5,"Permutation",711],[5,"Shuffle",711],[10,"Deserializer",1763],[5,"ModelCircuit",711],[6,"CommitmentScheme",711],[5,"CostOptions",711],[1,"str"],[10,"Serializer",1764],[5,"Column",855],[5,"VirtualCell",855],[5,"Gate",855],[5,"Constraint",855],[5,"Region",855],[5,"VirtualCell",1126],[1,"i32"],[10,"AsRef",1738],[17,"FloorPlanner"],[17,"Params"],[10,"Default",1765],[10,"ColumnType",1037],[5,"Rotation",1766],[6,"Expression",1281],[10,"Phase",1281],[5,"Gate",1126],[5,"Constraint",1126],[5,"VirtualCells",1126],[5,"Constraints",1126],[5,"Argument",1671],[5,"Argument",1692],[5,"Phase",1546],[5,"Argument",1711],[5,"FixedQuery",1281],[5,"AdviceQuery",1281],[5,"InstanceQuery",1281],[5,"FirstPhase",1281],[5,"SecondPhase",1281],[5,"ThirdPhase",1281],[5,"ChallengeMid",1744],[10,"Hash",1752],[10,"SealedPhase",1546],[6,"TableError",1571],[6,"AssignError",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,"AssignAdvice",1639],[15,"AssignFixed",1639],[15,"QueryInstance",1639],[15,"FillFromRow",1639],[15,"EnableSelector",1639],[15,"WitnessMissing",1639],[15,"Copy",1639],[15,"NotEnoughRowsAvailable",1670]],"r":[[14,279],[15,1739],[17,1739],[18,1732],[275,316],[276,316],[387,1739],[453,666],[454,1755],[455,1756],[458,1754],[469,1757],[471,1754],[496,1767]],"b":[[20,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[21,"impl-Add-for-Value%3CV%3E"],[22,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[23,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[24,"impl-Add-for-%26Value%3CV%3E"],[25,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[26,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[27,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[28,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[29,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%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%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[191,"impl-Mul-for-Value%3CV%3E"],[192,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[193,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[194,"impl-Mul-for-%26Value%3CV%3E"],[195,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[196,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[197,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[198,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[199,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[212,"impl-Sub-for-Value%3CV%3E"],[213,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[214,"impl-Sub-for-%26Value%3CV%3E"],[215,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[216,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[217,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[218,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[219,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[220,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[221,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[423,"impl-From%3CSelector%3E-for-RegionColumn"],[424,"impl-From%3CColumn%3CAny%3E%3E-for-RegionColumn"],[546,"impl-Display-for-FailureLocation"],[547,"impl-Debug-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-Display-for-VirtualCell"],[906,"impl-Debug-for-VirtualCell"],[907,"impl-Display-for-Gate"],[908,"impl-Debug-for-Gate"],[909,"impl-Display-for-Constraint"],[910,"impl-Debug-for-Constraint"],[911,"impl-Display-for-Region"],[912,"impl-Debug-for-Region"],[915,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[917,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[918,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[923,"impl-From%3C(usize,+String)%3E-for-Region"],[925,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[926,"impl-From%3C(usize,+%26str)%3E-for-Region"],[927,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%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%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[989,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%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%3CF%3E-for-Assigned%3CF%3E"],[1015,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1016,"impl-Mul-for-Assigned%3CF%3E"],[1017,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1018,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1019,"impl-MulAssign-for-Assigned%3CF%3E"],[1020,"impl-Neg-for-Assigned%3CF%3E"],[1021,"impl-Neg-for-%26Assigned%3CF%3E"],[1024,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1025,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1026,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1027,"impl-Sub-for-Assigned%3CF%3E"],[1028,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1029,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%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%3CColumnMid%3E-for-Column%3CAny%3E"],[1415,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1416,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1465,"impl-Mul-for-Expression%3CF%3E"],[1466,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1499,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1500,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1502,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1608,"impl-Display-for-Error"],[1609,"impl-Debug-for-Error"],[1610,"impl-Debug-for-TableError"],[1611,"impl-Display-for-TableError"],[1612,"impl-Display-for-AssignError"],[1613,"impl-Debug-for-AssignError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJgEkQAAAAAAAwAAAA8AAAAVAAkAKAAAACwAAAAuABQARQAJAFcAAABcAAAAXgAVAHUACgCBAAAAhgAJAJEAAACUAAAAlgAAAJsAAQChAAAAowAKAL8ACQDLAAAAzwAAANEAAADVAAkA4AAEAOcAHQAJAQkAFAEDABoBDgArAQMAMgEKAEEBGgBgAQUAagETAIYBAACIAQAAigEAAI0BCQCZAQAAmwEGAKMBAwCoAQEAqwECAK8BAACzAQAAtQEAALgBCQDGAQAA3AEAAN8BEQDyAQcA+wEAAP8BGAAZAgcAIwIKADYCCABLAgEATgIAAFQCHwB6AgcAngIRALMCAgC8AgsA1AIWAOwCGAAGAwYAFgMAABgDBgAuAwAAMwMBADgDHwBdAxUAdAMeAJQDAACWAwEAmQMBAJwDAACeAwMAowMEAK0DJQDUAwAA2QMLAOcDAQDqAwEA7QMDAPIDAQD3AwcAAQQMABsEDAAqBAAALAQIADcEAgA7BAAAPQQCAEQEBQBRBAIAVwQOAHUECwCDBAYAjwQAAJEECwCeBAUAqAQGALAEAQC5BAYAyAQAANcEAQDfBAAA5AQUAPsEBQAYBSgASAUAAEwFIABuBQcAegUMAIgFAQCSBQAAlQUDAJ0FAAChBQsAugUDAL8FAQDDBQAAzQUAAM8FOwANBgkAGAYBABsGCQAnBgAAKwYBAC4GAAAzBgAAOQYVAFIGAgBZBi0AiQYHAJIGAACYBgQAngYIAKkGAACrBgQAsQYHALoGAADABgQA"}],\ ["halo2_middleware",{"t":"CCEECCCCCCPGFPFFFPFIPFIPPFPPFPPGONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNOONNNNOONNNNNNNNNNNNNNNNNNNNOONOONNOOOONNNOONONOONOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNPGPPPPKNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNMFINNNNNNNNNNOONOOOONNNNNKKKKRRRRRRRKKFKNNMNNNNNNNNNNNNNHNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMHNMNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNFFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNFINNNNNNNNNNOONOOOONNNNNCCFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRKMMMMMM","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","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"],[289,"halo2_middleware::lookup"],[313,"halo2_middleware::multicore"],[457,"halo2_middleware::permutation"],[493,"halo2_middleware::poly"],[517,"halo2_middleware::shuffle"],[541,"halo2_middleware::zal"],[543,"halo2_middleware::zal::impls"],[679,"halo2_middleware::zal::traits"],[688,"core::clone"],[689,"ff"],[690,"core::cmp"],[691,"core::fmt"],[692,"core::hash"],[693,"core::option"],[694,"alloc::string"],[695,"core::result"],[696,"core::any"],[697,"std::io::error"],[698,"std::io"],[699,"core::ops::function"],[700,"core::iter::traits::iterator"],[701,"rayon::iter"],[702,"core::marker"],[703,"rayon::slice"],[704,"rayon::iter::blocks"],[705,"rayon::iter::chain"],[706,"rayon::iter::chunks"],[707,"rayon::iter::cloned"],[708,"alloc::vec"],[709,"alloc::collections::linked_list"],[710,"rayon::iter::copied"],[711,"rayon::iter::plumbing"],[712,"rayon::iter::enumerate"],[713,"rayon::iter::filter"],[714,"rayon::iter::filter_map"],[715,"rayon::iter::flat_map"],[716,"rayon::iter::flat_map_iter"],[717,"core::iter::traits::collect"],[718,"rayon::iter::flatten"],[719,"rayon::iter::flatten_iter"],[720,"rayon_core::scope"],[721,"rayon::iter::fold"],[722,"rayon::iter::fold_chunks"],[723,"rayon::iter::fold_chunks_with"],[724,"rayon::iter::inspect"],[725,"rayon::iter::interleave"],[726,"rayon::iter::interleave_shortest"],[727,"rayon::iter::intersperse"],[728,"rayon::iter::map"],[729,"rayon::iter::map_with"],[730,"rayon::iter::panic_fuse"],[731,"rayon::slice::chunk_by"],[732,"rayon::slice::chunks"],[733,"rayon::slice::rchunks"],[734,"core::default"],[735,"either"],[736,"rayon::iter::positions"],[737,"core::iter::traits::accum"],[738,"rayon::iter::rev"],[739,"rayon::iter::skip"],[740,"rayon::iter::skip_any"],[741,"rayon::iter::skip_any_while"],[742,"rayon_core::broadcast"],[743,"rayon::iter::step_by"],[744,"rayon::iter::take"],[745,"rayon::iter::take_any"],[746,"rayon::iter::take_any_while"],[747,"rayon::iter::try_fold"],[748,"rayon::iter::private"],[749,"rayon::iter::update"],[750,"rayon::iter::while_some"],[751,"rayon::iter::len"],[752,"rayon::iter::zip"],[753,"rayon::iter::zip_eq"],[754,"pasta_curves::arithmetic::curves"],[755,"rayon_core"],[756,"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,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}}c}{{Ch{ce}}}A`Ab}{{{Ch{ce}}{Ch{ce}}}{{Ch{ce}}}A`Ab}{{{Ch{ce}}}gA`Ab{}}{g{{Ch{ce}}}A`Ab{{Dl{}{{Dj{{Ch{ce}}}}}}}}20{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Cn{}}7{{{b{Ab}}{b{dc}}}{{D`{B`}}}Db}``{{{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",688],[10,"Field",689],[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",690],[1,"usize"],[1,"bool"],[5,"Formatter",691],[8,"Result",691],[10,"Debug",691],[10,"Hasher",692],[1,"str"],[5,"Rotation",493],[6,"Option",693],[1,"u8"],[6,"Expression",251],[5,"String",694],[6,"Result",695],[5,"TypeId",696],[8,"Result",697],[10,"Write",698],[10,"PartialEq",690],[17,"Output"],[10,"Fn",699],[17,"Item"],[10,"Iterator",700],[5,"Argument",289],[10,"ParallelIterator",313,701],[10,"Send",702],[10,"Sync",702],[10,"ParallelSliceMut",313,703],[1,"slice"],[10,"IndexedParallelIterator",313,701],[5,"ExponentialBlocks",704],[5,"UniformBlocks",704],[5,"Chain",705],[10,"IntoParallelIterator",313,701],[5,"Chunks",706],[5,"Cloned",707],[10,"FromParallelIterator",701],[5,"Vec",708],[5,"LinkedList",709],[5,"Copied",710],[10,"Consumer",711],[10,"UnindexedConsumer",711],[5,"Enumerate",712],[5,"Filter",713],[5,"FilterMap",714],[5,"FlatMap",715],[5,"FlatMapIter",716],[10,"IntoIterator",717],[5,"Flatten",718],[5,"FlattenIter",719],[5,"Scope",313,720],[5,"Error",691],[5,"Fold",721],[5,"FoldChunks",722],[5,"FoldChunksWith",723],[5,"FoldWith",721],[5,"Inspect",724],[5,"Interleave",725],[5,"InterleaveShortest",726],[5,"Intersperse",727],[17,"Iter"],[1,"tuple"],[10,"FnOnce",699],[5,"Map",728],[5,"MapInit",729],[5,"MapWith",729],[10,"Ord",690],[5,"PanicFuse",730],[5,"ChunkByMut",731],[5,"ChunksExactMut",732],[5,"ChunksMut",732],[10,"IntoParallelRefIterator",313,701],[10,"IntoParallelRefMutIterator",313,701],[5,"RChunksExactMut",733],[5,"RChunksMut",733],[5,"SplitInclusiveMut",703],[5,"SplitMut",703],[10,"Default",734],[10,"ParallelExtend",701],[6,"Either",735],[5,"Positions",736],[10,"Product",737],[5,"Rev",738],[5,"Skip",739],[5,"SkipAny",740],[5,"SkipAnyWhile",741],[5,"BroadcastContext",742],[5,"StepBy",743],[10,"Sum",737],[5,"Take",744],[5,"TakeAny",745],[5,"TakeAnyWhile",746],[5,"TryFold",747],[10,"Try",748],[10,"TryFoldAndReduce",313],[5,"TryFoldWith",747],[5,"Update",749],[5,"WhileSome",750],[5,"MaxLen",751],[5,"MinLen",751],[10,"ProducerCallback",711],[5,"Zip",752],[5,"ZipEq",753],[5,"AssemblyMid",457],[5,"ArgumentMid",457],[5,"Argument",517],[5,"HasCurve",543],[5,"HasMsmEngine",543],[5,"PlonkEngineConfig",543],[5,"PlonkEngine",543],[10,"CurveAffine",754],[10,"MsmAccel",679],[5,"H2cEngine",543],[5,"NoCurve",543],[5,"NoMsmEngine",543],[17,"CoeffsDescriptor"],[17,"BaseDescriptor"],[8,"ExpressionMid",10],[8,"GateMid",10],[8,"ArgumentMid",289],[8,"ArgumentMid",517],[5,"H2cMsmCoeffsDesc",543],[5,"H2cMsmBaseDesc",543]],"r":[[313,701],[314,701],[315,701],[316,701],[324,701],[325,703],[326,720],[344,755],[382,756],[425,720]],"b":[[123,"impl-Display-for-VarMid"],[124,"impl-Debug-for-VarMid"],[130,"impl-Debug-for-ColumnMid"],[131,"impl-Display-for-ColumnMid"],[277,"impl-Mul%3CF%3E-for-Expression%3CF,+V%3E"],[278,"impl-Mul-for-Expression%3CF,+V%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMUBMQAAAAkAFAAAABcAAAAdAAAAIAAAACIAEwA3ABcAUgAzAJAABACWAAAAmAAJAKwAAQCvAAwAvQAAAL8AAQDCAAAAxAArAPEACgACAQUADAEDABEBAAAUAQAAFgEKACMBCAAtAQIAMQEIAEgBAABMAQEAWgEBAF4BAABtAQAAeAEAALsBAQC/AQAAwwEAAMsBCADVAQgA4AEBAOQBCQDvAQQA9QEEAPsBAQD/AQAAAQIEAAcCCAARAgIAFQJIAGcCCgB7AjUA"}],\ -["halo2_proofs",{"t":"PPPGCNNCNNNNCNNNENNCCNCNNNNRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMFFKRKRFFFRFFFNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNCNNFFNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNCNNNNNNNNPPPGFPPGPPGPFPPPPPPGNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGGKPPPPFPKFPPKRPFPFFGGGGFFPPFKRPFPPPPPPPPPPPRKPFPPFFPPPFPFPPFFPNNNNNNNNNNNNONMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNMNNMNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONMNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHNNNNOONNNNNNNNNNNNNNNNNONONONONNNNNNNONNNNHMNNMNNMNNNNNNNNMNNNNNNONNNNONNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNMNNOOFRFKNNNNNNNNNNNCNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNCNCNNNNMNNNNNMNNNNNNNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKRKKKKKNNNNNNNNNNNNNMNNMNNNNNNNNNNNNMNNNNNNNMNMMNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNMNMN","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","AssignmentError","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_extended","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"],[1477,"halo2_proofs::plonk::ErrorBack"],[1478,"halo2_proofs::plonk::ErrorFront"],[1479,"halo2_proofs::poly"],[1552,"halo2_proofs::poly::commitment"],[1618,"halo2_proofs::poly::ipa"],[1622,"halo2_proofs::poly::ipa::commitment"],[1667,"halo2_proofs::poly::ipa::msm"],[1697,"halo2_proofs::poly::ipa::multiopen"],[1729,"halo2_proofs::poly::ipa::strategy"],[1802,"halo2_proofs::poly::kzg"],[1806,"halo2_proofs::poly::kzg::commitment"],[1879,"halo2_proofs::poly::kzg::msm"],[1928,"halo2_proofs::poly::kzg::multiopen"],[1993,"halo2_proofs::poly::kzg::strategy"],[2053,"halo2_proofs::transcript"],[2141,"halo2_backend::helpers"],[2142,"core::fmt"],[2143,"core::result"],[2144,"core::any"],[2145,"pasta_curves::arithmetic::curves"],[2146,"subtle"],[2147,"ff"],[2148,"core::cmp"],[2149,"core::ops::arith"],[2150,"core::ops::function"],[2151,"alloc::boxed"],[2152,"core::marker"],[2153,"core::clone"],[2154,"core::convert"],[2155,"rand_core"],[2156,"halo2_frontend::circuit::value"],[2157,"halo2_frontend::plonk::assigned"],[2158,"halo2_frontend::circuit"],[2159,"halo2_frontend::plonk::circuit"],[2160,"halo2_frontend::plonk::circuit::expression"],[2161,"alloc::string"],[2162,"core::borrow"],[2163,"halo2_frontend::circuit::floor_planner::single_pass"],[2164,"halo2_frontend::circuit::layouter"],[2165,"halo2_frontend::circuit::table_layouter"],[2166,"core::iter::traits::collect"],[2167,"halo2_middleware::circuit"],[2168,"core::option"],[2169,"alloc::vec"],[2170,"halo2_frontend::circuit::floor_planner::v1"],[2171,"halo2_frontend::dev"],[2172,"core::iter::traits::iterator"],[2173,"halo2_frontend::dev::failure"],[2174,"halo2_frontend::plonk::circuit::constraint_system"],[2175,"halo2_frontend::dev::graph::layout"],[2176,"plotters::coord"],[2177,"plotters::drawing::area"],[2178,"plotters_backend"],[2179,"core::ops::range"],[2180,"halo2_frontend::dev::cost_model"],[2181,"serde::de"],[2182,"serde::ser"],[2183,"halo2_frontend::dev::metadata"],[2184,"std::collections::hash::map"],[2185,"core::hash"],[2186,"halo2_middleware::poly"],[2187,"halo2_backend::plonk"],[2188,"halo2_proofs::plonk::error"],[2189,"halo2_backend::transcript"],[2190,"halo2_middleware::zal::impls"],[2191,"halo2_middleware::zal::traits"],[2192,"std::io::error"],[2193,"halo2_backend::plonk::circuit"],[2194,"halo2_backend::poly::domain"],[2195,"halo2_backend::poly::commitment"],[2196,"halo2_frontend::plonk::lookup"],[2197,"core::default"],[2198,"halo2_frontend::plonk::permutation"],[2199,"halo2_frontend::plonk::circuit::expression::sealed"],[2200,"std::io"],[2201,"halo2_frontend::plonk::shuffle"],[2202,"core::error"],[2203,"halo2_backend::poly::strategy"],[2204,"halo2_backend::poly"],[2205,"halo2_backend::poly::query"],[2206,"halo2_backend::poly::ipa::commitment"],[2207,"halo2_backend::poly::ipa::msm"],[2208,"halo2_backend::poly::ipa::strategy"],[2209,"halo2_backend::poly::ipa::multiopen::prover"],[2210,"halo2_backend::poly::ipa::multiopen::verifier"],[2211,"halo2_backend::poly::kzg::commitment"],[2212,"pairing"],[2213,"halo2_backend::poly::kzg::msm"],[2214,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[2215,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[2216,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[2217,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[2218,"halo2_backend::poly::kzg::strategy"],[2219,"halo2_backend::arithmetic"],[2220,"halo2_frontend::circuit::floor_planner"],[2221,"halo2_frontend::dev::graph"],[2222,"halo2_proofs::plonk::prover"],[2223,"halo2_proofs::plonk::keygen"],[2224,"halo2_backend::plonk::verifier"],[2225,"halo2_backend::poly::ipa"],[2226,"halo2_backend::poly::ipa::commitment::prover"],[2227,"halo2_backend::poly::ipa::commitment::verifier"],[2228,"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,40,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,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}}}}?`````````````{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{e}}{Dh{e}}}{}{}{{Dj{}{{Bj{c}}}}}}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{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{dc}}}}}{{Dh{c}}}D`}{{{Dh{{b{c}}}}}{{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{}}0{{{Dh{c}}}{{Dh{{Dl{c}}}}}Bh}1{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{{Dl{c}}}}c}{}Bh}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{Dh{e}}{Dh{e}}}{}{}{{Bl{}{{Bj{c}}}}}}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{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}}}}}}9{{{Dh{e}}{Dh{e}}}{}{}{{Id{}{{Bj{c}}}}}}?=;<{{{Dh{c}}{Dh{{b{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}{{{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{}}{NhN`}{{{Ch{MnNj}}}N`}2{{{Ch{cMnNj}}}N`{{Dd{Bn}}}}{{{Ch{jc}}}Nb{{Dd{Bn}}}}4{{{Ch{Nbjc}}}Nd{{Dd{Bn}}}}5{{{Ch{j{b{Bn}}{Nl{MnEj}}}}}Nf}6{{{Ch{j{b{Bn}}}}}Nf}{{{Ch{jEj}}}Nf}{{{Ch{jEj{Nl{MnEj}}}}}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``````````````````````````````````````````````````````````````````{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{O`{c}}{O`{c}}}{{O`{c}}}Bh}{{{b{d{Dl{c}}}}{Dl{c}}}hBh}{{{b{d{Dl{c}}}}{b{{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{E`A@f}{cc{}}{AAfA@f}{{{Kh{c}}}{{Oh{c}}}Bh}2{F`Hn}3{FfHn}{EdHn}{AB`AAf}666{{{Ch{cc}}}{{Dl{c}}}Bh}{{{b{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}9{c{{Dl{c}}}Bh}:::{Mn{{Ef{Hn}}}};{{{Ef{Ed}}}{{Ef{Hn}}}}{{{Ef{F`}}}{{Ef{Hn}}}}{{{Ef{Ff}}}{{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}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}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}{{{Dl{c}}}{}Bh}{{{b{{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}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{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}{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}}}{}{}}000000000{{{Ef{Hn}}}{{A`{{Ef{Ed}}}}}}{{{Ef{Hn}}}{{A`{{Ef{Ff}}}}}}2{{{Ef{Hn}}}{{A`{{Ef{F`}}}}}}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}}}}j}{{AEf{cAEh}}}B`}{{{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}}}{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@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}}}{AIdGh}}{{{b{{AHl{c}}}}}{{AJ`{c}}}AId}{{{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@n","p":[[1,"reference"],[0,"mut"],[6,"SerdeFormat",0,2141],[1,"unit"],[1,"usize"],[5,"Formatter",2142],[5,"Error",2142],[6,"Result",2143],[5,"TypeId",2144],[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",27,2145],[5,"Coordinates",2145],[5,"CtOption",2146],[10,"WithSmallOrderMulGroup",2147],[10,"Ord",2148],[17,"AffineExt"],[10,"CurveExt",27,2145],[10,"Field",27,2147],[17,"Output"],[10,"Mul",2149],[1,"str"],[10,"Fn",2150],[5,"Box",2151],[5,"Choice",2146],[1,"bool"],[1,"tuple"],[1,"slice"],[10,"Send",2152],[10,"Sync",2152],[10,"Clone",2153],[1,"u64"],[10,"AsRef",2154],[10,"RngCore",2155],[5,"Value",64,2156],[10,"Add",2149],[6,"Assigned",829,2157],[10,"FnOnce",2150],[6,"ErrorFront",829],[5,"Region",64,2158],[5,"Advice",829,2159],[5,"Column",829,2160],[5,"AssignedCell",64,2158],[5,"String",2161],[10,"Into",2154],[10,"FnMut",2150],[5,"Instance",829,2159],[5,"Table",64,2158],[5,"TableColumn",829,2160],[5,"Fixed",829,2159],[17,"Root"],[10,"Layouter",64,2158],[5,"NamespacedLayouter",64,2158],[5,"Cell",64,2158],[5,"RegionIndex",64,2158],[17,"Config"],[17,"Loaded"],[10,"Chip",64,2158],[10,"Debug",2142],[10,"Copy",2152],[10,"Borrow",2162],[5,"Selector",829,2160],[5,"SimpleFloorPlanner",64,2163],[10,"RegionLayouter",2164],[10,"TableLayouter",2165],[17,"Item"],[10,"IntoIterator",2166],[10,"FromIterator",2166],[5,"Challenge",829,2160],[6,"Any",829,2167],[10,"Neg",2149],[6,"Option",2168],[10,"Sub",2149],[5,"Vec",2169],[10,"Assignment",829,2159],[10,"SyncDeps",2164],[10,"Circuit",829,2159],[1,"array"],[5,"V1Pass",293,2170],[5,"V1",293,2170],[5,"SingleChipLayouter",331,2163],[5,"MeasurementPass",354,2170],[5,"AssignmentPass",354,2170],[5,"MockProver",385,2171],[6,"CellValue",385,2171],[10,"FromUniformBytes",2147],[10,"Iterator",2172],[6,"FailureLocation",385,2173],[6,"VerifyFailure",385,2173],[6,"InstanceValue",385,2171],[5,"ConstraintSystem",829,2174],[5,"CircuitLayout",385,2175],[10,"PartialEq",2148],[1,"u32"],[5,"Shift",2176],[5,"DrawingArea",2177],[6,"DrawingAreaErrorKind",2177],[10,"DrawingBackend",2178],[5,"Range",2179],[5,"Poly",567,2180],[5,"Lookup",567,2180],[5,"Permutation",567,2180],[5,"Shuffle",567,2180],[6,"Ordering",2148],[10,"Deserializer",2181],[5,"ModelCircuit",567,2180],[6,"CommitmentScheme",567,2180],[5,"CostOptions",567,2180],[10,"Serializer",2182],[5,"Column",711],[5,"VirtualCell",711,2183],[5,"Gate",711,2183],[5,"Constraint",711,2183],[5,"Region",711,2183],[5,"VirtualCell",2174],[1,"i32"],[5,"HashMap",2184],[10,"Hasher",2185],[6,"Expression",829,2160],[10,"Phase",829,2160],[1,"u8"],[5,"Rotation",1479,2186],[5,"ConstraintSystemMid",829,2167],[5,"VerifyingKey",829,2187],[5,"ProvingKey",829,2187],[10,"ColumnType",829,2159],[5,"FixedQuery",829,2160],[5,"Constraint",2174],[5,"VirtualCells",829,2174],[6,"Error",829,2188],[10,"EncodedChallenge",2053,2189],[10,"TranscriptWrite",2053,2189],[5,"PlonkEngine",2190],[10,"MsmAccel",2191],[5,"AdviceQuery",2160],[5,"InstanceQuery",2160],[8,"Result",2142],[6,"ErrorBack",829],[5,"Constraints",829,2174],[5,"FirstPhase",829,2160],[5,"SecondPhase",829,2160],[5,"ThirdPhase",829,2160],[5,"Error",2192],[5,"ChallengeMid",2167],[5,"ConstraintSystemBack",2193],[10,"SerdeCurveAffine",2141],[5,"Gate",2174],[5,"EvaluationDomain",1479,2194],[10,"Hash",2185],[10,"Transcript",2053,2189],[10,"Params",1552,2195],[5,"Argument",2196],[17,"FloorPlanner"],[17,"Params"],[10,"FloorPlanner",829,2159],[10,"Default",2197],[5,"Argument",2198],[5,"Phase",2199],[5,"PinnedVerificationKey",2187],[8,"Result",2192],[10,"Read",2200],[5,"Argument",2201],[10,"Error",2202],[10,"CommitmentScheme",1552,2195],[10,"Verifier",1552,2195],[10,"VerificationStrategy",1479,2203],[10,"TranscriptRead",2053,2189],[10,"Write",2200],[5,"Coeff",2204],[5,"Polynomial",2204],[5,"ExtendedLagrangeCoeff",2204],[5,"LagrangeCoeff",2204],[5,"PinnedEvaluationDomain",2194],[5,"Blind",1552,2195],[10,"MSM",1552,2195],[10,"ParamsProver",1552,2195],[10,"Prover",1552,2195],[5,"ProverQuery",2205],[17,"MSM"],[10,"ParamsVerifier",1552,2195],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",2203],[6,"Error",2204],[5,"VerifierQuery",2205],[5,"ParamsIPA",1622,2206],[5,"MSMIPA",1667,2207],[5,"IPACommitmentScheme",1622,2206],[5,"GuardIPA",1729,2208],[5,"ProverIPA",1697,2209],[5,"VerifierIPA",1697,2210],[5,"Accumulator",1729,2208],[5,"AccumulatorStrategy",1729,2208],[5,"SingleStrategy",1729,2208],[5,"ParamsKZG",1806,2211],[10,"Engine",2212],[5,"ParamsVerifierKZG",1806,2211],[5,"MSMKZG",1879,2213],[5,"KZGCommitmentScheme",1806,2211],[5,"DualMSM",1879,2213],[10,"MultiMillerLoop",2212],[5,"ProverGWC",1928,2214],[5,"ProverSHPLONK",1928,2215],[5,"VerifierGWC",1928,2216],[5,"VerifierSHPLONK",1928,2217],[5,"GuardKZG",1993,2218],[5,"AccumulatorStrategy",1993,2218],[5,"SingleStrategy",1993,2218],[17,"Input"],[5,"ChallengeScalar",2189],[5,"Blake2bRead",2053,2189],[5,"Blake2bWrite",2053,2189],[5,"Challenge255",2053,2189],[10,"TranscriptWriterBuffer",2053,2189],[10,"TranscriptReadBuffer",2053,2189],[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",1477],[15,"NotEnoughRowsAvailable",1478]],"r":[[3,2141],[31,2145],[32,2145],[34,2147],[56,2219],[64,2158],[65,2158],[66,2158],[68,2158],[70,2158],[71,2158],[72,2158],[74,2163],[75,2158],[76,2156],[170,2158],[293,2170],[294,2170],[320,2220],[328,2220],[331,2163],[332,2163],[354,2170],[355,2170],[356,2170],[357,2170],[376,2170],[388,2171],[389,2175],[392,2173],[395,2171],[397,2171],[404,2173],[425,2221],[435,2171],[497,2171],[567,2180],[568,2180],[572,2180],[573,2180],[574,2180],[575,2180],[576,2180],[643,2180],[644,2180],[712,2183],[713,2183],[714,2183],[715,2183],[829,2159],[832,2167],[833,2157],[834,2159],[839,2160],[841,2159],[842,2160],[845,2159],[848,2174],[850,2167],[851,2174],[852,2188],[855,2160],[856,2160],[857,2159],[860,2160],[861,2159],[864,2159],[877,2160],[879,2187],[882,2160],[883,2160],[887,2160],[889,2160],[892,2187],[893,2174],[1010,2222],[1011,2222],[1259,2223],[1260,2223],[1261,2223],[1262,2223],[1448,2224],[1479,2194],[1481,2186],[1482,2203],[1494,2204],[1526,2204],[1528,2204],[1552,2195],[1554,2195],[1557,2195],[1560,2195],[1561,2195],[1563,2195],[1565,2195],[1569,2195],[1618,2225],[1619,2225],[1620,2225],[1621,2225],[1622,2206],[1623,2206],[1624,2206],[1633,2226],[1663,2227],[1667,2207],[1697,2209],[1698,2210],[1729,2208],[1730,2208],[1731,2208],[1732,2208],[1802,2228],[1803,2228],[1804,2228],[1805,2228],[1806,2211],[1807,2211],[1808,2211],[1879,2213],[1880,2213],[1928,2214],[1929,2215],[1930,2216],[1931,2217],[1993,2218],[1994,2218],[1995,2218],[2053,2189],[2054,2189],[2055,2189],[2056,2189],[2058,2189],[2059,2189],[2060,2189],[2061,2189],[2062,2189]],"b":[[77,"impl-Add-for-%26Value%3CV%3E"],[78,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[79,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[80,"impl-Add-for-Value%3CV%3E"],[81,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[82,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[83,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[84,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[85,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[86,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[126,"impl-Value%3C%26mut+V%3E"],[127,"impl-Value%3C%26V%3E"],[134,"impl-Value%3C%26mut+V%3E"],[135,"impl-Value%3C%26V%3E"],[218,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[219,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[220,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[221,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[222,"impl-Mul-for-Value%3CV%3E"],[223,"impl-Mul-for-%26Value%3CV%3E"],[224,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[225,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[226,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[227,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[238,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[239,"impl-Sub-for-Value%3CV%3E"],[240,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[241,"impl-Sub-for-%26Value%3CV%3E"],[242,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[243,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[244,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[245,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[246,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[247,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[467,"impl-Debug-for-FailureLocation"],[468,"impl-Display-for-FailureLocation"],[469,"impl-Debug-for-VerifyFailure"],[470,"impl-Display-for-VerifyFailure"],[759,"impl-Display-for-ColumnMid"],[760,"impl-Debug-for-ColumnMid"],[761,"impl-Debug-for-VirtualCell"],[762,"impl-Display-for-VirtualCell"],[763,"impl-Debug-for-Gate"],[764,"impl-Display-for-Gate"],[765,"impl-Debug-for-Constraint"],[766,"impl-Display-for-Constraint"],[767,"impl-Debug-for-Region"],[768,"impl-Display-for-Region"],[771,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[772,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[774,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[779,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[781,"impl-From%3C(usize,+%26str)%3E-for-Region"],[782,"impl-From%3C(usize,+String)%3E-for-Region"],[783,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[895,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[896,"impl-Add-for-Assigned%3CF%3E"],[897,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[898,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[899,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[900,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[902,"impl-AddAssign-for-Assigned%3CF%3E"],[903,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1115,"impl-Display-for-Error"],[1116,"impl-Debug-for-Error"],[1119,"impl-Display-for-Error"],[1120,"impl-Debug-for-Error"],[1139,"impl-Debug-for-Error"],[1140,"impl-Display-for-Error"],[1141,"impl-From%3CError%3E-for-Error"],[1143,"impl-From%3CError%3E-for-Error"],[1146,"impl-From%3CInstance%3E-for-Any"],[1148,"impl-From%3CFixed%3E-for-Any"],[1149,"impl-From%3CAdvice%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%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1158,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1162,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1164,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1165,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1166,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1270,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1271,"impl-Mul-for-Assigned%3CF%3E"],[1272,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1273,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1274,"impl-Mul-for-Expression%3CF%3E"],[1275,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1276,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1277,"impl-MulAssign-for-Assigned%3CF%3E"],[1278,"impl-Neg-for-Assigned%3CF%3E"],[1279,"impl-Neg-for-%26Assigned%3CF%3E"],[1337,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1338,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1339,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1340,"impl-Sub-for-Assigned%3CF%3E"],[1341,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1342,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1344,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1345,"impl-SubAssign-for-Assigned%3CF%3E"],[1383,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1384,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1386,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1571,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1572,"impl-AddAssign-for-Blind%3CF%3E"],[1599,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1600,"impl-MulAssign-for-Blind%3CF%3E"],[1669,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[1670,"impl-MSMIPA%3C\'a,+C%3E"],[1972,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[1973,"impl-ProverSHPLONK%3C\'a,+E%3E"],[2031,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[2032,"impl-AccumulatorStrategy%3CE%3E"],[2033,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"],[2034,"impl-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFYFtQAGAAEACQADAA4AAQARAAEAFgAAABgAAwBOAAkAYwAAAGUAEAB3AAcAhgAAAIsAEQCeAAgArAAHALYAAAC4AAAAuwAAAL0AAADCAAAAxAAIANsACQDnAAAA6QAAAOsAAADvAAoA+wADAAEBFwAdAQcAKAEOADkBAwA/AQwATgEIAFgBAgBdAQUAZwELAHUBAQB5AQgAmQEAAJwBDQCrAQgAtgESAMoBBwDUAQcA4gEGAPMBAgD7ARcAGQIFAEQCFgBcAhgAdgIGAIYCAACIAgYAngIAAKMCAQCoAh8AzQIVAOQCHgAEAwEABwMBAAoDAAAMAwAADgMDABMDBAAdAyAAgAMIAJUDLQDGAyAA6gMAAPcDAAD7Ay0AKwQWAEcECgBcBBoAeAQBAHsEAAB9BAIAgwQCAIcEAACLBAAAjQQCAJcEAACgBAAAogQBAKcEBwC0BAAAtgQXAOgEAAD0BAEA9wQLAAcFAAAJBQAACwUAAA0FAAARBQIAFQUAAB0FAAAiBQAAJAUCADYFAQA6BQkASAUUAF4FRwCrBRYAzAUIANsFAwDgBQEA5QUAAOoFAQDyBQIA+wUAAAEGAAAHBgkAIwYCACkGAQAsBgEAMgYCADYGAAA4BgAAOgYAADwGAAA/BgIATAYDAFEGAABaBgUAYwYJAG8GAQBzBgEAdgYAAHgGBwCBBgEAiwYLAJgGAACbBgYApAYDAKkGBwCzBgEAtwYKAMYGCwDTBgsA4QYDAOoGAwDyBhEABwcDABIHHAAzBwIAOQcFAEIHAQBFBw4AVwcAAFoHAABcBwYAZAcDAGkHCgB2BwEAfAcBAH8HCQCNBwcAlwcPAKsHAwCzBwIAtwcNAMYHAwDNBxkA6gcCAPAHAADyBwAA9AcQABEICwAeCAEAIQgLAC4IAwA2CAAAOggBAD0IAABCCAAARAgAAEYIAABICAEASwgOAFsIAABdCAAA"}],\ +["halo2_proofs",{"t":"PPPGCNNCNNNNCNNNENNCCNCNNNNRRRTKKRKTRRTMMMMMNMMMMMMMNNMMHNNMNNMMFFKRKRFFFRFFFNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNCNNFFNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNCNNNNNNNNPPPGFPPGPPGPFPPPPPPGNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOGFPPPFFFFFOONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHHNONNNNNNNONNNNNNNNOOOOOONOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGPGKPPPFPKFPPKRPFPFFGGGGFFPPFKRPFPPPPPPPPPPPRKPFPPFFPPPFPFPPFFPNNNNNNNNNNNNONMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNMNNMNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONMNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHNNNNOONNNNNNNNNNNNNNNNNONONONONNNNNNNONNNNHMNNMNNMNNNNNNNNMNNNNNNONNNNONNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNMNNOOFRFKNNNNNNNNNNNCNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNCNCNNNNMNNNNNMNNNNNNNNNNNNFTKRRKRRKKRKRKTTRKNNNMMMNNMNNMMNMNNNMNMNMNNNNMNNNMMMMNMMMMMNNNNMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKRKKKKKNNNNNNNNNNNNNMNNMNNNNNNNNNNNNMNNNNNNNMNMMNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNMNMN","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","AssignError","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_extended","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"],[1477,"halo2_proofs::plonk::ErrorBack"],[1478,"halo2_proofs::plonk::ErrorFront"],[1479,"halo2_proofs::poly"],[1552,"halo2_proofs::poly::commitment"],[1618,"halo2_proofs::poly::ipa"],[1622,"halo2_proofs::poly::ipa::commitment"],[1667,"halo2_proofs::poly::ipa::msm"],[1697,"halo2_proofs::poly::ipa::multiopen"],[1729,"halo2_proofs::poly::ipa::strategy"],[1802,"halo2_proofs::poly::kzg"],[1806,"halo2_proofs::poly::kzg::commitment"],[1879,"halo2_proofs::poly::kzg::msm"],[1928,"halo2_proofs::poly::kzg::multiopen"],[1993,"halo2_proofs::poly::kzg::strategy"],[2053,"halo2_proofs::transcript"],[2141,"halo2_backend::helpers"],[2142,"core::fmt"],[2143,"core::result"],[2144,"core::any"],[2145,"pasta_curves::arithmetic::curves"],[2146,"subtle"],[2147,"ff"],[2148,"core::cmp"],[2149,"core::ops::arith"],[2150,"core::ops::function"],[2151,"alloc::boxed"],[2152,"core::marker"],[2153,"core::clone"],[2154,"core::convert"],[2155,"rand_core"],[2156,"halo2_frontend::circuit::value"],[2157,"halo2_frontend::plonk::assigned"],[2158,"halo2_frontend::circuit"],[2159,"halo2_frontend::plonk::circuit"],[2160,"halo2_frontend::plonk::circuit::expression"],[2161,"alloc::string"],[2162,"core::borrow"],[2163,"halo2_frontend::circuit::floor_planner::single_pass"],[2164,"halo2_frontend::circuit::layouter"],[2165,"halo2_frontend::circuit::table_layouter"],[2166,"core::iter::traits::collect"],[2167,"halo2_middleware::circuit"],[2168,"core::option"],[2169,"alloc::vec"],[2170,"halo2_frontend::circuit::floor_planner::v1"],[2171,"halo2_frontend::dev"],[2172,"core::iter::traits::iterator"],[2173,"halo2_frontend::dev::failure"],[2174,"halo2_frontend::plonk::circuit::constraint_system"],[2175,"halo2_frontend::dev::graph::layout"],[2176,"plotters::coord"],[2177,"plotters::drawing::area"],[2178,"plotters_backend"],[2179,"core::ops::range"],[2180,"halo2_frontend::dev::cost_model"],[2181,"serde::de"],[2182,"serde::ser"],[2183,"halo2_frontend::dev::metadata"],[2184,"std::collections::hash::map"],[2185,"core::hash"],[2186,"halo2_middleware::poly"],[2187,"halo2_backend::plonk"],[2188,"halo2_proofs::plonk::error"],[2189,"halo2_backend::transcript"],[2190,"halo2_middleware::zal::impls"],[2191,"halo2_middleware::zal::traits"],[2192,"std::io::error"],[2193,"halo2_backend::plonk::circuit"],[2194,"halo2_backend::poly::domain"],[2195,"halo2_backend::poly::commitment"],[2196,"halo2_frontend::plonk::lookup"],[2197,"core::default"],[2198,"halo2_frontend::plonk::permutation"],[2199,"halo2_frontend::plonk::circuit::expression::sealed"],[2200,"std::io"],[2201,"halo2_frontend::plonk::shuffle"],[2202,"core::error"],[2203,"halo2_backend::poly::strategy"],[2204,"halo2_backend::poly"],[2205,"halo2_backend::poly::query"],[2206,"halo2_backend::poly::ipa::commitment"],[2207,"halo2_backend::poly::ipa::msm"],[2208,"halo2_backend::poly::ipa::strategy"],[2209,"halo2_backend::poly::ipa::multiopen::prover"],[2210,"halo2_backend::poly::ipa::multiopen::verifier"],[2211,"halo2_backend::poly::kzg::commitment"],[2212,"pairing"],[2213,"halo2_backend::poly::kzg::msm"],[2214,"halo2_backend::poly::kzg::multiopen::gwc::prover"],[2215,"halo2_backend::poly::kzg::multiopen::shplonk::prover"],[2216,"halo2_backend::poly::kzg::multiopen::gwc::verifier"],[2217,"halo2_backend::poly::kzg::multiopen::shplonk::verifier"],[2218,"halo2_backend::poly::kzg::strategy"],[2219,"halo2_backend::arithmetic"],[2220,"halo2_frontend::circuit::floor_planner"],[2221,"halo2_frontend::dev::graph"],[2222,"halo2_proofs::plonk::prover"],[2223,"halo2_proofs::plonk::keygen"],[2224,"halo2_backend::plonk::verifier"],[2225,"halo2_backend::poly::ipa"],[2226,"halo2_backend::poly::ipa::commitment::prover"],[2227,"halo2_backend::poly::ipa::commitment::verifier"],[2228,"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,40,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,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}}}}?`````````````{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{e}}{Dh{e}}}{}{}{{Dj{}{{Bj{c}}}}}}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Dj{b}{{Bj{}}}}}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{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{dc}}}}}{{Dh{c}}}D`}{{{Dh{{b{c}}}}}{{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{}}0{{{Dh{c}}}{{Dh{{Dl{c}}}}}Bh}1{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{{Dl{c}}}}c}{}Bh}{{{Dh{c}}{Dh{{b{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}{Dh{c}}}{}Bh}{{{Dh{e}}{Dh{e}}}{}{}{{Bl{}{{Bj{c}}}}}}{{{b{{Dh{c}}}}{b{{Dh{c}}}}}{}{}}{{{Dh{{b{{Dl{c}}}}}}{Dh{c}}}{}Bh}{{{Dh{{b{{Dl{c}}}}}}c}{}Bh}{{{Dh{{b{c}}}}{Dh{c}}}{}{}}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Bl{b}{{Bj{}}}}}{}}{{{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}}}}}}9{{{Dh{e}}{Dh{e}}}{}{}{{Id{}{{Bj{c}}}}}}?=;<{{{Dh{c}}{Dh{{b{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}{{{b{{Dh{c}}}}{Dh{c}}}{}{}}{{{Dh{{Dl{c}}}}c}{}Bh}{{{Dh{c}}{b{{Dh{c}}}}}{}{{Id{b}{{Bj{}}}}}{}}{{{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{}}{NhN`}{{{Ch{MnNj}}}N`}2{{{Ch{cMnNj}}}N`{{Dd{Bn}}}}{{{Ch{jc}}}Nb{{Dd{Bn}}}}4{{{Ch{Nbjc}}}Nd{{Dd{Bn}}}}5{{{Ch{j{b{Bn}}{Nl{MnEj}}}}}Nf}6{{{Ch{j{b{Bn}}}}}Nf}{{{Ch{jEj}}}Nf}{{{Ch{jEj{Nl{MnEj}}}}}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``````````````````````````````````````````````````````````````````{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{O`{c}}{O`{c}}}{{O`{c}}}Bh}{{{b{d{Dl{c}}}}{Dl{c}}}hBh}{{{b{d{Dl{c}}}}{b{{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{E`A@f}{cc{}}{AAfA@f}{{{Kh{c}}}{{Oh{c}}}Bh}2{F`Hn}3{FfHn}{EdHn}{AB`AAf}666{{{Ch{cc}}}{{Dl{c}}}Bh}{{{b{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}}{{Dl{c}}}Bh}9{c{{Dl{c}}}Bh}:::{Mn{{Ef{Hn}}}};{{{Ef{Ed}}}{{Ef{Hn}}}}{{{Ef{F`}}}{{Ef{Hn}}}}{{{Ef{Ff}}}{{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}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}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}{{{Dl{c}}}{}Bh}{{{b{{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}{{{Dl{c}}c}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}c}{{Dl{c}}}Bh}{{{Dl{c}}{Dl{c}}}{{Dl{c}}}Bh}{{{b{{Dl{c}}}}{b{{Dl{c}}}}}{{Dl{c}}}Bh}{{{Dl{c}}{b{{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}{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}}}{}{}}000000000{{{Ef{Hn}}}{{A`{{Ef{Ed}}}}}}{{{Ef{Hn}}}{{A`{{Ef{Ff}}}}}}2{{{Ef{Hn}}}{{A`{{Ef{F`}}}}}}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}}}}j}{{AEf{cAEh}}}B`}{{{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}}}{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@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}}}{AIdGh}}{{{b{{AHl{c}}}}}{{AJ`{c}}}AId}{{{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@n","p":[[1,"reference"],[0,"mut"],[6,"SerdeFormat",0,2141],[1,"unit"],[1,"usize"],[5,"Formatter",2142],[5,"Error",2142],[6,"Result",2143],[5,"TypeId",2144],[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[10,"CurveAffine",27,2145],[5,"Coordinates",2145],[5,"CtOption",2146],[10,"WithSmallOrderMulGroup",2147],[10,"Ord",2148],[17,"AffineExt"],[10,"CurveExt",27,2145],[10,"Field",27,2147],[17,"Output"],[10,"Mul",2149],[1,"str"],[10,"Fn",2150],[5,"Box",2151],[5,"Choice",2146],[1,"bool"],[1,"tuple"],[1,"slice"],[10,"Send",2152],[10,"Sync",2152],[10,"Clone",2153],[1,"u64"],[10,"AsRef",2154],[10,"RngCore",2155],[5,"Value",64,2156],[10,"Add",2149],[6,"Assigned",829,2157],[10,"FnOnce",2150],[6,"ErrorFront",829],[5,"Region",64,2158],[5,"Advice",829,2159],[5,"Column",829,2160],[5,"AssignedCell",64,2158],[5,"String",2161],[10,"Into",2154],[10,"FnMut",2150],[5,"Instance",829,2159],[5,"Table",64,2158],[5,"TableColumn",829,2160],[5,"Fixed",829,2159],[17,"Root"],[10,"Layouter",64,2158],[5,"NamespacedLayouter",64,2158],[5,"Cell",64,2158],[5,"RegionIndex",64,2158],[17,"Config"],[17,"Loaded"],[10,"Chip",64,2158],[10,"Debug",2142],[10,"Copy",2152],[10,"Borrow",2162],[5,"Selector",829,2160],[5,"SimpleFloorPlanner",64,2163],[10,"RegionLayouter",2164],[10,"TableLayouter",2165],[17,"Item"],[10,"IntoIterator",2166],[10,"FromIterator",2166],[5,"Challenge",829,2160],[6,"Any",829,2167],[10,"Neg",2149],[6,"Option",2168],[10,"Sub",2149],[5,"Vec",2169],[10,"Assignment",829,2159],[10,"SyncDeps",2164],[10,"Circuit",829,2159],[1,"array"],[5,"V1Pass",293,2170],[5,"V1",293,2170],[5,"SingleChipLayouter",331,2163],[5,"MeasurementPass",354,2170],[5,"AssignmentPass",354,2170],[5,"MockProver",385,2171],[6,"CellValue",385,2171],[10,"FromUniformBytes",2147],[10,"Iterator",2172],[6,"FailureLocation",385,2173],[6,"VerifyFailure",385,2173],[6,"InstanceValue",385,2171],[5,"ConstraintSystem",829,2174],[5,"CircuitLayout",385,2175],[10,"PartialEq",2148],[1,"u32"],[5,"Shift",2176],[5,"DrawingArea",2177],[6,"DrawingAreaErrorKind",2177],[10,"DrawingBackend",2178],[5,"Range",2179],[5,"Poly",567,2180],[5,"Lookup",567,2180],[5,"Permutation",567,2180],[5,"Shuffle",567,2180],[6,"Ordering",2148],[10,"Deserializer",2181],[5,"ModelCircuit",567,2180],[6,"CommitmentScheme",567,2180],[5,"CostOptions",567,2180],[10,"Serializer",2182],[5,"Column",711],[5,"VirtualCell",711,2183],[5,"Gate",711,2183],[5,"Constraint",711,2183],[5,"Region",711,2183],[5,"VirtualCell",2174],[1,"i32"],[5,"HashMap",2184],[10,"Hasher",2185],[6,"Expression",829,2160],[10,"Phase",829,2160],[1,"u8"],[5,"Rotation",1479,2186],[5,"ConstraintSystemMid",829,2167],[5,"VerifyingKey",829,2187],[5,"ProvingKey",829,2187],[10,"ColumnType",829,2159],[5,"FixedQuery",829,2160],[5,"Constraint",2174],[5,"VirtualCells",829,2174],[6,"Error",829,2188],[10,"EncodedChallenge",2053,2189],[10,"TranscriptWrite",2053,2189],[5,"PlonkEngine",2190],[10,"MsmAccel",2191],[5,"AdviceQuery",2160],[5,"InstanceQuery",2160],[8,"Result",2142],[6,"ErrorBack",829],[5,"Constraints",829,2174],[5,"FirstPhase",829,2160],[5,"SecondPhase",829,2160],[5,"ThirdPhase",829,2160],[5,"Error",2192],[5,"ChallengeMid",2167],[5,"ConstraintSystemBack",2193],[10,"SerdeCurveAffine",2141],[5,"Gate",2174],[5,"EvaluationDomain",1479,2194],[10,"Hash",2185],[10,"Transcript",2053,2189],[10,"Params",1552,2195],[5,"Argument",2196],[17,"FloorPlanner"],[17,"Params"],[10,"FloorPlanner",829,2159],[10,"Default",2197],[5,"Argument",2198],[5,"Phase",2199],[5,"PinnedVerificationKey",2187],[8,"Result",2192],[10,"Read",2200],[5,"Argument",2201],[10,"Error",2202],[10,"CommitmentScheme",1552,2195],[10,"Verifier",1552,2195],[10,"VerificationStrategy",1479,2203],[10,"TranscriptRead",2053,2189],[10,"Write",2200],[5,"Coeff",2204],[5,"Polynomial",2204],[5,"ExtendedLagrangeCoeff",2204],[5,"LagrangeCoeff",2204],[5,"PinnedEvaluationDomain",2194],[5,"Blind",1552,2195],[10,"MSM",1552,2195],[10,"ParamsProver",1552,2195],[10,"Prover",1552,2195],[5,"ProverQuery",2205],[17,"MSM"],[10,"ParamsVerifier",1552,2195],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",2203],[6,"Error",2204],[5,"VerifierQuery",2205],[5,"ParamsIPA",1622,2206],[5,"MSMIPA",1667,2207],[5,"IPACommitmentScheme",1622,2206],[5,"GuardIPA",1729,2208],[5,"ProverIPA",1697,2209],[5,"VerifierIPA",1697,2210],[5,"Accumulator",1729,2208],[5,"AccumulatorStrategy",1729,2208],[5,"SingleStrategy",1729,2208],[5,"ParamsKZG",1806,2211],[10,"Engine",2212],[5,"ParamsVerifierKZG",1806,2211],[5,"MSMKZG",1879,2213],[5,"KZGCommitmentScheme",1806,2211],[5,"DualMSM",1879,2213],[10,"MultiMillerLoop",2212],[5,"ProverGWC",1928,2214],[5,"ProverSHPLONK",1928,2215],[5,"VerifierGWC",1928,2216],[5,"VerifierSHPLONK",1928,2217],[5,"GuardKZG",1993,2218],[5,"AccumulatorStrategy",1993,2218],[5,"SingleStrategy",1993,2218],[17,"Input"],[5,"ChallengeScalar",2189],[5,"Blake2bRead",2053,2189],[5,"Blake2bWrite",2053,2189],[5,"Challenge255",2053,2189],[10,"TranscriptWriterBuffer",2053,2189],[10,"TranscriptReadBuffer",2053,2189],[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",1477],[15,"NotEnoughRowsAvailable",1478]],"r":[[3,2141],[31,2145],[32,2145],[34,2147],[56,2219],[64,2158],[65,2158],[66,2158],[68,2158],[70,2158],[71,2158],[72,2158],[74,2163],[75,2158],[76,2156],[170,2158],[293,2170],[294,2170],[320,2220],[328,2220],[331,2163],[332,2163],[354,2170],[355,2170],[356,2170],[357,2170],[376,2170],[388,2171],[389,2175],[392,2173],[395,2171],[397,2171],[404,2173],[425,2221],[435,2171],[497,2171],[567,2180],[568,2180],[572,2180],[573,2180],[574,2180],[575,2180],[576,2180],[643,2180],[644,2180],[712,2183],[713,2183],[714,2183],[715,2183],[829,2159],[832,2167],[834,2157],[835,2159],[839,2160],[841,2159],[842,2160],[845,2159],[848,2174],[850,2167],[851,2174],[852,2188],[855,2160],[856,2160],[857,2159],[860,2160],[861,2159],[864,2159],[877,2160],[879,2187],[882,2160],[883,2160],[887,2160],[889,2160],[892,2187],[893,2174],[1010,2222],[1011,2222],[1259,2223],[1260,2223],[1261,2223],[1262,2223],[1448,2224],[1479,2194],[1481,2186],[1482,2203],[1494,2204],[1526,2204],[1528,2204],[1552,2195],[1554,2195],[1557,2195],[1560,2195],[1561,2195],[1563,2195],[1565,2195],[1569,2195],[1618,2225],[1619,2225],[1620,2225],[1621,2225],[1622,2206],[1623,2206],[1624,2206],[1633,2226],[1663,2227],[1667,2207],[1697,2209],[1698,2210],[1729,2208],[1730,2208],[1731,2208],[1732,2208],[1802,2228],[1803,2228],[1804,2228],[1805,2228],[1806,2211],[1807,2211],[1808,2211],[1879,2213],[1880,2213],[1928,2214],[1929,2215],[1930,2216],[1931,2217],[1993,2218],[1994,2218],[1995,2218],[2053,2189],[2054,2189],[2055,2189],[2056,2189],[2058,2189],[2059,2189],[2060,2189],[2061,2189],[2062,2189]],"b":[[77,"impl-Add-for-%26Value%3CV%3E"],[78,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[79,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[80,"impl-Add-for-Value%3CV%3E"],[81,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[82,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[83,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[84,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[85,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[86,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[126,"impl-Value%3C%26mut+V%3E"],[127,"impl-Value%3C%26V%3E"],[134,"impl-Value%3C%26mut+V%3E"],[135,"impl-Value%3C%26V%3E"],[218,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[219,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[220,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[221,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[222,"impl-Mul-for-Value%3CV%3E"],[223,"impl-Mul-for-%26Value%3CV%3E"],[224,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[225,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[226,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[227,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[238,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[239,"impl-Sub-for-Value%3CV%3E"],[240,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[241,"impl-Sub-for-%26Value%3CV%3E"],[242,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[243,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[244,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[245,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[246,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[247,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[467,"impl-Debug-for-FailureLocation"],[468,"impl-Display-for-FailureLocation"],[469,"impl-Debug-for-VerifyFailure"],[470,"impl-Display-for-VerifyFailure"],[759,"impl-Display-for-ColumnMid"],[760,"impl-Debug-for-ColumnMid"],[761,"impl-Debug-for-VirtualCell"],[762,"impl-Display-for-VirtualCell"],[763,"impl-Debug-for-Gate"],[764,"impl-Display-for-Gate"],[765,"impl-Debug-for-Constraint"],[766,"impl-Display-for-Constraint"],[767,"impl-Debug-for-Region"],[768,"impl-Display-for-Region"],[771,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[772,"impl-From%3C(ColumnMid,+i32)%3E-for-VirtualCell"],[774,"impl-From%3C(S,+ColumnMid,+i32)%3E-for-VirtualCell"],[779,"impl-From%3C(usize,+%26str,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[781,"impl-From%3C(usize,+%26str)%3E-for-Region"],[782,"impl-From%3C(usize,+String)%3E-for-Region"],[783,"impl-From%3C(usize,+String,+HashMap%3CColumnMid,+String%3E)%3E-for-Region"],[895,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[896,"impl-Add-for-Assigned%3CF%3E"],[897,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[898,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[899,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[900,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[902,"impl-AddAssign-for-Assigned%3CF%3E"],[903,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1115,"impl-Display-for-Error"],[1116,"impl-Debug-for-Error"],[1119,"impl-Display-for-Error"],[1120,"impl-Debug-for-Error"],[1139,"impl-Debug-for-Error"],[1140,"impl-Display-for-Error"],[1141,"impl-From%3CError%3E-for-Error"],[1143,"impl-From%3CError%3E-for-Error"],[1146,"impl-From%3CInstance%3E-for-Any"],[1148,"impl-From%3CFixed%3E-for-Any"],[1149,"impl-From%3CAdvice%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%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1158,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1162,"impl-From%3CColumnMid%3E-for-Column%3CAny%3E"],[1164,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1165,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1166,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1270,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1271,"impl-Mul-for-Assigned%3CF%3E"],[1272,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1273,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1274,"impl-Mul-for-Expression%3CF%3E"],[1275,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1276,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1277,"impl-MulAssign-for-Assigned%3CF%3E"],[1278,"impl-Neg-for-Assigned%3CF%3E"],[1279,"impl-Neg-for-%26Assigned%3CF%3E"],[1337,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1338,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1339,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1340,"impl-Sub-for-Assigned%3CF%3E"],[1341,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1342,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1344,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1345,"impl-SubAssign-for-Assigned%3CF%3E"],[1383,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1384,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1386,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1571,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1572,"impl-AddAssign-for-Blind%3CF%3E"],[1599,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1600,"impl-MulAssign-for-Blind%3CF%3E"],[1669,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[1670,"impl-MSMIPA%3C\'a,+C%3E"],[1972,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[1973,"impl-ProverSHPLONK%3C\'a,+E%3E"],[2031,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3CE%3E"],[2032,"impl-AccumulatorStrategy%3CE%3E"],[2033,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3CE%3E"],[2034,"impl-SingleStrategy%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFYFtQAGAAEACQADAA4AAQARAAEAFgAAABgAAwBOAAkAYwAAAGUAEAB3AAcAhgAAAIsAEQCeAAgArAAHALYAAAC4AAAAuwAAAL0AAADCAAAAxAAIANsACQDnAAAA6QAAAOsAAADvAAoA+wADAAEBFwAdAQcAKAEOADkBAwA/AQwATgEIAFgBAgBdAQUAZwELAHUBAQB5AQgAmQEAAJwBDQCrAQgAtgESAMoBBwDUAQcA4gEGAPMBAgD7ARcAGQIFAEQCFgBcAhgAdgIGAIYCAACIAgYAngIAAKMCAQCoAh8AzQIVAOQCHgAEAwEABwMBAAoDAAAMAwAADgMDABMDBAAdAyAAgAMIAJUDLQDGAyAA6gMAAPcDAAD7Ay0AKwQWAEcECgBcBBoAeAQBAHsEAAB9BAIAgwQCAIcEAACLBAAAjQQCAJcEAACgBAAAogQBAKcEBwC0BAAAtgQXAOgEAAD0BAEA9wQLAAcFAAAJBQAACwUAAA0FAAARBQIAFQUAAB0FAAAiBQAAJAUCADYFAQA6BQkASAUUAF4FRwCrBRYAzAUIANsFAwDgBQEA5QUAAOoFAQDyBQIA+wUAAAEGAAAHBgkAIwYCACkGAQAsBgEAMgYCADYGAAA4BgAAOgYAADwGAAA/BgIATAYDAFEGAABaBgUAYwYJAG8GAQBzBgEAdgYAAHgGBwCBBgEAiwYLAJgGAACbBgYApAYDAKkGBwCzBgEAtwYKAMYGCwDTBgsA4QYDAOoGAwDyBhEABwcDABIHHAAzBwIAOQcFAEIHAQBFBw4AVwcAAFoHAABcBwYAZAcDAGkHCgB2BwEAfAcBAH8HCQCNBwcAlwcPAKsHAwCzBwIAtwcNAMYHAwDNBxkA6gcCAPAHAADyBwAA9AcQABEICwAeCAEAIQgLAC4IAwA2CAAAOggBAD0IAABCCAAARAgAAEYIAABICAEASwgOAFsIAABdCAAA"}],\ ["p3_frontend",{"t":"PKFPFPPGPPPFFPFPPFGFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","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"],[304,"p3_frontend::fwrap"],[305,"ff"],[306,"p3_frontend::symbolic_expression"],[307,"p3_frontend::symbolic_variable"],[308,"p3_field::field"],[309,"num_bigint::biguint"],[310,"core::hash"],[311,"core::cmp"],[312,"p3_frontend::symbolic_builder"],[313,"core::convert"],[314,"core::clone"],[315,"halo2_middleware::circuit"],[316,"p3_air::air"],[317,"core::default"],[318,"core::result"],[319,"serde::de"],[320,"core::fmt"],[321,"core::ops::function"],[322,"alloc::vec"],[323,"core::option"],[324,"core::iter::traits::iterator"],[325,"p3_frontend::air"],[326,"serde::ser"],[327,"alloc::string"],[328,"p3_matrix::dense"],[329,"core::any"]],"i":[3,0,0,3,0,18,18,0,3,3,3,0,0,19,0,19,3,0,0,0,18,0,3,1,3,3,3,4,4,4,1,3,3,1,3,1,1,1,1,15,15,1,18,3,4,19,20,21,22,23,15,1,18,3,4,19,20,21,22,23,1,18,3,4,19,20,21,22,23,1,18,3,4,19,20,21,22,23,1,20,0,0,1,3,23,15,1,18,3,4,19,20,21,22,23,15,1,18,3,4,19,20,21,22,23,1,23,1,3,15,1,18,3,4,19,20,21,22,23,1,1,1,18,18,3,3,4,4,19,20,21,22,23,15,1,18,3,3,3,4,19,20,21,22,23,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,21,15,1,18,3,4,19,20,21,22,23,1,15,1,18,3,4,19,20,21,22,23,15,15,20,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,49,15,1,1,3,3,3,4,4,4,1,3,3,1,3,3,1,18,3,4,19,20,21,22,23,1,18,3,4,0,15,1,18,3,4,19,20,21,22,23,15,1,18,3,4,19,20,21,22,23,1,1,3,15,1,18,3,4,19,20,21,22,23,15,1,18,3,4,19,20,21,22,23,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}}{f{c}}}ej{}}{{{h{c}}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{{b{c}}}}}{{b{c}}}{Bbd}}{{{n{Bd}}}Bd}{{{n{{f{c}}}}}{{f{c}}}{Bbj}}{{{n{{h{c}}}}}{{h{c}}}{Bbj}}{{{n{Bf}}}Bf}{{{n{Bh}}}Bh}{{{n{Bj}}}Bj}{{{n{Bl}}}Bl}{{{n{Bn}}}Bn}{{{n{c}}{n{le}}}A`{}{}}00000000{{{n{{b{c}}}}{n{{b{c}}}}}C`{Ajd}}`{{{n{e}}{n{Bn}}Cb}{{Cf{{Cd{c}}Bl}}}{AfAh}{{Ch{{An{{b{c}}}}}}}}{{CjCb{n{Bl}}{n{e}}}{{Cl{c}}}{AfAh}{{Ch{{An{{b{c}}}}}}}}{{}{{b{c}}}{Cnd}}{{}{{f{c}}}j}{{}Bn}{Cb{{n{c}}}{}}000000000{Cb{{n{lc}}}{}}000000000{c{{D`{{b{e}}}}}DbAf}`{{{b{c}}{b{c}}}{{b{c}}}d}{{{n{{f{c}}}}}{{f{c}}}j}{CbA`}000000000{{{n{{b{c}}}}{n{{b{c}}}}}Dd{Dfd}}{{{n{{b{c}}}}{n{lDh}}}Djd}{{{n{{b{c}}}}{n{lDh}}}Dj{Dld}}{{{n{Bd}}{n{lDh}}}Dj}0{{{n{{f{c}}}}{n{lDh}}}Djj}{{{n{{f{c}}}}{n{lDh}}}Dj{Dlj}}{{{n{{h{c}}}}{n{lDh}}}Djj}{{{n{{h{c}}}}{n{lDh}}}Dj{Dlj}}{{{n{Bf}}{n{lDh}}}Dj}{{{n{Bh}}{n{lDh}}}Dj}{{{n{Bj}}{n{lDh}}}Dj}{{{n{Bl}}{n{lDh}}}Dj}{{{n{Bn}}{n{lDh}}}Dj}{cc{}}00{c{{f{c}}}j}{{{h{c}}}{{f{c}}}j}222222222{ec{}{{E`{Cb}{{Dn{c}}}}}}0{{{n{{Ab{c}}}}}c{}}0{Dd{{b{c}}}{AfAh}}{Dd{{f{c}}}j}{Eb{{b{c}}}{AfAh}}{Eb{{f{c}}}j}{Cj{{b{c}}}{AfAh}}{Cj{{f{c}}}j}{Al{{b{c}}}{AfAh}}{Al{{f{c}}}j}{Ed{{b{c}}}{AfAh}}{Ed{{f{c}}}j}{Cb{{b{c}}}{AfAh}}{Cb{{f{c}}}j}{c{{b{e}}}{}{AfAh}}{c{{f{e}}}{}j}{ce{{E`{Cb}{{Dn{}}}}}{}}{{{n{Ab}}}{{n{c}}}{}}{{{n{lAb}}}{{n{lc}}}{}}<;:9{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{{{n{Bl}}Cb{n{{Ab{{Ef{c}}}}}}}{{Ef{{Ef{c}}}}}d}{{{n{{b{c}}}}{n{le}}}A`{Ahd}Eh}`{{}Cb}000000000{{{n{c}}eCb}{{Cf{ee}}}{}{}}{ce{}{}}000000000{{{n{{An{c}}}}}ej{}}0`{{{n{{f{c}}}}}Ddj}{{{n{{An{c}}}}Cb}ej{}}{{{n{{b{c}}}}}Dd{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}}{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}{{{b{c}}}ed{}}{{{f{c}}}{{f{c}}}j}{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{Cb{{h{c}}}j}{{DdCb}{{h{c}}}j}32{{}Ad}{{{n{{b{c}}}}{n{{b{c}}}}}{{Ej{C`}}}{Eld}}{e{{b{c}}}d{{F`{}{{En{{b{c}}}}}}}}{e{{f{c}}}j{{F`{}{{En{{f{c}}}}}}}}{e{{f{c}}}j{{F`{}{{En{c}}}}}}{{{n{Fb}}}{{n{{Ab{c}}}}}{}}{{{n{{An{c}}}}}{{n{{Ab{e}}}}}j{}}{{{n{{b{c}}}}e}D`AfFd}{{{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}}c}ej{}}{{{h{c}}{f{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}}}Ff{}}000{{Cj{Fh{{b{c}}}}}{{Ef{{Ef{c}}}}}d}{c{{D`{e}}}{}{}}0000000000000000000{{{n{{b{c}}}}}{{Ej{{b{c}}}}}{AfAh}}{{}{{b{c}}}{AfAh}}{{}{{f{c}}}j}{{{n{c}}}Fj{}}000000000{ce{}{}}00000000032","D":"C`","p":[[5,"FWrap",0,304],[10,"Field",305],[6,"SymbolicExpression",0,306],[5,"SymbolicVariable",0,307],[10,"Field",308],[0,"mut"],[1,"reference"],[1,"unit"],[1,"slice"],[5,"BigUint",309],[10,"PrimeField",305],[10,"Hash",310],[10,"Ord",311],[1,"u64"],[5,"SymbolicAirBuilder",0,312],[10,"Into",313],[10,"Clone",314],[6,"Location",0,306],[6,"Var",0,307],[5,"Query",0,307],[5,"Public",0,307],[5,"PreprocessingInfo",0],[5,"CompileParams",0],[6,"Ordering",311],[1,"usize"],[5,"ConstraintSystemMid",315],[1,"tuple"],[10,"Air",316],[1,"u32"],[5,"Preprocessing",315],[10,"Default",317],[6,"Result",318],[10,"Deserializer",319],[1,"bool"],[10,"PartialEq",311],[5,"Formatter",320],[8,"Result",320],[10,"Debug",320],[17,"Output"],[10,"FnMut",321],[1,"u16"],[1,"u8"],[5,"Vec",322],[10,"Hasher",310],[6,"Option",323],[10,"PartialOrd",311],[17,"Item"],[10,"Iterator",324],[10,"AirBuilderWithPublicValues",0,325],[10,"Serializer",326],[5,"String",327],[5,"RowMajorMatrix",328],[5,"TypeId",329]],"r":[[1,325],[4,304],[7,306],[12,307],[14,307],[17,312],[18,306],[19,307],[21,307]],"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%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[29,"impl-Add%3CF%3E-for-SymbolicVariable%3CF%3E"],[31,"impl-AddAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[32,"impl-AddAssign-for-SymbolicExpression%3CF%3E"],[120,"impl-Display-for-FWrap%3CF%3E"],[121,"impl-Debug-for-FWrap%3CF%3E"],[122,"impl-Display-for-Location"],[123,"impl-Debug-for-Location"],[124,"impl-Display-for-SymbolicExpression%3CF%3E"],[125,"impl-Debug-for-SymbolicExpression%3CF%3E"],[126,"impl-Display-for-SymbolicVariable%3CF%3E"],[127,"impl-Debug-for-SymbolicVariable%3CF%3E"],[136,"impl-From%3CF%3E-for-SymbolicExpression%3CF%3E"],[137,"impl-From%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[207,"impl-Mul-for-SymbolicExpression%3CF%3E"],[208,"impl-Mul%3CF%3E-for-SymbolicExpression%3CF%3E"],[209,"impl-Mul%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[210,"impl-Mul%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[211,"impl-Mul%3CF%3E-for-SymbolicVariable%3CF%3E"],[212,"impl-Mul-for-SymbolicVariable%3CF%3E"],[214,"impl-MulAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[215,"impl-MulAssign-for-SymbolicExpression%3CF%3E"],[227,"impl-Product-for-SymbolicExpression%3CF%3E"],[228,"impl-Product%3CF%3E-for-SymbolicExpression%3CF%3E"],[233,"impl-Sub%3CF%3E-for-SymbolicExpression%3CF%3E"],[234,"impl-Sub%3CSymbolicVariable%3CF%3E%3E-for-SymbolicExpression%3CF%3E"],[235,"impl-Sub-for-SymbolicExpression%3CF%3E"],[236,"impl-Sub%3CF%3E-for-SymbolicVariable%3CF%3E"],[237,"impl-Sub%3CSymbolicExpression%3CF%3E%3E-for-SymbolicVariable%3CF%3E"],[238,"impl-Sub-for-SymbolicVariable%3CF%3E"],[240,"impl-SubAssign%3CF%3E-for-SymbolicExpression%3CF%3E"],[241,"impl-SubAssign-for-SymbolicExpression%3CF%3E"],[243,"impl-Sum%3CF%3E-for-SymbolicExpression%3CF%3E"],[244,"impl-Sum-for-SymbolicExpression%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABgBBQABABAAFQBwAIkAAQCSACoAxwBpAA=="}]\ ]')); 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 934938d84..551b9dc70 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<&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.\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 multi-open strategy\nKZG with BDFG20 multi-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).\nThis is an error that could occur during assign_advice, …\nAn error relating to an Assignment.\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.\nReturns the argument unchanged.\nCalls U::from(self).\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<&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 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 multi-open strategy\nKZG with BDFG20 multi-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).\nThis is an error that could occur during assign_advice, …\nAn error relating to a circuit assignment.\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.\nReturns the argument unchanged.\nCalls U::from(self).\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 9de181daa..29b68c84b 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<&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 multi-open strategy\nKZG with BDFG20 multi-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 …\nAn error relating to an Assignment.\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<&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<&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 multi-open strategy\nKZG with BDFG20 multi-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\nAn error relating to a circuit assignment.\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/circuit.rs.html b/src/halo2_frontend/circuit.rs.html index 848a36982..14565f290 100644 --- a/src/halo2_frontend/circuit.rs.html +++ b/src/halo2_frontend/circuit.rs.html @@ -1004,9 +1004,19 @@ 988 989 990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000

//! Traits and structs for implementing circuit components.
 
-use crate::plonk::{self, AssignmentError};
+use crate::plonk::{self, AssignError};
 use crate::plonk::{
     permutation,
     sealed::{self, SealedPhase},
@@ -1160,7 +1170,7 @@
 
     fn query_instance(&self, column: Column<Instance>, row: usize) -> Result<Value<F>, Error> {
         if !self.usable_rows.contains(&row) {
-            return Err(Error::AssignmentError(AssignmentError::QueryInstance {
+            return Err(Error::AssignError(AssignError::QueryInstance {
                 col: column.into(),
                 row,
                 usable_rows: (0, self.usable_rows.end),
@@ -1195,7 +1205,7 @@
         }
 
         if !self.usable_rows.contains(&row) {
-            return Err(Error::AssignmentError(AssignmentError::AssignAdvice {
+            return Err(Error::AssignError(AssignError::AssignAdvice {
                 desc: desc().into(),
                 col: column.into(),
                 row,
@@ -1204,11 +1214,21 @@
             }));
         }
 
+        let value = match to().into_field().assign() {
+            Ok(v) => v,
+            Err(_) => {
+                return Err(Error::AssignError(AssignError::WitnessMissing {
+                    func: "assign_advice".to_string(),
+                    desc: desc().into(),
+                }))
+            }
+        };
+
         *self
             .advice
             .get_mut(column.index())
             .and_then(|v| v.get_mut(row))
-            .ok_or(Error::BoundsFailure)? = to().into_field().assign()?;
+            .ok_or(Error::BoundsFailure)? = value;
 
         Ok(())
     }
diff --git a/src/halo2_frontend/dev.rs.html b/src/halo2_frontend/dev.rs.html
index ed42264f5..7d39ab3af 100644
--- a/src/halo2_frontend/dev.rs.html
+++ b/src/halo2_frontend/dev.rs.html
@@ -2289,6 +2289,19 @@
 2273
 2274
 2275
+2276
+2277
+2278
+2279
+2280
+2281
+2282
+2283
+2284
+2285
+2286
+2287
+2288
 
//! Tools for developing circuits.
 
 use std::collections::HashMap;
@@ -2298,7 +2311,7 @@
 
 use blake2b_simd::blake2b;
 
-use crate::plonk::AssignmentError;
+use crate::plonk::AssignError;
 use crate::{
     circuit,
     plonk::{
@@ -2706,7 +2719,7 @@
         }
 
         if !self.usable_rows.contains(&row) {
-            return Err(Error::AssignmentError(AssignmentError::EnableSelector {
+            return Err(Error::AssignError(AssignError::EnableSelector {
                 desc: desc().into(),
                 selector: *selector,
                 row,
@@ -2736,7 +2749,7 @@
         row: usize,
     ) -> Result<circuit::Value<F>, Error> {
         if !self.usable_rows.contains(&row) {
-            return Err(Error::AssignmentError(AssignmentError::QueryInstance {
+            return Err(Error::AssignError(AssignError::QueryInstance {
                 col: column.into(),
                 row,
                 usable_rows: (self.usable_rows.start, self.usable_rows.end),
@@ -2767,7 +2780,7 @@
     {
         if self.in_phase(FirstPhase) {
             if !self.usable_rows.contains(&row) {
-                return Err(Error::AssignmentError(AssignmentError::AssignAdvice {
+                return Err(Error::AssignError(AssignError::AssignAdvice {
                     desc: desc().into(),
                     col: column.into(),
                     row,
@@ -2795,11 +2808,14 @@
                     .expect("bounds failure");
                 *value = CellValue::Assigned(to);
             }
-            Err(err) => {
+            Err(_) => {
                 // Propagate `assign` error if the column is in current phase.
                 let phase = self.cs.advice_column_phase[column.index];
                 if self.in_phase(phase) {
-                    return Err(err);
+                    return Err(Error::AssignError(AssignError::WitnessMissing {
+                        func: "assign_advice".to_string(),
+                        desc: desc().into(),
+                    }));
                 }
             }
         }
@@ -2825,7 +2841,7 @@
         }
 
         if !self.usable_rows.contains(&row) {
-            return Err(Error::AssignmentError(AssignmentError::AssignFixed {
+            return Err(Error::AssignError(AssignError::AssignFixed {
                 desc: desc().into(),
                 col: column.into(),
                 row,
@@ -2843,11 +2859,21 @@
                 .or_default();
         }
 
+        let value = match to().into_field().evaluate().assign() {
+            Ok(v) => CellValue::Assigned(v),
+            Err(_) => {
+                return Err(Error::AssignError(AssignError::WitnessMissing {
+                    func: "assign_fixed".to_string(),
+                    desc: desc().into(),
+                }))
+            }
+        };
+
         *self
             .fixed
             .get_mut(column.index())
             .and_then(|v| v.get_mut(row))
-            .expect("bounds failure") = CellValue::Assigned(to().into_field().evaluate().assign()?);
+            .expect("bounds failure") = value;
 
         Ok(())
     }
@@ -2864,7 +2890,7 @@
         }
 
         if !self.usable_rows.contains(&left_row) || !self.usable_rows.contains(&right_row) {
-            return Err(Error::AssignmentError(AssignmentError::Copy {
+            return Err(Error::AssignError(AssignError::Copy {
                 left_col: left_column,
                 left_row,
                 right_col: right_column,
@@ -2889,7 +2915,7 @@
         }
 
         if !self.usable_rows.contains(&from_row) {
-            return Err(Error::AssignmentError(AssignmentError::FillFromRow {
+            return Err(Error::AssignError(AssignError::FillFromRow {
                 col: col.into(),
                 from_row,
                 usable_rows: (self.usable_rows.start, self.usable_rows.end),
diff --git a/src/halo2_frontend/plonk/error.rs.html b/src/halo2_frontend/plonk/error.rs.html
index 99c6996d1..94a1fd8b0 100644
--- a/src/halo2_frontend/plonk/error.rs.html
+++ b/src/halo2_frontend/plonk/error.rs.html
@@ -238,6 +238,11 @@
 222
 223
 224
+225
+226
+227
+228
+229
 

use std::fmt;
 
 use super::TableColumn;
@@ -246,7 +251,7 @@
 
 /// This is an error that could occur during circuit synthesis.  
 ///
-/// **NOTE**: [`AssignmentError`] is introduced to provide more debugging info     
+/// **NOTE**: [`AssignError`] is introduced to provide more debugging info     
 /// to developers when assigning witnesses to circuit cells.  
 /// Hence, they are used for [`MockProver`] and [`WitnessCollection`].  
 /// The [`keygen`] process use the [`NotEnoughRowsAvailable`], since it is just enough.
@@ -272,8 +277,8 @@
     ColumnNotInPermutation(Column<Any>),
     /// An error relating to a lookup table.
     TableError(TableError),
-    /// An error relating to an `Assignment`.
-    AssignmentError(AssignmentError),
+    /// An error relating to a circuit assignment.
+    AssignError(AssignError),
     /// Generic error not covered by previous cases
     Other(String),
 }
@@ -305,7 +310,7 @@
                 "Column {column:?} must be included in the permutation. Help: try applying `meta.enable_equalty` on the column",
             ),
             Error::TableError(error) => write!(f, "{error}"),
-            Error::AssignmentError(error) => write!(f, "{error}"),
+            Error::AssignError(error) => write!(f, "{error}"),
             Error::Other(error) => write!(f, "Other: {error}"),
         }
     }
@@ -352,7 +357,7 @@
 
 /// This is an error that could occur during `assign_advice`, `assign_fixed`, `copy`, etc.
 #[derive(Debug)]
-pub enum AssignmentError {
+pub enum AssignError {
     AssignAdvice {
         desc: String,
         col: Column<Any>,
@@ -394,12 +399,16 @@
         usable_rows: (usize, usize),
         k: u32,
     },
+    WitnessMissing {
+        func: String,
+        desc: String,
+    },
 }
 
-impl fmt::Display for AssignmentError {
+impl fmt::Display for AssignError {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
         match self {
-            AssignmentError::AssignAdvice { desc, col, row, usable_rows:(start, end), k } => write!(
+            AssignError::AssignAdvice { desc, col, row, usable_rows:(start, end), k } => write!(
                 f,
                 "assign_advice `{}` error: column={:?}({}), row={}, usable_rows={}..{}, k={}",
                 desc,
@@ -409,7 +418,7 @@
                 start, end,
                 k,
             ),
-            AssignmentError::AssignFixed {desc, col, row, usable_rows: (start, end), k } => write!(
+            AssignError::AssignFixed {desc, col, row, usable_rows: (start, end), k } => write!(
                 f,
                 "assign_fixed `{}` error: column={:?}({}), row={}, usable_rows={}..{}, k={}",
                 desc,
@@ -419,7 +428,7 @@
                 start, end,
                 k,
             ),
-            AssignmentError::EnableSelector { desc, selector, row, usable_rows: (start, end), k } => write!(
+            AssignError::EnableSelector { desc, selector, row, usable_rows: (start, end), k } => write!(
                 f,
                 "enable_selector `{}` error: column=Selector({:?}), row={}, usable_rows={}..{}, k={}",
                 desc,
@@ -428,7 +437,7 @@
                 start, end,
                 k,
             ),
-            AssignmentError::QueryInstance { col, row, usable_rows:(start, end), k } => write!(
+            AssignError::QueryInstance { col, row, usable_rows:(start, end), k } => write!(
                 f,
                 "query_instance error: column={:?}({}), row={}, usable_rows={}..{}, k={}",
                 col.column_type,
@@ -438,7 +447,7 @@
                 end,
                 k,
             ),
-            AssignmentError::Copy { left_col, left_row, right_col, right_row, usable_rows:(start, end), k } => write!(
+            AssignError::Copy { left_col, left_row, right_col, right_row, usable_rows:(start, end), k } => write!(
                 f,
                 "copy error: left_column={:?}({}), left_row={}, right_column={:?}({}), right_row={}, usable_rows={}..{}, k={}",
                 left_col.column_type(),
@@ -450,7 +459,7 @@
                 start, end,
                 k,
             ),
-            AssignmentError::FillFromRow { col, from_row, usable_rows:(start, end), k } => write!(
+            AssignError::FillFromRow { col, from_row, usable_rows:(start, end), k } => write!(
                 f,
                 "fill_from_row error: column={:?}({}), from_row={}, usable_rows={}..{}, k={}",
                 col.column_type(),
@@ -459,6 +468,7 @@
                 start, end,
                 k,
             ),
+            AssignError::WitnessMissing { func, desc } => write!(f, "witness missing/unknown when {} `{}`", func, desc),
         }
     }
 }
diff --git a/src/halo2_frontend/plonk/keygen.rs.html b/src/halo2_frontend/plonk/keygen.rs.html
index 202881f53..02e5d7a22 100644
--- a/src/halo2_frontend/plonk/keygen.rs.html
+++ b/src/halo2_frontend/plonk/keygen.rs.html
@@ -177,6 +177,25 @@
 161
 162
 163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
 
use std::ops::Range;
 
 use halo2_middleware::circuit::Any;
@@ -184,7 +203,8 @@
 
 use crate::circuit::Value;
 use crate::plonk::{
-    permutation, Advice, Assigned, Assignment, Challenge, Column, Error, Fixed, Instance, Selector,
+    permutation, Advice, AssignError, Assigned, Assignment, Challenge, Column, Error, Fixed,
+    Instance, Selector,
 };
 
 /// Assembly to be used in circuit synthesis.
@@ -254,7 +274,7 @@
 
     fn assign_fixed<V, VR, A, AR>(
         &mut self,
-        _: A,
+        desc: A,
         column: Column<Fixed>,
         row: usize,
         to: V,
@@ -269,11 +289,21 @@
             return Err(Error::not_enough_rows_available(self.k));
         }
 
+        let value = match to().into_field().assign() {
+            Ok(v) => v,
+            Err(_) => {
+                return Err(Error::AssignError(AssignError::WitnessMissing {
+                    func: "assign_fixed".to_string(),
+                    desc: desc().into(),
+                }))
+            }
+        };
+
         *self
             .fixed
             .get_mut(column.index())
             .and_then(|v| v.get_mut(row))
-            .ok_or(Error::BoundsFailure)? = to().into_field().assign()?;
+            .ok_or(Error::BoundsFailure)? = value;
 
         Ok(())
     }
@@ -308,7 +338,15 @@
             .get_mut(column.index())
             .ok_or(Error::BoundsFailure)?;
 
-        let filler = to.assign()?;
+        let filler = match to.assign() {
+            Ok(v) => v,
+            Err(_) => {
+                return Err(Error::AssignError(AssignError::WitnessMissing {
+                    func: "fill_from_row".to_string(),
+                    desc: "".to_string(),
+                }))
+            }
+        };
         for row in self.usable_rows.clone().skip(from_row) {
             col[row] = filler;
         }
diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js
index 0d34c8989..20fc61c79 100644
--- a/trait.impl/core/convert/trait.From.js
+++ b/trait.impl/core/convert/trait.From.js
@@ -1,6 +1,6 @@
 (function() {var implementors = {
 "halo2_backend":[["impl From<Error> for Error"]],
-"halo2_frontend":[["impl From<(usize, &str)> for Region"],["impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region"],["impl From<(usize, String)> for Region"],["impl From<(usize, String, HashMap<ColumnMid, String>)> for Region"],["impl From<(ColumnMid, i32)> for VirtualCell"],["impl From<usize> for RegionIndex"],["impl From<usize> for RegionStart"],["impl From<ColumnMid> for Column<Any>"],["impl From<VirtualCell> for VirtualCell"],["impl From<Challenge> for ChallengeMid"],["impl From<Column<Any>> for RegionColumn"],["impl From<Column<Any>> for ColumnMid"],["impl From<Column<Advice>> for Column<Any>"],["impl From<Column<Fixed>> for Column<Any>"],["impl From<Column<Instance>> for Column<Any>"],["impl From<Selector> for RegionColumn"],["impl From<Advice> for Any"],["impl From<Fixed> for Any"],["impl From<Instance> for Any"],["impl From<ChallengeMid> for Challenge"],["impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>"],["impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>"],["impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell"],["impl<F> From<Expression<F>> for ExpressionMid<F>"],["impl<F: Field> From<&Assigned<F>> for Assigned<F>"],["impl<F: Field> From<Expression<F>> for Constraint<F>"],["impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>"],["impl<F: Field> From<&F> for Assigned<F>"],["impl<F: Field> From<(F, F)> for Assigned<F>"],["impl<F: Field> From<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>"],["impl<F: Field> From<F> for Assigned<F>"],["impl<F: Field, S: AsRef<str>> From<(S, Expression<F>)> for Constraint<F>"],["impl<G: PrimeGroup> From<MarginalProofSize<G>> for usize"],["impl<G: PrimeGroup> From<ProofSize<G>> for usize"],["impl<S: AsRef<str>> From<(usize, S)> for Gate"],["impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint"],["impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell"]],
+"halo2_frontend":[["impl From<(usize, &str)> for Region"],["impl From<(usize, &str, HashMap<ColumnMid, String>)> for Region"],["impl From<(usize, String)> for Region"],["impl From<(usize, String, HashMap<ColumnMid, String>)> for Region"],["impl From<(ColumnMid, i32)> for VirtualCell"],["impl From<usize> for RegionIndex"],["impl From<usize> for RegionStart"],["impl From<ColumnMid> for Column<Any>"],["impl From<VirtualCell> for VirtualCell"],["impl From<Challenge> for ChallengeMid"],["impl From<Column<Advice>> for Column<Any>"],["impl From<Column<Fixed>> for Column<Any>"],["impl From<Column<Instance>> for Column<Any>"],["impl From<Column<Any>> for RegionColumn"],["impl From<Column<Any>> for ColumnMid"],["impl From<Selector> for RegionColumn"],["impl From<Advice> for Any"],["impl From<Fixed> for Any"],["impl From<Instance> for Any"],["impl From<ChallengeMid> for Challenge"],["impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>"],["impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>"],["impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell"],["impl<F> From<Expression<F>> for ExpressionMid<F>"],["impl<F: Field> From<&Assigned<F>> for Assigned<F>"],["impl<F: Field> From<Expression<F>> for Constraint<F>"],["impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>"],["impl<F: Field> From<&F> for Assigned<F>"],["impl<F: Field> From<(F, F)> for Assigned<F>"],["impl<F: Field> From<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>"],["impl<F: Field> From<F> for Assigned<F>"],["impl<F: Field, S: AsRef<str>> From<(S, Expression<F>)> for Constraint<F>"],["impl<G: PrimeGroup> From<MarginalProofSize<G>> for usize"],["impl<G: PrimeGroup> From<ProofSize<G>> for usize"],["impl<S: AsRef<str>> From<(usize, S)> for Gate"],["impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint"],["impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell"]],
 "halo2_proofs":[["impl From<Error> for Error"],["impl From<Error> for Error"]],
 "p3_frontend":[["impl<F: Field> From<SymbolicVariable<F>> for SymbolicExpression<F>"],["impl<F: Field> From<F> for SymbolicExpression<F>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/convert/trait.TryFrom.js b/trait.impl/core/convert/trait.TryFrom.js
index f5e3229f2..cd7d4a084 100644
--- a/trait.impl/core/convert/trait.TryFrom.js
+++ b/trait.impl/core/convert/trait.TryFrom.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"halo2_frontend":[["impl TryFrom<Column<Any>> for Column<Advice>"],["impl TryFrom<Column<Any>> for Column<Fixed>"],["impl TryFrom<Column<Any>> for Column<Instance>"]]
+"halo2_frontend":[["impl TryFrom<Column<Any>> for Column<Advice>"],["impl TryFrom<Column<Any>> for Column<Fixed>"],["impl TryFrom<Column<Any>> for Column<Instance>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js
index 546e6b068..2289de01a 100644
--- a/trait.impl/core/fmt/trait.Debug.js
+++ b/trait.impl/core/fmt/trait.Debug.js
@@ -1,6 +1,6 @@
 (function() {var implementors = {
-"halo2_backend":[["impl Debug for SerdeFormat"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for Coeff"],["impl Debug for ExtendedLagrangeCoeff"],["impl Debug for LagrangeCoeff"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n Scheme::Curve: Debug,\n Scheme::ParamsProver: Debug,\n Scheme::Scalar: Debug,
"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>"],["impl<'a, C: Debug + CurveAffine> Debug for PinnedVerificationKey<'a, C>
where\n C::Scalar: Debug,
"],["impl<'a, E: Debug + Engine> Debug for ProverSHPLONK<'a, E>"],["impl<'a, F: Debug + Field> Debug for PinnedEvaluationDomain<'a, F>"],["impl<'params, C: Debug + CurveAffine> Debug for MSMIPA<'params, C>
where\n C::Scalar: Debug,\n C::Base: Debug,
"],["impl<'params, C: Debug + CurveAffine> Debug for ProverIPA<'params, C>"],["impl<'params, C: Debug + CurveAffine> Debug for AccumulatorStrategy<'params, C>"],["impl<'params, C: Debug + CurveAffine> Debug for GuardIPA<'params, C>
where\n C::Scalar: Debug,
"],["impl<'params, C: Debug + CurveAffine> Debug for SingleStrategy<'params, C>"],["impl<'params, E: Debug + Engine> Debug for ProverGWC<'params, E>"],["impl<C: Debug + CurveAffine> Debug for ProvingKey<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for VerifyingKey<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for BatchVerifier<C>"],["impl<C: Debug + CurveAffine> Debug for IPACommitmentScheme<C>"],["impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>"],["impl<C: Debug + CurveAffine> Debug for VerifierIPA<C>"],["impl<C: Debug + CurveAffine> Debug for Accumulator<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for Challenge255<C>"],["impl<C: Debug + CurveAffine, T: Debug> Debug for ChallengeScalar<C, T>
where\n C::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for KZGCommitmentScheme<E>"],["impl<E: Debug + Engine> Debug for ParamsKZG<E>
where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug for ParamsVerifierKZG<E>
where\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug 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: Debug + Engine> Debug 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> + Debug,\n E::Fr: Debug,
"],["impl<E: Debug + Engine> Debug for VerifierGWC<E>"],["impl<E: Debug + Engine> Debug for VerifierSHPLONK<E>"],["impl<E: Debug + Engine> Debug 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: Debug + Engine> Debug 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: Debug + MultiMillerLoop> Debug 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: Debug + Field> Debug for EvaluationDomain<F>"],["impl<F: Debug> Debug for Blind<F>"],["impl<F: Debug, B: Debug> Debug for Polynomial<F, B>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bRead<R, C, E>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Read<R, C, E>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bWrite<W, C, E>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Write<W, C, E>"]], -"halo2_frontend":[["impl Debug for RegionColumn"],["impl Debug for CommitmentScheme"],["impl Debug for FailureLocation"],["impl Debug for VerifyFailure"],["impl Debug for AssignmentError"],["impl Debug for Error"],["impl Debug for TableError"],["impl Debug for SimpleFloorPlanner"],["impl Debug for MeasurementPass"],["impl Debug for V1"],["impl Debug for RegionShape"],["impl Debug for Cell"],["impl Debug for RegionIndex"],["impl Debug for RegionStart"],["impl Debug for CostOptions"],["impl Debug for Lookup"],["impl Debug for ModelCircuit"],["impl Debug for Permutation"],["impl Debug for Poly"],["impl Debug for Shuffle"],["impl Debug for Constraint"],["impl Debug for Gate"],["impl Debug for Region"],["impl Debug for VirtualCell"],["impl Debug for CircuitGates"],["impl Debug for CircuitLayout"],["impl Debug for VirtualCell"],["impl Debug for Phase"],["impl Debug for AdviceQuery"],["impl Debug for Challenge"],["impl Debug for FirstPhase"],["impl Debug for FixedQuery"],["impl Debug for InstanceQuery"],["impl Debug for SecondPhase"],["impl Debug for Selector"],["impl Debug for TableColumn"],["impl Debug for ThirdPhase"],["impl Debug for Advice"],["impl Debug for Fixed"],["impl Debug for Instance"],["impl Debug for Argument"],["impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>"],["impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit::Config: Debug,
"],["impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>"],["impl<'a, F: Field, CS: Assignment<F> + 'a> Debug for SingleChipLayouter<'a, F, CS>"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for AssignmentPass<'p, 'a, F, CS>"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for V1Pass<'p, 'a, F, CS>"],["impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> Debug for SimpleTableLayouter<'r, 'a, F, CS>"],["impl<'r, F: Debug + Field> Debug for Region<'r, F>"],["impl<'r, F: Debug + Field> Debug for Table<'r, F>"],["impl<C: Debug + ColumnType> Debug for Column<C>"],["impl<F: Debug + Field> Debug for CellValue<F>"],["impl<F: Debug + Field> Debug for InstanceValue<F>"],["impl<F: Debug + Field> Debug for MockProver<F>"],["impl<F: Debug + Field> Debug for Constraint<F>"],["impl<F: Debug + Field> Debug for ConstraintSystem<F>"],["impl<F: Debug + Field> Debug for Gate<F>"],["impl<F: Debug + Field, C: Debug + Into<Constraint<F>>, Iter: Debug + IntoIterator<Item = C>> Debug for Constraints<F, C, Iter>"],["impl<F: Debug> Debug for Assigned<F>"],["impl<F: Debug> Debug for Expression<F>"],["impl<F: Field> Debug for Argument<F>"],["impl<F: Field> Debug for Argument<F>"],["impl<G: Debug + PrimeGroup> Debug for MarginalProofSize<G>"],["impl<G: Debug + PrimeGroup> Debug for ProofSize<G>"],["impl<G: Debug + PrimeGroup, ConcreteCircuit: Debug + Circuit<G::Scalar>> Debug for CircuitCost<G, ConcreteCircuit>"],["impl<P: Debug + FloorPlanner> Debug for TracingFloorPlanner<P>"],["impl<V: Debug> Debug for Value<V>"],["impl<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>"]], +"halo2_backend":[["impl Debug for SerdeFormat"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for Coeff"],["impl Debug for ExtendedLagrangeCoeff"],["impl Debug for LagrangeCoeff"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n Scheme::Curve: Debug,\n Scheme::ParamsProver: Debug,\n Scheme::Scalar: Debug,
"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>"],["impl<'a, C: Debug + CurveAffine> Debug for PinnedVerificationKey<'a, C>
where\n C::Scalar: Debug,
"],["impl<'a, E: Debug + Engine> Debug for ProverSHPLONK<'a, E>"],["impl<'a, F: Debug + Field> Debug for PinnedEvaluationDomain<'a, F>"],["impl<'params, C: Debug + CurveAffine> Debug for MSMIPA<'params, C>
where\n C::Scalar: Debug,\n C::Base: Debug,
"],["impl<'params, C: Debug + CurveAffine> Debug for ProverIPA<'params, C>"],["impl<'params, C: Debug + CurveAffine> Debug for AccumulatorStrategy<'params, C>"],["impl<'params, C: Debug + CurveAffine> Debug for GuardIPA<'params, C>
where\n C::Scalar: Debug,
"],["impl<'params, C: Debug + CurveAffine> Debug for SingleStrategy<'params, C>"],["impl<'params, E: Debug + Engine> Debug for ProverGWC<'params, E>"],["impl<C: Debug + CurveAffine> Debug for ProvingKey<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for VerifyingKey<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for BatchVerifier<C>"],["impl<C: Debug + CurveAffine> Debug for IPACommitmentScheme<C>"],["impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>"],["impl<C: Debug + CurveAffine> Debug for VerifierIPA<C>"],["impl<C: Debug + CurveAffine> Debug for Accumulator<C>
where\n C::Scalar: Debug,
"],["impl<C: Debug + CurveAffine> Debug for Challenge255<C>"],["impl<C: Debug + CurveAffine, T: Debug> Debug for ChallengeScalar<C, T>
where\n C::Scalar: Debug,
"],["impl<E: Debug + Engine> Debug for KZGCommitmentScheme<E>"],["impl<E: Debug + Engine> Debug for ParamsKZG<E>
where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug for ParamsVerifierKZG<E>
where\n E::G2Affine: Debug,
"],["impl<E: Debug + Engine> Debug 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: Debug + Engine> Debug 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> + Debug,\n E::Fr: Debug,
"],["impl<E: Debug + Engine> Debug for VerifierGWC<E>"],["impl<E: Debug + Engine> Debug for VerifierSHPLONK<E>"],["impl<E: Debug + Engine> Debug 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: Debug + Engine> Debug 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: Debug + MultiMillerLoop> Debug 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: Debug + Field> Debug for EvaluationDomain<F>"],["impl<F: Debug> Debug for Blind<F>"],["impl<F: Debug, B: Debug> Debug for Polynomial<F, B>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bRead<R, C, E>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Read<R, C, E>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bWrite<W, C, E>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Write<W, C, E>"]], +"halo2_frontend":[["impl Debug for RegionColumn"],["impl Debug for CommitmentScheme"],["impl Debug for FailureLocation"],["impl Debug for VerifyFailure"],["impl Debug for AssignError"],["impl Debug for Error"],["impl Debug for TableError"],["impl Debug for SimpleFloorPlanner"],["impl Debug for MeasurementPass"],["impl Debug for V1"],["impl Debug for RegionShape"],["impl Debug for Cell"],["impl Debug for RegionIndex"],["impl Debug for RegionStart"],["impl Debug for CostOptions"],["impl Debug for Lookup"],["impl Debug for ModelCircuit"],["impl Debug for Permutation"],["impl Debug for Poly"],["impl Debug for Shuffle"],["impl Debug for Constraint"],["impl Debug for Gate"],["impl Debug for Region"],["impl Debug for VirtualCell"],["impl Debug for CircuitGates"],["impl Debug for CircuitLayout"],["impl Debug for VirtualCell"],["impl Debug for Phase"],["impl Debug for AdviceQuery"],["impl Debug for Challenge"],["impl Debug for FirstPhase"],["impl Debug for FixedQuery"],["impl Debug for InstanceQuery"],["impl Debug for SecondPhase"],["impl Debug for Selector"],["impl Debug for TableColumn"],["impl Debug for ThirdPhase"],["impl Debug for Advice"],["impl Debug for Fixed"],["impl Debug for Instance"],["impl Debug for Argument"],["impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>"],["impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit::Config: Debug,
"],["impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>"],["impl<'a, F: Field, CS: Assignment<F> + 'a> Debug for SingleChipLayouter<'a, F, CS>"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for AssignmentPass<'p, 'a, F, CS>"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for V1Pass<'p, 'a, F, CS>"],["impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> Debug for SimpleTableLayouter<'r, 'a, F, CS>"],["impl<'r, F: Debug + Field> Debug for Region<'r, F>"],["impl<'r, F: Debug + Field> Debug for Table<'r, F>"],["impl<C: Debug + ColumnType> Debug for Column<C>"],["impl<F: Debug + Field> Debug for CellValue<F>"],["impl<F: Debug + Field> Debug for InstanceValue<F>"],["impl<F: Debug + Field> Debug for MockProver<F>"],["impl<F: Debug + Field> Debug for Constraint<F>"],["impl<F: Debug + Field> Debug for ConstraintSystem<F>"],["impl<F: Debug + Field> Debug for Gate<F>"],["impl<F: Debug + Field, C: Debug + Into<Constraint<F>>, Iter: Debug + IntoIterator<Item = C>> Debug for Constraints<F, C, Iter>"],["impl<F: Debug> Debug for Assigned<F>"],["impl<F: Debug> Debug for Expression<F>"],["impl<F: Field> Debug for Argument<F>"],["impl<F: Field> Debug for Argument<F>"],["impl<G: Debug + PrimeGroup> Debug for MarginalProofSize<G>"],["impl<G: Debug + PrimeGroup> Debug for ProofSize<G>"],["impl<G: Debug + PrimeGroup, ConcreteCircuit: Debug + Circuit<G::Scalar>> Debug for CircuitCost<G, ConcreteCircuit>"],["impl<P: Debug + FloorPlanner> Debug for TracingFloorPlanner<P>"],["impl<V: Debug> Debug for Value<V>"],["impl<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>"]], "halo2_middleware":[["impl Debug for Any"],["impl Debug for VarMid"],["impl Debug for Cell"],["impl Debug for ChallengeMid"],["impl Debug for ColumnMid"],["impl Debug for QueryMid"],["impl Debug for ArgumentMid"],["impl Debug for AssemblyMid"],["impl Debug for Rotation"],["impl<C: Debug + CurveAffine, MsmEngine: Debug + MsmAccel<C>> Debug for PlonkEngine<C, MsmEngine>"],["impl<F: Debug + Field> Debug for CompiledCircuit<F>"],["impl<F: Debug + Field> Debug for ConstraintSystemMid<F>"],["impl<F: Debug + Field> Debug for Preprocessing<F>"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Gate<F, V>"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>"]], "halo2_proofs":[["impl Debug for Error"]], "p3_frontend":[["impl Debug for Location"],["impl Debug for Var"],["impl Debug for CompileParams"],["impl Debug for PreprocessingInfo"],["impl Debug for Public"],["impl Debug for Query"],["impl<F: Debug + Field> Debug for SymbolicExpression<F>"],["impl<F: Debug + Field> Debug for FWrap<F>"],["impl<F: Debug + Field> Debug for SymbolicVariable<F>"]] diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index de568b772..b9defd1e4 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl Display for Error"]], "halo2_debug":[["impl<F: PrimeField> Display for FDisp<'_, F>"],["impl<F: PrimeField, V: Variable, A> Display for ExprDisp<'_, F, V, A>"],["impl<F: PrimeField, V: Variable, A> Display for LookupArgDisp<'_, F, V, A>"],["impl<F: PrimeField, V: Variable, A> Display for ShuffleArgDisp<'_, F, V, A>"]], -"halo2_frontend":[["impl Display for FailureLocation"],["impl Display for VerifyFailure"],["impl Display for AssignmentError"],["impl Display for Error"],["impl Display for TableError"],["impl Display for Constraint"],["impl Display for Gate"],["impl Display for Region"],["impl Display for VirtualCell"],["impl Display for CircuitGates"]], +"halo2_frontend":[["impl Display for FailureLocation"],["impl Display for VerifyFailure"],["impl Display for AssignError"],["impl Display for Error"],["impl Display for TableError"],["impl Display for Constraint"],["impl Display for Gate"],["impl Display for Region"],["impl Display for VirtualCell"],["impl Display for CircuitGates"]], "halo2_middleware":[["impl Display for VarMid"],["impl Display for ColumnMid"]], "halo2_proofs":[["impl Display for Error"]], "p3_frontend":[["impl Display for Location"],["impl<F: Field> Display for SymbolicExpression<F>"],["impl<F: Field> Display for FWrap<F>"],["impl<F: Field> Display for SymbolicVariable<F>"]] diff --git a/trait.impl/core/marker/trait.Freeze.js b/trait.impl/core/marker/trait.Freeze.js index c85037a77..8ac5e708c 100644 --- a/trait.impl/core/marker/trait.Freeze.js +++ b/trait.impl/core/marker/trait.Freeze.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl Freeze for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl Freeze for Error",1,["halo2_backend::plonk::error::Error"]],["impl Freeze for Error",1,["halo2_backend::poly::Error"]],["impl Freeze for Coeff",1,["halo2_backend::poly::Coeff"]],["impl Freeze for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl Freeze for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Freeze for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Freeze,\n M: Freeze,
",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Freeze for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Freeze,\n M: Freeze,
",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> Freeze for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> Freeze for ProverSHPLONK<'a, E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> Freeze for PinnedEvaluationDomain<'a, F>",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> Freeze for MSMIPA<'params, C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> Freeze for ProverIPA<'params, C>",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> Freeze for AccumulatorStrategy<'params, C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> Freeze for GuardIPA<'params, C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> Freeze for SingleStrategy<'params, C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> Freeze for ProverGWC<'params, E>",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> Freeze for ProvingKey<C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> Freeze for VerifyingKey<C>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> Freeze for BatchVerifier<C>",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> Freeze for IPACommitmentScheme<C>",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> Freeze for ParamsIPA<C>
where\n C: Freeze,
",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> Freeze for VerifierIPA<C>",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> Freeze for Accumulator<C>
where\n C: Freeze,
",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> Freeze for Challenge255<C>",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> Freeze for ChallengeScalar<C, T>
where\n <C as CurveAffine>::ScalarExt: Freeze,
",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> Freeze for KZGCommitmentScheme<E>",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> Freeze for ParamsKZG<E>
where\n <E as Engine>::G2Affine: Freeze,
",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> Freeze for ParamsVerifierKZG<E>
where\n <E as Engine>::G2Affine: Freeze,
",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> Freeze for DualMSM<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> Freeze for MSMKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> Freeze for VerifierGWC<E>",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> Freeze for VerifierSHPLONK<E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> Freeze for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: Freeze,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> Freeze for GuardKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> Freeze for SingleStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: Freeze,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> Freeze for Blind<F>
where\n F: Freeze,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> Freeze for EvaluationDomain<F>
where\n F: Freeze,
",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> Freeze for Polynomial<F, B>",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> Freeze for Blake2bRead<R, C, E>
where\n R: Freeze,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> Freeze for Keccak256Read<R, C, E>
where\n R: Freeze,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> Freeze for Blake2bWrite<W, C, E>
where\n W: Freeze,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> Freeze for Keccak256Write<W, C, E>
where\n W: Freeze,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> Freeze for FDisp<'a, F>",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> Freeze for ExprDisp<'a, F, V, A>",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> Freeze for LookupArgDisp<'a, F, V, A>",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> Freeze for ShuffleArgDisp<'a, F, V, A>",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl Freeze for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Freeze for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Freeze for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Freeze for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Freeze for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl Freeze for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Freeze for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Freeze for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Freeze for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Freeze for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Freeze for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Freeze for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Freeze for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Freeze for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Freeze for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Freeze for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Freeze for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Freeze for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Freeze for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Freeze for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Freeze for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Freeze for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Freeze for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Freeze for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Freeze for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Freeze for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Freeze for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Freeze for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Freeze for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Freeze for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Freeze for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Freeze for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Freeze for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Freeze for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Freeze for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Freeze for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Freeze for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Freeze for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Freeze for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Freeze for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Freeze for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Freeze for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Freeze for SingleChipLayouter<'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Freeze for WitnessCalculator<'a, F, ConcreteCircuit>",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Freeze for NamespacedLayouter<'a, F, L>",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Freeze for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Freeze for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Freeze for SimpleTableLayouter<'r, 'a, F, CS>",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> Freeze for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> Freeze for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> Freeze for Column<C>
where\n C: Freeze,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Freeze for CellValue<F>
where\n F: Freeze,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> Freeze for InstanceValue<F>
where\n F: Freeze,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Freeze for Assigned<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Freeze for Expression<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Freeze for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Freeze for Constraint<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Freeze for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Freeze for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Freeze for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Freeze for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Freeze for Constraints<F, C, Iter>
where\n Iter: Freeze,\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Freeze for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Freeze for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Freeze for CircuitCost<G, ConcreteCircuit>",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Freeze for TracingFloorPlanner<P>",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Freeze for Value<V>
where\n V: Freeze,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Freeze for AssignedCell<V, F>
where\n V: Freeze,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl Freeze for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Freeze for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Freeze for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Freeze for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Freeze for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl Freeze for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Freeze for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Freeze for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Freeze for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Freeze for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Freeze for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Freeze for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Freeze for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Freeze for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Freeze for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Freeze for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Freeze for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Freeze for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Freeze for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Freeze for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Freeze for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Freeze for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Freeze for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Freeze for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Freeze for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Freeze for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Freeze for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Freeze for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Freeze for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Freeze for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Freeze for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Freeze for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Freeze for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Freeze for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Freeze for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Freeze for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Freeze for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Freeze for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Freeze for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Freeze for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Freeze for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Freeze for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Freeze for SingleChipLayouter<'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Freeze for WitnessCalculator<'a, F, ConcreteCircuit>",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Freeze for NamespacedLayouter<'a, F, L>",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Freeze for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Freeze for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Freeze for SimpleTableLayouter<'r, 'a, F, CS>",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> Freeze for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> Freeze for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> Freeze for Column<C>
where\n C: Freeze,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Freeze for CellValue<F>
where\n F: Freeze,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> Freeze for InstanceValue<F>
where\n F: Freeze,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Freeze for Assigned<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Freeze for Expression<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Freeze for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Freeze for Constraint<F>
where\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Freeze for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Freeze for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Freeze for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Freeze for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Freeze for Constraints<F, C, Iter>
where\n Iter: Freeze,\n F: Freeze,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Freeze for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Freeze for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Freeze for CircuitCost<G, ConcreteCircuit>",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Freeze for TracingFloorPlanner<P>",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Freeze for Value<V>
where\n V: Freeze,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Freeze for AssignedCell<V, F>
where\n V: Freeze,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl Freeze for Any",1,["halo2_middleware::circuit::Any"]],["impl Freeze for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl Freeze for Cell",1,["halo2_middleware::circuit::Cell"]],["impl Freeze for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl Freeze for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl Freeze for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl Freeze for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl Freeze for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl Freeze for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl Freeze for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl Freeze for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl Freeze for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> Freeze for H2cMsmBaseDesc<'b, C>",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> Freeze for H2cMsmCoeffsDesc<'c, C>",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> Freeze for HasCurve<C>",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> Freeze for HasMsmEngine<C, M>
where\n M: Freeze,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> Freeze for PlonkEngineConfig<C, M>
where\n M: Freeze,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> Freeze for PlonkEngine<C, MsmEngine>
where\n MsmEngine: Freeze,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> Freeze for CompiledCircuit<F>",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> Freeze for ConstraintSystemMid<F>",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> Freeze for Preprocessing<F>",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> Freeze for Expression<F, V>
where\n F: Freeze,\n V: Freeze,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> Freeze for Gate<F, V>
where\n F: Freeze,\n V: Freeze,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> Freeze for Argument<F, V>",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> Freeze for Argument<F, V>",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl Freeze for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl Freeze for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl Freeze for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl Freeze for CompileParams",1,["p3_frontend::CompileParams"]],["impl Freeze for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl Freeze for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl Freeze for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> Freeze for SymbolicExpression<F>
where\n F: Freeze,
",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> Freeze for FWrap<F>
where\n F: Freeze,
",1,["p3_frontend::fwrap::FWrap"]],["impl<F> Freeze for SymbolicAirBuilder<F>",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> Freeze for SymbolicVariable<F>",1,["p3_frontend::symbolic_variable::SymbolicVariable"]]] diff --git a/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index 6992b19ff..cf2fe1bac 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl Send for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl Send for Error",1,["halo2_backend::plonk::error::Error"]],["impl Send for Error",1,["halo2_backend::poly::Error"]],["impl Send for Coeff",1,["halo2_backend::poly::Coeff"]],["impl Send for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl Send for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Send for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Send,\n M: Send,\n <Scheme as CommitmentScheme>::ParamsProver: Sync,\n T: Send,\n P: Send,\n E: Send,
",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Send for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Send,\n M: Send,\n <Scheme as CommitmentScheme>::ParamsProver: Sync,\n T: Send,\n P: Send,\n E: Send,
",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> Send for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> Send for ProverSHPLONK<'a, E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> Send for PinnedEvaluationDomain<'a, F>",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> Send for MSMIPA<'params, C>",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> Send for ProverIPA<'params, C>",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> Send for AccumulatorStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> Send for GuardIPA<'params, C>",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> Send for SingleStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> Send for ProverGWC<'params, E>",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> Send for ProvingKey<C>",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> Send for VerifyingKey<C>",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> Send for BatchVerifier<C>",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> Send for IPACommitmentScheme<C>",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> Send for ParamsIPA<C>",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> Send for VerifierIPA<C>",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> Send for Accumulator<C>",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> Send for Challenge255<C>",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> Send for ChallengeScalar<C, T>
where\n T: Send,
",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> Send for KZGCommitmentScheme<E>",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> Send for ParamsKZG<E>",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> Send for ParamsVerifierKZG<E>",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> Send for DualMSM<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> Send for MSMKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> Send for VerifierGWC<E>",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> Send for VerifierSHPLONK<E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> Send for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> Send for GuardKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> Send for SingleStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> Send for Blind<F>
where\n F: Send,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> Send for EvaluationDomain<F>",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> Send for Polynomial<F, B>
where\n B: Send,\n F: Send,
",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> Send for Blake2bRead<R, C, E>
where\n R: Send,\n E: Send,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> Send for Keccak256Read<R, C, E>
where\n R: Send,\n E: Send,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> Send for Blake2bWrite<W, C, E>
where\n W: Send,\n E: Send,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> Send for Keccak256Write<W, C, E>
where\n W: Send,\n E: Send,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> Send for FDisp<'a, F>",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> Send for ExprDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> Send for LookupArgDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> Send for ShuffleArgDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl Send for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Send for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Send for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Send for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Send for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl Send for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Send for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Send for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Send for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Send for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Send for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Send for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Send for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Send for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Send for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Send for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Send for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Send for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Send for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Send for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Send for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Send for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Send for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Send for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Send for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Send for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Send for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Send for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Send for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Send for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Send for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Send for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Send for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Send for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Send for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Send for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Send for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Send for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Send for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Send for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Send for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Send for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Send for SingleChipLayouter<'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Send for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: Sync,\n <ConcreteCircuit as Circuit<F>>::Config: Sync,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Send for NamespacedLayouter<'a, F, L>
where\n L: Send,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Send for AssignmentPass<'p, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Send for V1Pass<'p, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Send for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !Send for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<'r, F> Send for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<C> Send for Column<C>
where\n C: Send,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Send for CellValue<F>",1,["halo2_frontend::dev::CellValue"]],["impl<F> Send for InstanceValue<F>",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Send for Assigned<F>
where\n F: Send,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Send for Expression<F>
where\n F: Send,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Send for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Send for Constraint<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Send for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Send for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Send for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Send for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Send for Constraints<F, C, Iter>
where\n Iter: Send,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Send for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Send for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Send for CircuitCost<G, ConcreteCircuit>
where\n ConcreteCircuit: Send,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Send for TracingFloorPlanner<P>
where\n P: Send,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Send for Value<V>
where\n V: Send,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Send for AssignedCell<V, F>
where\n V: Send,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl Send for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Send for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Send for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Send for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Send for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl Send for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Send for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Send for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Send for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Send for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Send for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Send for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Send for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Send for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Send for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Send for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Send for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Send for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Send for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Send for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Send for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Send for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Send for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Send for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Send for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Send for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Send for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Send for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Send for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Send for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Send for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Send for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Send for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Send for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Send for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Send for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Send for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Send for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Send for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Send for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Send for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Send for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Send for SingleChipLayouter<'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Send for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: Sync,\n <ConcreteCircuit as Circuit<F>>::Config: Sync,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Send for NamespacedLayouter<'a, F, L>
where\n L: Send,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Send for AssignmentPass<'p, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Send for V1Pass<'p, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Send for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: Send,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !Send for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<'r, F> Send for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<C> Send for Column<C>
where\n C: Send,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Send for CellValue<F>",1,["halo2_frontend::dev::CellValue"]],["impl<F> Send for InstanceValue<F>",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Send for Assigned<F>
where\n F: Send,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Send for Expression<F>
where\n F: Send,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Send for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Send for Constraint<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Send for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Send for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Send for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Send for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Send for Constraints<F, C, Iter>
where\n Iter: Send,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Send for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Send for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Send for CircuitCost<G, ConcreteCircuit>
where\n ConcreteCircuit: Send,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Send for TracingFloorPlanner<P>
where\n P: Send,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Send for Value<V>
where\n V: Send,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Send for AssignedCell<V, F>
where\n V: Send,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl Send for Any",1,["halo2_middleware::circuit::Any"]],["impl Send for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl Send for Cell",1,["halo2_middleware::circuit::Cell"]],["impl Send for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl Send for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl Send for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl Send for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl Send for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl Send for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl Send for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl Send for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl Send for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> Send for H2cMsmBaseDesc<'b, C>",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> Send for H2cMsmCoeffsDesc<'c, C>",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> Send for HasCurve<C>",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> Send for HasMsmEngine<C, M>
where\n M: Send,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> Send for PlonkEngineConfig<C, M>
where\n M: Send,\n C: Send,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> Send for PlonkEngine<C, MsmEngine>
where\n MsmEngine: Send,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> Send for CompiledCircuit<F>",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> Send for ConstraintSystemMid<F>",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> Send for Preprocessing<F>",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> Send for Expression<F, V>
where\n F: Send,\n V: Send,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> Send for Gate<F, V>
where\n V: Send,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> Send for Argument<F, V>
where\n V: Send,
",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> Send for Argument<F, V>
where\n V: Send,
",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl Send for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl Send for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl Send for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl Send for CompileParams",1,["p3_frontend::CompileParams"]],["impl Send for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl Send for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl Send for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> !Send for SymbolicExpression<F>",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> !Send for SymbolicAirBuilder<F>",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> Send for SymbolicVariable<F>",1,["p3_frontend::symbolic_variable::SymbolicVariable"]],["impl<F: Field> Send for FWrap<F>"]] diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index 083fc8342..64ea0acec 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl Sync for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl Sync for Error",1,["halo2_backend::plonk::error::Error"]],["impl Sync for Error",1,["halo2_backend::poly::Error"]],["impl Sync for Coeff",1,["halo2_backend::poly::Coeff"]],["impl Sync for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl Sync for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Sync for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Sync,\n M: Sync,\n <Scheme as CommitmentScheme>::ParamsProver: Sync,\n T: Sync,\n P: Sync,\n E: Sync,
",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Sync for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Sync,\n M: Sync,\n <Scheme as CommitmentScheme>::ParamsProver: Sync,\n T: Sync,\n P: Sync,\n E: Sync,
",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> Sync for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> Sync for ProverSHPLONK<'a, E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> Sync for PinnedEvaluationDomain<'a, F>",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> Sync for MSMIPA<'params, C>",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> Sync for ProverIPA<'params, C>",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> Sync for AccumulatorStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> Sync for GuardIPA<'params, C>",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> Sync for SingleStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> Sync for ProverGWC<'params, E>",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> Sync for ProvingKey<C>",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> Sync for VerifyingKey<C>",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> Sync for BatchVerifier<C>",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> Sync for IPACommitmentScheme<C>",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> Sync for ParamsIPA<C>",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> Sync for VerifierIPA<C>",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> Sync for Accumulator<C>",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> Sync for Challenge255<C>",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> Sync for ChallengeScalar<C, T>
where\n T: Sync,
",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> Sync for KZGCommitmentScheme<E>",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> Sync for ParamsKZG<E>",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> Sync for ParamsVerifierKZG<E>",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> Sync for DualMSM<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> Sync for MSMKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> Sync for VerifierGWC<E>",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> Sync for VerifierSHPLONK<E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> Sync for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> Sync for GuardKZG<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> Sync for SingleStrategy<E>
where\n <E as Engine>::G1: Sized,\n <E as Engine>::G1Affine: Sized,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> Sync for Blind<F>
where\n F: Sync,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> Sync for EvaluationDomain<F>",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> Sync for Polynomial<F, B>
where\n B: Sync,\n F: Sync,
",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> Sync for Blake2bRead<R, C, E>
where\n R: Sync,\n E: Sync,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> Sync for Keccak256Read<R, C, E>
where\n R: Sync,\n E: Sync,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> Sync for Blake2bWrite<W, C, E>
where\n W: Sync,\n E: Sync,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> Sync for Keccak256Write<W, C, E>
where\n W: Sync,\n E: Sync,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> Sync for FDisp<'a, F>",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> Sync for ExprDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> Sync for LookupArgDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> Sync for ShuffleArgDisp<'a, F, V, A>
where\n A: Sync,\n V: Sync,
",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl Sync for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Sync for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Sync for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Sync for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Sync for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl Sync for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Sync for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Sync for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Sync for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Sync for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Sync for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Sync for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Sync for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Sync for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Sync for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Sync for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Sync for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Sync for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Sync for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Sync for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Sync for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Sync for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Sync for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Sync for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Sync for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Sync for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Sync for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Sync for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Sync for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Sync for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Sync for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Sync for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Sync for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Sync for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Sync for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Sync for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Sync for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Sync for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Sync for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Sync for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Sync for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Sync for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Sync for SingleChipLayouter<'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Sync for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: Sync,\n <ConcreteCircuit as Circuit<F>>::Config: Sync,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Sync for NamespacedLayouter<'a, F, L>
where\n L: Sync,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Sync for AssignmentPass<'p, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Sync for V1Pass<'p, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Sync for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !Sync for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<'r, F> Sync for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<C> Sync for Column<C>
where\n C: Sync,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Sync for CellValue<F>",1,["halo2_frontend::dev::CellValue"]],["impl<F> Sync for InstanceValue<F>",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Sync for Assigned<F>
where\n F: Sync,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Sync for Expression<F>
where\n F: Sync,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Sync for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Sync for Constraint<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Sync for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Sync for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Sync for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Sync for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Sync for Constraints<F, C, Iter>
where\n Iter: Sync,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Sync for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Sync for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Sync for CircuitCost<G, ConcreteCircuit>
where\n ConcreteCircuit: Sync,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Sync for TracingFloorPlanner<P>
where\n P: Sync,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Sync for Value<V>
where\n V: Sync,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Sync for AssignedCell<V, F>
where\n V: Sync,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl Sync for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Sync for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Sync for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Sync for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Sync for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl Sync for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Sync for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Sync for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Sync for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Sync for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Sync for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Sync for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Sync for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Sync for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Sync for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Sync for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Sync for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Sync for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Sync for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Sync for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Sync for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Sync for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Sync for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Sync for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Sync for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Sync for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Sync for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Sync for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Sync for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Sync for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Sync for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Sync for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Sync for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Sync for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Sync for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Sync for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Sync for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Sync for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Sync for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Sync for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Sync for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Sync for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Sync for SingleChipLayouter<'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Sync for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: Sync,\n <ConcreteCircuit as Circuit<F>>::Config: Sync,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Sync for NamespacedLayouter<'a, F, L>
where\n L: Sync,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Sync for AssignmentPass<'p, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Sync for V1Pass<'p, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Sync for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: Sync,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !Sync for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<'r, F> Sync for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<C> Sync for Column<C>
where\n C: Sync,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Sync for CellValue<F>",1,["halo2_frontend::dev::CellValue"]],["impl<F> Sync for InstanceValue<F>",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Sync for Assigned<F>
where\n F: Sync,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Sync for Expression<F>
where\n F: Sync,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Sync for MockProver<F>",1,["halo2_frontend::dev::MockProver"]],["impl<F> Sync for Constraint<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Sync for ConstraintSystem<F>",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Sync for Gate<F>",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Sync for Argument<F>",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Sync for Argument<F>",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Sync for Constraints<F, C, Iter>
where\n Iter: Sync,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Sync for MarginalProofSize<G>",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Sync for ProofSize<G>",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Sync for CircuitCost<G, ConcreteCircuit>
where\n ConcreteCircuit: Sync,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Sync for TracingFloorPlanner<P>
where\n P: Sync,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Sync for Value<V>
where\n V: Sync,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Sync for AssignedCell<V, F>
where\n V: Sync,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl Sync for Any",1,["halo2_middleware::circuit::Any"]],["impl Sync for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl Sync for Cell",1,["halo2_middleware::circuit::Cell"]],["impl Sync for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl Sync for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl Sync for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl Sync for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl Sync for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl Sync for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl Sync for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl Sync for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl Sync for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> Sync for H2cMsmBaseDesc<'b, C>",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> Sync for H2cMsmCoeffsDesc<'c, C>",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> Sync for HasCurve<C>",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> Sync for HasMsmEngine<C, M>
where\n M: Sync,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> Sync for PlonkEngineConfig<C, M>
where\n M: Sync,\n C: Sync,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> Sync for PlonkEngine<C, MsmEngine>
where\n MsmEngine: Sync,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> Sync for CompiledCircuit<F>",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> Sync for ConstraintSystemMid<F>",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> Sync for Preprocessing<F>",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> Sync for Expression<F, V>
where\n F: Sync,\n V: Sync,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> Sync for Gate<F, V>
where\n V: Sync,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> Sync for Argument<F, V>
where\n V: Sync,
",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> Sync for Argument<F, V>
where\n V: Sync,
",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl Sync for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl Sync for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl Sync for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl Sync for CompileParams",1,["p3_frontend::CompileParams"]],["impl Sync for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl Sync for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl Sync for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> !Sync for SymbolicExpression<F>",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> !Sync for SymbolicAirBuilder<F>",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> Sync for SymbolicVariable<F>",1,["p3_frontend::symbolic_variable::SymbolicVariable"]],["impl<F: Field> Sync for FWrap<F>"]] diff --git a/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index 17711f1cf..e1f2bbcde 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl Unpin for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl Unpin for Error",1,["halo2_backend::plonk::error::Error"]],["impl Unpin for Error",1,["halo2_backend::poly::Error"]],["impl Unpin for Coeff",1,["halo2_backend::poly::Coeff"]],["impl Unpin for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl Unpin for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Unpin for Prover<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Unpin,\n M: Unpin,\n <Scheme as CommitmentScheme>::Curve: Unpin,\n P: Unpin,\n E: Unpin,\n <Scheme as CommitmentScheme>::Scalar: Unpin,
",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> Unpin for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>
where\n R: Unpin,\n M: Unpin,\n <Scheme as CommitmentScheme>::Curve: Unpin,\n P: Unpin,\n E: Unpin,\n <Scheme as CommitmentScheme>::Scalar: Unpin,
",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> Unpin for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> Unpin for ProverSHPLONK<'a, E>",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> Unpin for PinnedEvaluationDomain<'a, F>",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> Unpin for MSMIPA<'params, C>
where\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> Unpin for ProverIPA<'params, C>",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> Unpin for AccumulatorStrategy<'params, C>
where\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> Unpin for GuardIPA<'params, C>
where\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> Unpin for SingleStrategy<'params, C>
where\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> Unpin for ProverGWC<'params, E>",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> Unpin for ProvingKey<C>
where\n <C as CurveAffine>::ScalarExt: Unpin,\n C: Unpin,
",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> Unpin for VerifyingKey<C>
where\n <C as CurveAffine>::ScalarExt: Unpin,\n C: Unpin,
",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> Unpin for BatchVerifier<C>
where\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> Unpin for IPACommitmentScheme<C>
where\n C: Unpin,
",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> Unpin for ParamsIPA<C>
where\n C: Unpin,
",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> Unpin for VerifierIPA<C>
where\n C: Unpin,
",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> Unpin for Accumulator<C>
where\n C: Unpin,\n <C as CurveAffine>::ScalarExt: Unpin,
",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> Unpin for Challenge255<C>
where\n C: Unpin,
",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> Unpin for ChallengeScalar<C, T>
where\n <C as CurveAffine>::ScalarExt: Unpin,\n T: Unpin,
",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> Unpin for KZGCommitmentScheme<E>
where\n E: Unpin,
",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> Unpin for ParamsKZG<E>
where\n <E as Engine>::G2Affine: Unpin,\n <E as Engine>::G1Affine: Unpin,
",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> Unpin for ParamsVerifierKZG<E>
where\n <E as Engine>::G2Affine: Unpin,
",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> Unpin for DualMSM<E>
where\n <E as Engine>::G1: Sized + Unpin,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: Unpin,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> Unpin for MSMKZG<E>
where\n <E as Engine>::G1: Sized + Unpin,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: Unpin,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> Unpin for VerifierGWC<E>
where\n E: Unpin,
",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> Unpin for VerifierSHPLONK<E>
where\n E: Unpin,
",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> Unpin for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized + Unpin,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: Unpin,\n <E as Engine>::Fr: Unpin,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> Unpin for GuardKZG<E>
where\n <E as Engine>::G1: Sized + Unpin,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: Unpin,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> Unpin for SingleStrategy<E>
where\n <E as Engine>::G1: Sized + Unpin,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: Unpin,\n <E as Engine>::Fr: Unpin,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> Unpin for Blind<F>
where\n F: Unpin,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> Unpin for EvaluationDomain<F>
where\n F: Unpin,
",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> Unpin for Polynomial<F, B>
where\n B: Unpin,\n F: Unpin,
",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> Unpin for Blake2bRead<R, C, E>
where\n R: Unpin,\n C: Unpin,\n E: Unpin,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> Unpin for Keccak256Read<R, C, E>
where\n R: Unpin,\n C: Unpin,\n E: Unpin,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> Unpin for Blake2bWrite<W, C, E>
where\n W: Unpin,\n C: Unpin,\n E: Unpin,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> Unpin for Keccak256Write<W, C, E>
where\n W: Unpin,\n C: Unpin,\n E: Unpin,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> Unpin for FDisp<'a, F>",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> Unpin for ExprDisp<'a, F, V, A>",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> Unpin for LookupArgDisp<'a, F, V, A>",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> Unpin for ShuffleArgDisp<'a, F, V, A>",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl Unpin for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Unpin for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Unpin for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Unpin for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Unpin for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl Unpin for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Unpin for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Unpin for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Unpin for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Unpin for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Unpin for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Unpin for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Unpin for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Unpin for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Unpin for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Unpin for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Unpin for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Unpin for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Unpin for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Unpin for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Unpin for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Unpin for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Unpin for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Unpin for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Unpin for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Unpin for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Unpin for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Unpin for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Unpin for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Unpin for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Unpin for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Unpin for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Unpin for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Unpin for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Unpin for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Unpin for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Unpin for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Unpin for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Unpin for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Unpin for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Unpin for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Unpin for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Unpin for SingleChipLayouter<'a, F, CS>
where\n F: Unpin,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Unpin for WitnessCalculator<'a, F, ConcreteCircuit>",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Unpin for NamespacedLayouter<'a, F, L>
where\n F: Unpin,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Unpin for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Unpin for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Unpin for SimpleTableLayouter<'r, 'a, F, CS>
where\n F: Unpin,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> Unpin for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> Unpin for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> Unpin for Column<C>
where\n C: Unpin,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Unpin for CellValue<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> Unpin for InstanceValue<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Unpin for Assigned<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Unpin for Expression<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Unpin for MockProver<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> Unpin for Constraint<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Unpin for ConstraintSystem<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Unpin for Gate<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Unpin for Argument<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Unpin for Argument<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Unpin for Constraints<F, C, Iter>
where\n Iter: Unpin,\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Unpin for MarginalProofSize<G>
where\n G: Unpin,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Unpin for ProofSize<G>
where\n G: Unpin,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Unpin for CircuitCost<G, ConcreteCircuit>
where\n G: Unpin,\n ConcreteCircuit: Unpin,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Unpin for TracingFloorPlanner<P>
where\n P: Unpin,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Unpin for Value<V>
where\n V: Unpin,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Unpin for AssignedCell<V, F>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl Unpin for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl Unpin for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl Unpin for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl Unpin for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl Unpin for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl Unpin for Error",1,["halo2_frontend::plonk::error::Error"]],["impl Unpin for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl Unpin for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl Unpin for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl Unpin for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl Unpin for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl Unpin for Cell",1,["halo2_frontend::circuit::Cell"]],["impl Unpin for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl Unpin for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl Unpin for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl Unpin for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl Unpin for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl Unpin for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl Unpin for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl Unpin for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl Unpin for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl Unpin for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl Unpin for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl Unpin for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl Unpin for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl Unpin for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl Unpin for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl Unpin for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl Unpin for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl Unpin for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl Unpin for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl Unpin for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl Unpin for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl Unpin for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl Unpin for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl Unpin for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl Unpin for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl Unpin for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl Unpin for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl Unpin for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl Unpin for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> Unpin for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> Unpin for SingleChipLayouter<'a, F, CS>
where\n F: Unpin,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> Unpin for WitnessCalculator<'a, F, ConcreteCircuit>",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> Unpin for NamespacedLayouter<'a, F, L>
where\n F: Unpin,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> Unpin for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> Unpin for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> Unpin for SimpleTableLayouter<'r, 'a, F, CS>
where\n F: Unpin,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> Unpin for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> Unpin for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> Unpin for Column<C>
where\n C: Unpin,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> Unpin for CellValue<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> Unpin for InstanceValue<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> Unpin for Assigned<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> Unpin for Expression<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> Unpin for MockProver<F>
where\n F: Unpin,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> Unpin for Constraint<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> Unpin for ConstraintSystem<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> Unpin for Gate<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> Unpin for Argument<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> Unpin for Argument<F>
where\n F: Unpin,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> Unpin for Constraints<F, C, Iter>
where\n Iter: Unpin,\n F: Unpin,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> Unpin for MarginalProofSize<G>
where\n G: Unpin,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> Unpin for ProofSize<G>
where\n G: Unpin,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> Unpin for CircuitCost<G, ConcreteCircuit>
where\n G: Unpin,\n ConcreteCircuit: Unpin,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> Unpin for TracingFloorPlanner<P>
where\n P: Unpin,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> Unpin for Value<V>
where\n V: Unpin,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> Unpin for AssignedCell<V, F>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl Unpin for Any",1,["halo2_middleware::circuit::Any"]],["impl Unpin for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl Unpin for Cell",1,["halo2_middleware::circuit::Cell"]],["impl Unpin for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl Unpin for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl Unpin for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl Unpin for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl Unpin for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl Unpin for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl Unpin for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl Unpin for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl Unpin for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> Unpin for H2cMsmBaseDesc<'b, C>",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> Unpin for H2cMsmCoeffsDesc<'c, C>",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> Unpin for HasCurve<C>
where\n C: Unpin,
",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> Unpin for HasMsmEngine<C, M>
where\n M: Unpin,\n C: Unpin,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> Unpin for PlonkEngineConfig<C, M>
where\n M: Unpin,\n C: Unpin,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> Unpin for PlonkEngine<C, MsmEngine>
where\n MsmEngine: Unpin,\n C: Unpin,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> Unpin for CompiledCircuit<F>
where\n F: Unpin,
",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> Unpin for ConstraintSystemMid<F>
where\n F: Unpin,
",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> Unpin for Preprocessing<F>
where\n F: Unpin,
",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> Unpin for Expression<F, V>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> Unpin for Gate<F, V>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> Unpin for Argument<F, V>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> Unpin for Argument<F, V>
where\n F: Unpin,\n V: Unpin,
",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl Unpin for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl Unpin for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl Unpin for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl Unpin for CompileParams",1,["p3_frontend::CompileParams"]],["impl Unpin for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl Unpin for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl Unpin for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> Unpin for SymbolicExpression<F>
where\n F: Unpin,
",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> Unpin for FWrap<F>
where\n F: Unpin,
",1,["p3_frontend::fwrap::FWrap"]],["impl<F> Unpin for SymbolicAirBuilder<F>
where\n F: Unpin,
",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> Unpin for SymbolicVariable<F>
where\n F: Unpin,
",1,["p3_frontend::symbolic_variable::SymbolicVariable"]]] diff --git a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index a8a526e4f..76572ffdd 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl !RefUnwindSafe for Error",1,["halo2_backend::plonk::error::Error"]],["impl RefUnwindSafe for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl RefUnwindSafe for Error",1,["halo2_backend::poly::Error"]],["impl RefUnwindSafe for Coeff",1,["halo2_backend::poly::Coeff"]],["impl RefUnwindSafe for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl RefUnwindSafe for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> RefUnwindSafe for Prover<'a, 'params, Scheme, P, E, R, T, M>",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> RefUnwindSafe for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> RefUnwindSafe for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> RefUnwindSafe for ProverSHPLONK<'a, E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::G1Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> RefUnwindSafe for PinnedEvaluationDomain<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> RefUnwindSafe for MSMIPA<'params, C>",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> RefUnwindSafe for ProverIPA<'params, C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> RefUnwindSafe for AccumulatorStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> RefUnwindSafe for GuardIPA<'params, C>",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> RefUnwindSafe for SingleStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> RefUnwindSafe for ProverGWC<'params, E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::G1Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> RefUnwindSafe for ProvingKey<C>",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> RefUnwindSafe for VerifyingKey<C>",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> RefUnwindSafe for BatchVerifier<C>",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> RefUnwindSafe for IPACommitmentScheme<C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> RefUnwindSafe for ParamsIPA<C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> RefUnwindSafe for VerifierIPA<C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> RefUnwindSafe for Accumulator<C>",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> RefUnwindSafe for Challenge255<C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> RefUnwindSafe for ChallengeScalar<C, T>",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> RefUnwindSafe for KZGCommitmentScheme<E>
where\n E: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> RefUnwindSafe for ParamsKZG<E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::G1Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> RefUnwindSafe for ParamsVerifierKZG<E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> RefUnwindSafe for DualMSM<E>
where\n <E as Engine>::G1: Sized + RefUnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> RefUnwindSafe for MSMKZG<E>
where\n <E as Engine>::G1: Sized + RefUnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> RefUnwindSafe for VerifierGWC<E>
where\n E: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> RefUnwindSafe for VerifierSHPLONK<E>
where\n E: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> RefUnwindSafe for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized + RefUnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::Fr: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> RefUnwindSafe for GuardKZG<E>
where\n <E as Engine>::G1: Sized + RefUnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> RefUnwindSafe for SingleStrategy<E>
where\n <E as Engine>::G1: Sized + RefUnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::Fr: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> RefUnwindSafe for Blind<F>
where\n F: RefUnwindSafe,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> RefUnwindSafe for EvaluationDomain<F>
where\n F: RefUnwindSafe,
",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> RefUnwindSafe for Polynomial<F, B>
where\n B: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> RefUnwindSafe for Blake2bRead<R, C, E>
where\n R: RefUnwindSafe,\n C: RefUnwindSafe,\n E: RefUnwindSafe,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> RefUnwindSafe for Keccak256Read<R, C, E>
where\n R: RefUnwindSafe,\n C: RefUnwindSafe,\n E: RefUnwindSafe,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> RefUnwindSafe for Blake2bWrite<W, C, E>
where\n W: RefUnwindSafe,\n C: RefUnwindSafe,\n E: RefUnwindSafe,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> RefUnwindSafe for Keccak256Write<W, C, E>
where\n W: RefUnwindSafe,\n C: RefUnwindSafe,\n E: RefUnwindSafe,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> RefUnwindSafe for FDisp<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> RefUnwindSafe for ExprDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> RefUnwindSafe for LookupArgDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> RefUnwindSafe for ShuffleArgDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl RefUnwindSafe for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl RefUnwindSafe for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl RefUnwindSafe for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl RefUnwindSafe for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl RefUnwindSafe for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl RefUnwindSafe for Error",1,["halo2_frontend::plonk::error::Error"]],["impl RefUnwindSafe for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl RefUnwindSafe for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl RefUnwindSafe for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl RefUnwindSafe for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl RefUnwindSafe for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl RefUnwindSafe for Cell",1,["halo2_frontend::circuit::Cell"]],["impl RefUnwindSafe for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl RefUnwindSafe for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl RefUnwindSafe for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl RefUnwindSafe for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl RefUnwindSafe for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl RefUnwindSafe for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl RefUnwindSafe for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl RefUnwindSafe for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl RefUnwindSafe for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl RefUnwindSafe for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl RefUnwindSafe for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl RefUnwindSafe for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl RefUnwindSafe for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl RefUnwindSafe for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl RefUnwindSafe for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl RefUnwindSafe for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl RefUnwindSafe for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl RefUnwindSafe for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl RefUnwindSafe for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl RefUnwindSafe for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl RefUnwindSafe for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl RefUnwindSafe for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl RefUnwindSafe for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl RefUnwindSafe for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl RefUnwindSafe for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl RefUnwindSafe for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl RefUnwindSafe for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl RefUnwindSafe for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl RefUnwindSafe for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> RefUnwindSafe for VirtualCells<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> RefUnwindSafe for SingleChipLayouter<'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> RefUnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: RefUnwindSafe,\n <ConcreteCircuit as Circuit<F>>::Config: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> RefUnwindSafe for NamespacedLayouter<'a, F, L>
where\n L: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> RefUnwindSafe for AssignmentPass<'p, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> RefUnwindSafe for V1Pass<'p, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> RefUnwindSafe for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !RefUnwindSafe for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> !RefUnwindSafe for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> RefUnwindSafe for Column<C>
where\n C: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> RefUnwindSafe for CellValue<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> RefUnwindSafe for InstanceValue<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> RefUnwindSafe for Assigned<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> RefUnwindSafe for Expression<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> RefUnwindSafe for MockProver<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> RefUnwindSafe for Constraint<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> RefUnwindSafe for ConstraintSystem<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> RefUnwindSafe for Gate<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> RefUnwindSafe for Argument<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> RefUnwindSafe for Argument<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> RefUnwindSafe for Constraints<F, C, Iter>
where\n Iter: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> RefUnwindSafe for MarginalProofSize<G>
where\n G: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> RefUnwindSafe for ProofSize<G>
where\n G: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> RefUnwindSafe for CircuitCost<G, ConcreteCircuit>
where\n G: RefUnwindSafe,\n ConcreteCircuit: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> RefUnwindSafe for TracingFloorPlanner<P>
where\n P: RefUnwindSafe,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> RefUnwindSafe for Value<V>
where\n V: RefUnwindSafe,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> RefUnwindSafe for AssignedCell<V, F>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl RefUnwindSafe for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl RefUnwindSafe for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl RefUnwindSafe for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl RefUnwindSafe for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl RefUnwindSafe for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl RefUnwindSafe for Error",1,["halo2_frontend::plonk::error::Error"]],["impl RefUnwindSafe for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl RefUnwindSafe for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl RefUnwindSafe for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl RefUnwindSafe for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl RefUnwindSafe for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl RefUnwindSafe for Cell",1,["halo2_frontend::circuit::Cell"]],["impl RefUnwindSafe for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl RefUnwindSafe for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl RefUnwindSafe for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl RefUnwindSafe for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl RefUnwindSafe for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl RefUnwindSafe for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl RefUnwindSafe for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl RefUnwindSafe for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl RefUnwindSafe for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl RefUnwindSafe for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl RefUnwindSafe for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl RefUnwindSafe for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl RefUnwindSafe for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl RefUnwindSafe for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl RefUnwindSafe for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl RefUnwindSafe for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl RefUnwindSafe for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl RefUnwindSafe for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl RefUnwindSafe for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl RefUnwindSafe for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl RefUnwindSafe for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl RefUnwindSafe for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl RefUnwindSafe for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl RefUnwindSafe for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl RefUnwindSafe for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl RefUnwindSafe for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl RefUnwindSafe for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl RefUnwindSafe for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl RefUnwindSafe for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> RefUnwindSafe for VirtualCells<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> RefUnwindSafe for SingleChipLayouter<'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> RefUnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: RefUnwindSafe,\n <ConcreteCircuit as Circuit<F>>::Config: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> RefUnwindSafe for NamespacedLayouter<'a, F, L>
where\n L: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> RefUnwindSafe for AssignmentPass<'p, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> RefUnwindSafe for V1Pass<'p, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> RefUnwindSafe for SimpleTableLayouter<'r, 'a, F, CS>
where\n CS: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !RefUnwindSafe for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> !RefUnwindSafe for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> RefUnwindSafe for Column<C>
where\n C: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> RefUnwindSafe for CellValue<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> RefUnwindSafe for InstanceValue<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> RefUnwindSafe for Assigned<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> RefUnwindSafe for Expression<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> RefUnwindSafe for MockProver<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> RefUnwindSafe for Constraint<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> RefUnwindSafe for ConstraintSystem<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> RefUnwindSafe for Gate<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> RefUnwindSafe for Argument<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> RefUnwindSafe for Argument<F>
where\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> RefUnwindSafe for Constraints<F, C, Iter>
where\n Iter: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> RefUnwindSafe for MarginalProofSize<G>
where\n G: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> RefUnwindSafe for ProofSize<G>
where\n G: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> RefUnwindSafe for CircuitCost<G, ConcreteCircuit>
where\n G: RefUnwindSafe,\n ConcreteCircuit: RefUnwindSafe,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> RefUnwindSafe for TracingFloorPlanner<P>
where\n P: RefUnwindSafe,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> RefUnwindSafe for Value<V>
where\n V: RefUnwindSafe,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> RefUnwindSafe for AssignedCell<V, F>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl RefUnwindSafe for Any",1,["halo2_middleware::circuit::Any"]],["impl RefUnwindSafe for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl RefUnwindSafe for Cell",1,["halo2_middleware::circuit::Cell"]],["impl RefUnwindSafe for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl RefUnwindSafe for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl RefUnwindSafe for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl RefUnwindSafe for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl RefUnwindSafe for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl RefUnwindSafe for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl RefUnwindSafe for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl RefUnwindSafe for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl RefUnwindSafe for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> RefUnwindSafe for H2cMsmBaseDesc<'b, C>
where\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> RefUnwindSafe for H2cMsmCoeffsDesc<'c, C>
where\n <C as CurveAffine>::ScalarExt: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> RefUnwindSafe for HasCurve<C>
where\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> RefUnwindSafe for HasMsmEngine<C, M>
where\n M: RefUnwindSafe,\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> RefUnwindSafe for PlonkEngineConfig<C, M>
where\n M: RefUnwindSafe,\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> RefUnwindSafe for PlonkEngine<C, MsmEngine>
where\n MsmEngine: RefUnwindSafe,\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> RefUnwindSafe for CompiledCircuit<F>
where\n F: RefUnwindSafe,
",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> RefUnwindSafe for ConstraintSystemMid<F>
where\n F: RefUnwindSafe,
",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> RefUnwindSafe for Preprocessing<F>
where\n F: RefUnwindSafe,
",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> RefUnwindSafe for Expression<F, V>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> RefUnwindSafe for Gate<F, V>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> RefUnwindSafe for Argument<F, V>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> RefUnwindSafe for Argument<F, V>
where\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl !RefUnwindSafe for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl RefUnwindSafe for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl RefUnwindSafe for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl RefUnwindSafe for CompileParams",1,["p3_frontend::CompileParams"]],["impl RefUnwindSafe for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl RefUnwindSafe for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl RefUnwindSafe for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> RefUnwindSafe for SymbolicExpression<F>
where\n F: RefUnwindSafe,
",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> RefUnwindSafe for FWrap<F>
where\n F: RefUnwindSafe,
",1,["p3_frontend::fwrap::FWrap"]],["impl<F> RefUnwindSafe for SymbolicAirBuilder<F>
where\n F: RefUnwindSafe,
",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> RefUnwindSafe for SymbolicVariable<F>
where\n F: RefUnwindSafe,
",1,["p3_frontend::symbolic_variable::SymbolicVariable"]]] diff --git a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index a2423ed60..b9e2ed08e 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,7 +1,7 @@ (function() {var implementors = { "halo2_backend":[["impl !UnwindSafe for Error",1,["halo2_backend::plonk::error::Error"]],["impl UnwindSafe for SerdeFormat",1,["halo2_backend::helpers::SerdeFormat"]],["impl UnwindSafe for Error",1,["halo2_backend::poly::Error"]],["impl UnwindSafe for Coeff",1,["halo2_backend::poly::Coeff"]],["impl UnwindSafe for ExtendedLagrangeCoeff",1,["halo2_backend::poly::ExtendedLagrangeCoeff"]],["impl UnwindSafe for LagrangeCoeff",1,["halo2_backend::poly::LagrangeCoeff"]],["impl<'a, 'params, Scheme, P, E, R, T, M> !UnwindSafe for Prover<'a, 'params, Scheme, P, E, R, T, M>",1,["halo2_backend::plonk::prover::Prover"]],["impl<'a, 'params, Scheme, P, E, R, T, M> !UnwindSafe for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>",1,["halo2_backend::plonk::prover::ProverSingle"]],["impl<'a, C> UnwindSafe for PinnedVerificationKey<'a, C>",1,["halo2_backend::plonk::PinnedVerificationKey"]],["impl<'a, E> UnwindSafe for ProverSHPLONK<'a, E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::G1Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::shplonk::prover::ProverSHPLONK"]],["impl<'a, F> UnwindSafe for PinnedEvaluationDomain<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_backend::poly::domain::PinnedEvaluationDomain"]],["impl<'params, C> UnwindSafe for MSMIPA<'params, C>",1,["halo2_backend::poly::ipa::msm::MSMIPA"]],["impl<'params, C> UnwindSafe for ProverIPA<'params, C>
where\n C: RefUnwindSafe,
",1,["halo2_backend::poly::ipa::multiopen::prover::ProverIPA"]],["impl<'params, C> UnwindSafe for AccumulatorStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::AccumulatorStrategy"]],["impl<'params, C> UnwindSafe for GuardIPA<'params, C>",1,["halo2_backend::poly::ipa::strategy::GuardIPA"]],["impl<'params, C> UnwindSafe for SingleStrategy<'params, C>",1,["halo2_backend::poly::ipa::strategy::SingleStrategy"]],["impl<'params, E> UnwindSafe for ProverGWC<'params, E>
where\n <E as Engine>::G2Affine: RefUnwindSafe,\n <E as Engine>::G1Affine: RefUnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::gwc::prover::ProverGWC"]],["impl<C> UnwindSafe for ProvingKey<C>
where\n <C as CurveAffine>::ScalarExt: UnwindSafe,\n C: UnwindSafe,
",1,["halo2_backend::plonk::ProvingKey"]],["impl<C> UnwindSafe for VerifyingKey<C>
where\n <C as CurveAffine>::ScalarExt: UnwindSafe,\n C: UnwindSafe,
",1,["halo2_backend::plonk::VerifyingKey"]],["impl<C> UnwindSafe for BatchVerifier<C>
where\n <C as CurveAffine>::ScalarExt: UnwindSafe,
",1,["halo2_backend::plonk::verifier::batch::BatchVerifier"]],["impl<C> UnwindSafe for IPACommitmentScheme<C>
where\n C: UnwindSafe,
",1,["halo2_backend::poly::ipa::commitment::IPACommitmentScheme"]],["impl<C> UnwindSafe for ParamsIPA<C>
where\n C: UnwindSafe,
",1,["halo2_backend::poly::ipa::commitment::ParamsIPA"]],["impl<C> UnwindSafe for VerifierIPA<C>
where\n C: UnwindSafe,
",1,["halo2_backend::poly::ipa::multiopen::verifier::VerifierIPA"]],["impl<C> UnwindSafe for Accumulator<C>
where\n C: UnwindSafe,\n <C as CurveAffine>::ScalarExt: UnwindSafe,
",1,["halo2_backend::poly::ipa::strategy::Accumulator"]],["impl<C> UnwindSafe for Challenge255<C>
where\n C: UnwindSafe,
",1,["halo2_backend::transcript::Challenge255"]],["impl<C, T> UnwindSafe for ChallengeScalar<C, T>
where\n <C as CurveAffine>::ScalarExt: UnwindSafe,\n T: UnwindSafe,
",1,["halo2_backend::transcript::ChallengeScalar"]],["impl<E> UnwindSafe for KZGCommitmentScheme<E>
where\n E: UnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::KZGCommitmentScheme"]],["impl<E> UnwindSafe for ParamsKZG<E>
where\n <E as Engine>::G2Affine: UnwindSafe,\n <E as Engine>::G1Affine: UnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::ParamsKZG"]],["impl<E> UnwindSafe for ParamsVerifierKZG<E>
where\n <E as Engine>::G2Affine: UnwindSafe,
",1,["halo2_backend::poly::kzg::commitment::ParamsVerifierKZG"]],["impl<E> UnwindSafe for DualMSM<E>
where\n <E as Engine>::G1: Sized + UnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: UnwindSafe,
",1,["halo2_backend::poly::kzg::msm::DualMSM"]],["impl<E> UnwindSafe for MSMKZG<E>
where\n <E as Engine>::G1: Sized + UnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: UnwindSafe,
",1,["halo2_backend::poly::kzg::msm::MSMKZG"]],["impl<E> UnwindSafe for VerifierGWC<E>
where\n E: UnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::gwc::verifier::VerifierGWC"]],["impl<E> UnwindSafe for VerifierSHPLONK<E>
where\n E: UnwindSafe,
",1,["halo2_backend::poly::kzg::multiopen::shplonk::verifier::VerifierSHPLONK"]],["impl<E> UnwindSafe for AccumulatorStrategy<E>
where\n <E as Engine>::G1: Sized + UnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: UnwindSafe,\n <E as Engine>::Fr: UnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::AccumulatorStrategy"]],["impl<E> UnwindSafe for GuardKZG<E>
where\n <E as Engine>::G1: Sized + UnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::Fr: UnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::GuardKZG"]],["impl<E> UnwindSafe for SingleStrategy<E>
where\n <E as Engine>::G1: Sized + UnwindSafe,\n <E as Engine>::G1Affine: Sized,\n <E as Engine>::G2Affine: UnwindSafe,\n <E as Engine>::Fr: UnwindSafe,
",1,["halo2_backend::poly::kzg::strategy::SingleStrategy"]],["impl<F> UnwindSafe for Blind<F>
where\n F: UnwindSafe,
",1,["halo2_backend::poly::commitment::Blind"]],["impl<F> UnwindSafe for EvaluationDomain<F>
where\n F: UnwindSafe,
",1,["halo2_backend::poly::domain::EvaluationDomain"]],["impl<F, B> UnwindSafe for Polynomial<F, B>
where\n B: UnwindSafe,\n F: UnwindSafe,
",1,["halo2_backend::poly::Polynomial"]],["impl<R, C, E> UnwindSafe for Blake2bRead<R, C, E>
where\n R: UnwindSafe,\n C: UnwindSafe,\n E: UnwindSafe,
",1,["halo2_backend::transcript::Blake2bRead"]],["impl<R, C, E> UnwindSafe for Keccak256Read<R, C, E>
where\n R: UnwindSafe,\n C: UnwindSafe,\n E: UnwindSafe,
",1,["halo2_backend::transcript::Keccak256Read"]],["impl<W, C, E> UnwindSafe for Blake2bWrite<W, C, E>
where\n W: UnwindSafe,\n C: UnwindSafe,\n E: UnwindSafe,
",1,["halo2_backend::transcript::Blake2bWrite"]],["impl<W, C, E> UnwindSafe for Keccak256Write<W, C, E>
where\n W: UnwindSafe,\n C: UnwindSafe,\n E: UnwindSafe,
",1,["halo2_backend::transcript::Keccak256Write"]]], "halo2_debug":[["impl<'a, F> UnwindSafe for FDisp<'a, F>
where\n F: RefUnwindSafe,
",1,["halo2_debug::display::FDisp"]],["impl<'a, F, V, A> UnwindSafe for ExprDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::ExprDisp"]],["impl<'a, F, V, A> UnwindSafe for LookupArgDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::LookupArgDisp"]],["impl<'a, F, V, A> UnwindSafe for ShuffleArgDisp<'a, F, V, A>
where\n A: RefUnwindSafe,\n F: RefUnwindSafe,\n V: RefUnwindSafe,
",1,["halo2_debug::display::ShuffleArgDisp"]]], -"halo2_frontend":[["impl UnwindSafe for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl UnwindSafe for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl UnwindSafe for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl UnwindSafe for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl UnwindSafe for AssignmentError",1,["halo2_frontend::plonk::error::AssignmentError"]],["impl UnwindSafe for Error",1,["halo2_frontend::plonk::error::Error"]],["impl UnwindSafe for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl UnwindSafe for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl UnwindSafe for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl UnwindSafe for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl UnwindSafe for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl UnwindSafe for Cell",1,["halo2_frontend::circuit::Cell"]],["impl UnwindSafe for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl UnwindSafe for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl UnwindSafe for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl UnwindSafe for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl UnwindSafe for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl UnwindSafe for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl UnwindSafe for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl UnwindSafe for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl UnwindSafe for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl UnwindSafe for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl UnwindSafe for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl UnwindSafe for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl UnwindSafe for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl UnwindSafe for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl UnwindSafe for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl UnwindSafe for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl UnwindSafe for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl UnwindSafe for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl UnwindSafe for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl UnwindSafe for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl UnwindSafe for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl UnwindSafe for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl UnwindSafe for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl UnwindSafe for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl UnwindSafe for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl UnwindSafe for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl UnwindSafe for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl UnwindSafe for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl UnwindSafe for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> !UnwindSafe for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> !UnwindSafe for SingleChipLayouter<'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> UnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: RefUnwindSafe,\n <ConcreteCircuit as Circuit<F>>::Config: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> !UnwindSafe for NamespacedLayouter<'a, F, L>",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> !UnwindSafe for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> !UnwindSafe for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> !UnwindSafe for SimpleTableLayouter<'r, 'a, F, CS>",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !UnwindSafe for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> !UnwindSafe for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> UnwindSafe for Column<C>
where\n C: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> UnwindSafe for CellValue<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> UnwindSafe for InstanceValue<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> UnwindSafe for Assigned<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> UnwindSafe for Expression<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> UnwindSafe for MockProver<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> UnwindSafe for Constraint<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> UnwindSafe for ConstraintSystem<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> UnwindSafe for Gate<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> UnwindSafe for Argument<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> UnwindSafe for Argument<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> UnwindSafe for Constraints<F, C, Iter>
where\n Iter: UnwindSafe,\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> UnwindSafe for MarginalProofSize<G>
where\n G: UnwindSafe,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> UnwindSafe for ProofSize<G>
where\n G: UnwindSafe,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> UnwindSafe for CircuitCost<G, ConcreteCircuit>
where\n G: UnwindSafe,\n ConcreteCircuit: UnwindSafe,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> UnwindSafe for TracingFloorPlanner<P>
where\n P: UnwindSafe,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> UnwindSafe for Value<V>
where\n V: UnwindSafe,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> UnwindSafe for AssignedCell<V, F>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_frontend::circuit::AssignedCell"]]], +"halo2_frontend":[["impl UnwindSafe for RegionColumn",1,["halo2_frontend::circuit::layouter::RegionColumn"]],["impl UnwindSafe for CommitmentScheme",1,["halo2_frontend::dev::cost_model::CommitmentScheme"]],["impl UnwindSafe for FailureLocation",1,["halo2_frontend::dev::failure::FailureLocation"]],["impl UnwindSafe for VerifyFailure",1,["halo2_frontend::dev::failure::VerifyFailure"]],["impl UnwindSafe for AssignError",1,["halo2_frontend::plonk::error::AssignError"]],["impl UnwindSafe for Error",1,["halo2_frontend::plonk::error::Error"]],["impl UnwindSafe for TableError",1,["halo2_frontend::plonk::error::TableError"]],["impl UnwindSafe for SimpleFloorPlanner",1,["halo2_frontend::circuit::floor_planner::single_pass::SimpleFloorPlanner"]],["impl UnwindSafe for MeasurementPass",1,["halo2_frontend::circuit::floor_planner::v1::MeasurementPass"]],["impl UnwindSafe for V1",1,["halo2_frontend::circuit::floor_planner::v1::V1"]],["impl UnwindSafe for RegionShape",1,["halo2_frontend::circuit::layouter::RegionShape"]],["impl UnwindSafe for Cell",1,["halo2_frontend::circuit::Cell"]],["impl UnwindSafe for RegionIndex",1,["halo2_frontend::circuit::RegionIndex"]],["impl UnwindSafe for RegionStart",1,["halo2_frontend::circuit::RegionStart"]],["impl UnwindSafe for CostOptions",1,["halo2_frontend::dev::cost_model::CostOptions"]],["impl UnwindSafe for Lookup",1,["halo2_frontend::dev::cost_model::Lookup"]],["impl UnwindSafe for ModelCircuit",1,["halo2_frontend::dev::cost_model::ModelCircuit"]],["impl UnwindSafe for Permutation",1,["halo2_frontend::dev::cost_model::Permutation"]],["impl UnwindSafe for Poly",1,["halo2_frontend::dev::cost_model::Poly"]],["impl UnwindSafe for Shuffle",1,["halo2_frontend::dev::cost_model::Shuffle"]],["impl UnwindSafe for Constraint",1,["halo2_frontend::dev::metadata::Constraint"]],["impl UnwindSafe for Gate",1,["halo2_frontend::dev::metadata::Gate"]],["impl UnwindSafe for Region",1,["halo2_frontend::dev::metadata::Region"]],["impl UnwindSafe for VirtualCell",1,["halo2_frontend::dev::metadata::VirtualCell"]],["impl UnwindSafe for CircuitGates",1,["halo2_frontend::dev::gates::CircuitGates"]],["impl UnwindSafe for CircuitLayout",1,["halo2_frontend::dev::graph::layout::CircuitLayout"]],["impl UnwindSafe for VirtualCell",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCell"]],["impl UnwindSafe for Phase",1,["halo2_frontend::plonk::circuit::expression::sealed::Phase"]],["impl UnwindSafe for AdviceQuery",1,["halo2_frontend::plonk::circuit::expression::AdviceQuery"]],["impl UnwindSafe for Challenge",1,["halo2_frontend::plonk::circuit::expression::Challenge"]],["impl UnwindSafe for FirstPhase",1,["halo2_frontend::plonk::circuit::expression::FirstPhase"]],["impl UnwindSafe for FixedQuery",1,["halo2_frontend::plonk::circuit::expression::FixedQuery"]],["impl UnwindSafe for InstanceQuery",1,["halo2_frontend::plonk::circuit::expression::InstanceQuery"]],["impl UnwindSafe for SecondPhase",1,["halo2_frontend::plonk::circuit::expression::SecondPhase"]],["impl UnwindSafe for Selector",1,["halo2_frontend::plonk::circuit::expression::Selector"]],["impl UnwindSafe for TableColumn",1,["halo2_frontend::plonk::circuit::expression::TableColumn"]],["impl UnwindSafe for ThirdPhase",1,["halo2_frontend::plonk::circuit::expression::ThirdPhase"]],["impl UnwindSafe for Advice",1,["halo2_frontend::plonk::circuit::Advice"]],["impl UnwindSafe for Fixed",1,["halo2_frontend::plonk::circuit::Fixed"]],["impl UnwindSafe for Instance",1,["halo2_frontend::plonk::circuit::Instance"]],["impl UnwindSafe for Argument",1,["halo2_frontend::plonk::permutation::Argument"]],["impl<'a, F> !UnwindSafe for VirtualCells<'a, F>",1,["halo2_frontend::plonk::circuit::constraint_system::VirtualCells"]],["impl<'a, F, CS> !UnwindSafe for SingleChipLayouter<'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::single_pass::SingleChipLayouter"]],["impl<'a, F, ConcreteCircuit> UnwindSafe for WitnessCalculator<'a, F, ConcreteCircuit>
where\n ConcreteCircuit: RefUnwindSafe,\n <ConcreteCircuit as Circuit<F>>::Config: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["halo2_frontend::circuit::WitnessCalculator"]],["impl<'a, F, L> !UnwindSafe for NamespacedLayouter<'a, F, L>",1,["halo2_frontend::circuit::NamespacedLayouter"]],["impl<'p, 'a, F, CS> !UnwindSafe for AssignmentPass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::AssignmentPass"]],["impl<'p, 'a, F, CS> !UnwindSafe for V1Pass<'p, 'a, F, CS>",1,["halo2_frontend::circuit::floor_planner::v1::V1Pass"]],["impl<'r, 'a, F, CS> !UnwindSafe for SimpleTableLayouter<'r, 'a, F, CS>",1,["halo2_frontend::circuit::table_layouter::SimpleTableLayouter"]],["impl<'r, F> !UnwindSafe for Region<'r, F>",1,["halo2_frontend::circuit::Region"]],["impl<'r, F> !UnwindSafe for Table<'r, F>",1,["halo2_frontend::circuit::Table"]],["impl<C> UnwindSafe for Column<C>
where\n C: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Column"]],["impl<F> UnwindSafe for CellValue<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::CellValue"]],["impl<F> UnwindSafe for InstanceValue<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::InstanceValue"]],["impl<F> UnwindSafe for Assigned<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::assigned::Assigned"]],["impl<F> UnwindSafe for Expression<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::expression::Expression"]],["impl<F> UnwindSafe for MockProver<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::dev::MockProver"]],["impl<F> UnwindSafe for Constraint<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraint"]],["impl<F> UnwindSafe for ConstraintSystem<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::ConstraintSystem"]],["impl<F> UnwindSafe for Gate<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Gate"]],["impl<F> UnwindSafe for Argument<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::lookup::Argument"]],["impl<F> UnwindSafe for Argument<F>
where\n F: UnwindSafe,
",1,["halo2_frontend::plonk::shuffle::Argument"]],["impl<F, C, Iter> UnwindSafe for Constraints<F, C, Iter>
where\n Iter: UnwindSafe,\n F: UnwindSafe,
",1,["halo2_frontend::plonk::circuit::constraint_system::Constraints"]],["impl<G> UnwindSafe for MarginalProofSize<G>
where\n G: UnwindSafe,
",1,["halo2_frontend::dev::cost::MarginalProofSize"]],["impl<G> UnwindSafe for ProofSize<G>
where\n G: UnwindSafe,
",1,["halo2_frontend::dev::cost::ProofSize"]],["impl<G, ConcreteCircuit> UnwindSafe for CircuitCost<G, ConcreteCircuit>
where\n G: UnwindSafe,\n ConcreteCircuit: UnwindSafe,
",1,["halo2_frontend::dev::cost::CircuitCost"]],["impl<P> UnwindSafe for TracingFloorPlanner<P>
where\n P: UnwindSafe,
",1,["halo2_frontend::dev::tfp::TracingFloorPlanner"]],["impl<V> UnwindSafe for Value<V>
where\n V: UnwindSafe,
",1,["halo2_frontend::circuit::value::Value"]],["impl<V, F> UnwindSafe for AssignedCell<V, F>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_frontend::circuit::AssignedCell"]]], "halo2_middleware":[["impl UnwindSafe for Any",1,["halo2_middleware::circuit::Any"]],["impl UnwindSafe for VarMid",1,["halo2_middleware::circuit::VarMid"]],["impl UnwindSafe for Cell",1,["halo2_middleware::circuit::Cell"]],["impl UnwindSafe for ChallengeMid",1,["halo2_middleware::circuit::ChallengeMid"]],["impl UnwindSafe for ColumnMid",1,["halo2_middleware::circuit::ColumnMid"]],["impl UnwindSafe for QueryMid",1,["halo2_middleware::circuit::QueryMid"]],["impl UnwindSafe for ArgumentMid",1,["halo2_middleware::permutation::ArgumentMid"]],["impl UnwindSafe for AssemblyMid",1,["halo2_middleware::permutation::AssemblyMid"]],["impl UnwindSafe for Rotation",1,["halo2_middleware::poly::Rotation"]],["impl UnwindSafe for H2cEngine",1,["halo2_middleware::zal::impls::H2cEngine"]],["impl UnwindSafe for NoCurve",1,["halo2_middleware::zal::impls::NoCurve"]],["impl UnwindSafe for NoMsmEngine",1,["halo2_middleware::zal::impls::NoMsmEngine"]],["impl<'b, C> UnwindSafe for H2cMsmBaseDesc<'b, C>
where\n C: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::H2cMsmBaseDesc"]],["impl<'c, C> UnwindSafe for H2cMsmCoeffsDesc<'c, C>
where\n <C as CurveAffine>::ScalarExt: RefUnwindSafe,
",1,["halo2_middleware::zal::impls::H2cMsmCoeffsDesc"]],["impl<C> UnwindSafe for HasCurve<C>
where\n C: UnwindSafe,
",1,["halo2_middleware::zal::impls::HasCurve"]],["impl<C, M> UnwindSafe for HasMsmEngine<C, M>
where\n M: UnwindSafe,\n C: UnwindSafe,
",1,["halo2_middleware::zal::impls::HasMsmEngine"]],["impl<C, M> UnwindSafe for PlonkEngineConfig<C, M>
where\n M: UnwindSafe,\n C: UnwindSafe,
",1,["halo2_middleware::zal::impls::PlonkEngineConfig"]],["impl<C, MsmEngine> UnwindSafe for PlonkEngine<C, MsmEngine>
where\n MsmEngine: UnwindSafe,\n C: UnwindSafe,
",1,["halo2_middleware::zal::impls::PlonkEngine"]],["impl<F> UnwindSafe for CompiledCircuit<F>
where\n F: UnwindSafe,
",1,["halo2_middleware::circuit::CompiledCircuit"]],["impl<F> UnwindSafe for ConstraintSystemMid<F>
where\n F: UnwindSafe,
",1,["halo2_middleware::circuit::ConstraintSystemMid"]],["impl<F> UnwindSafe for Preprocessing<F>
where\n F: UnwindSafe,
",1,["halo2_middleware::circuit::Preprocessing"]],["impl<F, V> UnwindSafe for Expression<F, V>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_middleware::expression::Expression"]],["impl<F, V> UnwindSafe for Gate<F, V>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_middleware::circuit::Gate"]],["impl<F, V> UnwindSafe for Argument<F, V>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_middleware::lookup::Argument"]],["impl<F, V> UnwindSafe for Argument<F, V>
where\n F: UnwindSafe,\n V: UnwindSafe,
",1,["halo2_middleware::shuffle::Argument"]]], "halo2_proofs":[["impl !UnwindSafe for Error",1,["halo2_proofs::plonk::error::Error"]]], "p3_frontend":[["impl UnwindSafe for Location",1,["p3_frontend::symbolic_expression::Location"]],["impl UnwindSafe for Var",1,["p3_frontend::symbolic_variable::Var"]],["impl UnwindSafe for CompileParams",1,["p3_frontend::CompileParams"]],["impl UnwindSafe for PreprocessingInfo",1,["p3_frontend::PreprocessingInfo"]],["impl UnwindSafe for Public",1,["p3_frontend::symbolic_variable::Public"]],["impl UnwindSafe for Query",1,["p3_frontend::symbolic_variable::Query"]],["impl<F> UnwindSafe for SymbolicExpression<F>",1,["p3_frontend::symbolic_expression::SymbolicExpression"]],["impl<F> UnwindSafe for FWrap<F>
where\n F: UnwindSafe,
",1,["p3_frontend::fwrap::FWrap"]],["impl<F> UnwindSafe for SymbolicAirBuilder<F>",1,["p3_frontend::symbolic_builder::SymbolicAirBuilder"]],["impl<F> UnwindSafe for SymbolicVariable<F>
where\n F: UnwindSafe,
",1,["p3_frontend::symbolic_variable::SymbolicVariable"]]] diff --git a/type.impl/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.js b/type.impl/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.js index f1e5d2bfa..eaf024080 100644 --- a/type.impl/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.js +++ b/type.impl/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"halo2_backend":[["
source§

impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>

source§

fn clone(&self) -> ParamsIPA<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
","Clone","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

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

source§

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

Formats the value using the given formatter. Read more
","Debug","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<C: CurveAffine> Params<C> for ParamsIPA<C>

source§

fn commit_lagrange(\n &self,\n engine: &impl MsmAccel<C>,\n poly: &Polynomial<C::Scalar, LagrangeCoeff>,\n r: Blind<C::Scalar>\n) -> C::Curve

This commits to a polynomial using its evaluations over the $2^k$ size\nevaluation domain. The commitment will be blinded by the blinding factor\nr.

\n
source§

fn write<W: Write>(&self, writer: &mut W) -> Result<()>

Writes params to a buffer.

\n
source§

fn read<R: Read>(reader: &mut R) -> Result<Self>

Reads params from a buffer.

\n
source§

fn k(&self) -> u32

Logarithmic size of the circuit
source§

fn n(&self) -> u64

Size of the circuit
source§

fn downsize(&mut self, k: u32)

Downsize Params with smaller k.
","Params","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<C: CurveAffine> ParamsProver<C> for ParamsIPA<C>

source§

fn new(k: u32) -> Self

Initializes parameters for the curve, given a random oracle to draw\npoints from.

\n
source§

fn commit(\n &self,\n engine: &impl MsmAccel<C>,\n poly: &Polynomial<C::Scalar, Coeff>,\n r: Blind<C::Scalar>\n) -> C::Curve

This computes a commitment to a polynomial described by the provided\nslice of coefficients. The commitment will be blinded by the blinding\nfactor r.

\n
","ParamsProver","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<'params, C: CurveAffine> ParamsVerifier<'params, C> for ParamsIPA<C>

§

type MSM = MSMIPA<'params, C>

Multiscalar multiplication engine
source§

const COMMIT_INSTANCE: bool = true

Can commit to instance or not.
source§

fn empty_msm(&self) -> MSMIPA<'_, C>

Generates an empty multiscalar multiplication struct using the\nappropriate params.
","ParamsVerifier<'params, C>","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"]] +"halo2_backend":[["
source§

impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>

source§

fn clone(&self) -> ParamsIPA<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
","Clone","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

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

source§

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

Formats the value using the given formatter. Read more
","Debug","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<C: CurveAffine> Params<C> for ParamsIPA<C>

source§

fn commit_lagrange(\n &self,\n engine: &impl MsmAccel<C>,\n poly: &Polynomial<C::Scalar, LagrangeCoeff>,\n r: Blind<C::Scalar>\n) -> C::Curve

This commits to a polynomial using its evaluations over the $2^k$ size\nevaluation domain. The commitment will be blinded by the blinding factor\nr.

\n
source§

fn write<W: Write>(&self, writer: &mut W) -> Result<()>

Writes params to a buffer.

\n
source§

fn read<R: Read>(reader: &mut R) -> Result<Self>

Reads params from a buffer.

\n
source§

fn k(&self) -> u32

Logarithmic size of the circuit
source§

fn n(&self) -> u64

Size of the circuit
source§

fn downsize(&mut self, k: u32)

Downsize Params with smaller k.
","Params","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<C: CurveAffine> ParamsProver<C> for ParamsIPA<C>

source§

fn new(k: u32) -> Self

Initializes parameters for the curve, given a random oracle to draw\npoints from.

\n
source§

fn commit(\n &self,\n engine: &impl MsmAccel<C>,\n poly: &Polynomial<C::Scalar, Coeff>,\n r: Blind<C::Scalar>\n) -> C::Curve

This computes a commitment to a polynomial described by the provided\nslice of coefficients. The commitment will be blinded by the blinding\nfactor r.

\n
","ParamsProver","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"],["
source§

impl<'params, C: CurveAffine> ParamsVerifier<'params, C> for ParamsIPA<C>

§

type MSM = MSMIPA<'params, C>

Multiscalar multiplication engine
source§

const COMMIT_INSTANCE: bool = true

Can commit to instance or not.
source§

fn empty_msm(&self) -> MSMIPA<'_, C>

Generates an empty multiscalar multiplication struct using the\nappropriate params.
","ParamsVerifier<'params, C>","halo2_backend::poly::ipa::commitment::ParamsVerifierIPA"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file