List of all items in this crate
+List of all items in this crate
+halo2 - Rust
+List of all items in this crate
+FIXED_BASE_WINDOW_SIZE in halo2_gadgets::ecc::chip::constants - Rust
+H in halo2_gadgets::ecc::chip::constants - Rust
+NUM_WINDOWS in halo2_gadgets::ecc::chip::constants - Rust
+NUM_WINDOWS_SHORT in halo2_gadgets::ecc::chip::constants - Rust
+compute_lagrange_coeffs in halo2_gadgets::ecc::chip::constants - Rust
+find_zs_and_us in halo2_gadgets::ecc::chip::constants - Rust
+test_lagrange_coeffs in halo2_gadgets::ecc::chip::constants - Rust
+test_zs_and_us in halo2_gadgets::ecc::chip::constants - Rust
+halo2_gadgets::ecc::chip::constants - Rust
+BaseFieldElem in halo2_gadgets::ecc::chip - Rust
+FullScalar in halo2_gadgets::ecc::chip - Rust
+ScalarVar in halo2_gadgets::ecc::chip - Rust
An element of the elliptic curve’s base field, that is used as a scalar
in variable-base scalar mul.
It is not true in general that a scalar field element fits in a curve’s
base field, and in particular it is untrue for the Pallas curve, whose
@@ -119,10 +119,10 @@
builds.
\ No newline at end of file
diff --git a/halo2_gadgets/ecc/chip/enum.ShortScalar.html b/halo2_gadgets/ecc/chip/enum.ShortScalar.html
index 792a5430f9..80a59a9a0a 100644
--- a/halo2_gadgets/ecc/chip/enum.ShortScalar.html
+++ b/halo2_gadgets/ecc/chip/enum.ShortScalar.html
@@ -1,4 +1,4 @@
-ShortScalar in halo2_gadgets::ecc::chip - Rust
+ShortScalar in halo2_gadgets::ecc::chip - Rust
+halo2_gadgets::ecc::chip - Rust
+EccChip in halo2_gadgets::ecc::chip - Rust
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.
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.
Enumeration of the set of fixed bases to be used in scalar mul.
TODO: When associated consts can be used as const generics, introduce
Self::NUM_WINDOWS, Self::NUM_WINDOWS_BASE_FIELD, Self::NUM_WINDOWS_SHORT
and use them to differentiate FixedPoints types.
Witnesses the given point as a private input to the circuit.
+ layouter: &mut impl Layouter<Base>,
+ value: Value<Affine>
+) -> Result<Self::Point, Error>
Witnesses the given point as a private input to the circuit.
This allows the point to be the identity, mapped to (0, 0) in
affine coordinates.
Witnesses the given point as a private input to the circuit.
+ layouter: &mut impl Layouter<Base>,
+ value: Value<Affine>
+) -> Result<Self::NonIdentityPoint, Error>
Witnesses the given point as a private input to the circuit.
This returns an error if the point is the identity.
Performs fixed-base scalar multiplication using a base field element as the scalar.
+) -> Result<Self::Point, Error>
Performs fixed-base scalar multiplication using a base field element as the scalar.
In the current implementation, this base field element must be output from another
instruction.
\ No newline at end of file
diff --git a/halo2_gadgets/ecc/chip/struct.EccConfig.html b/halo2_gadgets/ecc/chip/struct.EccConfig.html
index 9017537b6e..89978c9de6 100644
--- a/halo2_gadgets/ecc/chip/struct.EccConfig.html
+++ b/halo2_gadgets/ecc/chip/struct.EccConfig.html
@@ -1,4 +1,4 @@
-EccConfig in halo2_gadgets::ecc::chip - Rust
+EccConfig in halo2_gadgets::ecc::chip - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/ecc/chip/struct.EccPoint.html b/halo2_gadgets/ecc/chip/struct.EccPoint.html
index 893d4ad24f..fcc0b0fa86 100644
--- a/halo2_gadgets/ecc/chip/struct.EccPoint.html
+++ b/halo2_gadgets/ecc/chip/struct.EccPoint.html
@@ -1,4 +1,4 @@
-EccPoint in halo2_gadgets::ecc::chip - Rust
+EccPoint in halo2_gadgets::ecc::chip - Rust
+EccScalarFixed in halo2_gadgets::ecc::chip - Rust
+EccScalarFixedShort in halo2_gadgets::ecc::chip - Rust
+NonIdentityEccPoint in halo2_gadgets::ecc::chip - Rust
Witnesses the given point as a private input to the circuit.
+ layouter: &mut impl Layouter<C::Base>,
+ value: Value<C>
+) -> Result<Self::Point, Error>
Witnesses the given point as a private input to the circuit.
This allows the point to be the identity, mapped to (0, 0) in
affine coordinates.
Witnesses the given point as a private input to the circuit.
+ layouter: &mut impl Layouter<C::Base>,
+ value: Value<C>
+) -> Result<Self::NonIdentityPoint, Error>
Witnesses the given point as a private input to the circuit.
This returns an error if the point is the identity.
Performs fixed-base scalar multiplication using a base field element as the scalar.
+) -> Result<Self::Point, Error>
Performs fixed-base scalar multiplication using a base field element as the scalar.
In the current implementation, this base field element must be output from another
instruction.
\ No newline at end of file
diff --git a/halo2_gadgets/ecc/trait.FixedPoints.html b/halo2_gadgets/ecc/trait.FixedPoints.html
index de7a9414f8..d6b9df92f3 100644
--- a/halo2_gadgets/ecc/trait.FixedPoints.html
+++ b/halo2_gadgets/ecc/trait.FixedPoints.html
@@ -1,4 +1,4 @@
-FixedPoints in halo2_gadgets::ecc - Rust
+FixedPoints in halo2_gadgets::ecc - Rust
+halo2_gadgets - Rust
+PaddedWord in halo2_gadgets::poseidon - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/poseidon/struct.Word.html b/halo2_gadgets/poseidon/struct.Word.html
index 12dc0fc602..ea5e8d81cb 100644
--- a/halo2_gadgets/poseidon/struct.Word.html
+++ b/halo2_gadgets/poseidon/struct.Word.html
@@ -1,4 +1,4 @@
-Word in halo2_gadgets::poseidon - Rust
+Word in halo2_gadgets::poseidon - Rust
+PoseidonInstructions in halo2_gadgets::poseidon - Rust
-
\ No newline at end of file
diff --git a/halo2_gadgets/poseidon/trait.PoseidonSpongeInstructions.html b/halo2_gadgets/poseidon/trait.PoseidonSpongeInstructions.html
index e97281d418..672f54e70e 100644
--- a/halo2_gadgets/poseidon/trait.PoseidonSpongeInstructions.html
+++ b/halo2_gadgets/poseidon/trait.PoseidonSpongeInstructions.html
@@ -1,4 +1,4 @@
-PoseidonSpongeInstructions in halo2_gadgets::poseidon - Rust
+PoseidonSpongeInstructions in halo2_gadgets::poseidon - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/sha256/constant.BLOCK_SIZE.html b/halo2_gadgets/sha256/constant.BLOCK_SIZE.html
index 73285ff133..8ee99b355d 100644
--- a/halo2_gadgets/sha256/constant.BLOCK_SIZE.html
+++ b/halo2_gadgets/sha256/constant.BLOCK_SIZE.html
@@ -1,4 +1,4 @@
-BLOCK_SIZE in halo2_gadgets::sha256 - Rust
+BLOCK_SIZE in halo2_gadgets::sha256 - Rust
+halo2_gadgets::sha256 - Rust
+BlockWord in halo2_gadgets::sha256 - Rust
-
\ No newline at end of file
diff --git a/halo2_gadgets/sha256/struct.Sha256.html b/halo2_gadgets/sha256/struct.Sha256.html
index a7ffc43a0a..a60dba476a 100644
--- a/halo2_gadgets/sha256/struct.Sha256.html
+++ b/halo2_gadgets/sha256/struct.Sha256.html
@@ -1,4 +1,4 @@
-Sha256 in halo2_gadgets::sha256 - Rust
+Sha256 in halo2_gadgets::sha256 - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/sha256/struct.Sha256Digest.html b/halo2_gadgets/sha256/struct.Sha256Digest.html
index 2bad9be6dd..9eb9138e3e 100644
--- a/halo2_gadgets/sha256/struct.Sha256Digest.html
+++ b/halo2_gadgets/sha256/struct.Sha256Digest.html
@@ -1,4 +1,4 @@
-Sha256Digest in halo2_gadgets::sha256 - Rust
+Sha256Digest in halo2_gadgets::sha256 - Rust
+Table16Chip in halo2_gadgets::sha256 - Rust
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.
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.
\ No newline at end of file
diff --git a/halo2_gadgets/sha256/struct.Table16Config.html b/halo2_gadgets/sha256/struct.Table16Config.html
index dbd57017cc..6282d81fc5 100644
--- a/halo2_gadgets/sha256/struct.Table16Config.html
+++ b/halo2_gadgets/sha256/struct.Table16Config.html
@@ -1,4 +1,4 @@
-Table16Config in halo2_gadgets::sha256 - Rust
+Table16Config in halo2_gadgets::sha256 - Rust
+Sha256Instructions in halo2_gadgets::sha256 - Rust
-
Instructions to check the validity of a Merkle path of a given PATH_LENGTH.
The hash function used is a Sinsemilla instance with K-bit words.
The hash function can process MAX_WORDS words.
Compute MerkleCRH for a given layer. The hash that computes the root
+) -> Result<Self::Var, Error>
Compute MerkleCRH for a given layer. The hash that computes the root
is at layer 0, and the hashes that are applied to two leaves are at
layer MERKLE_DEPTH - 1 = layer 31.
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.
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.
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/cond_swap/struct.CondSwapConfig.html b/halo2_gadgets/utilities/cond_swap/struct.CondSwapConfig.html
index 080d6a9ea2..12f9e9fa8d 100644
--- a/halo2_gadgets/utilities/cond_swap/struct.CondSwapConfig.html
+++ b/halo2_gadgets/utilities/cond_swap/struct.CondSwapConfig.html
@@ -1,4 +1,4 @@
-CondSwapConfig in halo2_gadgets::utilities::cond_swap - Rust
+CondSwapConfig in halo2_gadgets::utilities::cond_swap - Rust
+CondSwapInstructions in halo2_gadgets::utilities::cond_swap - Rust
+halo2_gadgets::utilities::decompose_running_sum - Rust
+RunningSum in halo2_gadgets::utilities::decompose_running_sum - Rust
This panics if the length of the resulting slice would overflow a usize.
This is only possible when flattening a slice of arrays of zero-sized
types, and thus tends to be irrelevant in practice. If
size_of::<T>() > 0, this will never panic.
This panics if the length of the resulting slice would overflow a usize.
This is only possible when flattening a slice of arrays of zero-sized
types, and thus tends to be irrelevant in practice. If
size_of::<T>() > 0, this will never panic.
You can think of this like .get(index).unwrap_unchecked(). It’s UB
+to call .get_unchecked(len), even if you immediately convert to a
+pointer. And it’s UB to call .get_unchecked(..len + 1),
+.get_unchecked(..=len), or similar.
You can think of this like .get_mut(index).unwrap_unchecked(). It’s
+UB to call .get_unchecked_mut(len), even if you immediately convert
+to a pointer. And it’s UB to call .get_unchecked_mut(..len + 1),
+.get_unchecked_mut(..=len), or similar.
The returned range is half-open, which means that the end pointer
points one past the last element of the slice. This way, an empty
slice is represented by two equal pointers, and the difference between
@@ -416,7 +477,7 @@
Returns the two unsafe mutable pointers spanning the slice.
The returned range is half-open, which means that the end pointer
points one past the last element of the slice. This way, an empty
slice is represented by two equal pointers, and the difference between
@@ -427,7 +488,7 @@
#![feature(slice_swap_unchecked)]
let mut v = ["a", "b", "c", "d"];
// SAFETY: we know that 1 and 3 are both indices of the slice
unsafe { v.swap_unchecked(1, 3) };
assert!(v == ["a", "d", "c", "b"]);
Returns an iterator over all contiguous windows of length
size. The windows overlap. If the slice is shorter than
size, the iterator returns no values.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last chunk will not have length chunk_size.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -558,14 +619,14 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last up to chunk_size-1 elements will be omitted and can be
@@ -577,7 +638,7 @@
// These would be unsound:
// let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
// let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed
🔬This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
beginning of the slice.
The chunks are array references and do not overlap. If N does not divide the
length of the slice, then the last up to N-1 elements will be omitted and can be
@@ -653,7 +714,7 @@
// These would be unsound:
// let chunks: &[[_; 5]] = slice.as_chunks_unchecked_mut() // The slice length is not a multiple of 5
// let chunks: &[[_; 0]] = slice.as_chunks_unchecked_mut() // Zero-length chunks are never allowed
🔬This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable array references and do not overlap. If N does not divide
the length of the slice, then the last up to N-1 elements will be omitted and
@@ -733,7 +794,7 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last chunk will not have length chunk_size.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
end of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -806,14 +867,14 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last up to chunk_size-1 elements will be omitted and can be
@@ -825,7 +886,7 @@
🔬This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping runs
of elements using the predicate to separate them.
The predicate is called on two elements following themselves,
it means the predicate is called on slice[0] and slice[1]
then on slice[1] and slice[2] and so on.
🔬This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping mutable
runs of elements using the predicate to separate them.
The predicate is called on two elements following themselves,
it means the predicate is called on slice[0] and slice[1]
then on slice[1] and slice[2] and so on.
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (slice_split_at_unchecked)
Divides one slice into two at an index, without doing bounds checking.
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
Calling this method with an out-of-bounds index is undefined behavior
even if the resulting reference is not used. The caller has to ensure that
0 <= mid <= self.len().
Calling this method with an out-of-bounds index is undefined behavior
even if the resulting reference is not used. The caller has to ensure that
0 <= mid <= self.len().
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index.
The array will contain all indices from [0, N) (excluding
the index N itself) and the slice will contain all
indices from [N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one mutable slice into an array and a remainder slice at an index.
The array will contain all indices from [0, N) (excluding
the index N itself) and the slice will contain all
indices from [N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index from
the end.
The slice will contain all indices from [0, len - N) (excluding
the index len - N itself) and the array will contain all
indices from [len - N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one mutable slice into an array and a remainder slice at an
index from the end.
The slice will contain all indices from [0, len - N) (excluding
the index N itself) and the array will contain all
indices from [len - N, len) (excluding the index len itself).
Returns an iterator over subslices separated by elements that match
pred. The matched element is contained in the end of the previous
subslice as a terminator.
Returns an iterator over mutable subslices separated by elements that
match pred. The matched element is contained in the previous
subslice as a terminator.
Returns an iterator over subslices separated by elements that match
pred, starting at the end of the slice and working backwards.
The matched element is not contained in the subslices.
Returns an iterator over mutable subslices separated by elements that
match pred, starting at the end of the slice and working
backwards. The matched element is not contained in the subslices.
Returns an iterator over subslices separated by elements that match
pred, limited to returning at most n items. The matched element is
not contained in the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over mutable subslices separated by elements that match
pred, limited to returning at most n items. The matched element is
not contained in the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over subslices separated by elements that match
pred limited to returning at most n items. This starts at the end of
the slice and works backwards. The matched element is not contained in
the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over subslices separated by elements that match
pred limited to returning at most n items. This starts at the end of
the slice and works backwards. The matched element is not contained in
the subslices.
The last element returned, if any, will contain the remainder of the
slice.
🔬This is a nightly-only experimental API. (slice_split_once)
Splits the slice on the first element that matches the specified
predicate.
If any matching elements are resent in the slice, returns the prefix
before the match and suffix after. The matching element itself is not
included. If no elements match, returns None.
🔬This is a nightly-only experimental API. (slice_split_once)
Splits the slice on the last element that matches the specified
predicate.
If any matching elements are resent in the slice, returns the prefix
before the match and suffix after. The matching element itself is not
included. If no elements match, returns None.
let v = [String::from("hello"), String::from("world")]; // slice of `String`
assert!(v.iter().any(|e| e == "hello")); // search with `&str`
assert!(!v.iter().any(|e| e == "hi"));
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
Looks up a series of four elements in a slice of pairs sorted by
their second elements. The first is found, with a uniquely
determined position; the second and third are not found; the
@@ -1464,7 +1525,7 @@
Rotates the slice in-place such that the first mid elements of the
slice move to the end while the last self.len() - mid elements move to
the front. After calling rotate_left, the element previously at index
mid will become the first element in the slice.
Rotates the slice in-place such that the first self.len() - k
elements of the slice move to the end while the last k elements move
to the front. After calling rotate_right, the element previously at
index self.len() - k will become the first element in the slice.
Fills self with elements returned by calling a closure repeatedly.
This method uses a closure to create new values. If you’d rather
Clone a given value, use fill. If you want to use the Default
trait to generate values, you can pass Default::default as the
argument.
Transmute the slice to a slice of another type, ensuring alignment of the types is
maintained.
This method splits the slice into three distinct slices: prefix, correctly aligned middle
slice of a new type, and the suffix slice. How exactly the slice is split up is not
@@ -1879,10 +1940,10 @@
in a default (debug or release) execution will return a maximal middle part.
This method has no purpose when either input element T or output element U are
zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
Transmute the mutable slice to a mutable slice of another type, ensuring alignment of the
types is maintained.
This method splits the slice into three distinct slices: prefix, correctly aligned middle
slice of a new type, and the suffix slice. How exactly the slice is split up is not
@@ -1902,10 +1963,10 @@
in a default (debug or release) execution will return a maximal middle part.
This method has no purpose when either input element T or output element U are
zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
supported. It’s possible that, in the future, those restrictions might
be lifted in a way that would make it possible to see panics from this
method for something like LANES == 3.
-
supported. It’s possible that, in the future, those restrictions might
be lifted in a way that would make it possible to see panics from this
method for something like LANES == 3.
-
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted.
That is, for each element a and its following element b, a <= b must hold. If the
slice yields exactly zero or one element, true is returned.
Note that if Self::Item is only PartialOrd, but not Ord, the above definition
implies that this function returns false if any two consecutive items are not
comparable.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given comparator function.
Instead of using PartialOrd::partial_cmp, this function uses the given compare
function to determine the ordering of two elements. Apart from that, it’s equivalent to
is_sorted; see its documentation for more information.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given key extraction function.
Instead of comparing the slice’s elements directly, this function compares the keys of the
elements, as determined by f. Apart from that, it’s equivalent to is_sorted; see its
documentation for more information.
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/decompose_running_sum/struct.RunningSumConfig.html b/halo2_gadgets/utilities/decompose_running_sum/struct.RunningSumConfig.html
index 2fec3ed2d5..3e000080c2 100644
--- a/halo2_gadgets/utilities/decompose_running_sum/struct.RunningSumConfig.html
+++ b/halo2_gadgets/utilities/decompose_running_sum/struct.RunningSumConfig.html
@@ -1,4 +1,4 @@
-RunningSumConfig in halo2_gadgets::utilities::decompose_running_sum - Rust
+RunningSumConfig in halo2_gadgets::utilities::decompose_running_sum - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/fn.bitrange_subset.html b/halo2_gadgets/utilities/fn.bitrange_subset.html
index 85745ebe48..fd73abc674 100644
--- a/halo2_gadgets/utilities/fn.bitrange_subset.html
+++ b/halo2_gadgets/utilities/fn.bitrange_subset.html
@@ -1,4 +1,4 @@
-bitrange_subset in halo2_gadgets::utilities - Rust
+bitrange_subset in halo2_gadgets::utilities - Rust
+bool_check in halo2_gadgets::utilities - Rust
-
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/fn.decompose_word.html b/halo2_gadgets/utilities/fn.decompose_word.html
index e9190886d9..e7fcc0755a 100644
--- a/halo2_gadgets/utilities/fn.decompose_word.html
+++ b/halo2_gadgets/utilities/fn.decompose_word.html
@@ -1,4 +1,4 @@
-decompose_word in halo2_gadgets::utilities - Rust
+decompose_word in halo2_gadgets::utilities - Rust
+i2lebsp in halo2_gadgets::utilities - Rust
+lebs2ip in halo2_gadgets::utilities - Rust
+range_check in halo2_gadgets::utilities - Rust
Check that an expression is in the small range [0..range),
+) -> Expression<F>Expand description
Check that an expression is in the small range [0..range),
i.e. 0 ≤ word < range.
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/fn.ternary.html b/halo2_gadgets/utilities/fn.ternary.html
index 30867d083c..eee3ef4737 100644
--- a/halo2_gadgets/utilities/fn.ternary.html
+++ b/halo2_gadgets/utilities/fn.ternary.html
@@ -1,4 +1,4 @@
-ternary in halo2_gadgets::utilities - Rust
+ternary in halo2_gadgets::utilities - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/lookup_range_check/struct.RunningSum.html b/halo2_gadgets/utilities/lookup_range_check/struct.RunningSum.html
index 128e3e6ee3..f009b7058c 100644
--- a/halo2_gadgets/utilities/lookup_range_check/struct.RunningSum.html
+++ b/halo2_gadgets/utilities/lookup_range_check/struct.RunningSum.html
@@ -1,4 +1,4 @@
-RunningSum in halo2_gadgets::utilities::lookup_range_check - Rust
+RunningSum in halo2_gadgets::utilities::lookup_range_check - Rust
This panics if the length of the resulting slice would overflow a usize.
This is only possible when flattening a slice of arrays of zero-sized
types, and thus tends to be irrelevant in practice. If
size_of::<T>() > 0, this will never panic.
This panics if the length of the resulting slice would overflow a usize.
This is only possible when flattening a slice of arrays of zero-sized
types, and thus tends to be irrelevant in practice. If
size_of::<T>() > 0, this will never panic.
You can think of this like .get(index).unwrap_unchecked(). It’s UB
+to call .get_unchecked(len), even if you immediately convert to a
+pointer. And it’s UB to call .get_unchecked(..len + 1),
+.get_unchecked(..=len), or similar.
You can think of this like .get_mut(index).unwrap_unchecked(). It’s
+UB to call .get_unchecked_mut(len), even if you immediately convert
+to a pointer. And it’s UB to call .get_unchecked_mut(..len + 1),
+.get_unchecked_mut(..=len), or similar.
The returned range is half-open, which means that the end pointer
points one past the last element of the slice. This way, an empty
slice is represented by two equal pointers, and the difference between
@@ -416,7 +477,7 @@
Returns the two unsafe mutable pointers spanning the slice.
The returned range is half-open, which means that the end pointer
points one past the last element of the slice. This way, an empty
slice is represented by two equal pointers, and the difference between
@@ -427,7 +488,7 @@
#![feature(slice_swap_unchecked)]
let mut v = ["a", "b", "c", "d"];
// SAFETY: we know that 1 and 3 are both indices of the slice
unsafe { v.swap_unchecked(1, 3) };
assert!(v == ["a", "d", "c", "b"]);
Returns an iterator over all contiguous windows of length
size. The windows overlap. If the slice is shorter than
size, the iterator returns no values.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last chunk will not have length chunk_size.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -558,14 +619,14 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last up to chunk_size-1 elements will be omitted and can be
@@ -577,7 +638,7 @@
// These would be unsound:
// let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
// let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed
🔬This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
beginning of the slice.
The chunks are array references and do not overlap. If N does not divide the
length of the slice, then the last up to N-1 elements will be omitted and can be
@@ -653,7 +714,7 @@
// These would be unsound:
// let chunks: &[[_; 5]] = slice.as_chunks_unchecked_mut() // The slice length is not a multiple of 5
// let chunks: &[[_; 0]] = slice.as_chunks_unchecked_mut() // Zero-length chunks are never allowed
🔬This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
beginning of the slice.
The chunks are mutable array references and do not overlap. If N does not divide
the length of the slice, then the last up to N-1 elements will be omitted and
@@ -733,7 +794,7 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last chunk will not have length chunk_size.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
end of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -806,14 +867,14 @@
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
of the slice.
The chunks are mutable slices, and do not overlap. If chunk_size does not divide the
length of the slice, then the last up to chunk_size-1 elements will be omitted and can be
@@ -825,7 +886,7 @@
🔬This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping runs
of elements using the predicate to separate them.
The predicate is called on two elements following themselves,
it means the predicate is called on slice[0] and slice[1]
then on slice[1] and slice[2] and so on.
🔬This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping mutable
runs of elements using the predicate to separate them.
The predicate is called on two elements following themselves,
it means the predicate is called on slice[0] and slice[1]
then on slice[1] and slice[2] and so on.
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (slice_split_at_unchecked)
Divides one slice into two at an index, without doing bounds checking.
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
Calling this method with an out-of-bounds index is undefined behavior
even if the resulting reference is not used. The caller has to ensure that
0 <= mid <= self.len().
Calling this method with an out-of-bounds index is undefined behavior
even if the resulting reference is not used. The caller has to ensure that
0 <= mid <= self.len().
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index.
The array will contain all indices from [0, N) (excluding
the index N itself) and the slice will contain all
indices from [N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one mutable slice into an array and a remainder slice at an index.
The array will contain all indices from [0, N) (excluding
the index N itself) and the slice will contain all
indices from [N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index from
the end.
The slice will contain all indices from [0, len - N) (excluding
the index len - N itself) and the array will contain all
indices from [len - N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one mutable slice into an array and a remainder slice at an
index from the end.
The slice will contain all indices from [0, len - N) (excluding
the index N itself) and the array will contain all
indices from [len - N, len) (excluding the index len itself).
Returns an iterator over subslices separated by elements that match
pred. The matched element is contained in the end of the previous
subslice as a terminator.
Returns an iterator over mutable subslices separated by elements that
match pred. The matched element is contained in the previous
subslice as a terminator.
Returns an iterator over subslices separated by elements that match
pred, starting at the end of the slice and working backwards.
The matched element is not contained in the subslices.
Returns an iterator over mutable subslices separated by elements that
match pred, starting at the end of the slice and working
backwards. The matched element is not contained in the subslices.
Returns an iterator over subslices separated by elements that match
pred, limited to returning at most n items. The matched element is
not contained in the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over mutable subslices separated by elements that match
pred, limited to returning at most n items. The matched element is
not contained in the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over subslices separated by elements that match
pred limited to returning at most n items. This starts at the end of
the slice and works backwards. The matched element is not contained in
the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over subslices separated by elements that match
pred limited to returning at most n items. This starts at the end of
the slice and works backwards. The matched element is not contained in
the subslices.
The last element returned, if any, will contain the remainder of the
slice.
🔬This is a nightly-only experimental API. (slice_split_once)
Splits the slice on the first element that matches the specified
predicate.
If any matching elements are resent in the slice, returns the prefix
before the match and suffix after. The matching element itself is not
included. If no elements match, returns None.
🔬This is a nightly-only experimental API. (slice_split_once)
Splits the slice on the last element that matches the specified
predicate.
If any matching elements are resent in the slice, returns the prefix
before the match and suffix after. The matching element itself is not
included. If no elements match, returns None.
let v = [String::from("hello"), String::from("world")]; // slice of `String`
assert!(v.iter().any(|e| e == "hello")); // search with `&str`
assert!(!v.iter().any(|e| e == "hi"));
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
Looks up a series of four elements in a slice of pairs sorted by
their second elements. The first is found, with a uniquely
determined position; the second and third are not found; the
@@ -1464,7 +1525,7 @@
Rotates the slice in-place such that the first mid elements of the
slice move to the end while the last self.len() - mid elements move to
the front. After calling rotate_left, the element previously at index
mid will become the first element in the slice.
Rotates the slice in-place such that the first self.len() - k
elements of the slice move to the end while the last k elements move
to the front. After calling rotate_right, the element previously at
index self.len() - k will become the first element in the slice.
Fills self with elements returned by calling a closure repeatedly.
This method uses a closure to create new values. If you’d rather
Clone a given value, use fill. If you want to use the Default
trait to generate values, you can pass Default::default as the
argument.
Transmute the slice to a slice of another type, ensuring alignment of the types is
maintained.
This method splits the slice into three distinct slices: prefix, correctly aligned middle
slice of a new type, and the suffix slice. How exactly the slice is split up is not
@@ -1879,10 +1940,10 @@
in a default (debug or release) execution will return a maximal middle part.
This method has no purpose when either input element T or output element U are
zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
Transmute the mutable slice to a mutable slice of another type, ensuring alignment of the
types is maintained.
This method splits the slice into three distinct slices: prefix, correctly aligned middle
slice of a new type, and the suffix slice. How exactly the slice is split up is not
@@ -1902,10 +1963,10 @@
in a default (debug or release) execution will return a maximal middle part.
This method has no purpose when either input element T or output element U are
zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
supported. It’s possible that, in the future, those restrictions might
be lifted in a way that would make it possible to see panics from this
method for something like LANES == 3.
-
supported. It’s possible that, in the future, those restrictions might
be lifted in a way that would make it possible to see panics from this
method for something like LANES == 3.
-
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted.
That is, for each element a and its following element b, a <= b must hold. If the
slice yields exactly zero or one element, true is returned.
Note that if Self::Item is only PartialOrd, but not Ord, the above definition
implies that this function returns false if any two consecutive items are not
comparable.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given comparator function.
Instead of using PartialOrd::partial_cmp, this function uses the given compare
function to determine the ordering of two elements. Apart from that, it’s equivalent to
is_sorted; see its documentation for more information.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given key extraction function.
Instead of comparing the slice’s elements directly, this function compares the keys of the
elements, as determined by f. Apart from that, it’s equivalent to is_sorted; see its
documentation for more information.
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/struct.RangeConstrained.html b/halo2_gadgets/utilities/struct.RangeConstrained.html
index c5ad7e8ee2..5664a4d91e 100644
--- a/halo2_gadgets/utilities/struct.RangeConstrained.html
+++ b/halo2_gadgets/utilities/struct.RangeConstrained.html
@@ -1,4 +1,4 @@
-RangeConstrained in halo2_gadgets::utilities - Rust
+RangeConstrained in halo2_gadgets::utilities - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/trait.FieldValue.html b/halo2_gadgets/utilities/trait.FieldValue.html
index 08ff481a73..2aa6dd91cb 100644
--- a/halo2_gadgets/utilities/trait.FieldValue.html
+++ b/halo2_gadgets/utilities/trait.FieldValue.html
@@ -1,4 +1,4 @@
-FieldValue in halo2_gadgets::utilities - Rust
+FieldValue in halo2_gadgets::utilities - Rust
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/trait.UtilitiesInstructions.html b/halo2_gadgets/utilities/trait.UtilitiesInstructions.html
index 839c164198..f34314b181 100644
--- a/halo2_gadgets/utilities/trait.UtilitiesInstructions.html
+++ b/halo2_gadgets/utilities/trait.UtilitiesInstructions.html
@@ -1,4 +1,4 @@
-UtilitiesInstructions in halo2_gadgets::utilities - Rust
+UtilitiesInstructions in halo2_gadgets::utilities - Rust
\ No newline at end of file
+ Commit: CommitDomains<Affine, F, Hash>,
\ No newline at end of file
diff --git a/halo2_gadgets/utilities/trait.Var.html b/halo2_gadgets/utilities/trait.Var.html
index 756e9b4377..2038d0a49e 100644
--- a/halo2_gadgets/utilities/trait.Var.html
+++ b/halo2_gadgets/utilities/trait.Var.html
@@ -1,4 +1,4 @@
-Var in halo2_gadgets::utilities - Rust
+Var in halo2_gadgets::utilities - Rust
-
\ No newline at end of file
diff --git a/halo2_proofs/all.html b/halo2_proofs/all.html
index 3d26434517..b7836979bb 100644
--- a/halo2_proofs/all.html
+++ b/halo2_proofs/all.html
@@ -1,4 +1,4 @@
-List of all items in this crate
+List of all items in this crate
+best_fft in halo2_proofs::arithmetic - Rust
+best_multiexp in halo2_proofs::arithmetic - Rust
+compute_inner_product in halo2_proofs::arithmetic - Rust
+eval_polynomial in halo2_proofs::arithmetic - Rust
+g_to_lagrange in halo2_proofs::arithmetic - Rust
+kate_division in halo2_proofs::arithmetic - Rust
+lagrange_interpolate in halo2_proofs::arithmetic - Rust
+parallelize in halo2_proofs::arithmetic - Rust
+recursive_butterfly_arithmetic in halo2_proofs::arithmetic - Rust
+small_multiexp in halo2_proofs::arithmetic - Rust
+halo2_proofs::arithmetic - Rust
+CurveAffine in halo2_proofs::arithmetic - Rust
+CurveExt in halo2_proofs::arithmetic - Rust
+FftGroup in halo2_proofs::arithmetic - Rust
+Field in halo2_proofs::arithmetic - Rust
+halo2_proofs::circuit::floor_planner - Rust
+V1 in halo2_proofs::circuit::floor_planner - Rust
+V1Pass in halo2_proofs::circuit::floor_planner - Rust
+halo2_proofs::circuit - Rust
+RegionColumn in halo2_proofs::circuit::layouter - Rust
+halo2_proofs::circuit::layouter - Rust
+RegionShape in halo2_proofs::circuit::layouter - Rust
+RegionLayouter in halo2_proofs::circuit::layouter - Rust
+SyncDeps in halo2_proofs::circuit::layouter - Rust
+TableLayouter in halo2_proofs::circuit::layouter - Rust
+AssignedCell in halo2_proofs::circuit - Rust
+Cell in halo2_proofs::circuit - Rust
+NamespacedLayouter in halo2_proofs::circuit - Rust
+Region in halo2_proofs::circuit - Rust
+RegionIndex in halo2_proofs::circuit - Rust
+RegionStart in halo2_proofs::circuit - Rust
+SimpleFloorPlanner in halo2_proofs::circuit - Rust
+SimpleTableLayouter in halo2_proofs::circuit - Rust
+Table in halo2_proofs::circuit - Rust
+Value in halo2_proofs::circuit - Rust
+Chip in halo2_proofs::circuit - Rust
+Layouter in halo2_proofs::circuit - Rust
+TableLayouter in halo2_proofs::circuit - Rust
+halo2_proofs::dev::cost - Rust
+CircuitCost in halo2_proofs::dev::cost - Rust
+MarginalProofSize in halo2_proofs::dev::cost - Rust
+ProofSize in halo2_proofs::dev::cost - Rust
+CellValue in halo2_proofs::dev - Rust
+FailureLocation in halo2_proofs::dev - Rust
+VerifyFailure in halo2_proofs::dev - Rust
+circuit_dot_graph in halo2_proofs::dev - Rust
+halo2_proofs::dev - Rust
+halo2_proofs::dev::metadata - Rust
+Column in halo2_proofs::dev::metadata - Rust
+Constraint in halo2_proofs::dev::metadata - Rust
+Gate in halo2_proofs::dev::metadata - Rust
+Region in halo2_proofs::dev::metadata - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/dev/metadata/struct.VirtualCell.html b/halo2_proofs/dev/metadata/struct.VirtualCell.html
index 1d19d4668a..385ebddde5 100644
--- a/halo2_proofs/dev/metadata/struct.VirtualCell.html
+++ b/halo2_proofs/dev/metadata/struct.VirtualCell.html
@@ -1,4 +1,4 @@
-VirtualCell in halo2_proofs::dev::metadata - Rust
+VirtualCell in halo2_proofs::dev::metadata - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/plonk/struct.ConstraintSystem.html b/halo2_proofs/plonk/struct.ConstraintSystem.html
index 90d3dc5749..dd2e0c8de4 100644
--- a/halo2_proofs/plonk/struct.ConstraintSystem.html
+++ b/halo2_proofs/plonk/struct.ConstraintSystem.html
@@ -1,4 +1,4 @@
-ConstraintSystem in halo2_proofs::plonk - Rust
+ConstraintSystem in halo2_proofs::plonk - Rust
+Constraints in halo2_proofs::plonk - Rust
+FirstPhase in halo2_proofs::plonk - Rust
+Fixed in halo2_proofs::plonk - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/plonk/struct.FixedQuery.html b/halo2_proofs/plonk/struct.FixedQuery.html
index 7a453e0811..d88e5f777a 100644
--- a/halo2_proofs/plonk/struct.FixedQuery.html
+++ b/halo2_proofs/plonk/struct.FixedQuery.html
@@ -1,4 +1,4 @@
-FixedQuery in halo2_proofs::plonk - Rust
+FixedQuery in halo2_proofs::plonk - Rust
+Gate in halo2_proofs::plonk - Rust
+Instance in halo2_proofs::plonk - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/plonk/struct.InstanceQuery.html b/halo2_proofs/plonk/struct.InstanceQuery.html
index b4866184a4..e94c05bfe7 100644
--- a/halo2_proofs/plonk/struct.InstanceQuery.html
+++ b/halo2_proofs/plonk/struct.InstanceQuery.html
@@ -1,4 +1,4 @@
-InstanceQuery in halo2_proofs::plonk - Rust
+InstanceQuery in halo2_proofs::plonk - Rust
+PinnedConstraintSystem in halo2_proofs::plonk - Rust
+PinnedVerificationKey in halo2_proofs::plonk - Rust
+ProvingKey in halo2_proofs::plonk - Rust
+SecondPhase in halo2_proofs::plonk - Rust
+Selector in halo2_proofs::plonk - Rust
+TableColumn in halo2_proofs::plonk - Rust
+ThirdPhase in halo2_proofs::plonk - Rust
+VerifyingKey in halo2_proofs::plonk - Rust
+VirtualCell in halo2_proofs::plonk - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/plonk/struct.VirtualCells.html b/halo2_proofs/plonk/struct.VirtualCells.html
index aad3f7900b..1970b66743 100644
--- a/halo2_proofs/plonk/struct.VirtualCells.html
+++ b/halo2_proofs/plonk/struct.VirtualCells.html
@@ -1,4 +1,4 @@
-VirtualCells in halo2_proofs::plonk - Rust
+VirtualCells in halo2_proofs::plonk - Rust
+Assignment in halo2_proofs::plonk - Rust
+Circuit in halo2_proofs::plonk - Rust
+ColumnType in halo2_proofs::plonk - Rust
+FloorPlanner in halo2_proofs::plonk - Rust
+Phase in halo2_proofs::plonk - Rust
+halo2_proofs::poly::commitment - Rust
+Blind in halo2_proofs::poly::commitment - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/poly/commitment/trait.CommitmentScheme.html b/halo2_proofs/poly/commitment/trait.CommitmentScheme.html
index 7f0c95d6d6..0277577562 100644
--- a/halo2_proofs/poly/commitment/trait.CommitmentScheme.html
+++ b/halo2_proofs/poly/commitment/trait.CommitmentScheme.html
@@ -1,4 +1,4 @@
-CommitmentScheme in halo2_proofs::poly::commitment - Rust
+CommitmentScheme in halo2_proofs::poly::commitment - Rust
+MSM in halo2_proofs::poly::commitment - Rust
+Params in halo2_proofs::poly::commitment - Rust
+ParamsProver in halo2_proofs::poly::commitment - Rust
+ParamsVerifier in halo2_proofs::poly::commitment - Rust
+Prover in halo2_proofs::poly::commitment - Rust
+Verifier in halo2_proofs::poly::commitment - Rust
+Error in halo2_proofs::poly - Rust
+halo2_proofs::poly - Rust
+create_proof in halo2_proofs::poly::ipa::commitment - Rust
+verify_proof in halo2_proofs::poly::ipa::commitment - Rust
+halo2_proofs::poly::ipa::commitment - Rust
+IPACommitmentScheme in halo2_proofs::poly::ipa::commitment - Rust
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/poly/struct.Rotation.html b/halo2_proofs/poly/struct.Rotation.html
index a8626da5c7..6829767f54 100644
--- a/halo2_proofs/poly/struct.Rotation.html
+++ b/halo2_proofs/poly/struct.Rotation.html
@@ -1,4 +1,4 @@
-Rotation in halo2_proofs::poly - Rust
+Rotation in halo2_proofs::poly - Rust
+VerifierQuery in halo2_proofs::poly - Rust
-
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/poly/trait.Basis.html b/halo2_proofs/poly/trait.Basis.html
index 9cd50a4365..f977386ee1 100644
--- a/halo2_proofs/poly/trait.Basis.html
+++ b/halo2_proofs/poly/trait.Basis.html
@@ -1,4 +1,4 @@
-Basis in halo2_proofs::poly - Rust
+Basis in halo2_proofs::poly - Rust
+Guard in halo2_proofs::poly - Rust
+VerificationStrategy in halo2_proofs::poly - Rust
+halo2_proofs::transcript - Rust
+Blake2bRead in halo2_proofs::transcript - Rust
+Blake2bWrite in halo2_proofs::transcript - Rust
+Challenge255 in halo2_proofs::transcript - Rust
The Input type used to derive the challenge encoding. For example,
an input from the Poseidon hash would be a base field element;
an input from the Blake2b hash would be a [u8; 64].
Attaches the current defaultSubscriber to this type, returning a
diff --git a/halo2_proofs/transcript/struct.ChallengeScalar.html b/halo2_proofs/transcript/struct.ChallengeScalar.html
index 5bdbd9a035..f181c74b6a 100644
--- a/halo2_proofs/transcript/struct.ChallengeScalar.html
+++ b/halo2_proofs/transcript/struct.ChallengeScalar.html
@@ -1,4 +1,4 @@
-ChallengeScalar in halo2_proofs::transcript - Rust
+ChallengeScalar in halo2_proofs::transcript - Rust
+Keccak256Read in halo2_proofs::transcript - Rust
+Keccak256Write in halo2_proofs::transcript - Rust
+EncodedChallenge in halo2_proofs::transcript - Rust
+Transcript in halo2_proofs::transcript - Rust
+TranscriptRead in halo2_proofs::transcript - Rust
+TranscriptReadBuffer in halo2_proofs::transcript - Rust
+TranscriptWrite in halo2_proofs::transcript - Rust
+TranscriptWriterBuffer in halo2_proofs::transcript - Rust
+Help
-
\ No newline at end of file
diff --git a/search-index.js b/search-index.js
index 557d406078..57343015d0 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,7 +1,7 @@
var searchIndex = JSON.parse('{\
"halo2":{"doc":"halo2","t":"","n":[],"q":[],"d":[],"i":[],"f":[],"c":[],"p":[],"b":[]},\
-"halo2_gadgets":{"doc":"This crate provides various common gadgets and chips for …","t":"AAAAAQIIDDDIQQDQDQDQDQDQQDQKLLKLLLLLLLLLLLLLLLLLLLALLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLKKKLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKENDDDDDIIQENSDEELLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKRRRRFFFFDNENIIDDDDDQLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLKLLLLLLLLLLLKLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDIDGDQIIDLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLFLLLLLLLKLLLLLLKLKLKLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLRDQDDIQDDLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLQDIQQDIQDQDQQKQIQLLLLLLLLALLLLLLLLLLLLLLLLLKLLLLLLLLLLLLKKLLLLLLLLLLALLAKLLLLLLLLLLLLLLLLLLLKDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRIDLLLALLLLLLLLKLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRDDRRLLRLRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIDIIQLFFLLKLLAAFLLLLLFLLLFLALFFLLLLLKKLLLDDILLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["ecc","poseidon","sha256","sinsemilla","utilities","Base","BaseFitsInScalarInstructions","EccInstructions","FixedPoint","FixedPointBaseField","FixedPointShort","FixedPoints","FixedPoints","FullScalar","NonIdentityPoint","NonIdentityPoint","Point","Point","ScalarFixed","ScalarFixed","ScalarFixedShort","ScalarFixedShort","ScalarVar","ScalarVar","ShortScalar","X","X","add","add","add","add_incomplete","add_incomplete","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","chip","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","constrain_equal","constrain_equal","constrain_equal","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","extract_p","extract_p","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_base","from_inner","from_inner","from_inner","from_inner","from_inner","from_inner","init","init","init","init","init","init","init","init","init","inner","inner","inner","into","into","into","into","into","into","into","into","into","mul","mul","mul","mul","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","new","new","new","new","new","scalar_fixed_from_signed_short","scalar_var_from_base","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_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","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","BaseFieldElem","BaseFieldElem","EccChip","EccConfig","EccPoint","EccScalarFixed","EccScalarFixedShort","FixedPoint","FixedScalarKind","FixedScalarKind","FullScalar","FullWidth","NUM_WINDOWS","NonIdentityEccPoint","ScalarVar","ShortScalar","add","add_incomplete","advices","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config","configure","constants","constrain_equal","construct","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","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","generator","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lagrange_coeffs","loaded","lookup_config","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","point","point","scalar_fixed_from_signed_short","scalar_var_from_base","to_owned","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_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","u","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","x","x","y","y","z","FIXED_BASE_WINDOW_SIZE","H","NUM_WINDOWS","NUM_WINDOWS_SHORT","compute_lagrange_coeffs","find_zs_and_us","test_lagrange_coeffs","test_zs_and_us","Hash","Message","PaddedWord","Padding","PoseidonInstructions","PoseidonSpongeInstructions","Pow5Chip","Pow5Config","Sponge","StateWord","Word","Word","absorb","add_input","add_input","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone_into","clone_into","clone_into","config","configure","construct","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","finish_absorbing","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_inner","get_output","get_output","hash","init","init","init","init","init","init","init","init","initial_state","initial_state","inner","into","into","into","into","into","into","into","loaded","new","permute","permute","primitives","squeeze","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","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Absorbing","ConstantLength","Domain","Hash","Mds","P128Pow5T3","Padding","Spec","SpongeMode","Squeezing","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","constants","constants","constants","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","full_rounds","full_rounds","full_rounds","generate_constants","hash","init","init","init","init","init","init","initial_capacity_element","initial_capacity_element","into","into","into","into","into","name","name","padding","padding","partial_rounds","partial_rounds","partial_rounds","sbox","sbox","sbox","secure_mds","secure_mds","secure_mds","to_owned","to_owned","to_owned","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","BLOCK_SIZE","BlockWord","BlockWord","Sha256","Sha256Digest","Sha256Instructions","State","Table16Chip","Table16Config","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress","compress","config","configure","construct","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","digest","digest","digest","drop","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","initialization","initialization","initialization_vector","initialization_vector","into","into","into","into","into","load","loaded","new","to_owned","to_owned","to_owned","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","update","vzip","vzip","vzip","vzip","vzip","CellValue","CommitDomain","CommitDomains","CommitDomains","FixedPoints","HashDomain","HashDomains","HashDomains","Message","Message","MessagePiece","MessagePiece","NonIdentityPoint","Q","RunningSum","SinsemillaInstructions","X","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","extract","fmt","fmt","fmt","fmt","from","from","from","from","from_field_elem","from_pieces","from_subpieces","hash","hash_domain","hash_to_point","hash_to_point","init","init","init","init","inner","into","into","into","into","merkle","new","new","primitives","r","short_commit","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","vzip","vzip","vzip","vzip","witness_message_piece","SinsemillaChip","SinsemillaConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_to_point","init","init","into","into","load","loaded","lookup_config","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","MERKLE_CRH_PERSONALIZATION","MerkleInstructions","MerklePath","borrow","borrow_mut","calculate_root","chip","clone","clone_into","construct","deref","deref_mut","drop","fmt","from","hash_layer","init","into","to_owned","try_from","try_into","type_id","vzip","MerkleChip","MerkleConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_layer","hash_to_point","init","init","into","into","loaded","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","C","CommitDomain","HashDomain","INV_TWO_POW_K","K","Q","Q","Q_PERSONALIZATION","R","SINSEMILLA_S","S_PERSONALIZATION","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","hash","hash_to_point","init","init","into","into","new","new","short_commit","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","FieldValue","RangeConstrained","UtilitiesInstructions","Var","Var","bitrange_of","bitrange_subset","bool_check","borrow","borrow_mut","cell","clone","clone_into","cond_swap","decompose_running_sum","decompose_word","deref","deref_mut","drop","fmt","from","i2lebsp","init","inner","into","lebs2ip","load_private","lookup_range_check","num_bits","range_check","ternary","to_owned","try_from","try_into","type_id","unsound_unchecked","value","value","value","vzip","witness_short","CondSwapChip","CondSwapConfig","CondSwapInstructions","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","loaded","swap","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RunningSum","RunningSumConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_decompose","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_decompose","LookupRangeCheckConfig","RunningSum","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_check","copy_short_check","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_check","witness_short_check"],"q":[[0,"halo2_gadgets"],[5,"halo2_gadgets::ecc"],[201,"halo2_gadgets::ecc::chip"],[402,"halo2_gadgets::ecc::chip::constants"],[410,"halo2_gadgets::poseidon"],[546,"halo2_gadgets::poseidon::primitives"],[654,"halo2_gadgets::sha256"],[755,"halo2_gadgets::sinsemilla"],[848,"halo2_gadgets::sinsemilla::chip"],[893,"halo2_gadgets::sinsemilla::merkle"],[916,"halo2_gadgets::sinsemilla::merkle::chip"],[961,"halo2_gadgets::sinsemilla::primitives"],[1007,"halo2_gadgets::utilities"],[1048,"halo2_gadgets::utilities::cond_swap"],[1090,"halo2_gadgets::utilities::decompose_running_sum"],[1126,"halo2_gadgets::utilities::lookup_range_check"],[1164,"halo2_proofs::plonk::error"],[1165,"core::result"],[1166,"halo2_proofs::circuit"],[1167,"core::convert"],[1168,"core::clone"],[1169,"pasta_curves::arithmetic::curves"],[1170,"core::fmt"],[1171,"core::cmp"],[1172,"core::fmt"],[1173,"core::any"],[1174,"pasta_curves::pallas"],[1175,"pasta_curves::pallas"],[1176,"halo2_proofs::plonk::circuit"],[1177,"halo2_proofs::circuit"],[1178,"ff"],[1179,"halo2_proofs::circuit"],[1180,"ff"],[1181,"core::iter::traits::collect"],[1182,"halo2_proofs::plonk::circuit"],[1183,"core::iter::traits::iterator"],[1184,"core::ops::range"],[1185,"ff"]],"d":["Elliptic curve operations.","The Poseidon algebraic hash function.","The SHA-256 hash function.","The Sinsemilla hash function.","Utility gadgets.","Fixed points that can be multiplied by base field elements.","Instructions that can be implemented for a curve whose …","The set of circuit instructions required to use the ECC …","Precomputed multiples of a fixed point, for full-width …","Precomputed multiples of a fixed point, that can be …","Precomputed multiples of a fixed point, for short signed …","Defines the fixed points for a given instantiation of the …","Enumeration of the set of fixed bases to be used in scalar …","Fixed points that can be used with full-width scalar …","A point on a specific elliptic curve that is guaranteed to …","Variable representing a non-identity elliptic curve point.","A point on a specific elliptic curve.","Variable representing an elliptic curve point.","An integer representing an element of the scalar field for …","Variable representing a full-width element of the elliptic …","A signed short (64-bit) integer represented as an element …","Variable representing a signed short element of the …","An integer representing an element of the scalar field for …","Variable representing a scalar used in variable-base …","Fixed points that can be used with short scalar …","The affine short Weierstrass x-coordinate of a point on a …","Variable representing the affine short Weierstrass …","Performs complete point addition, returning a + b.","Returns self + other using complete addition.","Returns self + other using complete addition.","Performs incomplete point addition, returning a + b.","Returns self + other using incomplete addition. The …","","","","","","","","","","","","","","","","","","","Chip implementations for the ECC gadgets.","","","","","","","","","","","Constrains point a to be equal in value to point b.","Constrains this point to be equal in value to another …","Constrains this point to be equal in value to another …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a scalar from an existing base-field element.","Wraps the given point (obtained directly from an …","Wraps the given point (obtained directly from an …","Wraps the given x-coordinate (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","","","","","","","","","","Returns the inner point.","Returns the inner point.","Returns the inner x-coordinate.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Performs variable-base scalar multiplication, returning …","Returns [by] self.","Returns [by] self.","Returns [by] self.","Returns [by] self.","Performs fixed-base scalar multiplication using a …","Performs fixed-base scalar multiplication using a base …","Performs fixed-base scalar multiplication using a short …","Witnesses the given full-width scalar.","Witnesses the given full-width scalar.","Converts the given signed short scalar.","Constructs a new point with the given value.","Constructs a new point with the given value.","Converts a magnitude and sign that exists as variables in …","Converts a base field element that exists as a variable in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witnesses the given point as a private input to the …","Witnesses the given point as a private input to the …","Witnesses a full-width scalar to be used in fixed-base …","Witnesses a full-width scalar to be used in variable-base …","Type marker representing a base field element being used …","An element of the elliptic curve’s base field, that is …","An EccInstructions chip that uses 10 advice columns.","Configuration for EccChip.","A curve point represented in affine (x, y) coordinates, or …","A full-width scalar used for fixed-base scalar …","A signed short scalar used for fixed-base scalar …","Returns information about a fixed point that is required …","A trait representing the kind of scalar used with a …","The kind of scalar that this fixed point can be multiplied …","Type marker representing a full-width scalar for use in …","A full-width scalar. This is unimplemented for …","The number of windows that this scalar kind requires.","A non-identity point represented in affine (x, y) …","An enumeration of the possible types of scalars used in …","Type marker representing a signed 64-bit scalar for use in …","","","Advice columns needed by instructions in the ECC chip.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Side effects","Constants required for the ECC chip.","","Reconstructs this chip from the given config.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the generator for this fixed point.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the Lagrange coefficients for this fixed point.","","Lookup range check using 10-bit lookup table","","","","","Returns the value of this curve point, if known.","Returns the value of this curve point, if known.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the $u$ values for this fixed point.","","","","","","","","","","","","","","","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","Returns the $z$ value for this fixed point.","Window size for fixed-base scalar multiplication","$2^{FIXED_BASE_WINDOW_SIZE}$","Number of windows for a full-width scalar","Number of windows for a short signed scalar","For each window, we interpolate the $x$-coordinate. Here, …","For each window, $z$ is a field element such that for each …","Test that Lagrange interpolation coefficients reproduce …","Test that the z-values and u-values satisfy the conditions:","A Poseidon hash function, built around a sponge.","A message word provided by the prover.","A word from the padded input to a Poseidon sponge.","A padding word, that will be fixed in the circuit …","The set of circuit instructions required to use the …","The set of circuit instructions required to use the Sponge …","A Poseidon chip using an $x^5$ S-Box.","Configuration for a Pow5Chip.","A Poseidon sponge.","A word in the Poseidon state.","A word over which the Poseidon permutation operates.","Variable representing the word over which the Poseidon …","Absorbs an element into the sponge.","Adds the given input to the state.","","","","","","","","","","","","","","","","","","","","","","","","Configures this chip for use in a circuit.","Construct a Pow5Chip.","","","","","","","","","","","","","","","","","","","","","","Transitions the sponge into its squeezing state.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a Word gadget from the inner word.","Extracts sponge output from the given state.","","Hashes the given input.","","","","","","","","Initializes a new hasher.","Returns the initial empty state for the given domain.","","The word contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Constructs a new duplex sponge for the given Poseidon …","Applies the Poseidon permutation to the given state.","","The Poseidon algebraic hash function.","Squeezes an element from the sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The absorbing state of the Sponge.","A Poseidon hash function used with constant input length.","A domain in which a Poseidon hash function is being used.","A Poseidon hash function, built around a sponge.","The type used to hold the MDS matrix and its inverse.","Poseidon-128 using the $x^5$ S-box, with a width of 3 …","Iterator that outputs padding field elements.","A specification for a Poseidon permutation.","The state of the Sponge.","The squeezing state of the Sponge.","","","","","","","","","","","","","","","","","Generates (round_constants, mds, mds^-1) corresponding to …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The number of full rounds for this specification.","","","Generates (round_constants, mds, mds^-1) corresponding to …","Hashes the given input.","","","","","","Initializes a new hasher.","The initial capacity element, encoding this domain.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The name of this domain, for debug formatting purposes.","","Returns the padding to be appended to the input.","","The number of partial rounds for this specification.","","","The S-box for this specification.","","","Side-loaded index of the first correct and secure MDS that …","","","","","","","","","","","","","","","","","","","","","","","","","","The size of a SHA-256 block, in 32-bit words.","A word in a Table16 message block.","Variable representing a 32-bit word of the input block to …","A gadget that constrains a SHA-256 invocation. It supports …","The output of a SHA-256 circuit invocation.","The set of circuit instructions required to use the Sha256 …","Variable representing the SHA-256 internal state.","A chip that implements SHA-256 with a maximum lookup table …","Configuration for a Table16Chip.","","","","","","","","","","","","","","","","","Starting from the given initialized state, processes a …","","","Configures a circuit to include this chip.","Reconstructs this chip from the given config.","","","","","","","","","","","","Converts the given state into a message digest.","","Convenience function to compute hash of the data. It will …","","","","","","Retrieve result and consume hasher instance.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates an initial state from the output state of a …","","Places the SHA-256 IV in the circuit, returning the …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Create a new hasher instance.","","","","","","","","","","","","","","","","","","","Digest data, updating the internal state.","","","","","","A variable in the circuit.","Gadget representing a domain in which …","Trait allowing circuit’s Sinsemilla CommitDomains to be …","CommitDomains used in this instruction.","A type enumerating the fixed points used in CommitDomains.","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","Trait allowing circuit’s Sinsemilla HashDomains to be …","HashDomains used in this instruction.","A message to be hashed.","A message composed of Self::MessagePieces.","A message piece with a bitlength of some multiple of K.","A piece in a message containing a number of K-bit words. A …","A point output of Self::hash_to_point.","Returns the Q constant for this domain.","A cumulative sum z is used to decompose a Sinsemilla …","The set of circuit instructions required to use the …","The x-coordinate of a point output of Self::hash_to_point.","","","","","","","","","Chip implementations for the Sinsemilla gadgets.","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","Extracts the x-coordinate of the output of a Sinsemilla …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a MessagePiece from a field element.","Constructs a message from a vector of MessagePieces.","Constructs a MessagePiece by concatenating a sequence of …","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","Returns the HashDomain contained in this CommitDomain","Hashes a message to an ECC curve point. This returns both …","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","","","Returns the inner MessagePiece contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gadgets for implementing a Merkle tree with Sinsemilla.","Constructs a new HashDomain for the given domain.","Constructs a new CommitDomain for the given domain.","Implementation of Sinsemilla outside the circuit.","Returns the fixed point corresponding to the R constant …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","","","","","","","Witness a message piece given a field element. Returns a …","A chip that implements 10-bit Sinsemilla using a lookup …","Configuration for the Sinsemilla hash chip","","","","","","","","","","Side-effects","Reconstructs this chip from the given config.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Returns the lookup range check config used in this config.","","","","","","","","","","","","SWU hash-to-curve personalization for the Merkle CRH …","Instructions to check the validity of a Merkle path of a …","Gadget representing a Merkle path that proves a leaf …","","","Calculates the root of the tree containing the given leaf …","Chip implementing a Merkle hash using Sinsemilla as the …","","","Constructs a MerklePath.","","","","","Returns the argument unchanged.","Compute MerkleCRH for a given layer. The hash that …","","Calls U::from(self).","","","","","","Chip implementing MerkleInstructions.","Configuration for the MerkleChip implementation.","","","","","","","","","","Configures the MerkleChip.","Constructs a MerkleChip given a MerkleConfig.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","The largest integer such that $2^c \\\\leq (r_P - 1) / 2$, …","A domain in which $\\\\mathsf{SinsemillaCommit}$ and …","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","$\\\\frac{1}{2^K}$","Number of bits of each message piece in …","Returns the Sinsemilla $Q$ constant for this domain.","Returns the Sinsemilla $Q$ constant for this domain.","SWU hash-to-curve personalization for Sinsemilla $Q$ …","Returns the Sinsemilla $R$ constant for this domain.","The precomputed bases for the Sinsemilla hash function.","SWU hash-to-curve personalization for Sinsemilla $S$ …","","","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","Calls U::from(self).","Calls U::from(self).","Constructs a new HashDomain with a specific prefix string.","Constructs a new CommitDomain with a specific prefix …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","A type that has a value at either keygen or proving time.","A type representing a range-constrained field element.","Trait for utilities used across circuits.","Trait for a variable in the circuit.","Variable in the circuit.","Constructs a RangeConstrained<Value<F>> as a bitrange of …","Takes a specified subsequence of the little-endian bit …","Checks that an expression is either 1 or 0.","","","The cell at which this variable was allocated.","","","Gadget and chip for a conditional swap utility.","Decomposes an $n$-bit field element $\\\\alpha$ into $W$ …","Decompose a word alpha into window_num_bits bits …","","","","","Returns the argument unchanged.","The sequence of bits representing a u64 in little-endian …","","Returns the range-constrained inner type.","Calls U::from(self).","The u64 integer represented by an L-bit little-endian …","Load a variable.","Make use of a K-bit lookup table to decompose a field …","Returns the number of bits to which this cell is …","Check that an expression is in the small range [0..range), …","If a then b, else c. Returns (a * b) + (1 - a) * c.","","","","","Constructs a RangeConstrained<AssignedCell<F, F>> without …","Returns the value of this type.","The value allocated to this variable.","Extracts the range-constrained value from this …","","Witnesses a subset of the bits in value and constrains …","A chip implementing a conditional swap.","Configuration for the CondSwapChip.","Instructions for a conditional swap gadget.","","","","","","","","","","Configures this chip for use in a circuit.","Constructs a CondSwapChip given a CondSwapConfig.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Given an input pair (a,b) and a swap boolean flag, returns …","","","","","","","","","","","","The running sum $[z_0, …, z_W]$. If created in strict …","Configuration that provides methods for running sum …","","","","","","","perm MUST include the advice column z.","Decompose an existing variable alpha that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Decompose a field element alpha that is witnessed in this …","Configuration that provides methods for a lookup range …","The running sum $[z_0, …, z_W]$. If created in strict …","","","","","","","The running_sum advice column breaks the field element …","Range check on an existing cell that is copied into this …","Short range check on an existing cell that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Range check on a value that is witnessed in this helper.","Short range check on value that is witnessed in this …"],"i":[0,0,0,0,0,28,0,0,0,0,0,0,9,28,0,9,0,9,0,9,0,9,0,9,28,0,9,9,6,7,9,6,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,0,6,7,12,13,14,6,7,12,13,14,9,6,7,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,9,6,7,18,21,22,6,7,17,12,13,14,18,21,22,6,7,7,17,12,13,14,18,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,6,7,17,18,21,22,6,7,17,12,13,14,9,6,12,13,14,9,9,9,18,21,22,6,7,9,23,6,7,12,13,14,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,18,21,22,6,7,17,12,13,14,9,9,9,9,0,35,0,0,0,0,0,0,0,119,0,35,120,0,0,0,26,26,32,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,30,31,32,26,33,34,35,30,31,32,26,33,34,35,26,26,0,26,26,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,32,26,26,30,31,32,44,45,46,26,33,34,35,30,30,31,32,44,45,46,26,33,34,35,119,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,119,26,32,26,26,26,26,30,31,26,26,30,31,32,26,33,34,35,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,30,31,32,44,45,46,26,33,34,35,119,30,31,32,44,45,46,26,33,34,35,26,26,26,26,30,31,30,31,119,0,0,0,0,0,0,0,0,0,54,0,54,0,0,0,0,0,0,0,67,56,60,61,64,61,62,54,66,56,69,64,61,62,54,66,56,69,62,64,62,54,64,62,54,61,61,61,64,61,62,54,66,56,69,64,61,62,54,66,56,69,64,61,62,54,66,56,69,56,64,61,62,54,66,56,69,64,61,62,62,54,66,56,69,66,60,61,69,64,61,62,54,66,56,69,69,60,61,66,64,61,62,54,66,56,69,61,56,67,61,0,56,64,62,54,64,61,62,54,66,56,69,64,61,62,54,66,56,69,64,61,62,54,66,56,69,62,64,61,62,54,66,56,69,0,0,0,0,0,0,59,0,0,0,75,55,65,70,72,75,55,65,70,72,55,70,72,55,70,72,58,75,75,75,55,65,70,72,75,55,65,70,72,75,55,65,70,72,75,55,65,70,72,75,55,65,70,72,58,75,75,0,72,75,55,65,70,72,72,59,70,75,55,65,70,72,59,70,59,70,58,75,75,58,75,75,58,75,75,55,70,72,75,55,65,70,72,75,55,65,70,72,75,55,65,70,72,75,55,65,70,72,0,0,83,0,0,0,83,0,0,79,80,81,82,84,79,80,81,82,84,79,80,81,79,80,81,83,81,81,81,81,79,79,80,81,82,84,79,80,81,82,84,83,81,84,79,80,81,82,84,84,79,80,81,82,84,79,80,81,82,84,79,80,81,82,84,83,81,83,81,79,80,81,82,84,81,81,84,79,80,81,79,80,81,82,84,79,80,81,82,84,79,80,81,82,84,84,79,80,81,82,84,86,0,0,86,86,0,0,86,0,86,0,86,86,92,86,0,86,85,87,89,88,85,87,89,88,0,85,87,85,87,88,85,87,89,88,85,87,89,88,85,87,89,88,86,85,87,89,88,85,87,89,88,87,85,87,89,93,86,89,85,87,89,88,87,85,87,89,88,0,89,88,0,93,88,85,87,85,87,89,88,85,87,89,88,85,87,89,88,85,87,89,88,86,0,0,91,94,91,94,91,94,91,94,94,94,94,91,94,91,94,91,94,91,94,94,91,94,91,94,94,91,94,91,94,94,94,91,91,94,91,94,91,94,91,94,91,94,94,0,0,0,96,96,96,0,96,96,96,96,96,96,96,96,97,96,96,96,96,96,96,96,0,0,99,100,99,100,99,100,99,100,100,100,100,99,100,99,100,99,100,99,100,100,99,100,99,100,100,100,99,100,99,100,100,100,99,100,99,100,99,100,99,100,99,100,100,0,0,0,0,0,101,103,0,103,0,0,101,103,101,103,101,101,103,101,103,101,103,101,103,101,103,101,103,101,101,101,103,101,103,101,103,103,101,101,103,101,103,101,103,101,103,0,0,0,0,121,108,0,0,108,108,122,108,108,0,0,0,108,108,108,108,108,0,108,108,108,0,121,0,108,0,0,108,108,108,108,108,111,122,108,108,108,0,0,0,112,113,112,113,112,113,112,113,112,112,112,112,113,112,113,112,113,113,112,113,112,113,112,113,112,113,112,123,112,112,113,112,113,112,113,112,113,112,113,0,0,117,114,117,114,114,114,114,114,117,117,114,117,114,117,114,114,117,114,117,114,117,114,117,114,114,117,114,117,114,117,114,117,114,114,0,0,118,41,118,41,41,41,41,41,41,118,118,41,118,41,118,41,41,118,41,118,41,118,41,118,41,41,118,41,118,41,118,41,118,41,41,41],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,-2,-3,-4],[[2,[1]]],[],3,[4,5],[4,5]],[[[6,[-1,-2]],-3,-4],[[2,[[7,[-1,-2]],1]]],8,[[9,[-1]]],3,[[4,[[7,[-1,-2]]]],5]],[[[7,[-1,-2]],-3,-4],[[2,[[7,[-1,-2]],1]]],8,[[9,[-1]],5,10,11],3,[[4,[[7,[-1,-2]]]],5]],[[-1,-2],[[2,[1]]],[],3],[[[6,[-1,-2]],-3,[6,[-1,-2]]],[[2,[[6,[-1,-2]],1]]],8,[[9,[-1]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[6,[-1,-2]]],[[6,[-1,-2]]],[5,8],[5,[9,[-1]]]],[[[7,[-1,-2]]],[[7,[-1,-2]]],[5,8],[5,[9,[-1]],5,10,11]],[[[12,[-1,-2]]],[[12,[-1,-2]]],[5,8],[5,[9,[-1]]]],[[[13,[-1,-2]]],[[13,[-1,-2]]],[5,8],[5,[9,[-1]]]],[[[14,[-1,-2]]],[[14,[-1,-2]]],[5,8],[5,[9,[-1]]]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],[[2,[15,1]]],[],3],[[[6,[-1,-2]],-3,-4],[[2,[15,1]]],8,[[9,[-1]]],3,[[4,[[7,[-1,-2]]]],5]],[[[7,[-1,-2]],-3,-4],[[2,[15,1]]],8,[[9,[-1]],5,10,11],3,[[4,[[7,[-1,-2]]]],5]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[-1,[],[4,5]],[[[6,[-1,-2]]],[[17,[-1,-2]]],8,[[9,[-1]]]],[[[7,[-1,-2]]],[[17,[-1,-2]]],8,[[9,[-1]],5,10,11]],[[[18,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[21,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[22,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[6,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[7,[-1,-2]],19],20,[10,8],[10,[9,[-1]],5,10,11]],[[[17,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[12,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[13,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[[[14,[-1,-2]],19],20,[10,8],[10,[9,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[6,[-1,-2]]],[[7,[-1,-2]]],8,[[9,[-1]],5,10,11]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-2,-3],[[2,[[18,[-1,-2]],1]]],8,[[23,[-1]]],3],[-2,[[6,[-1,-2]]],8,[[9,[-1]]]],[-2,[[7,[-1,-2]]],8,[[9,[-1]],5,10,11]],[-2,[[17,[-1,-2]]],8,[[9,[-1]]]],[-2,[[12,[-1,-2]]],8,[[9,[-1]]]],[-2,[[13,[-1,-2]]],8,[[9,[-1]]]],[-2,[[14,[-1,-2]]],8,[[9,[-1]]]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[[6,[-1,-2]]],[],8,[[9,[-1]]]],[[[7,[-1,-2]]],[],8,[[9,[-1]],5,10,11]],[[[17,[-1,-2]]],[],8,[[9,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[2,[15,1]]],[],3],[[[6,[-1,-2]],-3,[18,[-1,-2]]],[[2,[[15,[[7,[-1,-2]],[18,[-1,-2]]]],1]]],8,[[9,[-1]]],3],[[[12,[-1,-2]],-3,[21,[-1,-2]]],[[2,[[15,[[7,[-1,-2]],[21,[-1,-2]]]],1]]],8,[[9,[-1]]],3],[[[13,[-1,-2]],-3],[[2,[[7,[-1,-2]],1]]],8,[[9,[-1]]],3],[[[14,[-1,-2]],-3,[22,[-1,-2]]],[[2,[[15,[[7,[-1,-2]],[22,[-1,-2]]]],1]]],8,[[9,[-1]]],3],[[-1,-2],[[2,[15,1]]],[],3],[[-1,-2],[[2,[1]]],[],3],[[-1,-2],[[2,[15,1]]],[],3],[[-2,-3,24],[[2,[[18,[-1,-2]],1]]],8,[[9,[-1]]],3],[[-2,-3,24],[[2,[[21,[-1,-2]],1]]],8,[[9,[-1]]],3],[[-2,-3,15],[[2,[[22,[-1,-2]],1]]],8,[[9,[-1]]],3],[[-2,-3,[24,[-1]]],[[2,[[6,[-1,-2]],1]]],8,[[9,[-1]]],3],[[-2,-3,[24,[-1]]],[[2,[[7,[-1,-2]],1]]],8,[[9,[-1]],5,10,11],3],[[-1,-2,15],[[2,[1]]],[],3],[[-1,-2],[[2,[1]]],[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2,[24,[-3]]],[[2,[1]]],[],3,[]],[[-1,-2,[24,[-3]]],[[2,[1]]],[],3,[]],[[-1,-2,24],[[2,[1]]],[],3],[[-1,-2,24],[[2,[1]]],[],3],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[26,[-1]],-2,-3,-4],[[2,[1]]],[[28,[27]]],[[3,[29]]],[4,5],[4,5]],[[[26,[-1]],-2],[[2,[1]]],[[28,[27]]],[[3,[29]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[30,30],[31,31],[[[32,[-1]]],[[32,[-1]]],[5,[28,[27]]]],[[[26,[-1]]],[[26,[-1]]],[5,[28,[27]]]],[33,33],[34,34],[35,35],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[26,[-1]]],[],[[28,[27]]]],[[[36,[29]],[39,[[38,[37]]]],[39,[[38,[40]]]],[41,[29]]]],0,[[[26,[-1]],-2],[[2,[15,1]]],[[28,[27]]],[[3,[29]]]],[[],[[26,[-1]]],[[28,[27]]]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[[[32,[-1]],[32,[-1]]],42,[43,[28,[27]]]],[[[26,[-1]],[26,[-1]]],42,[43,[28,[27]]]],[-1,[],[4,5]],[[30,19],20],[[31,19],20],[[[32,[-1]],19],20,[10,[28,[27]]]],[[44,19],20],[[45,19],20],[[46,19],20],[[[26,[-1]],19],20,[10,[28,[27]]]],[[33,19],20],[[34,19],20],[[35,19],20],[31,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[47,[39]]],[]],[[[26,[-1]]],[],[[28,[27]]]],0,[[[26,[-1]],-2],[[2,[15,1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2],[[2,[15,1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2,[48,[29,29]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2],[[2,[15,1]]],[[28,[27]]],[[3,[29]]]],[30,[[24,[27]]]],[31,[[24,[27]]]],[[[26,[-1]],-2,[15,[[48,[29,29]],[48,[29,29]]]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,[[47,[39]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[26,[-1]],-2,[24,[27]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2,[24,[27]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2,[24,[49]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[[[26,[-1]],-2,[24,[49]]],[[2,[1]]],[[28,[27]]],[[3,[29]]]],[30,[[48,[29,29]]]],[31,[[48,[29,29]]]],[30,[[48,[29,29]]]],[31,[[48,[29,29]]]],[-1,[[47,[50]]],[]],0,0,0,0,[[-1,16],[[47,[39]]],8],[[-1,16],[[51,[[47,[[15,[50,39]]]]]]],8],[[-1,16],15,8],[[-1,[52,[50]],[52,[[39,[[39,[53]]]]]],16],15,8],0,0,0,0,0,0,0,0,0,0,0,0,[[[56,[-1,-4,-2,[55,[[54,[-1]]]],-3]],-5,[54,[-1]]],[[2,[15,1]]],57,[[58,[-1]]],[[59,[-1]]],[[60,[-1,-2,-3]]],[[3,[-1]]]],[[-1,-3,39,[55,[[54,[-2]]]]],[[2,[39,1]]],[],[],[[3,[-2]]]],[[[61,[-1]],-2,39,[55,[[54,[-1]]]]],[[2,[39,1]]],57,[[3,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[62,[-1]]],63,57],[[[64,[-1]]],[[64,[-1]]],[5,57]],[[[62,[-1]]],[[62,[-1]]],[5,57]],[[[54,[-1]]],[[54,[-1]]],[5,57]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[61,[-1]]],[],57],[[[36,[-1]],[39,[[38,[37]]]],[38,[37]],[39,[[38,[40]]]],[39,[[38,[40]]]]],[[64,[-1]]],57],[[[64,[-1]]],[[61,[-1]]],57],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[16,15],[[[56,[-1,-4,-2,[55,[[54,[-1]]]],-3]],-5],[[2,[[56,[-1,-4,-2,65,-3]],1]]],57,[[58,[-1]]],[[59,[-1]]],[[60,[-1,-2,-3]]],[[3,[-1]]]],[[[64,[-1]],19],20,[10,57]],[[[61,[-1]],19],20,[10,57]],[[[62,[-1]],19],20,[10,57]],[[[54,[-1]],19],20,[10,57]],[[[66,[-1,-3,-2]],19],20,[10,57],[10,[58,[-1]]],[10,[67,[-1,-2]]]],[[[56,[-1,-4,-2,-5,-3]],19],20,[10,57],[10,[58,[-1]]],[10,[59,[-1]]],[10,[60,[-1,-2,-3]]],[10,68]],[[[69,[-1,-4,-2,-3]],19],20,[10,57],[10,[58,[-1]]],[10,[59,[-1]]],[10,[60,[-1,-2,-3]]]],[-1,-1,[]],[-1,-1,[]],[[[48,[-1,-1]]],[[62,[-1]]],57],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[66,[-1,-3,-2]]],57,[[58,[-1]]],[[67,[-1,-2]]]],[39,65],[39,65],[[[69,[-1,-3,-2,70]],-4,[39,[[48,[-1,-1]]]]],[[2,[[48,[-1,-1]],1]]],71,[[58,[-1]]],[[60,[-1,-2,70]]],[[3,[-1]]]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[-4,-5],[[2,[[69,[-1,-4,-2,-3]],1]]],57,[[58,[-1]]],[[59,[-1]]],[[60,[-1,-2,-3]]],[[3,[-1]]]],[[-1,-3],[[2,[39,1]]],[],[],[[3,[-2]]]],[[[61,[-1]],-2],[[2,[39,1]]],57,[[3,[-1]]]],[[[66,[-1,-3,-2]]],[],57,[[58,[-1]]],[[67,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1]]],[],57],[[-4,-5],[[2,[[56,[-1,-4,-2,[55,[[54,[-1]]]],-3]],1]]],57,[[58,[-1]]],[[59,[-1]]],[[60,[-1,-2,-3]]],[[3,[-1]]]],[[-1,-3,39],[[2,[39,1]]],[],[],[[3,[-2]]]],[[[61,[-1]],-2,39],[[2,[39,1]]],57,[[3,[-1]]]],0,[[[56,[-1,-4,-2,65,-3]],-5],[[2,[[48,[-1,-1]],1]]],57,[[58,[-1]]],[[59,[-1]]],[[60,[-1,-2,-3]]],[[3,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[[[62,[-1]]],[[24,[-1]]],57],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[55,[-1]]],[[55,[-1]]],5],[70,70],[[[72,[-1,-2,-3]]],[[72,[-1,-2,-3]]],[5,57],[5,[58,[-1]]],[5,[59,[-1]]]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[],[[15,[[47,[[39,[-1]]]],[73,[-1]],[73,[-1]]]]],[]],[[],[[15,[[47,[[39,[29]]]],[73,[29]],[73,[29]]]]]],[[],[[15,[[47,[[39,[74]]]],[73,[74]],[73,[74]]]]]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[16,15],[16,15],[16,15],[[75,19],20],[[[55,[-1]],19],20,10],[[[65,[-1]],19],20,10],[[70,19],20],[[[72,[-1,-2,-3]],19],20,57,[[58,[-1]]],[[59,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[[],16],[[],[[15,[[47,[[39,[-1]]]],[73,[-1]],[73,[-1]]]]],[76,77]],[[[72,[-1,-2,70]],[39,[-1]]],-1,71,[[58,[-1]]]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],[[72,[-1,-2,-3]]],57,[[58,[-1]]],[[59,[-1]]]],[[],-1,[]],[[],-1,71],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],78],[[],78],[16],[16],[[],16],[[],16],[[],16],[-1,-1,[]],[29,29],[74,74],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[79,79],[80,80],[81,81],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-3,39],[[2,[1]]],[],[],[[3,[-2]]]],[[81,-1,39],[[2,[1]]],[[3,[29]]]],[81],[[[36,[29]]]],[[],81],[[],79],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[[-1,-3],[[2,[39,1]]],[],[],[[3,[-2]]]],[[81,-1],[[2,[39,1]]],[[3,[29]]]],[[-2,-3,52],[[2,[82,1]]],57,[[83,[-1]]],[[3,[-1]]]],[16,15],[16,15],[16,15],[16,15],[16,15],[[[84,[-1,-2]],-3],[[2,[82,1]]],57,[[83,[-1]]],[[3,[-1]]]],[[79,19],20],[[80,19],20],[[81,19],20],[[[82,[-1]],19],20,10],[[[84,[-1,-2]],19],20,[10,57],[10,[83,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[[],16],[[],16],[[],16],[[-1,-3],[[2,[1]]],[],[],[[3,[-2]]]],[[81,-1],[[2,[1]]],[[3,[29]]]],[[-1,-3],[[2,[1]]],[],[],[[3,[-2]]]],[[81,-1],[[2,[0,1]]],[[3,[29]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[80,-1],[[2,[15,1]]],[[3,[29]]]],[81],[[-2,-3],[[2,[[84,[-1,-2]],1]]],57,[[83,[-1]]],[[3,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[[[84,[-1,-2]],-3,52],[[2,[15,1]]],57,[[83,[-1]]],[[3,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[85,[-1,-2]]],[[85,[-1,-2]]],[5,8],[[86,[-1]],5,10,11,5]],[[[87,[-1,-2]]],[[87,[-1,-2]]],[5,8],[[86,[-1]],5,10,11,5]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[88,[-1,-2,-3]],-4,[85,[-1,-2]],[21,[-1,-3]]],[[2,[[15,[[7,[-1,-3]],47]],1]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11],3],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[16,15],[16,15],[[]],[[[85,[-1,-2]],19],20,[10,8],[[86,[-1]],5,10,11,10]],[[[87,[-1,-2]],19],20,[10,8],[[86,[-1]],5,10,11,10]],[[[89,[-1,-2,-3]],19],20,[10,8],[[86,[-1]],5,10,11,10],[[9,[-1]],5,10,11,10]],[[[88,[-1,-2,-3]],19],20,[10,8],[[86,[-1]],5,10,11,10],[[9,[-1]],5,10,11,10]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-2,-3,24,16],[[2,[[87,[-1,-2]],1]]],8,[[86,[-1]],5,10,11],3],[[-2,[47,[[87,[-1,-2]]]]],[[85,[-1,-2]]],8,[[86,[-1]],5,10,11]],[[-2,-3,-4],[[2,[[87,[-1,-2]],1]]],8,[[86,[-1]],5,10,11],3,90],[[[89,[-1,-2,-3]],-4,[85,[-1,-2]]],[[2,[[15,[[17,[-1,-3]],47]],1]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11],3],[-1,-2,[],[]],[[-1,-2,-3],[[2,[[15,[47]],1]]],[],3,[]],[[[89,[-1,-2,-3]],-4,[85,[-1,-2]]],[[2,[[15,[[6,[-1,-3]],47]],1]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11],3],[[],16],[[],16],[[],16],[[],16],[[[87,[-1,-2]]],[],8,[[86,[-1]],5,10,11]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[-2,-3],[[89,[-1,-2,-3]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11]],[[-2,-3],[[88,[-1,-2,-3]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11]],0,[-1,[],[]],[[[88,[-1,-2,-3]],-4,[85,[-1,-2]],[21,[-1,-3]]],[[2,[[15,[[17,[-1,-3]],47]],1]]],8,[[86,[-1]],5,10,11],[[9,[-1]],5,10,11],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2,24,16],[[2,[1]]],[],3],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[91,[-1,-3,-2]]],[[91,[-1,-3,-2]]],[[92,[27]],5],[[28,[27]],5],[[93,[27,-2,-1]],5]],[[[94,[-1,-3,-2]]],[[94,[-1,-3,-2]]],[[92,[27]],5],[[28,[27]],5],[[93,[27,-2,-1]],5]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[94,[-1,-3,-2]]],[],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[[[36,[29]],[39,[[38,[37]]]],[38,[37]],[38,[40]],[15,[95,95,95]],[41,[29]]]],[[],[[94,[-1,-3,-2]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[[91,[-1,-3,-2]],[91,[-1,-3,-2]]],42,[[92,[27]],43],[[28,[27]],43],[[93,[27,-2,-1]],43]],[[[94,[-1,-3,-2]],[94,[-1,-3,-2]]],42,[[92,[27]],43],[[28,[27]],43],[[93,[27,-2,-1]],43]],[[]],[[[91,[-1,-3,-2]],19],20,[[92,[27]],10],[[28,[27]],10],[[93,[27,-2,-1]],10]],[[[94,[-1,-3,-2]],19],20,[[92,[27]],10],[[28,[27]],10],[[93,[27,-2,-1]],10]],[-1,-1,[]],[-1,-1,[]],[[[94,[-1,-3,-2]],-4,27],[[2,[[15,[47]],1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[[[91,[-1,-3,-2]],-4],[[2,[1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],[[[94,[-1,-3,-2]]],[],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[[[91,[-1,-3,-2]]],[[41,[29]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1,-3,-2]],-4,[24,[29]],16],[[2,[1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1,-2]],-3],[[2,[1]]],8,[[97,[-1]],5],3],0,[[[96,[-1,-2]]],[[96,[-1,-2]]],[5,8],[[97,[-1]],5,5]],[[-1,-2],15,[],[]],[[[39,[-2]],[24,[98]],[24,[39]]],[[96,[-1,-2]]],8,[[97,[-1]],5]],[16,-1,[]],[16,-1,[]],[16,15],[[[96,[-1,-2]],19],20,[10,8],[[97,[-1]],5,10]],[-1,-1,[]],[[-1,-2,-3,16],[[2,[1]]],[],3,[]],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[99,[-1,-3,-2]]],[[99,[-1,-3,-2]]],[[92,[27]],5],[[28,[27]],5],[[93,[27,-2,-1]],5]],[[[100,[-1,-3,-2]]],[[100,[-1,-3,-2]]],[[92,[27]],5],[[28,[27]],5],[[93,[27,-2,-1]],5]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[100,[-1,-3,-2]]],[],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[[[36,[29]],[91,[-1,-3,-2]]],[[99,[-1,-3,-2]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[[[99,[-1,-3,-2]]],[[100,[-1,-3,-2]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[[99,[-1,-3,-2]],[99,[-1,-3,-2]]],42,[[92,[27]],43],[[28,[27]],43],[[93,[27,-2,-1]],43]],[[[100,[-1,-3,-2]],[100,[-1,-3,-2]]],42,[[92,[27]],43],[[28,[27]],43],[[93,[27,-2,-1]],43]],[[]],[[[99,[-1,-3,-2]],19],20,[[92,[27]],10],[[28,[27]],10],[[93,[27,-2,-1]],10]],[[[100,[-1,-3,-2]],19],20,[[92,[27]],10],[[28,[27]],10],[[93,[27,-2,-1]],10]],[-1,-1,[]],[-1,-1,[]],[[[100,[-1,-3,-2]],-4,27,16],[[2,[1]]],[[92,[27]],11],[[28,[27]]],[[93,[27,-2,-1]],11],[[3,[29]]]],[[[100,[-1,-3,-2]],-4,27],[[2,[[15,[[47,[47]]]],1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[[[100,[-1,-3,-2]]],[],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]]],[[[100,[-1,-3,-2]],-4,[15,[[24,[29]]]],[24,[42]]],[[2,[15,1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[100,[-1,-3,-2]],-4,[24,[29]],16],[[2,[1]]],[[92,[27]]],[[28,[27]]],[[93,[27,-2,-1]]],[[3,[29]]]],0,0,0,0,0,[101,102],[103,102],0,[103,102],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[101,101],[[-1,-2],15,[],[]],[[103,-1,49],[[104,[102]]],105],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[101,19],20],[[103,19],20],[-1,-1,[]],[-1,-1,[]],[[101,-1],[[104,[29]]],105],[[101,-1],[[104,[102]]],105],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[106,101],[106,103],[[103,-1,49],[[104,[29]]],105],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[[[24,[-1]],[107,[16]]],[[108,[-1,[24,[-1]]]]],109],[[-1,[107,[16]]],-1,109],[[[110,[-1]]],[[110,[-1]]],71],[-1,-2,[],[]],[-1,-2,[],[]],[-1,63,[]],[[[108,[-1,-2]]],[[108,[-1,-2]]],[5,57],[5,[111,[-1]]]],[[-1,-2],15,[],[]],0,0,[[-1,16,16],[[47,[53]]],109],[16,-1,[]],[16,-1,[]],[16,15],[[[108,[-1,-2]],19],20,[10,57],[10,[111,[-1]]]],[-1,-1,[]],[50,[[39,[42]]]],[[],16],[[[108,[-1,-2]]],-2,57,[[111,[-1]]]],[-1,-2,[],[]],[[[39,[42]]],50],[[-1,-3,[38,[37]],[24,[-2]]],[[2,[1]]],[],[],[[3,[-2]]]],0,[[[108,[-1,-2]]],16,57,[[111,[-1]]]],[[[110,[-1]],16],[[110,[-1]]],71],[[[110,[-1]],[110,[-1]],[110,[-1]]],[[110,[-1]]],57],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[[[48,[-1,-1]],16],[[108,[-1,[48,[-1,-1]]]]],57],[-1,[[24,[-2]]],[],[]],[-1,[[24,[-2]]],[],[]],[[[108,[-1,[48,[-1,-1]]]]],[[108,[-1,[24,[-1]]]]],57],[-1,-2,[],[]],[[[41,[-1]],-2,[24,[-1]],[107,[16]]],[[2,[[108,[-1,[48,[-1,-1]]]],1]]],109,[[3,[-1]]]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1]]],[[112,[-1]]],5],[113,113],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[112,[-1]]],[],57],[[[36,[-1]],[39,[[38,[37]]]]],113,71],[113,[[112,[-1]]],71],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[113,113],42],[[[112,[-1]],19],20,10],[[113,19],20],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1]]],[],57],[[-1,-3,[15,[[24,[-2]]]],[24,[42]]],[[2,[15,1]]],[],[],[[3,[-2]]]],[[[112,[-1]],-2,[15,[[24,[-1]]]],[24,[42]]],[[2,[15,1]]],71,[[3,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[114,[-1]]],[[114,[-1]]],[5,109]],[[-1,-2],15,[],[]],[[[36,[-1]],115,[38,[37]]],[[114,[-1]]],109],[[[114,[-1]],[116,[-1]],16,[48,[-1,-1]],42,16,16],[[2,[[117,[-1]],1]]],109],[[[117,[-1]]],[[47,[[48,[-1,-1]]]]],109],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[[114,[-1]],[114,[-1]]],42,[43,109]],[[[117,[-1]],19],20,[10,109]],[[[114,[-1]],19],20,[10,109]],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[114,[-1]],[116,[-1]],16,[24,[-1]],42,16,16],[[2,[[117,[-1]],1]]],109],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[41,[-1]]],[[41,[-1]]],[5,109]],[[-1,-2],15,[],[]],[[[36,[-1]],[38,[37]],95],[[41,[-1]]],109],[[[41,[-1]],-2,[48,[-1,-1]],16,42],[[2,[[118,[-1]],1]]],109,[[3,[-1]]]],[[[41,[-1]],-2,[48,[-1,-1]],16],[[2,[15,1]]],109,[[3,[-1]]]],[16,-1,[]],[[[118,[-1]]],[[47,[[48,[-1,-1]]]]],109],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,15],[16,15],[[[41,[-1]],[41,[-1]]],42,[43,109]],[[[118,[-1]],19],20,[10,109]],[[[41,[-1]],19],20,[10,109]],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,[[2,[-2]]],[],[]],[-1,25,[]],[-1,25,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[41,[-1]],-2,[24,[-1]],16,42],[[2,[[118,[-1]],1]]],109,[[3,[-1]]]],[[[41,[-1]],-2,[24,[-1]],16],[[2,[[48,[-1,-1]],1]]],109,[[3,[-1]]]]],"c":[],"p":[[4,"Error",1164],[4,"Result",1165],[8,"Layouter",1166],[8,"Into",1167],[8,"Clone",1168],[3,"NonIdentityPoint",5],[3,"Point",5],[8,"CurveAffine",1169],[8,"EccInstructions",5],[8,"Debug",1170],[8,"Eq",1171],[3,"FixedPoint",5],[3,"FixedPointBaseField",5],[3,"FixedPointShort",5],[15,"tuple"],[15,"usize"],[3,"X",5],[3,"ScalarVar",5],[3,"Formatter",1170],[6,"Result",1170],[3,"ScalarFixed",5],[3,"ScalarFixedShort",5],[8,"BaseFitsInScalarInstructions",5],[3,"Value",1172],[3,"TypeId",1173],[3,"EccChip",201],[6,"Affine",1174],[8,"FixedPoints",5],[6,"Base",1174],[3,"EccPoint",201],[3,"NonIdentityEccPoint",201],[3,"EccConfig",201],[3,"EccScalarFixed",201],[3,"EccScalarFixedShort",201],[4,"ScalarVar",201],[3,"ConstraintSystem",1175],[3,"Advice",1175],[3,"Column",1175],[15,"array"],[3,"Fixed",1175],[3,"LookupRangeCheckConfig",1126],[15,"bool"],[8,"PartialEq",1171],[4,"FullScalar",201],[4,"ShortScalar",201],[4,"BaseFieldElem",201],[3,"Vec",1176],[3,"AssignedCell",1166],[6,"Scalar",1174],[15,"u64"],[4,"Option",1177],[15,"slice"],[15,"u8"],[4,"PaddedWord",410],[3,"Absorbing",546],[3,"Sponge",410],[8,"Field",1178],[8,"Spec",546],[8,"Domain",546],[8,"PoseidonSpongeInstructions",410],[3,"Pow5Chip",410],[3,"StateWord",410],[3,"Cell",1166],[3,"Pow5Config",410],[3,"Squeezing",546],[3,"Word",410],[8,"PoseidonInstructions",410],[8,"SpongeMode",546],[3,"Hash",410],[3,"ConstantLength",546],[8,"PrimeField",1178],[3,"Hash",546],[6,"Mds",546],[6,"Base",1179],[3,"P128Pow5T3",546],[8,"FromUniformBytes",1178],[8,"Ord",1171],[3,"String",1180],[3,"BlockWord",654],[3,"Table16Config",654],[3,"Table16Chip",654],[3,"Sha256Digest",654],[8,"Sha256Instructions",654],[3,"Sha256",654],[3,"Message",755],[8,"SinsemillaInstructions",755],[3,"MessagePiece",755],[3,"CommitDomain",755],[3,"HashDomain",755],[8,"IntoIterator",1181],[3,"SinsemillaConfig",848],[8,"HashDomains",755],[8,"CommitDomains",755],[3,"SinsemillaChip",848],[3,"TableColumn",1175],[3,"MerklePath",893],[8,"MerkleInstructions",893],[15,"u32"],[3,"MerkleConfig",916],[3,"MerkleChip",916],[3,"HashDomain",961],[6,"Point",1174],[3,"CommitDomain",961],[3,"CtOption",1182],[8,"Iterator",1183],[15,"str"],[3,"Range",1184],[3,"RangeConstrained",1007],[8,"PrimeFieldBits",1178],[4,"Expression",1175],[8,"FieldValue",1007],[3,"CondSwapChip",1048],[3,"CondSwapConfig",1048],[3,"RunningSumConfig",1090],[3,"Selector",1175],[3,"Region",1166],[3,"RunningSum",1090],[3,"RunningSum",1126],[8,"FixedPoint",201],[8,"FixedScalarKind",201],[8,"UtilitiesInstructions",1007],[8,"Var",1007],[8,"CondSwapInstructions",1048]],"b":[[573,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[574,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[601,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[602,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[623,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[624,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[626,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[627,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[629,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[630,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"]]},\
-"halo2_proofs":{"doc":"halo2_proofs","t":"NNNEALLALLLLALLLCLLAALALLLLQQQSIIQIISQQSKKKKFFFKLKKFKFKKKKLLKFFKFLLKFFLLKKDDIQIQDDDDQDDDIDLLLLLLLLLLLLLLLLLKLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMKLLKLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLAKLLLLLLLLLLLLLLLKLKLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNEIDNIIKLKLKLKKLLLLLLLLLLLKLKLLLLLLLKLLLLLLLLLLLKLLLKLLLLLLLLLLLLLLLNNECDDNNENNNDNNNNDNELLLLLLLLLLLLLLLLLLLLLFLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDNNDEEIDNDNIDNNIQNDDNDEEDDNNDIQDDNNDNNNNNNNQIDDNDNNDDNNNDENDNNNNDDDNLLLLLLLLLLLLLLLLKLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLKLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLKLLKLLKLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLMDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIDEDDIDQNQDDDDNIDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLALLLLKLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDIQQIQQIIQIQQISSQILLLKKKLLKLLKKKLLLKLKLKLLKLLKLLLKKKKLKKKKKLLLLKKLKAAAADDGLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLAAAADDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDIQDDIIIIILLLLLLLLLLLLLLLLLLLLLLLLLKLLLLKLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLKLKKLLLLLLLLLLLLLLLLKLKLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLKLL","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","FftGroup","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","best_fft","best_multiexp","compute_inner_product","coordinates","cube","double","endo","eval_polynomial","from_xy","g_to_lagrange","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","kate_division","lagrange_interpolate","new_jacobian","parallelize","pow","pow_vartime","random","recursive_butterfly_arithmetic","small_multiexp","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","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","cell","clone","clone","clone","clone","clone","clone_into","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","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","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","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","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","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","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","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","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","Lookup","MockProver","OutsideRegion","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows_par","assert_satisfied_par","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone_into","clone_into","collect","copy","cost","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","into","into","into","into","into","into","into","mark_equality_cells","metadata","permutation","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","show_equality_constraints","show_labels","synthesize","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_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","verify","verify_at_rows","verify_at_rows_par","verify_par","view_height","view_width","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","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","AdviceQuery","Any","Assigned","Assignment","BatchVerifier","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotAssigned","ColumnNotInPermutation","ColumnType","Config","Constant","Constraint","ConstraintSystem","ConstraintSystemFailure","Constraints","Error","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Gate","Instance","Instance","Instance","InstanceQuery","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Opening","OverwriteDefault","Params","Phase","PinnedConstraintSystem","PinnedVerificationKey","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","TableError","ThirdPhase","Transcript","Trivial","UnevenColumnLengths","UsedColumn","VerifyingKey","VirtualCell","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","add_proof","advice","advice_column","advice_column_in","advice_column_phase","advice_in","advice_queries","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","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","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","clone_into","clone_into","clone_into","cmp","cmp","cmp","column_index","column_index","column_index","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","configure_with_params","constants","constraint_name","copy","create_gate","create_proof","cs","cube","cur","default","default","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","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","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","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","eq","eq","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","finalize","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","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","from","from","from","from_bytes","from_bytes","gates","general_column_annotations","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","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","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","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","name","neg","neg","neg","new","new","next","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","numerator","params","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","permutation","phase","phase","phase","pinned","pinned","polynomials","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","rotation","selector","set_minimum_degree","shuffle","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_owned","to_owned","to_owned","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_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","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","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","verify_proof","vzip","vzip","vzip","vzip","vzip","vzip","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","Argument","Assembly","VerifyingKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build_ordered_mapping","clone","clone","clone","clone_into","clone_into","clone_into","columns","commitments","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","fmt","fmt","fmt","from","from","from","get_columns","init","init","init","into","into","into","mapping","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","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","ProverQuery","Rotation","SamplingError","VerificationStrategy","VerifierQuery","add","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","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","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","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","init","init","init","into","into","into","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new_commitment","new_msm","next","num_coeffs","pinned","prev","process","rotate","rotate_extended","rotate_omega","sub","sub","to_owned","to_owned","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_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","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","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","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","get_g","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","verifier_params","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","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","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","verifier_params","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","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_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","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","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","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","create_proof","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_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","translate","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_proofs"],[27,"halo2_proofs::arithmetic"],[74,"halo2_proofs::circuit"],[341,"halo2_proofs::circuit::floor_planner"],[377,"halo2_proofs::circuit::layouter"],[445,"halo2_proofs::dev"],[608,"halo2_proofs::dev::FailureLocation"],[611,"halo2_proofs::dev::VerifyFailure"],[633,"halo2_proofs::dev::cost"],[678,"halo2_proofs::dev::metadata"],[793,"halo2_proofs::plonk"],[1518,"halo2_proofs::plonk::Error"],[1519,"halo2_proofs::plonk::permutation"],[1576,"halo2_proofs::poly"],[1798,"halo2_proofs::poly::commitment"],[1865,"halo2_proofs::poly::ipa"],[1869,"halo2_proofs::poly::ipa::commitment"],[1916,"halo2_proofs::poly::ipa::msm"],[1946,"halo2_proofs::poly::ipa::multiopen"],[1978,"halo2_proofs::poly::ipa::strategy"],[2051,"halo2_proofs::poly::kzg"],[2055,"halo2_proofs::poly::kzg::commitment"],[2106,"halo2_proofs::poly::kzg::msm"],[2155,"halo2_proofs::poly::kzg::multiopen"],[2220,"halo2_proofs::poly::kzg::strategy"],[2280,"halo2_proofs::transcript"],[2434,"core::fmt"],[2435,"core::fmt"],[2436,"core::any"],[2437,"pasta_curves::arithmetic::curves"],[2438,"subtle"],[2439,"alloc::vec"],[2440,"core::ops::function"],[2441,"alloc::boxed"],[2442,"subtle"],[2443,"core::marker"],[2444,"core::marker"],[2445,"core::convert"],[2446,"rand_core"],[2447,"core::ops::arith"],[2448,"core::ops::function"],[2449,"core::fmt"],[2450,"core::option"],[2451,"core::ops::arith"],[2452,"std::collections::hash::set"],[2453,"core::hash"],[2454,"ff"],[2455,"core::cmp"],[2456,"core::cmp"],[2457,"plotters::drawing::area"],[2458,"plotters::drawing::area"],[2459,"core::ops::range"],[2460,"group::prime"],[2461,"std::collections::hash::map"],[2462,"core::default"],[2463,"std::io::error"],[2464,"std::io::error"],[2465,"core::error"],[2466,"std::io"],[2467,"halo2curves::pairing"]],"d":["Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","This enum specifies how various types are serialized and …","This module provides common utilities, traits and …","","","Traits and structs for implementing circuit components.","","","","","Tools for developing circuits.","","","Returns the argument unchanged.","","","Calls U::from(self).","This module provides an implementation of a variant of …","Contains utilities for performing arithmetic over …","","This module contains utilities and traits for dealing with …","","","","","The affine version of the curve","The base field over which this elliptic curve is …","The base field over which this elliptic curve is …","CURVE_ID used for hash-to-curve.","This trait is the affine counterpart to Curve and is used …","This trait is a common interface for dealing with elements …","The projective form of the curve","This represents an element of a group with basic …","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Performs a radix-$2$ Fast-Fourier Transformation (FFT) on …","Performs a multi-exponentiation operation.","This computes the inner product of two vectors a and b.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","This evaluates a provided polynomial (in coefficient form) …","Obtains a point given $(x, y)$, failing if it is not on the","Convert coefficient bases group elements to lagrange basis …","Requests a hasher that accepts messages and returns …","Computes the multiplicative inverse of this element, …","Returns whether or not this element is on the curve; should","Returns whether or not this element is on the curve; should","Returns true iff this element is zero.","Returns true iff this element is zero.","Return the Jacobian coordinates of this point.","Divides polynomial a in X by X - b with no remainder.","Returns coefficients of an n - 1 degree polynomial given a …","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","This perform recursive butterfly arithmetic","Performs a small multi-exponentiation operation. Uses the …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","An assigned cell.","A pointer to a cell within a circuit.","A chip implements a set of instructions that can be used …","A type that holds the configuration for this chip, and any …","A layout strategy within a circuit. The layouter is …","A type that holds any general chip state that needs to be …","This is a “namespaced” layouter which borrows a …","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","Represents the type of the “root” of this layouter, so …","A simple FloorPlanner that performs minimal optimizations.","A table layouter that can be used to assign values to a …","A lookup table in the circuit.","Helper trait for implementing a custom Layouter.","A value that might exist within a circuit.","","","","","","","","","","","Returns Value::unknown() if the value is Value::unknown(), …","Converts from &mut Value<V> to Value<&mut V>.","Converts from &Value<V> to Value<&V>.","Enforces an assertion on the contained value, if known.","Assign an advice column value (witness).","Assigns a constant value to the column advice at offset …","Assign the value of the instance column’s cell at …","Assigns a fixed value to a table cell.","","Assigns a fixed value to a table cell.","Assign a fixed value.","Assign a region of gates to an absolute row number.","","Assign a table region to an absolute row number.","","","","","","","","","","","","","","","","","","","","","","Returns the cell.","","","","","","","","","","","Maps a Value<&V> to a Value<V> by cloning the contents of …","Maps a Value<&mut V> to a Value<V> by cloning the contents …","The column of this cell.","The chip holds its own configuration.","Constrains a cell to have a constant value.","Constrains two cells to have the same value.","Constrains a Cell to equal an instance column’s row …","","Maps a Value<&mut V> to a Value<V> by copying the contents …","Maps a Value<&V> to a Value<V> by copying the contents of …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","maps from a fixed column to a pair (default value, vector …","","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","","Checks the contained value for an error condition, if …","Evaluates this value directly, performing an unbatched …","Evaluates this assigned cell’s value directly, …","Implementations of common circuit floor planners.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","","","Returns the value of the instance column’s cell at …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the field element corresponding to this value.","Inverts this assigned value (taking the inverse of zero to …","Constructs a known value.","Implementations of common circuit layouters.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Returns a new SimpleTableLayouter","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","Squares this field element.","","","","","","","","","","","","Returns the field element corresponding to this value.","","","","","","Transposes a Value<[V; LEN]> into a [Value<V>; LEN].","Transposes a Value<impl IntoIterator<Item = V>> into a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs an unwitnessed value.","Unzips a value containing a tuple of two values.","Returns the value of the AssignedCell.","Returns the field element value of the AssignedCell.","","","","","","","","","","","Zips self with another Value.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Concrete column","The virtual column involved in a region. This includes …","Helper trait for implementing a custom Layouter.","The shape of a region. For a region at a certain index, we …","Virtual column representing a (boolean) selector","Intermediate trait requirements for RegionLayouter when …","Helper trait for implementing a custom Layouter.","Assign an advice column value (witness)","","Assigns a constant value to the column advice at offset …","","Assign the value of the instance column’s cell at …","","Assigns a fixed value to a table cell.","Assigns a fixed value","","","","","","","","","","","Get a reference to the set of columns used in a RegionShape…","Constrains a cell to have a constant value.","","Constraint two cells to have the same value.","","","","","","","","Enables a selector at the given offset.","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the value of the instance column’s cell at …","","Calls U::from(self).","Calls U::from(self).","Allows the circuit implementor to name/annotate a Column …","","Create a new RegionShape for a region at region_index.","","Get the region_index of a RegionShape.","Get the row_count of a RegionShape.","","","","","","","","","","","A cell that has been assigned a value.","A cell used in an active gate was not assigned to.","The value of a particular cell within the circuit.","","A struct for collecting and displaying the gates within a …","Graphical renderer for circuit layouts.","A constraint was not satisfied for a particular row.","A constraint was active on an unusable row, and is likely …","The location within the circuit at which a particular …","A location inside a region.","An instance cell used in an active gate was not assigned …","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","A permutation did not preserve the original value of a …","A unique poisoned cell.","A shuffle input did not exist in its corresponding map.","A helper type that augments a FloorPlanner with tracing …","An unassigned cell.","The reasons why a particular circuit is not satisfied.","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","","","","","","","Builds a dot graph string representing the given circuit.","","","","","Collects the gates from within the circuit.","","Developer tools for investigating the cost of a circuit.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Marks cells involved in equality constraints, in red.","Metadata about circuits.","Returns the permutation argument (Assembly) used within a …","","","Prints the queries in this circuit to a CSV grid.","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Sets the view height for this layout, as a number of rows.","Sets the view width for this layout, as a number of …","","","","","","","","The offset (relative to the start of the region) at which …","The region in which the failure occurred.","The circuit row on which the failure occurred.","The values of the virtual cells used by this constraint.","The column in which this cell should be assigned.","The column in which this cell should be assigned.","The column in which this permutation is not satisfied.","The polynomial constraint that is not satisfied.","The polynomial constraint that is not satisfied.","The index of the active gate.","The index of the active gate.","The offset (relative to the start of the region) at which …","The offset (relative to the start of the region) at which …","The location at which this constraint is not satisfied.","The location at which the lookup is not satisfied.","The location at which the lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","Measures a circuit to determine its costs, and explain …","The marginal size of a Halo 2 proof, broken down into its …","The size of a Halo 2 proof, broken down into its …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the marginal proof size per instance of this …","Measures a circuit with parameter constant k.","Returns the proof size for the given number of instances …","","","","","","","","","","","","","Metadata about a column within a circuit.","Metadata about a configured constraint within a circuit.","Metadata about a configured gate within a circuit.","Metadata about an assigned region within a circuit.","A “virtual cell” is a PLONK cell that has been queried …","","","","","","","","","","","","","","","","","","","","","Return the column type.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Return the column index.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An advice column","An Advice variant","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","An enum over the Advice, Fixed, Instance structs","A value assigned to a cell within a circuit.","This trait allows a Circuit to direct some backend to …","A verifier that checks multiple proofs in a batch. This …","Out of bounds index passed to a backend","A challenge squeezed from transcript after advice columns …","This is a challenge","This is a trait that circuits provide implementations for …","A column with an index and type","A TableColumn has not been assigned.","The instance sets up a copy constraint involving a column …","A column type","This is a configuration object that stores things like …","This is a constant polynomial","An individual polynomial constraint.","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","Low-degree expression representing an identity that must …","First phase","A fixed column","A Fixed variant","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","Gate","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","This is a negated polynomial","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Opening error","Attempt to overwrite a default value","Optional circuit configuration parameters. Requires the …","Phase of advice column","Represents the minimal parameters that determine a …","Minimal representation of a verification key that can be …","This is the product of two polynomials","This is a proving key which allows for the creation of …","A value stored as a fraction to enable batch inversion.","This is a scaled polynomial","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","This is the sum of two polynomials","This is an error that can occur during synthesis of the …","A fixed column of a lookup table.","This is an error that could occur during table synthesis.","An error relating to a lookup table.","Third phase","Transcript error","A value that does not require inversion to evaluate.","A Table has columns of uneven lengths.","Attempt to assign a used TableColumn","This is a verifying key which allows for the verification …","A “virtual cell” is a PLONK cell that has been queried …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Adds a proof to the batch.","Returns Advice variant in FirstPhase","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Returns Advice variant in given Phase","Returns advice queries","Allows the developer to include an annotation for an …","Annotate an Instance column.","Annotate a Lookup column.","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns phase of challenges","Requests a challenge that is usable after the given phase.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Column index","Type of this column.","Allocate a new complex selector that can appear anywhere …","Approximate the computational complexity of this …","This will compress selectors together depending on their …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","Returns constants","Returns the name of the constraint at index …","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","Returns ConstraintSystem","Cubes this element.","Return expression from column at the current row","","","","Compute the degree of this polynomial","Compute the degree of the constraint system (the maximum …","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","Doubles this element.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","","","","","","","","Evaluates this assigned value directly, performing an …","Evaluate the polynomial using the provided closures to …","Evaluate the polynomial lazily using the provided closures …","Exits the current region.","Return expression from selector","Return Expression","Fills a fixed column starting from the given row with …","Finalizes the batch and checks its validity.","Allocate a new fixed column","Returns commitments of fixed polynomials","Returns fixed queries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Returns gates","Returns general column annotations","Queries the value of the given challenge.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","","Hashes a verification key into a transcript.","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns inner column","Allocate a new instance column","Returns instance queries","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Inverts this assigned value (taking the inverse of zero to …","Is this selector “simple”? Simple selectors can only …","Returns true iff this element is zero.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of Circuit. By …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","Returns the minimum necessary rows that need to exist in …","","","","","","","","","Returns the gate name.","","","","Returns Advice in given Phase","Constructs a new batch verifier.","Return expression from column at the next row","Returns number of advice columns","Returns number of challenges","Returns number of fixed columns","Returns number of instance columns","Returns number of selectors","Returns the numerator.","Returns a reference to the parameters that should be used …","Returns a reference to the parameters that should be used …","","","","Implementation of permutation argument.","Returns permutation argument","Returns VerifyingKey of permutation","Phase of this column","Phase of this advice column","Phase of this challenge.","Obtain a pinned version of this constraint system; a …","Obtains a pinned representation of this verification key …","Returns constraints of this gate","Exits out of the existing namespace.","Return expression from column at the previous row","","Creates a new (sub)namespace and enters into it.","Query an advice column at a relative position","Query an Any column at a relative position","Return expression from cell","Return expression from column at a relative position","","","","","Make side effects","Query a challenge","Query a fixed column at a relative position","Queries the cell of an instance column at a particular …","Query an instance column at a relative position","Query a selector at the current position.","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Rotation of this query","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","Squares this element.","Square this expression.","","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","","","","","","","","","","","","","","","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","Returns a boolean indicating whether or not the proof is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","A permutation argument.","Struct that accumulates all the necessary data in order to …","The verifying key for a single permutation argument.","","","","","","","Builds the ordered mapping of the cycles. This will only …","","","","","","","Returns columns that participate in the permutation …","Returns commitments of sigma polynomials","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns columns that participate on the permutation …","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns mappings of the copies.","","","","","","","","","","","","","","","","The basis over which a polynomial is described.","The polynomial is defined as coefficients","This is an error that could occur during proving or …","This structure contains precomputed constants and other …","The polynomial is defined as coefficients of Lagrange …","Guards is unfinished verification result. Implement this …","The polynomial is defined as coefficients of Lagrange …","Multi scalar engine which is not evaluated yet.","OpeningProof is not well-formed","The output type of this verification strategy after …","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","A polynomial query at a point","Describes the relative rotation of a vector. Negative …","Caller needs to re-sample a point","Trait representing a strategy for verifying Halo 2 proofs.","A polynomial query at a point","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","The current location in the evaluation domain","","","","","","","","","","","","","","","","","","","","","","","This divides the polynomial (in the extended domain) by …","","","","","","","","","","","Returns an empty (zero) polynomial in the coefficient basis","Returns an empty (zero) polynomial in the extended …","Returns an empty (zero) polynomial in the Lagrange …","","Get the size of the extended domain","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the generator of the extended domain’s …","Get $\\\\omega$, the generator of the $2^k$ order …","Get $\\\\omega^{-1}$, the inverse of the generator of the …","Gets the quotient polynomial’s degree (as a multiple of …","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Inner product argument commitment scheme","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Get the size of the domain","KZG commitment scheme","Computes evaluations (at the point x, where xn = x^n) of …","Obtains a polynomial in Lagrange form when given a vector …","This takes us from an n-length vector into the coefficient …","","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","Create a new verifier query based on a commitment","Create a new verifier query based on a linear combination …","The next location in the evaluation domain","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Obtains an MSM from the verifier strategy and yields back …","Rotates the values in a Lagrange basis polynomial by …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multi scalar multiplication engine","Multi scalar multiplication engine","Accumulator fot comressed verification","Parameters for circuit sysnthesis and prover parameters.","Parameters for circuit sysnthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logaritmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and returns unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","Add another multiexp into this one","Add a vector of scalars to g_scalars. This function will …","Add to u_scalar","Add to w_scalar","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The claimed output of the linear-time polycommit opening …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A vector of challenges u_0, …, u_{k - 1} sampled by the …","Lets caller supply the challenges and obtain an MSM with …","Lets caller supply the purported G point and simply appends","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit challenge.","The scalar representation of a verifier challenge.","EncodedChallenge<C> defines a challenge encoding with a …","The Input type used to derive the challenge encoding. For …","Keccak256 hash function reader for EVM compatibility","Keccak256 hash function writer for EVM compatibility","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","Cast an encoded challenge as a typed ChallengeScalar.","","","","","","","","","","","","","","","","","","","","","","","","","Writing the point to the transcript without writing it to …","","","","","Writing the scalar to the transcript without writing it to …","","","","","","","","","","","","","","","","","","","","","","","","","Conclude the interaction and return the output buffer …","","Conclude the interaction and return the output buffer …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","","Initialize a transcript given an input buffer.","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","Initialize a transcript given an output buffer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get an encoded challenge from a given input challenge.","","Read a curve point from the prover.","","","Read a curve scalar from the prover.","","","Squeeze an encoded verifier challenge from the transcript.","","","","","Squeeze a typed challenge (in the scalar field) from the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Write a curve point to the proof and the transcript.","","","Write a scalar to the proof and the transcript.","",""],"i":[1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,190,190,12,190,0,0,12,0,0,10,190,12,10,190,12,190,12,0,0,0,12,10,10,190,0,12,0,190,10,190,12,10,10,190,0,0,190,0,10,10,10,0,0,10,10,10,10,0,0,0,191,0,191,0,0,0,0,45,0,0,0,0,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,32,32,32,55,40,42,32,45,44,45,44,40,29,53,47,48,46,35,32,42,44,40,29,53,47,48,46,35,32,42,44,35,29,47,48,46,35,29,47,48,46,35,29,29,46,191,32,32,45,44,29,29,35,29,29,40,40,29,53,47,47,48,48,46,35,32,42,44,40,29,53,47,48,46,35,32,42,44,29,40,29,53,47,48,46,35,32,42,44,44,48,29,29,35,0,40,29,53,47,48,46,35,32,42,44,40,29,29,53,47,47,48,48,46,35,32,32,42,42,44,29,45,44,45,44,40,29,53,47,48,46,35,32,42,44,32,40,29,53,47,48,46,35,32,42,44,29,29,29,0,191,29,29,29,29,29,29,29,29,29,29,29,32,45,29,40,45,44,45,44,46,46,29,29,29,29,29,29,29,29,29,29,29,53,29,29,47,48,46,35,29,29,40,29,53,47,48,46,35,32,42,44,40,29,53,47,48,46,35,32,42,44,40,29,53,47,48,46,35,32,42,44,29,29,35,35,40,29,53,47,48,46,35,32,42,44,29,0,0,67,67,68,67,68,67,67,68,67,68,67,68,67,68,67,68,67,67,67,68,67,68,67,67,67,68,68,67,68,67,68,67,68,67,70,0,0,0,70,0,0,54,69,54,69,54,69,55,54,69,69,70,69,70,69,70,69,70,70,69,54,69,54,69,69,70,69,70,69,70,54,69,70,69,70,69,70,70,70,70,69,70,54,69,69,70,54,69,69,70,69,69,69,70,69,70,69,70,69,70,69,70,76,83,0,0,0,0,83,83,0,80,83,83,0,80,83,76,83,0,76,0,75,75,75,75,75,75,75,80,83,81,86,82,76,75,80,83,81,86,82,76,75,0,80,76,80,76,81,75,0,82,80,83,81,86,82,76,75,80,83,81,86,82,76,75,80,83,81,86,82,76,75,75,75,80,83,76,75,75,75,75,80,80,83,83,81,81,86,82,76,75,80,83,81,86,82,76,75,75,80,83,81,86,82,76,75,80,83,81,86,82,76,75,82,0,75,75,75,81,75,82,75,82,82,86,80,76,80,83,81,80,83,81,86,82,76,75,80,83,81,86,82,76,75,80,83,81,86,82,76,75,75,75,75,75,82,82,80,83,81,86,82,76,75,192,192,193,194,195,196,197,194,198,195,196,195,196,194,199,200,197,199,199,200,195,195,196,196,200,0,0,0,94,96,97,94,96,97,94,96,97,94,96,97,94,96,97,94,96,97,94,96,97,94,96,97,94,96,97,94,94,94,94,96,97,94,96,97,94,96,97,94,96,97,0,0,0,0,0,98,102,99,100,101,98,102,99,100,101,98,99,100,101,98,99,100,101,98,102,98,98,102,99,100,101,98,102,99,100,101,98,102,99,100,101,98,102,99,100,101,98,98,102,102,99,99,100,100,101,101,98,98,98,102,102,102,102,99,99,100,100,101,101,101,101,101,98,98,98,102,99,100,101,98,102,99,100,101,98,102,98,99,100,101,98,102,99,100,101,98,102,99,100,101,98,102,99,100,101,98,102,99,100,101,98,102,99,100,101,0,59,106,0,0,0,0,0,36,0,106,0,0,130,36,0,65,106,0,0,36,0,0,0,0,0,59,106,0,0,65,0,0,59,106,0,36,36,106,36,36,36,130,65,0,0,0,106,0,28,106,0,0,106,106,36,0,0,36,0,36,28,130,130,0,0,0,28,28,28,28,28,28,28,106,28,28,107,59,109,109,109,59,109,41,109,109,41,41,109,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,109,109,28,34,33,43,38,59,73,113,114,115,39,57,106,104,116,109,117,118,28,34,33,43,38,59,73,113,114,115,39,57,106,104,116,109,117,118,34,59,39,113,114,115,34,109,106,109,65,65,65,109,116,41,109,0,117,28,34,33,109,107,106,109,28,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,109,28,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,73,109,109,41,41,28,34,33,43,38,59,73,113,114,115,39,57,106,28,106,106,41,73,57,41,107,109,117,109,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,36,130,130,107,117,131,118,123,28,28,28,28,28,34,34,34,34,124,125,126,33,43,38,59,59,59,59,73,113,114,115,39,57,106,104,104,127,127,127,128,116,109,129,36,36,130,107,117,131,118,117,118,109,109,41,117,118,34,33,43,38,59,73,39,57,117,106,34,73,57,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,39,109,109,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,128,28,73,28,0,0,0,109,109,109,109,109,28,28,28,28,106,106,28,28,116,28,28,106,33,107,34,109,109,109,109,109,28,65,65,34,59,39,0,109,117,33,114,57,109,117,116,41,34,106,41,129,129,112,34,33,43,38,59,106,129,129,41,129,129,117,118,34,113,114,115,109,109,109,109,36,28,106,28,28,28,28,28,28,106,28,28,106,87,65,117,118,28,34,33,43,38,59,73,113,114,115,39,57,106,104,116,109,117,118,36,130,117,123,28,34,34,34,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,109,109,0,123,28,34,124,125,126,33,43,38,59,73,113,114,115,39,57,106,104,127,128,116,109,129,36,130,107,117,131,118,128,65,117,118,201,0,0,0,88,138,139,88,138,139,88,88,138,139,88,138,139,88,139,88,138,139,88,138,139,88,138,139,88,88,138,139,88,138,139,138,88,138,139,88,138,139,88,88,138,139,88,138,139,88,138,139,88,138,139,88,138,139,0,0,0,0,0,0,0,202,157,144,0,0,0,0,157,0,0,147,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,134,149,150,152,153,154,147,111,134,149,150,152,153,154,147,111,134,134,0,134,134,111,134,156,149,150,157,152,153,154,147,147,111,134,156,149,150,157,152,153,154,147,147,111,134,134,156,149,150,157,152,153,154,147,111,134,134,134,111,134,134,134,144,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,134,134,134,134,147,147,147,147,147,147,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,0,147,147,134,0,134,134,134,147,144,134,150,150,111,147,134,111,144,147,134,134,147,147,134,149,150,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,134,156,149,150,157,152,153,154,147,111,0,0,142,143,0,137,143,0,0,142,0,142,203,0,204,143,142,0,160,160,160,151,151,151,160,160,151,160,160,203,137,204,160,160,160,137,160,137,160,151,160,160,203,160,160,137,160,160,160,137,203,204,143,160,142,137,142,151,151,160,160,160,160,203,143,160,137,0,0,0,0,0,0,0,162,164,162,164,162,162,162,162,0,162,164,162,164,162,162,164,162,162,164,162,164,162,162,164,162,164,162,162,162,164,162,164,162,162,164,162,164,162,164,162,0,162,164,162,0,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,0,0,166,167,166,167,166,166,167,166,167,166,167,166,167,166,167,166,167,166,167,166,167,166,167,166,167,166,167,167,166,167,0,0,0,0,165,168,169,170,165,168,169,170,165,168,165,168,165,165,168,169,170,165,168,169,170,165,168,169,170,169,170,165,168,169,170,165,168,169,170,168,165,168,169,170,165,168,169,170,169,170,169,170,165,168,165,168,169,170,165,168,169,170,165,168,169,170,168,165,165,165,168,169,170,0,0,0,0,0,0,0,171,174,171,174,171,171,171,171,171,174,171,174,171,171,174,171,171,174,171,174,171,171,171,171,174,171,174,171,171,171,174,171,171,174,171,171,171,171,174,171,174,171,174,171,171,174,171,171,0,0,173,175,173,173,173,175,173,175,173,175,173,175,173,175,173,173,173,175,173,175,173,175,173,173,175,173,175,175,173,175,173,175,173,175,173,173,175,173,175,173,175,173,175,173,175,173,175,0,0,0,0,177,179,178,180,177,179,178,180,177,178,177,179,178,180,177,179,178,180,177,179,178,180,177,179,178,180,177,179,178,180,177,179,178,180,177,179,178,180,177,179,178,178,180,177,179,178,180,177,179,178,180,177,179,178,180,179,180,177,179,178,180,0,0,0,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,182,183,181,182,183,181,182,183,181,182,183,181,182,183,182,182,183,183,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,182,0,0,0,0,0,119,0,0,0,0,0,0,0,119,185,186,187,188,184,189,185,186,187,188,184,189,185,186,187,188,184,189,185,186,187,188,184,189,136,185,186,187,188,136,185,186,187,188,185,186,187,188,184,184,189,189,185,186,187,188,184,189,185,186,187,188,184,189,205,187,188,185,186,187,188,184,189,185,186,187,188,184,189,119,189,206,205,185,185,186,186,187,187,188,188,184,189,185,186,187,188,184,189,119,189,145,185,186,145,185,186,136,185,186,187,188,136,185,186,187,188,184,189,184,185,186,187,188,184,189,185,186,187,188,184,189,185,186,187,188,184,189,185,186,187,188,184,189,120,187,188,120,187,188],"f":[0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],0,[3,2],[[1,4],5],[-1,-1,[]],0,[[],3],[-1,-2,[],[]],0,0,[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[8,[-2]],-1,9],2,10,[[11,[-1]]]],[[8,[8,[-1]]],[],12],[[[8,[-1]],[8,[-1]]],-1,10],[-1,[[14,[[13,[-1]]]]],[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[8,[-1]],-1],-1,10],[[],[[14,[-1]]],[]],[[15,9],[[15,[-1]]],12],[16,[[18,[17]]]],[-1,[[14,[-1]]],[]],[-1,19,[]],[-1,19,[]],[-1,19,[]],[-1,20,[]],[-1,2,[]],[[-1,-2],[[15,[-2]]],21,10],[[[8,[-1]],[8,[-1]]],[[15,[-1]]],10],[[],[[14,[-1]]],[]],[[[8,[-1]],-2],2,22,[17,22,23,24]],[[-1,-2],-1,[],[[26,[[8,[25]]]]]],[[-1,-2],-1,[],[[26,[[8,[25]]]]]],[-1,-2,27,[]],[[[8,[-2]],3,3,[8,[-1]]],2,10,[[11,[-1]]]],[[8,[8,[-1]]],[],12],[-1,[[14,[-1]]],[]],[-1,[[2,[19,-1]]],[]],[[-1,-1],[[2,[19,-1]]],[]],[-1,-1,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[29,[[28,[-1]]]],-1],[],10],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[[29,[-1]],[29,[-1]]],[],30],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[[28,[-1]]]],-1],[],10],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],-2],[[29,[-3]]],[],31,[]],[[[29,[-1]]],[[29,[-1]]],[]],[[[29,[-1]]],[[29,[-1]]],[]],[[[29,[-1]],-2],2,[],31],[[[32,[-1]],-2,[34,[33]],3,-3],[[6,[[35,[-4,-1]],36]]],10,17,37,[]],[[[32,[-1]],-2,[34,[33]],3,-3],[[6,[[35,[-3,-1]],36]]],10,17,[]],[[[32,[-1]],-2,[34,[38]],3,[34,[33]],3],[[6,[[35,[-1,-1]],36]]],10,17],[[-1,17,39,3,37],[[6,[2,36]]],[]],[[[40,[-1,-2]],17,39,3,37],[[6,[2,36]]],10,[[41,[-1]]]],[[[42,[-1]],-2,39,3,-3],[[6,[2,36]]],10,17,37],[[[32,[-1]],-2,[34,[43]],3,-3],[[6,[[35,[-4,-1]],36]]],10,17,37,[]],[[-1,-2,-3],[[6,[-4,36]]],[],17,37,[]],[[[44,[-1,-2]],-3,-4],[[6,[-5,36]]],10,[[45,[-1]]],17,37,[]],[[-1,-2,-3],[[6,[2,36]]],[],17,37],[[[44,[-1,-2]],-3,-4],[[6,[2,36]]],10,[[45,[-1]]],17,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[35,[-1,-2]]],46,[],10],[[[29,[-1]]],[[29,[-1]]],24],[47,47],[48,48],[46,46],[[[35,[-1,-2]]],[[35,[-1,-2]]],24,[24,10]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[29,[-1]]],[[29,[-1]]],24],[[[29,[-1]]],[[29,[-1]]],24],0,[-1,[],[]],[[[32,[-1]],46,-2],[[6,[2,36]]],10,[[49,[[28,[-1]]]]]],[[[32,[-1]],46,46],[[6,[2,36]]],10],[[-1,46,[34,[38]],3],[[6,[2,36]]],[]],[[[44,[-1,-2]],46,[34,[38]],3],[[6,[2,36]]],10,[[45,[-1]]]],[[[29,[-1]]],[[29,[-1]]],50],[[[29,[-1]]],[[29,[-1]]],50],[[[35,[-1,-2]],-3,[32,[-2]],[34,[33]],3],[[6,[[35,[-1,-2]],36]]],24,10,17],[[[29,[-2]]],[[29,[[28,[-1]]]]],10,[[51,[[28,[-1]]]]]],[[],[[29,[-1]]],[]],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[47],[3,-1,[]],[3,-1,[]],[48],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[29,[-2]]],[[29,[[28,[-1]]]]],10,[[51,[[28,[-1]]]]]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[44,[-1,-2]]],2,10,[[45,[-1]]]],[[48,48],20],[[[29,[-1]],-2],[[6,[2,36]]],[],31],[[[29,[[28,[-1]]]]],[[29,[-1]]],10],[[[35,[[28,[-1]],-1]]],[[35,[-1,-1]]],10],0,[[[40,[-1,-2]],4],5,10,[[41,[-1]]]],[[[29,[-1]],4],5,52],[[53,4],5],[[47,4],5],[[48,4],5],[[46,4],5],[[[35,[-1,-2]],4],5,52,[52,10]],[[[32,[-1]],4],5,[52,10]],[[[42,[-1]],4],5,[52,10]],[[[44,[-1,-2]],4],5,[52,10],[52,[45,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[29,[-1]]],[[29,[[28,[-1]]]]],10],[-1,-1,[]],[3,47],[-1,-1,[]],[3,48],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[54,[[32,[-1]]],10],[-1,-1,[]],[55,[[42,[-1]]],10],[-1,-1,[]],[-1,[[29,[-3]]],21,[],[[56,[-2]]]],[[-1,57],[[29,[-2]]],[],[]],[[[44,[-1,-2]],57],[[29,[-1]]],10,[[45,[-1]]]],[-1,[],[]],[[[44,[-1,-2]]],[],10,[[45,[-1]]]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[[32,[-1]],[34,[38]],3],[[6,[[29,[-1]],36]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[29,[-2]]],[[29,[[28,[-1]]]]],10,[[49,[[28,[-1]]]]]],[[[29,[-2]]],[[29,[[28,[-1]]]]],10,[[51,[[28,[-1]]]]]],[-1,[[29,[-1]]],[]],0,[-1,[],[]],[[[29,[-1]],-2],[[29,[-3]]],[],31,[]],[[[29,[-1]],[29,[-1]]],[],58],[[[29,[[28,[-1]]]],-1],[],10],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[[28,[-1]]]],-1],[],10],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[[32,[-1]],-2,-3],2,10,17,[[49,[[34,[59]]]]]],[[-1,-2],[[44,[-3]]],[],31,[]],[[[29,[-1]]],[],60],[[-2,[8,[39]]],[[40,[-1,-2]]],10,[[41,[-1]]]],[[-1,[62,[61]]],2,[]],[[[44,[-1,-2]],[62,[61]]],2,10,[[45,[-1]]]],[[-1,-2],2,[],31],[[[44,[-1,-2]],-3],2,10,[[45,[-1]]],31],0,0,[[[29,[-2]]],[[29,[[28,[-1]]]]],10,[[51,[[28,[-1]]]]]],[[[29,[[28,[-1]]]],-1],[],10],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[-1]],[29,[-1]]],[],[]],[[[29,[[28,[-1]]]],-1],[],10],[[[29,[-1]],[29,[-1]]],[],63],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[[29,[[28,[-1]]]],[29,[-1]]],[],10],[[-2,-3,[15,[[34,[43]]]]],[[6,[2,36]]],10,[[41,[-1]],64],[[65,[-1]]]],[[[29,[-1]]],[[29,[[28,[-2]]]]],[],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[29,[[66,[-1]]]]],[[66,[[29,[-1]]]]],50],[[[29,[-1]],3],[[15,[[29,[-2]]]]],21,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[],[[29,[-1]]],[]],[[[29,[[2,[-1,-2]]]]],[[2,[[29,[-1]],[29,[-2]]]]],[],[]],[[[35,[-1,-2]]],[[29,[-1]]],[],10],[[[35,[-1,-2]]],[[29,[[28,[-2]]]]],[],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[29,[-1]],[29,[-2]]],[[29,[[2,[-1,-2]]]]],[],[]],0,0,[[[67,[-1,-2]],-3,-4],[[6,[-5,36]]],10,[[41,[-1]],64],17,37,[]],[[[67,[-1,-2]],-3,-4],[[6,[2,36]]],10,[[41,[-1]],64],17,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[67,[-1,-2]],46,[34,[38]],3],[[6,[2,36]]],10,[[41,[-1]],64]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[68,4],5],[[[67,[-1,-2]],4],5,[52,10],[52,[41,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[67,[-1,-2]],57],[[29,[-1]]],10,[[41,[-1]],64]],[[[67,[-1,-2]]],[],10,[[41,[-1]],64]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[67,[-1,-2]],[62,[61]]],2,10,[[41,[-1]],64]],[[[67,[-1,-2]],-3],2,10,[[41,[-1]],64],31],[[-2,-3,[15,[[34,[43]]]]],[[6,[2,36]]],10,[[41,[-1]],64],[[65,[-1]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,17,[34,[33]],3,37],[[6,[46,36]]],[]],[[69,17,[34,[33]],3,37],[[6,[46,36]]]],[[-1,17,[34,[33]],3,[28,[-2]]],[[6,[46,36]]],[],[]],[[69,17,[34,[33]],3,[28,[-1]]],[[6,[46,36]]],10],[[-1,17,[34,[38]],3,[34,[33]],3],[[6,[[2,[46,[29,[-2]]]],36]]],[],[]],[[69,17,[34,[38]],3,[34,[33]],3],[[6,[[2,[46,[29,[-1]]]],36]]],10],[[-1,17,39,3,37],[[6,[2,36]]],[]],[[-1,17,[34,[43]],3,37],[[6,[46,36]]],[]],[[69,17,[34,[43]],3,37],[[6,[46,36]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[69,69],[70,70],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[70,70],71],[69,[[72,[70]]]],[[-1,46,[28,[-2]]],[[6,[2,36]]],[],[]],[[69,46,[28,[-1]]],[[6,[2,36]]],10],[[-1,46,46],[[6,[2,36]]],[]],[[69,46,46],[[6,[2,36]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[-1,17,73,3],[[6,[2,36]]],[]],[[69,17,73,3],[[6,[2,36]]]],[[70,70],20],[[69,4],5],[[70,4],5],[-1,-1,[]],[[[34,[59]]],70],[73,70],[-1,-1,[]],[[70,-1],2,74],[[],3],[[],3],[[-1,[34,[38]],3],[[6,[[29,[-2]],36]]],[],[]],[[69,[34,[38]],3],[[6,[[29,[-1]],36]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,17,[34,[59]]],2,[]],[[69,17,[34,[59]]],2],[47,69],[[70,70],[[62,[71]]]],[69,47],[69,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[75,[-1]],[34,[33]]],[[8,[[76,[-1]]]]],[77,78]],[[[75,[-1]],-2,[34,[59]]],2,10,31],[[[75,[-1]]],2,[77,78]],[[[75,[-1]],-2,-2],2,[77,78],[24,79]],[[[75,[-1]]],2,[77,78]],[[[75,[-1]],-2,[34,[33]],3,-3],[[6,[2,36]]],10,31,31],[[[75,[-1]],-2,[34,[43]],3,-3],[[6,[2,36]]],10,31,31],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,61,10,[[65,[-1]]]],[80,80],[[[76,[-1]]],[[76,[-1]]],[24,10]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],81],[[[75,[-1]],[34,[59]],3,[34,[59]],3],[[6,[2,36]]],10],0,[[],82],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[75,[-1]],-2,73,3],[[6,[2,36]]],10,31],[[[75,[-1]],-2],2,10,31],[[80,80],20],[[83,83],20],[[[76,[-1]],[76,[-1]]],20,[84,10]],[[[75,[-1]]],2,10],[[[75,[-1]],[34,[43]],3,[29,[[28,[-1]]]]],[[6,[2,36]]],10],[[[75,[-1]]],[[15,[[15,[[76,[-1]]]]]]],[77,78]],[[[75,[-1]],[34,[43]]],[[8,[[76,[-1]]]]],[77,78]],[[80,4],5],[[80,4],5],[[83,4],5],[[83,4],5],[[81,4],[[6,[2,85]]]],[[81,4],5],[[[86,[-1]],4],5,[52,87]],[[82,4],5],[[[76,[-1]],4],5,[52,10]],[[[75,[-1]],4],5,[52,10]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[75,[-1]],57],[[29,[-1]]],10],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[82,20],82],0,[[[75,[-1]]],88,[77,78]],[[[75,[-1]],[62,[61]]],2,10],[[[75,[-1]],-2],2,10,31],[81,61],[[[75,[-1]],[34,[38]],3],[[6,[[29,[-1]],36]]],10],[[82,9,-2,[90,[-3,89]]],[[6,[2,91]]],10,[[65,[-1]]],92],[[9,-2,[15,[[15,[-1]]]]],[[6,[[75,[-1]],36]]],[77,78],[[65,[-1]]]],[[82,20],82],[[82,20],82],[[-2,-3,[15,[[34,[43]]]]],[[6,[2,36]]],10,[[41,[-1]],64],[[65,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,61,[]],[-1,61,[]],[-1,61,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[75,[-1]]],[[6,[2,[15,[83]]]]],[77,78]],[[[75,[-1]],-2,-2],[[6,[2,[15,[83]]]]],[77,78],[24,79]],[[[75,[-1]],-2,-2],[[6,[2,[15,[83]]]]],[77,78],[24,79]],[[[75,[-1]]],[[6,[2,[15,[83]]]]],[77,78]],[[82,[93,[3]]],82],[[82,[93,[3]]],82],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[94,[-1,-2]],4],5,[52,95],[52,65]],[[[96,[-1]],4],5,[52,95]],[[[97,[-1]],4],5,[52,95]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1,-2]]],[[96,[-1]]],95,65],[[9,-1],[[94,[-2,-1]]],65,95],[[[94,[-1,-2]],3],[[97,[-1]]],95,65],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[98,98],[99,99],[100,100],[101,101],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[98,98],71],[[102,102],71],[98,59],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[[98,98],20],[[102,102],20],[[99,99],20],[[100,100],20],[[101,101],20],[[98,4],5],[[98,4],5],[[102,4],5],[[102,4],5],[[99,4],5],[[99,4],5],[[100,4],5],[[100,4],5],[[101,4],5],[[101,4],5],[[[2,[59,3]]],98],[-1,-1,[]],[[[34,[59]]],98],[[[2,[-1,98,103]]],102,[[26,[16]]]],[104,102],[-1,-1,[]],[[[2,[98,103]]],102],[-1,-1,[]],[[[2,[3,-1]]],99,[[26,[16]]]],[[[2,[99,3,-1]]],100,[[26,[16]]]],[-1,-1,[]],[[[2,[3,16,[105,[98,61]]]]],101],[[[2,[3,61]]],101],[[[2,[3,61,[105,[98,61]]]]],101],[[[2,[3,16]]],101],[-1,-1,[]],[[98,-1],2,74],[98,3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[98,98],[[62,[71]]]],[[102,102],[[62,[71]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,61,[]],[-1,61,[]],[-1,61,[]],[-1,61,[]],[-1,61,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[106,[-1]],[106,[-1]]],[[106,[-1]]],10],[[[28,[-1]],[28,[-1]]],2,10],[[[28,[-1]],[28,[-1]]],2,10],[[[107,[-1]],[15,[[15,[15]]]],[15,[108]]],2,12],[[],59],[[[109,[-1]]],[[34,[33]]],10],[[[109,[-1]],-2],[[34,[33]]],10,110],[[[109,[-1]]],[[15,[108]]],10],[-1,59,110],[[[109,[-1]]],[[15,[[2,[[34,[33]],111]]]]],10],[[-1,-2,[34,[59]]],2,[],31],[[[109,[-1]],-2,-3],2,10,[[49,[[34,[59]]]]],17],[[[109,[-1]],39,-2],2,10,17],[[-1,-2,[34,[33]],3,-3],[[6,[2,36]]],[],31,31],[[-1,-2,[34,[43]],3,-3],[[6,[2,36]]],[],31,31],[[[109,[-1]]],3,10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[109,[-1]]],[[15,[108]]],10],[[[109,[-1]],-2],57,10,110],[[[28,[-1]]],[[28,[-1]]],24],[[[34,[-1]]],[[34,[-1]]],[24,112]],[33,33],[43,43],[38,38],[59,59],[73,73],[113,113],[114,114],[115,115],[39,39],[57,57],[[[106,[-1]]],[[106,[-1]]],24],[104,104],[[[116,[-1]]],[[116,[-1]]],[24,10]],[[[109,[-1]]],[[109,[-1]]],[24,10]],[[[117,[-1]]],[[117,[-1]]],[24,12]],[[[118,[-1]]],[[118,[-1]]],[24,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[34,[-1]],[34,[-1]]],71,112],[[59,59],71],[[39,39],71],[113,3],[114,3],[115,3],[[[34,[-1]]],-1,112],[[[109,[-1]]],73,10],[[[106,[-1]]],3,10],[[[109,[-1]],[15,[[15,[20]]]]],[[2,[[109,[-1]],[15,[[15,[-1]]]]]]],10],[[[109,[-1]]],[],[]],[[[109,[-1]]],[],[]],[[[109,[-1]]],[],[]],[[[109,[-1]]],[[15,[[34,[43]]]]],10],[[[116,[-1]],3],16,10],[[-1,[34,[59]],3,[34,[59]],3],[[6,[2,36]]],[]],[[[109,[-1]],-2,-3],2,10,[[26,[16]]],31],[[118,[8,[-1]],[8,[[8,[8]]]],-2,-4],[[6,[2,36]]],65,27,119,[[120,[-3]]]],[[[117,[-1]]],109,12],[[[28,[-1]]],[[28,[-1]]],10],[[[34,[-1]]],[[106,[-2]]],112,10],[[],33],[[],[[109,[-1]]],10],[[],[[107,[-1]]],[121,12]],[[[106,[-1]]],3,10],[[[109,[-1]]],3,10],[[[28,[-1]]],[[62,[-1]]],10],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[109,[-1]],[15,[[15,[20]]]]],[[2,[[109,[-1]],[15,[[15,[-1]]]]]]],10],[[[28,[-1]]],[[28,[-1]]],10],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[73,[32,[-1]],3],[[6,[2,36]]],10],[[[109,[-1]],[34,[43]]],2,10],[[[109,[-1]],-2],2,10,[[49,[[34,[59]]]]]],[[-1,-2,73,3],[[6,[2,36]]],[],31],[[-1,-2],2,[],31],[[[28,[-1]],[28,[-1]]],20,10],[[[34,[-1]],[34,[-1]]],20,[84,112]],[[33,33],20],[[43,43],20],[[38,38],20],[[59,59],20],[[73,73],20],[[113,113],20],[[114,114],20],[[115,115],20],[[39,39],20],[[57,57],20],[[[106,[-1]],[106,[-1]]],20,84],[[[28,[-1]]],-1,10],[[[106,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11],-12,10,17,17,17,17,17,17,17,17,17,17,[]],[[[106,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-12,10,17,17,17,17,17,17,17,17,17,17,84],[-1,2,[]],[73,[[106,[-1]]],10],[57,[[106,[-1]]],10],[[-1,[34,[43]],3,[29,[[28,[-2]]]]],[[6,[2,36]]],[],[]],[[[107,[-1]],[122,[-1]],[117,[-1]]],20,12],[[[109,[-1]]],[[34,[43]]],10],[[[117,[-1]]],[[15,[-1]]],12],[[[109,[-1]]],[[15,[[2,[[34,[43]],111]]]]],10],[[[123,[-1]],4],5,10],[[[28,[-1]],4],5,52],[[[34,[-1]],4],5,[52,112]],[[124,4],5],[[125,4],5],[[126,4],5],[[33,4],5],[[43,4],5],[[38,4],5],[[59,4],5],[[73,4],5],[[113,4],5],[[114,4],5],[[115,4],5],[[39,4],5],[[57,4],5],[[[106,[-1]],4],5,52],[[104,4],5],[[[127,[-1]],4],5,[52,10]],[[[128,[-1,-2,-3]],4],5,[52,10],[52,[49,[[127,[-1]]]]],[52,21]],[[[116,[-1]],4],5,[52,10]],[[[109,[-1]],4],5,[52,10]],[[[129,[-1]],4],5,[52,10]],[[36,4],5],[[36,4],5],[[130,4],5],[[130,4],5],[[[107,[-1]],4],5,[52,12]],[[[117,[-1]],4],5,[52,12]],[[[131,[-1]],4],5,[52,12]],[[[118,[-1]],4],5,[52,12]],[-1,-1,[]],[[[2,[-1,-1]]],[[28,[-1]]],10],[-1,[[28,[-1]]],10],[[[28,[-1]]],[[28,[-1]]],10],[-1,[[28,[-1]]],10],[-1,-1,[]],[[[34,[43]]],[[34,[59]]]],[[[34,[33]]],[[34,[59]]]],[[[34,[38]]],[[34,[59]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[33,59],[43,59],[-1,-1,[]],[38,59],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[-1,111]]],104,[[49,[[34,[59]]]]]],[-1,-1,[]],[[[106,[-1]]],[[127,[-1]]],10],[[[2,[-1,[106,[-2]]]]],[[127,[-2]]],[[26,[16]]],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[132,36],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[8,[108]],1],[[133,[[117,[-1]]]]],0],[[[8,[108]],1],[[133,[[118,[-1]]]]],0],[[[109,[-1]]],[[15,[[116,[-1]]]]],10],[[[109,[-1]]],[[105,[98,61]]],10],[[-1,57],[[29,[-2]]],[],[]],[[[117,[-1]]],134,12],[[[118,[-1]]],[[117,[-1]]],12],[[[34,[-1]],-2],2,[135,112],74],[[33,-1],2,74],[[43,-1],2,74],[[38,-1],2,74],[[59,-1],2,74],[[73,-1],2,74],[[39,-1],2,74],[[57,-1],2,74],[[[117,[-1]],-3],[[133,[2]]],12,[[119,[-1]]],[[136,[-1,-2]]]],[[[106,[-1]]],61,10],[[[34,[-1]]],3,112],[73,3],[57,3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[39,[[34,[43]]]],[[[109,[-1]]],[[34,[38]]],10],[[[109,[-1]]],[[15,[[2,[[34,[38]],111]]]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[128,[-1,-2,-3]]],[],10,[[49,[[127,[-1]]]]],21],[[[28,[-1]]],[[28,[-1]]],10],[73,20],[[[28,[-1]]],20,10],[[-2,[117,[-1]],-3],[[6,[[118,[-1]],36]]],12,[[137,[-1]]],65],[[-2,-3],[[6,[[117,[-1]],36]]],12,[[137,[-1]]],65],[[-2,-3,20],[[6,[[117,[-1]],36]]],12,[[137,[-1]]],65],[[[109,[-1]],-2,-3],3,10,[[26,[16]]],31],[[[109,[-1]],-2,-3],3,10,[[26,[16]]],31],[[[109,[-1]]],39,10],[[[109,[-1]]],[[15,[[0,[-1]]]]],10],[[[109,[-1]]],3,10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[106,[-1]],[106,[-1]]],[[106,[-1]]],10],[[[106,[-1]],-1],[[106,[-1]]],10],[[[28,[-1]],[28,[-1]]],2,10],[[[28,[-1]],[28,[-1]]],2,10],[[[116,[-1]]],16,10],[[[28,[-1]]],[],10],[[[28,[-1]]],[],10],[[[106,[-1]]],[],10],[-1,33,110],[[],[[107,[-1]]],12],[[[34,[-1]]],[[106,[-2]]],112,10],[[[109,[-1]]],3,10],[[[109,[-1]]],3,10],[[[109,[-1]]],3,10],[[[109,[-1]]],3,10],[[[109,[-1]]],3,10],[[[28,[-1]]],-1,10],[-1,[],[]],[-1,[],[]],[[[34,[-1]],[34,[-1]]],[[62,[71]]],112],[[59,59],[[62,[71]]]],[[39,39],[[62,[71]]]],0,[[[109,[-1]]],138,10],[[[117,[-1]]],[[139,[-1]]],12],[33,108],[114,108],[57,108],[[[109,[-1]]],[[123,[-1]]],10],[[[117,[-1]]],[[131,[-1]]],12],[[[116,[-1]]],[[8,[[106,[-1]]]]],10],[[-1,[62,[61]]],2,[]],[[[34,[-1]]],[[106,[-2]]],112,10],[-1,[[106,[-2]]],79,10],[[-1,-2],2,[],31],[[[129,[-1]],[34,[33]],111],[[106,[-1]]],10],[[[129,[-1]],-2,111],[[106,[-1]]],10,[[49,[[34,[59]]]]]],[[-1,3,111],[[106,[-2]]],[],10],[[[34,[-1]],111],[[106,[-2]]],112,10],[[33,3,111],[[106,[-1]]],10],[[43,3,111],[[106,[-1]]],10],[[38,3,111],[[106,[-1]]],10],[[59,3,111],[[106,[-1]]],10],[[[106,[-1]],[129,[-1]]],2,10],[[[129,[-1]],57],[[106,[-1]]],10],[[[129,[-1]],[34,[43]],111],[[106,[-1]]],10],[[-1,[34,[38]],3],[[6,[[29,[-2]],36]]],[],[]],[[[129,[-1]],[34,[38]],111],[[106,[-1]]],10],[[[129,[-1]],73],[[106,[-1]]],10],[[-1,1],[[133,[[117,[-2]]]]],140,0],[[-1,1],[[133,[[118,[-2]]]]],140,0],[[[34,[-1]],103],[[106,[-2]]],112,10],[113,111],[114,111],[115,111],[[[109,[-1]]],73,10],[[[109,[-1]],3],2,10],[[[109,[-1]],-2,-3],3,10,[[26,[16]]],31],[[[109,[-1]]],[[15,[[0,[-1]]]]],10],[36,[[62,[141]]]],[[[28,[-1]]],[[28,[-1]]],10],[[[106,[-1]]],[[106,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],[28,[-1]]],[[28,[-1]]],10],[[[28,[-1]],-1],[[28,[-1]]],10],[[[106,[-1]],[106,[-1]]],[[106,[-1]]],10],[[[28,[-1]],[28,[-1]]],2,10],[[[28,[-1]],[28,[-1]]],2,10],[-1,[[106,[-2]]],79,10],[[-2,-3,[15,[[34,[43]]]]],[[6,[2,36]]],10,[[41,[-1]],64],[[65,[-1]]]],[[-1,-3],[[6,[2,36]]],[],[],[[45,[-2]]]],[[[117,[-1]],1],[[15,[108]]],0],[[[118,[-1]],1],[[15,[108]]],0],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,61,[]],[-1,61,[]],[[[117,[-1]]],[],12],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[[[34,[59]]],[[6,[[34,[38]]]]]],[[[34,[59]]],[[6,[[34,[33]]]]]],[[[34,[59]]],[[6,[[34,[43]]]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[109,[-1]]],[[34,[33]]],10],[[[109,[-1]],-2],[[34,[33]]],10,110],[[117,-3,[8,[[8,[8]]]],-5],[[6,[36]]],142,[[143,[-1]]],[[144,[-1,-2]]],119,[[145,[-4]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[106,[-1]],-2],[[128,[-1,-3,-2]]],10,21,[[49,[[127,[-1]]]]]],[-1,-1,[]],[[[117,[-1]],-2,1],[[133,[2]]],0,146],[[[118,[-1]],-2,1],[[133,[2]]],0,146],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[88,2],[88,88],[138,138],[[[139,[-1]]],[[139,[-1]]],[24,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[88,[[8,[[34,[59]]]]]],[[[139,[-1]]],[[15,[-1]]],12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[88,88],20],[[88,4],5],[[138,4],5],[[[139,[-1]],4],5,[52,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[138,[[15,[[34,[59]]]]]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[88,[[0,[79]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[147,[-1,-2]],[147,[-1,-2]]],[[147,[-1,-2]]],10,148],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[134,[-1]]],[[134,[-1]]],[24,10]],[[[149,[-1]]],[[149,[-1]]],[24,12]],[[[150,[-1,-2]]],[[150,[-1,-2]]],12,[[151,[-1]]]],[152,152],[153,153],[154,154],[[[147,[-1,-2]]],[[147,[-1,-2]]],24,24],[111,111],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[134,[-1]],[15,[-1]]],[[147,[-1,152]]],155],[[[134,[-1]],[147,[-1,152]]],[[147,[-1,154]]],155],0,[[[134,[-1]],-1],[[147,[-1,154]]],155],[[[134,[-1]],-1],[[147,[-1,153]]],155],[[],111],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[147,[-1,-2]]],[[8,[-1]]],[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[147,[-1,-2]]],[[8,[-1]]],[],[]],[3,-1,[]],[3,-1,[]],[[[134,[-1]],[147,[-1,154]]],[[147,[-1,154]]],155],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[134,[-1]]],[[147,[-1,152]]],155],[[[134,[-1]]],[[147,[-1,154]]],155],[[[134,[-1]]],[[147,[-1,153]]],155],[[111,111],20],[[[134,[-1]]],9,155],[[[134,[-1]]],3,155],[[[134,[-1]],[147,[-1,154]]],[[15,[-1]]],155],[-1,20,[]],[[[134,[-1]],4],5,[52,10]],[[[156,[-1]],4],5,[52,10]],[[[149,[-1]],4],5,[52,12]],[[[150,[-1,-2]],4],5,[52,12],[52,[151,[-1]]]],[[157,4],5],[[152,4],5],[[153,4],5],[[154,4],5],[[[147,[-1,-2]],4],5,52,52],[[111,4],5],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[134,[-1]]],-1,155],[[[134,[-1]]],-1,155],[[[134,[-1]]],-1,155],[[[134,[-1]]],3,155],[[[147,[-1,-2]],3],-1,[],[]],[[[147,[-1,-2]],[158,[3]]],[[8,[-1]]],[],[]],[[[147,[-1,-2]],159],[[8,[-1]]],[],[]],[[[147,[-1,-2]],159],[[8,[-1]]],[],[]],[[[147,[-1,-2]],3],-1,[],[]],[[[147,[-1,-2]],[158,[3]]],[[8,[-1]]],[],[]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[147,[-1,-2]]],[[0,[79]]],[],[]],[[[147,[-1,-2]]],[[0,[79]]],[],[]],[[[134,[-1]]],9,155],0,[[[134,[-1]],-1,-1,-2],[[15,[-1]]],155,[21,24]],[[[134,[-1]],[15,[-1]]],[[147,[-1,153]]],155],[[[134,[-1]],[147,[-1,153]]],[[147,[-1,152]]],155],[[[147,[-1,-2]],-1],[[147,[-1,-2]]],10,148],[[],-1,[]],[[9,9],[[134,[-1]]],155],[-1,[[150,[-1,-2]]],12,[[151,[-1]]]],[-2,[[150,[-1,-2]]],12,[[151,[-1]]]],[[],111],[[[147,[-1,-2]]],3,[],[]],[[[134,[-1]]],[[156,[-1]]],155],[[],111],[[-1,-2],[[6,[36]]],[],31],[[[147,[-1,153]],111],[[147,[-1,153]]],10],[[[134,[-1]],[147,[-1,154]],111],[[147,[-1,154]]],155],[[[134,[-1]],-1,111],-1,155],[[[147,[-1,-2]],[147,[-1,-2]]],[[147,[-1,-2]]],10,148],[[[147,[-1,-2]],-1],[[147,[-1,-2]]],10,148],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[160,[-1]],[160,[-1]]],[[160,[-1]]],10],[[[160,[-1]],[160,[-1]]],2,10],[[[160,[-1]],-1],2,10],[[-1,-1],2,161],[-1,2,[]],[-1,15,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,20,[]],[[[160,[-1]]],[[160,[-1]]],24],[[-1,-2],2,[],[]],[[-1,[147,[152]],160],[],[]],[[-1,[147,[153]],160],[],[]],[[-1,-2,-4,-5],[[133,[2]]],[],27,119,[[120,[-3]]],[21,24]],[[],[[160,[-1]]],10],[3,-1,[]],[3,-1,[]],[[-1,9],2,[]],[3,2],[-1,[],[]],[[[160,[-1]],[160,[-1]]],20,84],[-1,[],[]],[[[160,[-1]],4],5,52],[-1,-1,[]],[-1,[[8,[-2]]],[],[]],[[],3],[-1,-2,[],[]],[-1,9,[]],[[[160,[-1]],[160,[-1]]],[[160,[-1]]],10],[[[160,[-1]],-1],2,10],[[[160,[-1]],[160,[-1]]],2,10],[-1,25,[]],[9,-1,[]],[[],-1,[]],[[],-1,[]],[-1,[[160,[-2]]],27,10],[9],[-1,[[133,[-2]]],140,[]],[-1,133,140],[-1,15,[]],[-1,2,[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,[],[]],[[-1,-3,-4],[[6,[157]]],[],119,[[145,[-2]]],[21,24]],[-1,-2,[],[]],[[-1,-2],[[133,[2]]],[],146],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[162,[-1]]],[[162,[-1]]],[24,12]],[[-1,-2],2,[],[]],[[[162,[-1]],[147,[152]],160],[],12],[[[162,[-1]],[147,[153]],160],[],12],[[[162,[-1]],-2,-4,[147,[152]],160],[[133,[2]]],12,27,[[119,[-1]]],[[120,[-1,-3]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[162,[-1]],9],2,12],[3,2],[3,2],[[[162,[-1]]],[[163,[-1]]],12],[[[162,[-1]],4],5,[52,12]],[[[164,[-1]],4],5,[52,12]],[-1,-1,[]],[-1,-1,[]],[[[162,[-1]]],[[8,[-1]]],12],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[162,[-1]]],9,12],[[[162,[-1]]],25,12],[9,[[162,[-1]]],12],[9],[-1,[[133,[[162,[-2]]]]],140,12],[-1,133,140],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[162,[-1]]],[],12],[[[162,[-1]],[163,[-1]],-3],[[6,[[165,[-1]],157]]],12,[[119,[-1]]],[[145,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[162,[-1]],-2],[[133,[2]]],12,146],0,[[[163,[-1]]],2,12],[[[163,[-1]],[163,[-1]]],2,12],[[[163,[-1]],[163,[-1]]],2,12],[[[163,[-1]],8],2,12],[[[163,[-1]]],2,12],[[[163,[-1]]],2,12],[[[163,[-1]]],2,12],[[[163,[-1]]],15,12],[-1,-2,[],[]],[-1,-2,[],[]],[[[163,[-1]]],20,12],[[[163,[-1]]],[[163,[-1]]],[24,12]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[[163,[-1]]],[],12],[[[163,[-1]],4],5,[52,12]],[-1,-1,[]],[[],3],[-1,-2,[],[]],[[[122,[-1]]],[[163,[-1]]],12],[[[163,[-1]]],15,12],[[[163,[-1]]],2,12],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]],-2,-4,-5],[[133,[2]]],12,27,[[119,[-1]]],[[120,[-1,-3]]],[21,24]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[166,[-1]],4],5,[52,12]],[[[167,[-1]],4],5,[52,12]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[162,[-1]]],[[166,[-1]]],12],[[[122,[-1]]],[[167,[-1]]],12],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[167,[-1]],-3,-4,[163,[-1]]],[[6,[157]]],12,[[119,[-1]]],[[145,[-1,-2]]],[21,24]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[165,[-1]]],[[165,[-1]]],[24,12]],[[[168,[-1]]],[[168,[-1]]],[24,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[165,[-1]]],-1,12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[169,[-1]]],20,12],[[[170,[-1]]],20,12],[[[165,[-1]],4],5,[52,12]],[[[168,[-1]],4],5,[52,12]],[[[169,[-1]],4],5,[52,12]],[[[170,[-1]],4],5,[52,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[162,[-1]]],[[169,[-1]]],12],[[[162,[-1]]],[[170,[-1]]],12],[[[169,[-1]],-2],[[6,[36]]],12,31],[[[170,[-1]],-2],[[6,[36]]],12,31],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],0,[[[165,[-1]]],[[163,[-1]]],12],[[[165,[-1]],-1],[[2,[[163,[-1]],[168,[-1]]]]],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1]]],[[171,[-1]]],[24,172]],[[-1,-2],2,[],[]],[[[171,[-1]],[147,[152]],160],[],[172,52]],[[[171,[-1]],[147,[153]],160],[],[172,52]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[171,[-1]],9],2,[172,52]],[3,2],[3,2],[[[171,[-1]]],[[173,[-1]]],[172,52]],[[[171,[-1]],4],5,[52,172]],[[[174,[-1]],4],5,[52,172]],[-1,-1,[]],[-1,-1,[]],[[[171,[-1]],9,15,[62,[15]]],[[171,[-1]]],[172,52]],[[[171,[-1]]],[],[172,52]],[[[171,[-1]]],8,[172,52]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1]]],9,[172,52]],[[[171,[-1]]],25,[172,52]],[9,[[171,[-1]]],[172,52]],[9],[-1,[[133,[[171,[-2]]]]],140,[172,52]],[[-1,1],[[133,[[171,[-2]]]]],140,[172,52]],[-1,133,140],[[[171,[-1]]],[],[172,52]],[[9,-1],[[171,[-2]]],27,[172,52]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[171,[-1]]],[],[172,52]],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1]],-2],[[133,[2]]],[172,52],146],[[[171,[-1]],-2,1],[[133,[2]]],[172,52],146],0,0,[[[173,[-1]],[173,[-1]]],2,[172,52]],[[[175,[-1]],[175,[-1]]],2,[176,52]],[[[173,[-1]]],2,[172,52]],[[[173,[-1]]],15,[172,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[173,[-1]]],20,[172,52]],[[[175,[-1]]],20,[176,52]],[[[173,[-1]]],[[173,[-1]]],[24,172]],[[[175,[-1]]],[[175,[-1]]],[24,172]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[173,[-1]]],2,172],[[],[[173,[-1]]],[121,172]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[173,[-1]]],[],[172,52]],[[[173,[-1]],4],5,[52,172]],[[[175,[-1]],4],5,[52,172]],[-1,-1,[]],[-1,-1,[]],[[[171,[-1]]],[[175,[-1]]],[176,52]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[173,[-1]]],172],[[[171,[-1]]],[[175,[-1]]],[176,52]],[[[173,[-1]]],15,[172,52]],[[[173,[-1]]],2,[172,52]],[[[175,[-1]]],2,[176,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[177,[-1]],-2,-4,-5],[[133,[2]]],[172,52],27,119,[[120,[-3]]],[21,24]],[[[178,[-1]],-2,-4,-5],[[133,[2]]],[172,52],27,119,[[120,[-3]]],[21,24]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[177,[-1]],4],5,[52,172]],[[[179,[-1]],4],5,[52,172]],[[[178,[-1]],4],5,[52,172]],[[[180,[-1]],4],5,[52,172]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1]]],[[177,[-1]]],[172,52]],[[[171,[-1]]],[[179,[-1]]],[176,52]],[[[171,[-1]]],[[178,[-1]]],[172,52]],[[[171,[-1]]],[[178,[-1]]],172],[[[171,[-1]]],[[180,[-1]]],[176,52]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[179,[-1]],-3,-4,[175,[-1]]],[[6,[157]]],[176,52],119,[[145,[-2]]],[21,24]],[[[180,[-1]],-3,-4,[175,[-1]]],[[6,[157]]],[176,52],119,[[145,[-2]]],[21,24]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[181,[-1]]],[[181,[-1]]],[24,176,52]],[[[182,[-1]]],[[182,[-1]]],[24,172]],[[[183,[-1]]],[[183,[-1]]],[24,172]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[182,[-1]]],20,[176,52]],[[[183,[-1]]],20,[176,52]],[[[181,[-1]],4],5,[52,176,52]],[[[182,[-1]],4],5,[52,172]],[[[183,[-1]],4],5,[52,172]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1]]],[[182,[-1]]],[176,52]],[[[171,[-1]]],[[182,[-1]]],[176,52]],[[[171,[-1]]],[[183,[-1]]],[176,52]],[[[171,[-1]]],[[183,[-1]]],[176,52]],[[[182,[-1]],-2],[[6,[36]]],[176,52],31],[[[183,[-1]],-2],[[6,[36]]],[176,52],31],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[175,[-1]]],[[182,[-1]]],[176,52]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,[[184,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[185,[-1,-2,-3]]],[[185,[-1,-2,-3]]],[24,140],[24,12],[24,[119,[-2]]]],[[[186,[-1,-2,-3]]],[[186,[-1,-2,-3]]],[24,140],[24,12],[24,[119,[-2]]]],[[[187,[-1,-2,-3]]],[[187,[-1,-2,-3]]],[24,146],[24,12],[24,[119,[-2]]]],[[[188,[-1,-2,-3]]],[[188,[-1,-2,-3]]],[24,146],[24,12],[24,[119,[-2]]]],[[[184,[-1,-2]]],[[184,[-1,-2]]],[24,12],24],[[[189,[-1]]],[[189,[-1]]],[24,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],[[133,[2]]],[],[]],[[[185,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],140,12],[[[186,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],140,12],[[[187,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],146,12],[[[188,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],146,12],[-1,[[133,[2]]],[]],[[[185,[-1,-2,[189,[-2]]]]],[[133,[2]]],140,12],[[[186,[-1,-2,[189,[-2]]]]],[[133,[2]]],140,12],[[[187,[-1,-2,[189,[-2]]]]],[[133,[2]]],146,12],[[[188,[-1,-2,[189,[-2]]]]],[[133,[2]]],146,12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[184,[-1,-2]]],[],12,[]],[3,-1,[]],[[[189,[-1]]],[],12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[-1,-2,[],[]],[[[187,[-1,-2,[189,[-2]]]]],-1,146,12],[[[188,[-1,-2,[189,[-2]]]]],-1,146,12],[[[185,[-1,-2,-3]],4],5,[52,140],[52,12],[52,[119,[-2]]]],[[[186,[-1,-2,-3]],4],5,[52,140],[52,12],[52,[119,[-2]]]],[[[187,[-1,-2,-3]],4],5,[52,146],[52,12],[52,[119,[-2]]]],[[[188,[-1,-2,-3]],4],5,[52,146],[52,12],[52,[119,[-2]]]],[[[184,[-1,-2]],4],5,[52,12],52],[[[189,[-1]],4],5,[52,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[],[]],[[[189,[-1]]],[],12],[-1,-2,[],[]],[-1,-2,[],[]],[[],3],[-1,[[185,[-1,-2,[189,[-2]]]]],140,12],[-1,[[186,[-1,-2,[189,[-2]]]]],140,12],[[],3],[-1,[[187,[-1,-2,[189,[-2]]]]],146,12],[[],3],[-1,[[188,[-1,-2,[189,[-2]]]]],146,12],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],-1,[]],[[[66,[108]]],[[189,[-1]]],12],[-1,[[133,[-2]]],[],[]],[[[185,[-1,-2,[189,[-2]]]]],[[133,[-2]]],140,12],[[[186,[-1,-2,[189,[-2]]]]],[[133,[-2]]],140,12],[-1,133,[]],[[[185,[-1,-2,[189,[-2]]]]],133,140,12],[[[186,[-1,-2,[189,[-2]]]]],133,140,12],[-1,-2,[],[]],[[[185,[-1,-2,[189,[-2]]]]],[[189,[-2]]],140,12],[[[186,[-1,-2,[189,[-2]]]]],[[189,[-2]]],140,12],[[[187,[-1,-2,[189,[-2]]]]],[[189,[-2]]],146,12],[[[188,[-1,-2,[189,[-2]]]]],[[189,[-2]]],146,12],[-1,[[184,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[103,103]]],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[133,[2]]],[],[]],[[[187,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],146,12],[[[188,[-1,-2,[189,[-2]]]],-2],[[133,[2]]],146,12],[-1,[[133,[2]]],[]],[[[187,[-1,-2,[189,[-2]]]]],[[133,[2]]],146,12],[[[188,[-1,-2,[189,[-2]]]]],[[133,[2]]],146,12]],"c":[],"p":[[4,"SerdeFormat",0],[15,"tuple"],[15,"usize"],[3,"Formatter",2434],[6,"Result",2434],[4,"Result",2435],[3,"TypeId",2436],[15,"slice"],[15,"u32"],[8,"Field",27],[8,"FftGroup",27],[8,"CurveAffine",27],[3,"Coordinates",2437],[3,"CtOption",2438],[3,"Vec",2439],[15,"str"],[8,"Fn",2440],[3,"Box",2441],[3,"Choice",2438],[15,"bool"],[8,"IntoIterator",2442],[8,"Send",2443],[8,"Sync",2443],[8,"Clone",2444],[15,"u64"],[8,"AsRef",2445],[8,"RngCore",2446],[4,"Assigned",793],[3,"Value",74],[8,"Add",2447],[8,"FnOnce",2440],[3,"Region",74],[3,"Advice",793],[3,"Column",793],[3,"AssignedCell",74],[4,"Error",793],[8,"FnMut",2440],[3,"Instance",793],[3,"TableColumn",793],[3,"SimpleTableLayouter",74],[8,"Assignment",793],[3,"Table",74],[3,"Fixed",793],[3,"NamespacedLayouter",74],[8,"Layouter",74],[3,"Cell",74],[3,"RegionIndex",74],[3,"RegionStart",74],[8,"Into",2445],[8,"Copy",2443],[8,"Borrow",2448],[8,"Debug",2434],[3,"SimpleFloorPlanner",74],[8,"RegionLayouter",377],[8,"TableLayouter",377],[8,"FromIterator",2442],[3,"Challenge",793],[8,"Mul",2447],[4,"Any",793],[8,"Neg",2447],[3,"String",2449],[4,"Option",2450],[8,"Sub",2447],[8,"SyncDeps",377],[8,"Circuit",793],[15,"array"],[3,"V1Pass",341],[3,"V1",341],[3,"RegionShape",377],[4,"RegionColumn",377],[4,"Ordering",2451],[3,"HashSet",2452],[3,"Selector",793],[8,"Hasher",2453],[3,"MockProver",445],[4,"CellValue",445],[8,"FromUniformBytes",2454],[8,"Ord",2451],[8,"Iterator",2455],[4,"FailureLocation",445],[3,"CircuitGates",445],[3,"CircuitLayout",445],[4,"VerifyFailure",445],[8,"PartialEq",2451],[3,"Error",2434],[3,"TracingFloorPlanner",445],[8,"FloorPlanner",793],[3,"Assembly",1519],[3,"Shift",2456],[3,"DrawingArea",2457],[4,"DrawingAreaErrorKind",2457],[8,"DrawingBackend",2458],[3,"Range",2459],[3,"CircuitCost",633],[8,"PrimeGroup",2460],[3,"MarginalProofSize",633],[3,"ProofSize",633],[3,"Column",678],[3,"Gate",678],[3,"Constraint",678],[3,"Region",678],[3,"VirtualCell",678],[15,"i32"],[3,"VirtualCell",793],[3,"HashMap",2461],[4,"Expression",793],[3,"BatchVerifier",793],[15,"u8"],[3,"ConstraintSystem",793],[8,"Phase",793],[3,"Rotation",1576],[8,"ColumnType",793],[3,"FixedQuery",793],[3,"AdviceQuery",793],[3,"InstanceQuery",793],[3,"Gate",793],[3,"VerifyingKey",793],[3,"ProvingKey",793],[8,"EncodedChallenge",2280],[8,"TranscriptWrite",2280],[8,"Default",2462],[6,"ParamsVerifierIPA",1869],[3,"PinnedConstraintSystem",793],[3,"FirstPhase",793],[3,"SecondPhase",793],[3,"ThirdPhase",793],[3,"Constraint",793],[3,"Constraints",793],[3,"VirtualCells",793],[4,"TableError",793],[3,"PinnedVerificationKey",793],[3,"Error",2463],[6,"Result",2463],[3,"EvaluationDomain",1576],[8,"Hash",2453],[8,"Transcript",2280],[8,"Params",1798],[3,"Argument",1519],[3,"VerifyingKey",1519],[8,"Read",2464],[8,"Error",2465],[8,"CommitmentScheme",1798],[8,"Verifier",1798],[8,"VerificationStrategy",1576],[8,"TranscriptRead",2280],[8,"Write",2464],[3,"Polynomial",1576],[8,"Basis",1576],[3,"ProverQuery",1576],[3,"VerifierQuery",1576],[8,"MSM",1798],[3,"Coeff",1576],[3,"LagrangeCoeff",1576],[3,"ExtendedLagrangeCoeff",1576],[8,"WithSmallOrderMulGroup",2454],[3,"PinnedEvaluationDomain",1576],[4,"Error",1576],[3,"RangeFrom",2459],[3,"RangeFull",2459],[3,"Blind",1798],[8,"Sized",2443],[3,"ParamsIPA",1869],[3,"MSMIPA",1916],[3,"IPACommitmentScheme",1869],[3,"GuardIPA",1978],[3,"ProverIPA",1946],[3,"VerifierIPA",1946],[3,"Accumulator",1978],[3,"AccumulatorStrategy",1978],[3,"SingleStrategy",1978],[3,"ParamsKZG",2055],[8,"Engine",2466],[3,"MSMKZG",2106],[3,"KZGCommitmentScheme",2055],[3,"DualMSM",2106],[8,"MultiMillerLoop",2466],[3,"ProverGWC",2155],[3,"ProverSHPLONK",2155],[3,"VerifierGWC",2155],[3,"VerifierSHPLONK",2155],[3,"GuardKZG",2220],[3,"AccumulatorStrategy",2220],[3,"SingleStrategy",2220],[3,"ChallengeScalar",2280],[3,"Blake2bRead",2280],[3,"Keccak256Read",2280],[3,"Blake2bWrite",2280],[3,"Keccak256Write",2280],[3,"Challenge255",2280],[8,"CurveExt",27],[8,"Chip",74],[13,"InRegion",608],[13,"OutsideRegion",608],[13,"ConstraintNotSatisfied",611],[13,"CellNotAssigned",611],[13,"InstanceCellNotAssigned",611],[13,"Permutation",611],[13,"ConstraintPoisoned",611],[13,"Lookup",611],[13,"Shuffle",611],[13,"NotEnoughRowsAvailable",1518],[8,"Guard",1576],[8,"ParamsProver",1798],[8,"Prover",1798],[8,"TranscriptWriterBuffer",2280],[8,"TranscriptReadBuffer",2280]],"b":[[90,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[91,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[92,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[93,"impl-Add-for-Value%3CV%3E"],[94,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[95,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[96,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[97,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[98,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[99,"impl-Add-for-%26Value%3CV%3E"],[146,"impl-Value%3C%26V%3E"],[147,"impl-Value%3C%26mut+V%3E"],[154,"impl-Value%3C%26mut+V%3E"],[155,"impl-Value%3C%26V%3E"],[256,"impl-Mul-for-Value%3CV%3E"],[257,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[258,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[259,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[260,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[261,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[262,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[263,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[264,"impl-Mul-for-%26Value%3CV%3E"],[265,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[277,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[278,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[279,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[280,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[281,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[282,"impl-Sub-for-%26Value%3CV%3E"],[283,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[284,"impl-Sub-for-Value%3CV%3E"],[285,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[286,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[419,"impl-From%3CColumn%3CAny%3E%3E-for-RegionColumn"],[420,"impl-From%3CSelector%3E-for-RegionColumn"],[525,"impl-Display-for-FailureLocation"],[526,"impl-Debug-for-FailureLocation"],[527,"impl-Display-for-VerifyFailure"],[528,"impl-Debug-for-VerifyFailure"],[529,"impl-Display-for-CircuitGates"],[530,"impl-Debug-for-CircuitGates"],[724,"impl-Display-for-Column"],[725,"impl-Debug-for-Column"],[726,"impl-Display-for-VirtualCell"],[727,"impl-Debug-for-VirtualCell"],[728,"impl-Display-for-Gate"],[729,"impl-Debug-for-Gate"],[730,"impl-Display-for-Constraint"],[731,"impl-Debug-for-Constraint"],[732,"impl-Debug-for-Region"],[733,"impl-Display-for-Region"],[734,"impl-From%3C(Any,+usize)%3E-for-Column"],[736,"impl-From%3CColumn%3CAny%3E%3E-for-Column"],[737,"impl-From%3C(S,+Column,+i32)%3E-for-VirtualCell"],[738,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[740,"impl-From%3C(Column,+i32)%3E-for-VirtualCell"],[745,"impl-From%3C(usize,+%26str,+HashMap%3CColumn,+String%3E)%3E-for-Region"],[746,"impl-From%3C(usize,+String)%3E-for-Region"],[747,"impl-From%3C(usize,+String,+HashMap%3CColumn,+String%3E)%3E-for-Region"],[748,"impl-From%3C(usize,+%26str)%3E-for-Region"],[861,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[862,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[863,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[864,"impl-Add-for-Assigned%3CF%3E"],[865,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[866,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[868,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[869,"impl-AddAssign-for-Assigned%3CF%3E"],[1147,"impl-Debug-for-Error"],[1148,"impl-Display-for-Error"],[1149,"impl-Display-for-TableError"],[1150,"impl-Debug-for-TableError"],[1156,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1157,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1158,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1159,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1161,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1162,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1163,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1171,"impl-From%3CAdvice%3E-for-Any"],[1172,"impl-From%3CFixed%3E-for-Any"],[1174,"impl-From%3CInstance%3E-for-Any"],[1185,"impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E"],[1186,"impl-From%3C(S,+Expression%3CF%3E)%3E-for-Constraint%3CF%3E"],[1291,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1292,"impl-Mul-for-Assigned%3CF%3E"],[1293,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1294,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1295,"impl-Mul-for-Expression%3CF%3E"],[1296,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1297,"impl-MulAssign-for-Assigned%3CF%3E"],[1298,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1300,"impl-Neg-for-Assigned%3CF%3E"],[1301,"impl-Neg-for-%26Assigned%3CF%3E"],[1357,"impl-Sub-for-Assigned%3CF%3E"],[1358,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1359,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1360,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1361,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1362,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1364,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1365,"impl-SubAssign-for-Assigned%3CF%3E"],[1394,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1395,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1396,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1701,"impl-Index%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[1702,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[1703,"impl-Index%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[1704,"impl-IndexMut%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[1705,"impl-IndexMut%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[1706,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[1748,"impl-Sub%3C%26Polynomial%3CF,+B%3E%3E-for-Polynomial%3CF,+B%3E"],[1749,"impl-Sub%3CF%3E-for-%26Polynomial%3CF,+B%3E"],[1817,"impl-AddAssign-for-Blind%3CF%3E"],[1818,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1845,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1846,"impl-MulAssign-for-Blind%3CF%3E"],[1918,"impl-MSMIPA%3C\'a,+C%3E"],[1919,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[2199,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[2200,"impl-ProverSHPLONK%3C\'a,+E%3E"],[2258,"impl-AccumulatorStrategy%3C\'params,+E%3E"],[2259,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3C\'params,+E%3E"],[2260,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3C\'params,+E%3E"],[2261,"impl-SingleStrategy%3C\'params,+E%3E"]]}\
+"halo2_gadgets":{"doc":"This crate provides various common gadgets and chips for …","t":"CCCCCRKKFFFKRRFRFRFRFRFRRFRMNNMNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMMMNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMGPFFFFFKKRGPTFGGNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNMSSSSHHHHFPGPKKFFFFFRNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNMNNNNNNNNNNNMNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKFIFRKKFNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNMNNNNNNMNMNMNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNSFRFFKRFFNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRFKRRFKRFRFRRMRKRNNNNNNNNCNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNMMNNNNNNNNNNCNNCMNNNNNNNNNNNNNNNNNNNMFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSKFNNNCNNNNNNNNMNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSFFSSNNSNSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKKRNHHNNMNNCCHNNNNNHNNNHNCNHHNNNNNMMNNNFFKNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["ecc","poseidon","sha256","sinsemilla","utilities","Base","BaseFitsInScalarInstructions","EccInstructions","FixedPoint","FixedPointBaseField","FixedPointShort","FixedPoints","FixedPoints","FullScalar","NonIdentityPoint","NonIdentityPoint","Point","Point","ScalarFixed","ScalarFixed","ScalarFixedShort","ScalarFixedShort","ScalarVar","ScalarVar","ShortScalar","X","X","add","add","add","add_incomplete","add_incomplete","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","chip","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","constrain_equal","constrain_equal","constrain_equal","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","extract_p","extract_p","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_base","from_inner","from_inner","from_inner","from_inner","from_inner","from_inner","init","init","init","init","init","init","init","init","init","inner","inner","inner","into","into","into","into","into","into","into","into","into","mul","mul","mul","mul","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","new","new","new","new","new","scalar_fixed_from_signed_short","scalar_var_from_base","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_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","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","BaseFieldElem","BaseFieldElem","EccChip","EccConfig","EccPoint","EccScalarFixed","EccScalarFixedShort","FixedPoint","FixedScalarKind","FixedScalarKind","FullScalar","FullWidth","NUM_WINDOWS","NonIdentityEccPoint","ScalarVar","ShortScalar","add","add_incomplete","advices","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config","configure","constants","constrain_equal","construct","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","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","generator","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lagrange_coeffs","loaded","lookup_config","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","point","point","scalar_fixed_from_signed_short","scalar_var_from_base","to_owned","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_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","u","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","x","x","y","y","z","FIXED_BASE_WINDOW_SIZE","H","NUM_WINDOWS","NUM_WINDOWS_SHORT","compute_lagrange_coeffs","find_zs_and_us","test_lagrange_coeffs","test_zs_and_us","Hash","Message","PaddedWord","Padding","PoseidonInstructions","PoseidonSpongeInstructions","Pow5Chip","Pow5Config","Sponge","StateWord","Word","Word","absorb","add_input","add_input","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone_into","clone_into","clone_into","config","configure","construct","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","finish_absorbing","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_inner","get_output","get_output","hash","init","init","init","init","init","init","init","init","initial_state","initial_state","inner","into","into","into","into","into","into","into","loaded","new","permute","permute","primitives","squeeze","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","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Absorbing","ConstantLength","Domain","Hash","Mds","P128Pow5T3","Padding","Spec","SpongeMode","Squeezing","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","constants","constants","constants","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","full_rounds","full_rounds","full_rounds","generate_constants","hash","init","init","init","init","init","init","initial_capacity_element","initial_capacity_element","into","into","into","into","into","name","name","padding","padding","partial_rounds","partial_rounds","partial_rounds","sbox","sbox","sbox","secure_mds","secure_mds","secure_mds","to_owned","to_owned","to_owned","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","BLOCK_SIZE","BlockWord","BlockWord","Sha256","Sha256Digest","Sha256Instructions","State","Table16Chip","Table16Config","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress","compress","config","configure","construct","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","digest","digest","digest","drop","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","initialization","initialization","initialization_vector","initialization_vector","into","into","into","into","into","load","loaded","new","to_owned","to_owned","to_owned","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","update","vzip","vzip","vzip","vzip","vzip","CellValue","CommitDomain","CommitDomains","CommitDomains","FixedPoints","HashDomain","HashDomains","HashDomains","Message","Message","MessagePiece","MessagePiece","NonIdentityPoint","Q","RunningSum","SinsemillaInstructions","X","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","extract","fmt","fmt","fmt","fmt","from","from","from","from","from_field_elem","from_pieces","from_subpieces","hash","hash_domain","hash_to_point","hash_to_point","init","init","init","init","inner","into","into","into","into","merkle","new","new","primitives","r","short_commit","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","vzip","vzip","vzip","vzip","witness_message_piece","SinsemillaChip","SinsemillaConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_to_point","init","init","into","into","load","loaded","lookup_config","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","MERKLE_CRH_PERSONALIZATION","MerkleInstructions","MerklePath","borrow","borrow_mut","calculate_root","chip","clone","clone_into","construct","deref","deref_mut","drop","fmt","from","hash_layer","init","into","to_owned","try_from","try_into","type_id","vzip","MerkleChip","MerkleConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_layer","hash_to_point","init","init","into","into","loaded","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","C","CommitDomain","HashDomain","INV_TWO_POW_K","K","Q","Q","Q_PERSONALIZATION","R","SINSEMILLA_S","S_PERSONALIZATION","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","hash","hash_to_point","init","init","into","into","new","new","short_commit","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","FieldValue","RangeConstrained","UtilitiesInstructions","Var","Var","bitrange_of","bitrange_subset","bool_check","borrow","borrow_mut","cell","clone","clone_into","cond_swap","decompose_running_sum","decompose_word","deref","deref_mut","drop","fmt","from","i2lebsp","init","inner","into","lebs2ip","load_private","lookup_range_check","num_bits","range_check","ternary","to_owned","try_from","try_into","type_id","unsound_unchecked","value","value","value","vzip","witness_short","CondSwapChip","CondSwapConfig","CondSwapInstructions","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","loaded","swap","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RunningSum","RunningSumConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_decompose","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_decompose","LookupRangeCheckConfig","RunningSum","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_check","copy_short_check","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_check","witness_short_check"],"q":[[0,"halo2_gadgets"],[5,"halo2_gadgets::ecc"],[201,"halo2_gadgets::ecc::chip"],[402,"halo2_gadgets::ecc::chip::constants"],[410,"halo2_gadgets::poseidon"],[546,"halo2_gadgets::poseidon::primitives"],[654,"halo2_gadgets::sha256"],[755,"halo2_gadgets::sinsemilla"],[848,"halo2_gadgets::sinsemilla::chip"],[893,"halo2_gadgets::sinsemilla::merkle"],[916,"halo2_gadgets::sinsemilla::merkle::chip"],[961,"halo2_gadgets::sinsemilla::primitives"],[1007,"halo2_gadgets::utilities"],[1048,"halo2_gadgets::utilities::cond_swap"],[1090,"halo2_gadgets::utilities::decompose_running_sum"],[1126,"halo2_gadgets::utilities::lookup_range_check"],[1164,"halo2_proofs::plonk::error"],[1165,"core::result"],[1166,"core::clone"],[1167,"core::fmt"],[1168,"core::convert"],[1169,"pasta_curves::arithmetic::curves"],[1170,"halo2_proofs::circuit"],[1171,"core::convert"],[1172,"core::fmt"],[1173,"core::any"],[1174,"pasta_curves::pallas"],[1175,"pasta_curves::pallas"],[1176,"halo2_proofs::plonk::circuit"],[1177,"halo2_proofs::circuit"],[1178,"ff"],[1179,"halo2_proofs::circuit"],[1180,"ff"],[1181,"core::marker"],[1182,"core::default"],[1183,"core::iter::traits::collect"],[1184,"halo2_proofs::plonk::circuit"],[1185,"core::iter::traits::iterator"],[1186,"core::ops::range"],[1187,"ff"]],"d":["Elliptic curve operations.","The Poseidon algebraic hash function.","The SHA-256 hash function.","The Sinsemilla hash function.","Utility gadgets.","Fixed points that can be multiplied by base field elements.","Instructions that can be implemented for a curve whose …","The set of circuit instructions required to use the ECC …","Precomputed multiples of a fixed point, for full-width …","Precomputed multiples of a fixed point, that can be …","Precomputed multiples of a fixed point, for short signed …","Defines the fixed points for a given instantiation of the …","Enumeration of the set of fixed bases to be used in scalar …","Fixed points that can be used with full-width scalar …","A point on a specific elliptic curve that is guaranteed to …","Variable representing a non-identity elliptic curve point.","A point on a specific elliptic curve.","Variable representing an elliptic curve point.","An integer representing an element of the scalar field for …","Variable representing a full-width element of the elliptic …","A signed short (64-bit) integer represented as an element …","Variable representing a signed short element of the …","An integer representing an element of the scalar field for …","Variable representing a scalar used in variable-base …","Fixed points that can be used with short scalar …","The affine short Weierstrass x-coordinate of a point on a …","Variable representing the affine short Weierstrass …","Performs complete point addition, returning a + b.","Returns self + other using complete addition.","Returns self + other using complete addition.","Performs incomplete point addition, returning a + b.","Returns self + other using incomplete addition. The …","","","","","","","","","","","","","","","","","","","Chip implementations for the ECC gadgets.","","","","","","","","","","","Constrains point a to be equal in value to point b.","Constrains this point to be equal in value to another …","Constrains this point to be equal in value to another …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a scalar from an existing base-field element.","Wraps the given point (obtained directly from an …","Wraps the given point (obtained directly from an …","Wraps the given x-coordinate (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","","","","","","","","","","Returns the inner point.","Returns the inner point.","Returns the inner x-coordinate.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Performs variable-base scalar multiplication, returning …","Returns [by] self.","Returns [by] self.","Returns [by] self.","Returns [by] self.","Performs fixed-base scalar multiplication using a …","Performs fixed-base scalar multiplication using a base …","Performs fixed-base scalar multiplication using a short …","Witnesses the given full-width scalar.","Witnesses the given full-width scalar.","Converts the given signed short scalar.","Constructs a new point with the given value.","Constructs a new point with the given value.","Converts a magnitude and sign that exists as variables in …","Converts a base field element that exists as a variable in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witnesses the given point as a private input to the …","Witnesses the given point as a private input to the …","Witnesses a full-width scalar to be used in fixed-base …","Witnesses a full-width scalar to be used in variable-base …","Type marker representing a base field element being used …","An element of the elliptic curve’s base field, that is …","An EccInstructions chip that uses 10 advice columns.","Configuration for EccChip.","A curve point represented in affine (x, y) coordinates, or …","A full-width scalar used for fixed-base scalar …","A signed short scalar used for fixed-base scalar …","Returns information about a fixed point that is required …","A trait representing the kind of scalar used with a …","The kind of scalar that this fixed point can be multiplied …","Type marker representing a full-width scalar for use in …","A full-width scalar. This is unimplemented for …","The number of windows that this scalar kind requires.","A non-identity point represented in affine (x, y) …","An enumeration of the possible types of scalars used in …","Type marker representing a signed 64-bit scalar for use in …","","","Advice columns needed by instructions in the ECC chip.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Side effects","Constants required for the ECC chip.","","Reconstructs this chip from the given config.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the generator for this fixed point.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the Lagrange coefficients for this fixed point.","","Lookup range check using 10-bit lookup table","","","","","Returns the value of this curve point, if known.","Returns the value of this curve point, if known.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the $u$ values for this fixed point.","","","","","","","","","","","","","","","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","Returns the $z$ value for this fixed point.","Window size for fixed-base scalar multiplication","$2^{FIXED_BASE_WINDOW_SIZE}$","Number of windows for a full-width scalar","Number of windows for a short signed scalar","For each window, we interpolate the $x$-coordinate. Here, …","For each window, $z$ is a field element such that for each …","Test that Lagrange interpolation coefficients reproduce …","Test that the z-values and u-values satisfy the conditions:","A Poseidon hash function, built around a sponge.","A message word provided by the prover.","A word from the padded input to a Poseidon sponge.","A padding word, that will be fixed in the circuit …","The set of circuit instructions required to use the …","The set of circuit instructions required to use the Sponge …","A Poseidon chip using an $x^5$ S-Box.","Configuration for a Pow5Chip.","A Poseidon sponge.","A word in the Poseidon state.","A word over which the Poseidon permutation operates.","Variable representing the word over which the Poseidon …","Absorbs an element into the sponge.","Adds the given input to the state.","","","","","","","","","","","","","","","","","","","","","","","","Configures this chip for use in a circuit.","Construct a Pow5Chip.","","","","","","","","","","","","","","","","","","","","","","Transitions the sponge into its squeezing state.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a Word gadget from the inner word.","Extracts sponge output from the given state.","","Hashes the given input.","","","","","","","","Initializes a new hasher.","Returns the initial empty state for the given domain.","","The word contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Constructs a new duplex sponge for the given Poseidon …","Applies the Poseidon permutation to the given state.","","The Poseidon algebraic hash function.","Squeezes an element from the sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The absorbing state of the Sponge.","A Poseidon hash function used with constant input length.","A domain in which a Poseidon hash function is being used.","A Poseidon hash function, built around a sponge.","The type used to hold the MDS matrix and its inverse.","Poseidon-128 using the $x^5$ S-box, with a width of 3 …","Iterator that outputs padding field elements.","A specification for a Poseidon permutation.","The state of the Sponge.","The squeezing state of the Sponge.","","","","","","","","","","","","","","","","","Generates (round_constants, mds, mds^-1) corresponding to …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The number of full rounds for this specification.","","","Generates (round_constants, mds, mds^-1) corresponding to …","Hashes the given input.","","","","","","Initializes a new hasher.","The initial capacity element, encoding this domain.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The name of this domain, for debug formatting purposes.","","Returns the padding to be appended to the input.","","The number of partial rounds for this specification.","","","The S-box for this specification.","","","Side-loaded index of the first correct and secure MDS that …","","","","","","","","","","","","","","","","","","","","","","","","","","The size of a SHA-256 block, in 32-bit words.","A word in a Table16 message block.","Variable representing a 32-bit word of the input block to …","A gadget that constrains a SHA-256 invocation. It supports …","The output of a SHA-256 circuit invocation.","The set of circuit instructions required to use the Sha256 …","Variable representing the SHA-256 internal state.","A chip that implements SHA-256 with a maximum lookup table …","Configuration for a Table16Chip.","","","","","","","","","","","","","","","","","Starting from the given initialized state, processes a …","","","Configures a circuit to include this chip.","Reconstructs this chip from the given config.","","","","","","","","","","","","Converts the given state into a message digest.","","Convenience function to compute hash of the data. It will …","","","","","","Retrieve result and consume hasher instance.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates an initial state from the output state of a …","","Places the SHA-256 IV in the circuit, returning the …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Create a new hasher instance.","","","","","","","","","","","","","","","","","","","Digest data, updating the internal state.","","","","","","A variable in the circuit.","Gadget representing a domain in which …","Trait allowing circuit’s Sinsemilla CommitDomains to be …","CommitDomains used in this instruction.","A type enumerating the fixed points used in CommitDomains.","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","Trait allowing circuit’s Sinsemilla HashDomains to be …","HashDomains used in this instruction.","A message to be hashed.","A message composed of Self::MessagePieces.","A message piece with a bitlength of some multiple of K.","A piece in a message containing a number of K-bit words. A …","A point output of Self::hash_to_point.","Returns the Q constant for this domain.","A cumulative sum z is used to decompose a Sinsemilla …","The set of circuit instructions required to use the …","The x-coordinate of a point output of Self::hash_to_point.","","","","","","","","","Chip implementations for the Sinsemilla gadgets.","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","Extracts the x-coordinate of the output of a Sinsemilla …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a MessagePiece from a field element.","Constructs a message from a vector of MessagePieces.","Constructs a MessagePiece by concatenating a sequence of …","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","Returns the HashDomain contained in this CommitDomain","Hashes a message to an ECC curve point. This returns both …","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","","","Returns the inner MessagePiece contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gadgets for implementing a Merkle tree with Sinsemilla.","Constructs a new HashDomain for the given domain.","Constructs a new CommitDomain for the given domain.","Implementation of Sinsemilla outside the circuit.","Returns the fixed point corresponding to the R constant …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","","","","","","","Witness a message piece given a field element. Returns a …","A chip that implements 10-bit Sinsemilla using a lookup …","Configuration for the Sinsemilla hash chip","","","","","","","","","","Side-effects","Reconstructs this chip from the given config.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Returns the lookup range check config used in this config.","","","","","","","","","","","","SWU hash-to-curve personalization for the Merkle CRH …","Instructions to check the validity of a Merkle path of a …","Gadget representing a Merkle path that proves a leaf …","","","Calculates the root of the tree containing the given leaf …","Chip implementing a Merkle hash using Sinsemilla as the …","","","Constructs a MerklePath.","","","","","Returns the argument unchanged.","Compute MerkleCRH for a given layer. The hash that …","","Calls U::from(self).","","","","","","Chip implementing MerkleInstructions.","Configuration for the MerkleChip implementation.","","","","","","","","","","Configures the MerkleChip.","Constructs a MerkleChip given a MerkleConfig.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","The largest integer such that $2^c \\\\leq (r_P - 1) / 2$, …","A domain in which $\\\\mathsf{SinsemillaCommit}$ and …","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","$\\\\frac{1}{2^K}$","Number of bits of each message piece in …","Returns the Sinsemilla $Q$ constant for this domain.","Returns the Sinsemilla $Q$ constant for this domain.","SWU hash-to-curve personalization for Sinsemilla $Q$ …","Returns the Sinsemilla $R$ constant for this domain.","The precomputed bases for the Sinsemilla hash function.","SWU hash-to-curve personalization for Sinsemilla $S$ …","","","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","Calls U::from(self).","Calls U::from(self).","Constructs a new HashDomain with a specific prefix string.","Constructs a new CommitDomain with a specific prefix …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","A type that has a value at either keygen or proving time.","A type representing a range-constrained field element.","Trait for utilities used across circuits.","Trait for a variable in the circuit.","Variable in the circuit.","Constructs a RangeConstrained<Value<F>> as a bitrange of …","Takes a specified subsequence of the little-endian bit …","Checks that an expression is either 1 or 0.","","","The cell at which this variable was allocated.","","","Gadget and chip for a conditional swap utility.","Decomposes an $n$-bit field element $\\\\alpha$ into $W$ …","Decompose a word alpha into window_num_bits bits …","","","","","Returns the argument unchanged.","The sequence of bits representing a u64 in little-endian …","","Returns the range-constrained inner type.","Calls U::from(self).","The u64 integer represented by an L-bit little-endian …","Load a variable.","Make use of a K-bit lookup table to decompose a field …","Returns the number of bits to which this cell is …","Check that an expression is in the small range [0..range), …","If a then b, else c. Returns (a * b) + (1 - a) * c.","","","","","Constructs a RangeConstrained<AssignedCell<F, F>> without …","Returns the value of this type.","The value allocated to this variable.","Extracts the range-constrained value from this …","","Witnesses a subset of the bits in value and constrains …","A chip implementing a conditional swap.","Configuration for the CondSwapChip.","Instructions for a conditional swap gadget.","","","","","","","","","","Configures this chip for use in a circuit.","Constructs a CondSwapChip given a CondSwapConfig.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Given an input pair (a,b) and a swap boolean flag, returns …","","","","","","","","","","","","The running sum $[z_0, …, z_W]$. If created in strict …","Configuration that provides methods for running sum …","","","","","","","perm MUST include the advice column z.","Decompose an existing variable alpha that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Decompose a field element alpha that is witnessed in this …","Configuration that provides methods for a lookup range …","The running sum $[z_0, …, z_W]$. If created in strict …","","","","","","","The running_sum advice column breaks the field element …","Range check on an existing cell that is copied into this …","Short range check on an existing cell that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Range check on a value that is witnessed in this helper.","Short range check on value that is witnessed in this …"],"i":[0,0,0,0,0,14,0,0,0,0,0,0,8,14,0,8,0,8,0,8,0,8,0,8,14,0,8,8,18,19,8,18,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,0,18,19,21,22,23,18,19,21,22,23,8,18,19,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,8,18,19,27,30,31,18,19,26,21,22,23,27,30,31,18,19,19,26,21,22,23,27,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,18,19,26,27,30,31,18,19,26,21,22,23,8,18,21,22,23,8,8,8,27,30,31,18,19,8,32,18,19,21,22,23,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,27,30,31,18,19,26,21,22,23,8,8,8,8,0,43,0,0,0,0,0,0,0,56,0,43,57,0,0,0,35,35,40,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,38,39,40,35,41,42,43,38,39,40,35,41,42,43,35,35,0,35,35,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,40,35,35,38,39,40,52,53,54,35,41,42,43,38,38,39,40,52,53,54,35,41,42,43,56,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,56,35,40,35,35,35,35,38,39,35,35,38,39,40,35,41,42,43,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,38,39,40,52,53,54,35,41,42,43,56,38,39,40,52,53,54,35,41,42,43,35,35,35,35,38,39,38,39,56,0,0,0,0,0,0,0,0,0,65,0,65,0,0,0,0,0,0,0,78,67,71,72,75,72,73,65,77,67,80,75,72,73,65,77,67,80,73,75,73,65,75,73,65,72,72,72,75,72,73,65,77,67,80,75,72,73,65,77,67,80,75,72,73,65,77,67,80,67,75,72,73,65,77,67,80,75,72,73,73,65,77,67,80,77,71,72,80,75,72,73,65,77,67,80,80,71,72,77,75,72,73,65,77,67,80,72,67,78,72,0,67,75,73,65,75,72,73,65,77,67,80,75,72,73,65,77,67,80,75,72,73,65,77,67,80,73,75,72,73,65,77,67,80,0,0,0,0,0,0,70,0,0,0,87,66,76,81,84,87,66,76,81,84,66,81,84,66,81,84,69,87,87,87,66,76,81,84,87,66,76,81,84,87,66,76,81,84,87,66,76,81,84,87,66,76,81,84,69,87,87,0,84,87,66,76,81,84,84,70,81,87,66,76,81,84,70,81,70,81,69,87,87,69,87,87,69,87,87,66,81,84,87,66,76,81,84,87,66,76,81,84,87,66,76,81,84,87,66,76,81,84,0,0,96,0,0,0,96,0,0,91,92,93,99,100,91,92,93,99,100,91,92,93,91,92,93,96,93,93,93,93,91,91,92,93,99,100,91,92,93,99,100,96,93,100,91,92,93,99,100,100,91,92,93,99,100,91,92,93,99,100,91,92,93,99,100,96,93,96,93,91,92,93,99,100,93,93,100,91,92,93,91,92,93,99,100,91,92,93,99,100,91,92,93,99,100,100,91,92,93,99,100,103,0,0,103,103,0,0,103,0,103,0,103,103,101,103,0,103,102,104,106,105,102,104,106,105,0,102,104,102,104,105,102,104,106,105,102,104,106,105,102,104,106,105,103,102,104,106,105,102,104,106,105,104,102,104,106,110,103,106,102,104,106,105,104,102,104,106,105,0,106,105,0,110,105,102,104,102,104,106,105,102,104,106,105,102,104,106,105,102,104,106,105,103,0,0,118,119,118,119,118,119,118,119,119,119,119,118,119,118,119,118,119,118,119,119,118,119,118,119,119,118,119,118,119,119,119,118,118,119,118,119,118,119,118,119,118,119,119,0,0,0,121,121,121,0,121,121,121,121,121,121,121,121,122,121,121,121,121,121,121,121,0,0,124,125,124,125,124,125,124,125,125,125,125,124,125,124,125,124,125,124,125,125,124,125,124,125,125,125,124,125,124,125,125,125,124,125,124,125,124,125,124,125,124,125,125,0,0,0,0,0,126,128,0,128,0,0,126,128,126,128,126,126,128,126,128,126,128,126,128,126,128,126,128,126,126,126,128,126,128,126,128,128,126,126,128,126,128,126,128,126,128,0,0,0,0,137,108,0,0,108,108,117,108,108,0,0,0,108,108,108,108,108,0,108,108,108,0,137,0,108,0,0,108,108,108,108,108,135,117,108,108,108,0,0,0,138,139,138,139,138,139,138,139,138,138,138,138,139,138,139,138,139,139,138,139,138,139,138,139,138,139,138,140,138,138,139,138,139,138,139,138,139,138,139,0,0,144,141,144,141,141,141,141,141,144,144,141,144,141,144,141,141,144,141,144,141,144,141,144,141,141,144,141,144,141,144,141,144,141,141,0,0,145,49,145,49,49,49,49,49,49,145,145,49,145,49,145,49,49,145,49,145,49,145,49,145,49,49,145,49,145,49,145,49,145,49,49,49],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-10,-11],[[10,[-4,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16,[[17,[-4]],11],[[17,[-4]],11]],[[[18,[-1,-2]],-3,-4],[[10,[[19,[-1,-2]],9]]],15,[[8,[-1]]],16,[[17,[[19,[-1,-2]]]],11]],[[[19,[-1,-2]],-3,-4],[[10,[[19,[-1,-2]],9]]],15,[[8,[-1]],11,12,20],16,[[17,[[19,[-1,-2]]]],11]],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-5,-5],[[10,[-5,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[18,[-1,-2]],-3,[18,[-1,-2]]],[[10,[[18,[-1,-2]],9]]],15,[[8,[-1]]],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[18,[-1,-2]]],[[18,[-1,-2]]],[11,15],[11,[8,[-1]]]],[[[19,[-1,-2]]],[[19,[-1,-2]]],[11,15],[11,[8,[-1]],11,12,20]],[[[21,[-1,-2]]],[[21,[-1,-2]]],[11,15],[11,[8,[-1]]]],[[[22,[-1,-2]]],[[22,[-1,-2]]],[11,15],[11,[8,[-1]]]],[[[23,[-1,-2]]],[[23,[-1,-2]]],[11,15],[11,[8,[-1]]]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-4,-4],[[10,[24,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[18,[-1,-2]],-3,-4],[[10,[24,9]]],15,[[8,[-1]]],16,[[17,[[19,[-1,-2]]]],11]],[[[19,[-1,-2]],-3,-4],[[10,[24,9]]],15,[[8,[-1]],11,12,20],16,[[17,[[19,[-1,-2]]]],11]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[-2,-3,[],[[17,[-1]],11],[]],[[[18,[-1,-2]]],[[26,[-1,-2]]],15,[[8,[-1]]]],[[[19,[-1,-2]]],[[26,[-1,-2]]],15,[[8,[-1]],11,12,20]],[[[27,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[30,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[31,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[18,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[19,[-1,-2]],28],29,[12,15],[12,[8,[-1]],11,12,20]],[[[26,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[21,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[22,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[[[23,[-1,-2]],28],29,[12,15],[12,[8,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[18,[-1,-2]]],[[19,[-1,-2]]],15,[[8,[-1]],11,12,20]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-2,-3],[[10,[[27,[-1,-2]],9]]],15,[[32,[-1]]],16],[-2,[[18,[-1,-2]]],15,[[8,[-1]]]],[-2,[[19,[-1,-2]]],15,[[8,[-1]],11,12,20]],[-2,[[26,[-1,-2]]],15,[[8,[-1]]]],[-2,[[21,[-1,-2]]],15,[[8,[-1]]]],[-2,[[22,[-1,-2]]],15,[[8,[-1]]]],[-2,[[23,[-1,-2]]],15,[[8,[-1]]]],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[[18,[-1,-2]]],[],15,[[8,[-1]]]],[[[19,[-1,-2]]],[],15,[[8,[-1]],11,12,20]],[[[26,[-1,-2]]],[],15,[[8,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-1,-5],[[10,[[24,[-4,-1]],9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[18,[-1,-2]],-3,[27,[-1,-2]]],[[10,[[24,[[19,[-1,-2]],[27,[-1,-2]]]],9]]],15,[[8,[-1]]],16],[[[21,[-1,-2]],-3,[30,[-1,-2]]],[[10,[[24,[[19,[-1,-2]],[30,[-1,-2]]]],9]]],15,[[8,[-1]]],16],[[[22,[-1,-2]],-3],[[10,[[19,[-1,-2]],9]]],15,[[8,[-1]]],16],[[[23,[-1,-2]],-3,[31,[-1,-2]]],[[10,[[24,[[19,[-1,-2]],[31,[-1,-2]]]],9]]],15,[[8,[-1]]],16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-2],[[10,[[24,[-4,-2]],9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-10],[[10,[-4,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16,[]],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,-3],[[10,[[24,[-4,-3]],9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[-2,-3,33],[[10,[[27,[-1,-2]],9]]],15,[[8,[-1]]],16],[[-2,-3,33],[[10,[[30,[-1,-2]],9]]],15,[[8,[-1]]],16],[[-2,-3,24],[[10,[[31,[-1,-2]],9]]],15,[[8,[-1]]],16],[[-2,-3,[33,[-1]]],[[10,[[18,[-1,-2]],9]]],15,[[8,[-1]]],16],[[-2,-3,[33,[-1]]],[[10,[[19,[-1,-2]],9]]],15,[[8,[-1]],11,12,20],16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,[24,[-10,-10]]],[[10,[-3,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16,[]],[[32,-1,-2],[[10,[-3,9]]],16,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,[33,[-8]]],[[10,[-4,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,[33,[-8]]],[[10,[-5,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,33],[[10,[-2,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],[[[8,[],[[1,[-1]],[2,[-2]],[3,[-3]],[4,[-4]],[5,[-5]],[6,[-6]],[7,[-7]]]],-9,33],[[10,[-1,9]]],[11,12],[11,12],[11,12],[[13,[-5]],11,12],[11,12],[11,12],[[14,[-8]]],15,16],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[35,[-1]],-2,-4,-5],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[],[[17,[-3]],11],[[17,[-3]],11]],[[[35,[-1]],-2,-3,-3],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[[[40,[-1]]],[[40,[-1]]],[11,[14,[36]]]],[[[35,[-1]]],[[35,[-1]]],[11,[14,[36]]]],[41,41],[42,42],[43,43],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[35,[-1]]],-2,[[14,[36]]],[]],[[[44,[37]],[47,[[46,[45]]]],[47,[[46,[48]]]],[49,[37]]],-1,[]],0,[[[35,[-1]],-2,-3,-3],[[10,[24,9]]],[[14,[36]]],[[16,[37]]],[]],[-1,[[35,[-2]]],[],[[14,[36]]]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[[[40,[-1]],[40,[-1]]],50,[51,[14,[36]]]],[[[35,[-1]],[35,[-1]]],50,[51,[14,[36]]]],[-2,-3,[],[[17,[-1]],11],[]],[[38,28],29],[[39,28],29],[[[40,[-1]],28],29,[12,[14,[36]]]],[[52,28],29],[[53,28],29],[[54,28],29],[[[35,[-1]],28],29,[12,[14,[36]]]],[[41,28],29],[[42,28],29],[[43,28],29],[39,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[56,[],[[55,[-1]]]]],-2,57,15],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[56,[],[[55,[-1]]]]],[[58,[47]]],57],[[[35,[-1]]],-2,[[14,[36]]],[]],0,[[[35,[-1]],-2,-3,-4],[[10,[[24,[-5,-3]],9]]],[[14,[36]]],[[16,[37]]],[],[],[]],[[[35,[-1]],-2,-3],[[10,[[24,[-4,-3]],9]]],[[14,[36]]],[[16,[37]]],[],[]],[[[35,[-1]],-2,[59,[37,37]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[[[35,[-1]],-2,-3],[[10,[[24,[-4,-3]],9]]],[[14,[36]]],[[16,[37]]],[],[]],[38,[[33,[36]]]],[39,[[33,[36]]]],[[[35,[-1]],-2,[24,[[59,[37,37]],[59,[37,37]]]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[[[35,[-1]],-2,-3],[[10,[-4,9]]],[[14,[36]]],[[16,[37]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[[[56,[],[[55,[-1]]]]],[[58,[47]]],57],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[35,[-1]],-2,[33,[36]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[[[35,[-1]],-2,[33,[36]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[[[35,[-1]],-2,[33,[60]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[[[35,[-1]],-2,[33,[60]]],[[10,[-3,9]]],[[14,[36]]],[[16,[37]]],[]],[38,[[59,[37,37]]]],[39,[[59,[37,37]]]],[38,[[59,[37,37]]]],[39,[[59,[37,37]]]],[[[56,[],[[55,[-1]]]]],[[58,[61]]],57],0,0,0,0,[[-1,25],[[58,[47]]],15],[[-1,25],[[62,[[58,[[24,[61,47]]]]]]],15],[[-1,25],24,15],[[-1,[63,[61]],[63,[[47,[[47,[64]]]]]],25],24,15],0,0,0,0,0,0,0,0,0,0,0,0,[[[67,[-1,-4,-2,[66,[[65,[-1]]]],-3]],-5,[65,[-1]]],[[10,[24,9]]],68,[[69,[-1]]],[[70,[-1]]],[[71,[-1,-2,-3]]],[[16,[-1]]]],[[71,-2,[47,[-3]],[66,[[65,[-1]]]]],[[10,[[47,[-3]],9]]],68,[[16,[-1]]],[]],[[[72,[-1]],-2,[47,[-3]],[66,[[65,[-1]]]]],[[10,[[47,[-3]],9]]],68,[[16,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[73,[-1]]],74,68],[[[75,[-1]]],[[75,[-1]]],[11,68]],[[[73,[-1]]],[[73,[-1]]],[11,68]],[[[65,[-1]]],[[65,[-1]]],[11,68]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[72,[-1]]],-2,68,[]],[[[44,[-1]],[47,[[46,[45]]]],[46,[45]],[47,[[46,[48]]]],[47,[[46,[48]]]]],[[75,[-1]]],68],[[[75,[-1]]],[[72,[-1]]],68],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[25,24],[[[67,[-1,-4,-2,[66,[[65,[-1]]]],-3]],-5],[[10,[[67,[-1,-4,-2,76,-3]],9]]],68,[[69,[-1]]],[[70,[-1]]],[[71,[-1,-2,-3]]],[[16,[-1]]]],[[[75,[-1]],28],29,[12,68]],[[[72,[-1]],28],29,[12,68]],[[[73,[-1]],28],29,[12,68]],[[[65,[-1]],28],29,[12,68]],[[[77,[-1,-3,-2]],28],29,[12,68],[12,[69,[-1]]],[12,[78,[-1,-2]]]],[[[67,[-1,-4,-2,-5,-3]],28],29,[12,68],[12,[69,[-1]]],[12,[70,[-1]]],[12,[71,[-1,-2,-3]]],[12,79]],[[[80,[-1,-4,-2,-3]],28],29,[12,68],[12,[69,[-1]]],[12,[70,[-1]]],[12,[71,[-1,-2,-3]]]],[-1,-1,[]],[-1,-1,[]],[[[59,[-1,-1]]],[[73,[-1]]],68],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[77,[-1,-3,-2]]],68,[[69,[-1]]],[[78,[-1,-2]]]],[[[47,[-1]]],[[76,[-1]]],[]],[[[47,[-1]]],[[76,[-1]]],[]],[[[80,[-1,-3,-2,81]],-4,[47,[[59,[-1,-1]]]]],[[10,[[59,[-1,-1]],9]]],82,[[69,[-1]]],[[71,[-1,-2,81]]],[[16,[-1]]]],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[],25],[[-4,-5],[[10,[[80,[-1,-4,-2,-3]],9]]],68,[[69,[-1]]],[[70,[-1]]],[[71,[-1,-2,-3]]],[[16,[-1]]]],[[71,-2],[[10,[[47,[-3]],9]]],68,[[16,[-1]]],[]],[[[72,[-1]],-2],[[10,[[47,[-3]],9]]],68,[[16,[-1]]],[]],[[[77,[-1,-3,-2]]],[],68,[[69,[-1]]],[[78,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[72,[-1]]],-2,68,[]],[[-4,-5],[[10,[[67,[-1,-4,-2,[66,[[65,[-1]]]],-3]],9]]],68,[[69,[-1]]],[[70,[-1]]],[[71,[-1,-2,-3]]],[[16,[-1]]]],[[[78,[],[[83,[-1]]]],-3,[47,[-1]]],[[10,[[47,[-1]],9]]],[11,12,[13,[[59,[-2,-2]]]],[17,[[59,[-2,-2]]]]],68,[[16,[-2]]]],[[[72,[-1]],-2,[47,[-3]]],[[10,[[47,[-3]],9]]],68,[[16,[-1]]],[]],0,[[[67,[-1,-4,-2,76,-3]],-5],[[10,[[59,[-1,-1]],9]]],68,[[69,[-1]]],[[70,[-1]]],[[71,[-1,-2,-3]]],[[16,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[[[73,[-1]]],[[33,[-1]]],68],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[66,[-1]]],[[66,[-1]]],11],[81,81],[[[84,[-1,-2,-3]]],[[84,[-1,-2,-3]]],[11,68],[11,[69,[-1]]],[11,[70,[-1]]]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[],[[24,[[58,[[47,[-1]]]],[85,[-1]],[85,[-1]]]]],68],[[],[[24,[[58,[[47,[37]]]],[85,[37]],[85,[37]]]]]],[[],[[24,[[58,[[47,[86]]]],[85,[86]],[85,[86]]]]]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[25,24],[25,24],[25,24],[[87,28],29],[[[66,[-1]],28],29,12],[[[76,[-1]],28],29,12],[[81,28],29],[[[84,[-1,-2,-3]],28],29,68,[[69,[-1]]],[[70,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],25],[[],25],[[],25],[[],[[24,[[58,[[47,[-1]]]],[85,[-1]],[85,[-1]]]]],[88,89]],[[[84,[-1,-2,81]],[47,[-1]]],-1,82,[[69,[-1]]]],[[],25],[[],25],[[],25],[[],25],[[],25],[[],[[84,[-1,-2,-3]]],68,[[69,[-1]]],[[70,[-1]]]],[[],-1,68],[[],-1,82],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],90],[[],90],[25,-1,[]],[25,-1,[]],[[],25],[[],25],[[],25],[-1,-1,68],[86,86],[37,37],[[],25],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[91,91],[92,92],[93,93],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[96,[],[[94,[-1]],[95,[-2]]]],-4,-1,[47,[-2]]],[[10,[-1,9]]],[11,12],[97,12,98],68,[[16,[-3]]]],[[93,-1,-2,[47,[-3]]],[[10,[-2,9]]],[[16,[37]]],[],[]],[93,-1,[]],[[[44,[37]]],-1,[]],[-1,93,[]],[[],91],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[[[96,[],[[94,[-1]],[95,[-2]]]],-4,-1],[[10,[[47,[-2]],9]]],[11,12],[97,12,98],68,[[16,[-3]]]],[[93,-1,-2],[[10,[[47,[-3]],9]]],[[16,[37]]],[],[]],[[-2,-3,63],[[10,[99,9]]],68,[[96,[-1]]],[[16,[-1]]]],[25,24],[25,24],[25,24],[25,24],[25,24],[[[100,[-1,-2]],-3],[[10,[99,9]]],68,[[96,[-1]]],[[16,[-1]]]],[[91,28],29],[[92,28],29],[[93,28],29],[[[99,[-1]],28],29,12],[[[100,[-1,-2]],28],29,[12,68],[12,[96,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],25],[[],25],[[],25],[[],25],[[],25],[[[96,[],[[94,[-1]],[95,[-2]]]],-4,-1],[[10,[-1,9]]],[11,12],[97,12,98],68,[[16,[-3]]]],[[93,-1,-2],[[10,[-2,9]]],[[16,[37]]],[]],[[[96,[],[[94,[-1]],[95,[-2]]]],-4],[[10,[-1,9]]],[11,12],[97,12,98],68,[[16,[-3]]]],[[93,-1],[[10,[0,9]]],[[16,[37]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[92,-1],[[10,[24,9]]],[[16,[37]]]],[93,-1,[]],[[-2,-3],[[10,[[100,[-1,-2]],9]]],68,[[96,[-1]]],[[16,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[[[100,[-1,-2]],-3,63],[[10,[24,9]]],68,[[96,[-1]]],[[16,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[101,-1,15],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[102,[-1,-2]]],[[102,[-1,-2]]],[11,15],[[103,[-1]],11,12,20,11]],[[[104,[-1,-2]]],[[104,[-1,-2]]],[11,15],[[103,[-1]],11,12,20,11]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[105,[-1,-2,-3]],-4,[102,[-1,-2]],[30,[-1,-3]]],[[10,[[24,[[19,[-1,-3]],58]],9]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20],16],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[25,24],[25,24],[-1,-2,[],[]],[[[102,[-1,-2]],28],29,[12,15],[[103,[-1]],11,12,20,12]],[[[104,[-1,-2]],28],29,[12,15],[[103,[-1]],11,12,20,12]],[[[106,[-1,-2,-3]],28],29,[12,15],[[103,[-1]],11,12,20,12],[[8,[-1],[[5,[]],[7,[]]]],11,12,20,12]],[[[105,[-1,-2,-3]],28],29,[12,15],[[103,[-1]],11,12,20,12],[[8,[-1],[[5,[]],[7,[]]]],11,12,20,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-2,-3,33,25],[[10,[[104,[-1,-2]],9]]],15,[[103,[-1]],11,12,20],16],[[-2,[58,[[104,[-1,-2]]]]],[[102,[-1,-2]]],15,[[103,[-1]],11,12,20]],[[-2,-3,-4],[[10,[[104,[-1,-2]],9]]],15,[[103,[-1]],11,12,20],16,[[109,[],[[107,[[108,[33]]]]]]]],[[[106,[-1,-2,-3]],-4,[102,[-1,-2]]],[[10,[[24,[[26,[-1,-3]],58]],9]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20],16],[110,-2,15,[[101,[-1]]]],[[[103,[],[[111,[-1]],[112,[-2]],[113,[-3]],[114,[-4]],[6,[-5]],[5,[-6]],[7,[-7]],[115,[-9]],[116,[-10]]]],-11,-8,-2],[[10,[[24,[-6,[58,[-4]]]],9]]],117,[[13,[[58,[-3]]]]],[11,12],[],[],[11,12],[[14,[-8]]],15,[[101,[-8]]],[[110,[-8,-7,-9]]],16],[[[106,[-1,-2,-3]],-4,[102,[-1,-2]]],[[10,[[24,[[18,[-1,-3]],58]],9]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20],16],[[],25],[[],25],[[],25],[[],25],[[[104,[-1,-2]]],[],15,[[103,[-1]],11,12,20]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[-2,-3],[[106,[-1,-2,-3]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20]],[[-2,-3],[[105,[-1,-2,-3]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20]],0,[110],[[[105,[-1,-2,-3]],-4,[102,[-1,-2]],[30,[-1,-3]]],[[10,[[24,[[26,[-1,-3]],58]],9]]],15,[[103,[-1]],11,12,20],[[8,[-1],[[5,[]],[7,[]]]],11,12,20],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[103,[],[[111,[-1]],[112,[-2]],[113,[-3]],[114,[-4]],[6,[-5]],[5,[-6]],[7,[-7]],[115,[-9]],[116,[-10]]]],-11,33,25],[[10,[-3,9]]],117,[[13,[[58,[-3]]]]],[11,12],[],[],[11,12],[[14,[-8]]],15,[[101,[-8]]],[[110,[-8,-7,-9]]],16],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[118,[-1,-3,-2]]],[[118,[-1,-3,-2]]],[[101,[36]],11],[[14,[36]],11],[[110,[36,-2,-1]],11]],[[[119,[-1,-3,-2]]],[[119,[-1,-3,-2]]],[[101,[36]],11],[[14,[36]],11],[[110,[36,-2,-1]],11]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[119,[-1,-3,-2]]],-4,[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[]],[[[44,[37]],[47,[[46,[45]]]],[46,[45]],[46,[48]],[24,[120,120,120]],[49,[37]]],-1,[]],[-1,[[119,[-2,-4,-3]]],[],[[101,[36]]],[[14,[36]]],[[110,[36,-3,-2]]]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[[118,[-1,-3,-2]],[118,[-1,-3,-2]]],50,[[101,[36]],51],[[14,[36]],51],[[110,[36,-2,-1]],51]],[[[119,[-1,-3,-2]],[119,[-1,-3,-2]]],50,[[101,[36]],51],[[14,[36]],51],[[110,[36,-2,-1]],51]],[-1,-2,[],[]],[[[118,[-1,-3,-2]],28],29,[[101,[36]],12],[[14,[36]],12],[[110,[36,-2,-1]],12]],[[[119,[-1,-3,-2]],28],29,[[101,[36]],12],[[14,[36]],12],[[110,[36,-2,-1]],12]],[-1,-1,[]],[-1,-1,[]],[[[119,[-1,-3,-2]],-4,36,-5],[[10,[[24,[-6,[58,[-7]]]],9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[],[],[]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[[[118,[-1,-3,-2]],-4],[[10,[-5,9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[]],[[[119,[-1,-3,-2]]],-4,[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[]],[[[118,[-1,-3,-2]]],[[49,[37]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[119,[-1,-3,-2]],-4,[33,[37]],25],[[10,[-5,9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[121,[-1,-2]],-3],[[10,[9]]],15,[[122,[-1]],11],16],0,[[[121,[-1,-2]]],[[121,[-1,-2]]],[11,15],[[122,[-1]],11,11]],[[-1,-2],24,[],[]],[[[47,[-2]],[33,[123]],[33,[47]]],[[121,[-1,-2]]],15,[[122,[-1]],11]],[25,-1,[]],[25,-1,[]],[25,24],[[[121,[-1,-2]],28],29,[12,15],[[122,[-1]],11,12]],[-1,-1,[]],[[122,-1,-2,25,-3,-3],[[10,[-3,9]]],16,15,[]],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[124,[-1,-3,-2]]],[[124,[-1,-3,-2]]],[[101,[36]],11],[[14,[36]],11],[[110,[36,-2,-1]],11]],[[[125,[-1,-3,-2]]],[[125,[-1,-3,-2]]],[[101,[36]],11],[[14,[36]],11],[[110,[36,-2,-1]],11]],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[125,[-1,-3,-2]]],-4,[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[]],[[[44,[37]],[118,[-1,-3,-2]]],[[124,[-1,-3,-2]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]]],[[[124,[-1,-3,-2]]],[[125,[-1,-3,-2]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[[124,[-1,-3,-2]],[124,[-1,-3,-2]]],50,[[101,[36]],51],[[14,[36]],51],[[110,[36,-2,-1]],51]],[[[125,[-1,-3,-2]],[125,[-1,-3,-2]]],50,[[101,[36]],51],[[14,[36]],51],[[110,[36,-2,-1]],51]],[-1,-2,[],[]],[[[124,[-1,-3,-2]],28],29,[[101,[36]],12],[[14,[36]],12],[[110,[36,-2,-1]],12]],[[[125,[-1,-3,-2]],28],29,[[101,[36]],12],[[14,[36]],12],[[110,[36,-2,-1]],12]],[-1,-1,[]],[-1,-1,[]],[[[125,[-1,-3,-2]],-4,36,25,-5,-5],[[10,[-5,9]]],[[101,[36]],20],[[14,[36]]],[[110,[36,-2,-1]],20],[[16,[37]]],[]],[[[125,[-1,-3,-2]],-4,36,-5],[[10,[[24,[-6,[58,[[58,[-7]]]]]],9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[],[],[]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[[[125,[-1,-3,-2]]],-4,[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[]],[[[125,[-1,-3,-2]],-4,[24,[-5,[33,[37]]]],[33,[50]]],[[10,[[24,[-5,-5]],9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[125,[-1,-3,-2]],-4,[33,[37]],25],[[10,[-5,9]]],[[101,[36]]],[[14,[36]]],[[110,[36,-2,-1]]],[[16,[37]]],[]],0,0,0,0,0,[126,127],[128,127],0,[128,127],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[126,126],[[-1,-2],24,[],[]],[[128,-1,60],[[129,[127]]],[[130,[],[[107,[50]]]]]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[126,28],29],[[128,28],29],[-1,-1,[]],[-1,-1,[]],[[126,-1],[[129,[37]]],[[130,[],[[107,[50]]]]]],[[126,-1],[[129,[127]]],[[130,[],[[107,[50]]]]]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[131,126],[131,128],[[128,-1,60],[[129,[37]]],[[130,[],[[107,[50]]]]]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[[[33,[-1]],[132,[25]]],[[108,[-1,[33,[-1]]]]],133],[[-1,[132,[25]]],-1,133],[[[134,[-1]]],[[134,[-1]]],82],[-1,-2,[],[]],[-1,-2,[],[]],[117,74],[[[108,[-1,-2]]],[[108,[-1,-2]]],[11,68],[11,[135,[-1]]]],[[-1,-2],24,[],[]],0,0,[[-1,25,25],[[58,[64]]],133],[25,-1,[]],[25,-1,[]],[25,24],[[[108,[-1,-2]],28],29,[12,68],[12,[135,[-1]]]],[-1,-1,[]],[61,[[47,[50]]]],[[],25],[[[108,[-1,-2]]],-2,68,[[135,[-1]]]],[-1,-2,[],[]],[[[47,[50]]],61],[[[137,[],[[136,[-1]]]],-3,[46,[45]],[33,[-2]]],[[10,[-1,9]]],[[117,[-2]]],68,[[16,[-2]]]],0,[[[108,[-1,-2]]],25,68,[[135,[-1]]]],[[[134,[-1]],25],[[134,[-1]]],82],[[[134,[-1]],[134,[-1]],[134,[-1]]],[[134,[-1]]],68],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[[[59,[-1,-1]],25],[[108,[-1,[59,[-1,-1]]]]],68],[135,[[33,[-1]]],68],[117,[[33,[-1]]],68],[[[108,[-1,[59,[-1,-1]]]]],[[108,[-1,[33,[-1]]]]],68],[-1,-2,[],[]],[[[49,[-1]],-2,[33,[-1]],[132,[25]]],[[10,[[108,[-1,[59,[-1,-1]]]],9]]],133,[[16,[-1]]]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[138,[-1]]],[[138,[-1]]],11],[139,139],[[-1,-2],24,[],[]],[[-1,-2],24,[],[]],[[[138,[-1]]],-2,68,[]],[[[44,[-1]],[47,[[46,[45]]]]],139,82],[139,[[138,[-1]]],82],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[139,139],50],[[[138,[-1]],28],29,12],[[139,28],29],[-1,-1,[]],[-1,-1,[]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[[[138,[-1]]],-2,68,[]],[[140,-2,[24,[-3,[33,[-1]]]],[33,[50]]],[[10,[[24,[-3,-3]],9]]],68,[[16,[-1]]],[]],[[[138,[-1]],-2,[24,[-3,[33,[-1]]]],[33,[50]]],[[10,[[24,[-3,-3]],9]]],82,[[16,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[141,[-1]]],[[141,[-1]]],[11,133]],[[-1,-2],24,[],[]],[[[44,[-1]],142,[46,[45]]],[[141,[-1]]],133],[[[141,[-1]],[143,[-1]],25,[59,[-1,-1]],50,25,25],[[10,[[144,[-1]],9]]],133],[25,-1,[]],[[[144,[-1]]],[[58,[[59,[-1,-1]]]]],133],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[[141,[-1]],[141,[-1]]],50,[51,133]],[[[144,[-1]],28],29,[12,133]],[[[141,[-1]],28],29,[12,133]],[-1,-1,[]],[-1,-1,[]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[141,[-1]],[143,[-1]],25,[33,[-1]],50,25,25],[[10,[[144,[-1]],9]]],133],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[49,[-1]]],[[49,[-1]]],[11,133]],[[-1,-2],24,[],[]],[[[44,[-1]],[46,[45]],120],[[49,[-1]]],133],[[[49,[-1]],-2,[59,[-1,-1]],25,50],[[10,[[145,[-1]],9]]],133,[[16,[-1]]]],[[[49,[-1]],-2,[59,[-1,-1]],25],[[10,[24,9]]],133,[[16,[-1]]]],[25,-1,[]],[[[145,[-1]]],[[58,[[59,[-1,-1]]]]],133],[25,-1,[]],[25,-1,[]],[25,-1,[]],[25,24],[25,24],[[[49,[-1]],[49,[-1]]],50,[51,133]],[[[145,[-1]],28],29,[12,133]],[[[49,[-1]],28],29,[12,133]],[-1,-1,[]],[-1,-1,[]],[[],25],[[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[49,[-1]],-2,[33,[-1]],25,50],[[10,[[145,[-1]],9]]],133,[[16,[-1]]]],[[[49,[-1]],-2,[33,[-1]],25],[[10,[[59,[-1,-1]],9]]],133,[[16,[-1]]]]],"c":[],"p":[[17,"ScalarVar"],[17,"ScalarFixed"],[17,"ScalarFixedShort"],[17,"Point"],[17,"NonIdentityPoint"],[17,"X"],[17,"FixedPoints"],[10,"EccInstructions",5],[6,"Error",1164],[6,"Result",1165],[10,"Clone",1166],[10,"Debug",1167],[10,"From",1168],[10,"FixedPoints",5],[10,"CurveAffine",1169],[10,"Layouter",1170],[10,"Into",1168],[5,"NonIdentityPoint",5],[5,"Point",5],[10,"Eq",1171],[5,"FixedPoint",5],[5,"FixedPointBaseField",5],[5,"FixedPointShort",5],[1,"tuple"],[1,"usize"],[5,"X",5],[5,"ScalarVar",5],[5,"Formatter",1167],[8,"Result",1167],[5,"ScalarFixed",5],[5,"ScalarFixedShort",5],[10,"BaseFitsInScalarInstructions",5],[5,"Value",1172],[5,"TypeId",1173],[5,"EccChip",201],[8,"Affine",1174],[8,"Base",1174],[5,"EccPoint",201],[5,"NonIdentityEccPoint",201],[5,"EccConfig",201],[5,"EccScalarFixed",201],[5,"EccScalarFixedShort",201],[6,"ScalarVar",201],[5,"ConstraintSystem",1175],[5,"Advice",1175],[5,"Column",1175],[1,"array"],[5,"Fixed",1175],[5,"LookupRangeCheckConfig",1126],[1,"bool"],[10,"PartialEq",1171],[6,"FullScalar",201],[6,"ShortScalar",201],[6,"BaseFieldElem",201],[17,"FixedScalarKind"],[10,"FixedPoint",201],[10,"FixedScalarKind",201],[5,"Vec",1176],[5,"AssignedCell",1170],[8,"Scalar",1174],[1,"u64"],[6,"Option",1177],[1,"slice"],[1,"u8"],[6,"PaddedWord",410],[5,"Absorbing",546],[5,"Sponge",410],[10,"Field",1178],[10,"Spec",546],[10,"Domain",546],[10,"PoseidonSpongeInstructions",410],[5,"Pow5Chip",410],[5,"StateWord",410],[5,"Cell",1170],[5,"Pow5Config",410],[5,"Squeezing",546],[5,"Word",410],[10,"PoseidonInstructions",410],[10,"SpongeMode",546],[5,"Hash",410],[5,"ConstantLength",546],[10,"PrimeField",1178],[17,"Word"],[5,"Hash",546],[8,"Mds",546],[8,"Base",1179],[5,"P128Pow5T3",546],[10,"FromUniformBytes",1178],[10,"Ord",1171],[5,"String",1180],[5,"BlockWord",654],[5,"Table16Config",654],[5,"Table16Chip",654],[17,"State"],[17,"BlockWord"],[10,"Sha256Instructions",654],[10,"Copy",1181],[10,"Default",1182],[5,"Sha256Digest",654],[5,"Sha256",654],[10,"HashDomains",755],[5,"Message",755],[10,"SinsemillaInstructions",755],[5,"MessagePiece",755],[5,"CommitDomain",755],[5,"HashDomain",755],[17,"Item"],[5,"RangeConstrained",1007],[10,"IntoIterator",1183],[10,"CommitDomains",755],[17,"CellValue"],[17,"Message"],[17,"MessagePiece"],[17,"RunningSum"],[17,"HashDomains"],[17,"CommitDomains"],[10,"Var",1007],[5,"SinsemillaConfig",848],[5,"SinsemillaChip",848],[5,"TableColumn",1175],[5,"MerklePath",893],[10,"MerkleInstructions",893],[1,"u32"],[5,"MerkleConfig",916],[5,"MerkleChip",916],[5,"HashDomain",961],[8,"Point",1174],[5,"CommitDomain",961],[5,"CtOption",1184],[10,"Iterator",1185],[1,"str"],[5,"Range",1186],[10,"PrimeFieldBits",1178],[6,"Expression",1175],[10,"FieldValue",1007],[17,"Var"],[10,"UtilitiesInstructions",1007],[5,"CondSwapChip",1048],[5,"CondSwapConfig",1048],[10,"CondSwapInstructions",1048],[5,"RunningSumConfig",1090],[5,"Selector",1175],[5,"Region",1170],[5,"RunningSum",1090],[5,"RunningSum",1126]],"b":[[573,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[574,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[601,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[602,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[623,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[624,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[626,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[627,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"],[629,"impl-Spec%3CFq,+3,+2%3E-for-P128Pow5T3"],[630,"impl-Spec%3CFp,+3,+2%3E-for-P128Pow5T3"]]},\
+"halo2_proofs":{"doc":"halo2_proofs","t":"PPPGCNNCNNNNCNNNENNCCNCNNNNRRRTKKRKKTRRTMMMMHHHMNMMHMHMMMMNNMHHMHNNMHHNNMMFFKRKRFFFFRFFFKFNNNNNNNNNNNNNNNNNMNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNMNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNMNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGKFPKKMNMNMNMMNNNNNNNNNNNMNMNNNNNNNMNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNPPGEFFPPGPPPFPPPPFPGNNNNNNNNNNNNNNNNNNNNNHNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPFGGKFPFPKFPPKRPFFPFGGFFPPFKRFFPPFPPPPPPPRKFFPFPPFFPPPFGPFPPPPFFFPNNNNNNNNNNNNNNNNMNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNMNNMNNMNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNOFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFGFFKFRPRFFFFPKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNMNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFKRRKRRKKRKRRKTTRKNNNMMMNNMNNMMMNNNMNMNMNNMNNMNNNMMMMNMMMMMNNNNMMNMCCCCFFINNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNCCCCFFINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFKRFFKKKKKNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNMMNNNNNNNNNNNNNNNNMNMNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNN","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","FftGroup","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","best_fft","best_multiexp","compute_inner_product","coordinates","cube","double","endo","eval_polynomial","from_xy","g_to_lagrange","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","kate_division","lagrange_interpolate","new_jacobian","parallelize","pow","pow_vartime","random","recursive_butterfly_arithmetic","small_multiexp","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","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","cell","clone","clone","clone","clone","clone","clone_into","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","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","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","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","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","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","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","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","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","Lookup","MockProver","OutsideRegion","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows_par","assert_satisfied_par","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone_into","clone_into","collect","copy","cost","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","into","into","into","into","into","into","into","mark_equality_cells","metadata","permutation","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","show_equality_constraints","show_labels","synthesize","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_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","verify","verify_at_rows","verify_at_rows_par","verify_par","view_height","view_width","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","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash","index","init","init","init","init","init","into","into","into","into","into","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","AdviceQuery","Any","Assigned","Assignment","BatchVerifier","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotAssigned","ColumnNotInPermutation","ColumnType","Config","Constant","Constraint","ConstraintSystem","ConstraintSystemFailure","Constraints","Error","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Gate","Instance","Instance","Instance","InstanceQuery","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Opening","OverwriteDefault","Params","Phase","PinnedConstraintSystem","PinnedVerificationKey","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","TableError","ThirdPhase","Transcript","Trivial","UnevenColumnLengths","UsedColumn","VerifyingKey","VirtualCell","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","add_proof","advice","advice_column","advice_column_in","advice_column_phase","advice_in","advice_queries","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","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","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","clone_into","clone_into","clone_into","cmp","cmp","cmp","column_index","column_index","column_index","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","configure_with_params","constants","constraint_name","copy","create_gate","create_proof","cs","cube","cur","default","default","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","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","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","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","eq","eq","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","finalize","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","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","from","from","from","from_bytes","from_bytes","gates","general_column_annotations","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","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","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","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","name","neg","neg","neg","new","new","next","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","numerator","params","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","permutation","phase","phase","phase","pinned","pinned","polynomials","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","rotation","selector","set_minimum_degree","shuffle","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_owned","to_owned","to_owned","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_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","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","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","verify_proof","vzip","vzip","vzip","vzip","vzip","vzip","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","Argument","Assembly","VerifyingKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build_ordered_mapping","clone","clone","clone","clone_into","clone_into","clone_into","columns","commitments","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","fmt","fmt","fmt","from","from","from","get_columns","init","init","init","into","into","into","mapping","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","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","ProverQuery","Rotation","SamplingError","VerificationStrategy","VerifierQuery","add","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","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","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","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","init","init","init","into","into","into","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new","new","new_commitment","new_msm","next","num_coeffs","pinned","prev","process","rotate","rotate_extended","rotate_omega","sub","sub","to_owned","to_owned","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_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","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","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","default","deref","deref_mut","downsize","drop","empty_msm","eq","eval","fmt","from","get_g","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","verifier_params","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","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","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","verifier_params","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","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_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","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","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","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","create_proof","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_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","translate","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_proofs"],[27,"halo2_proofs::arithmetic"],[74,"halo2_proofs::circuit"],[341,"halo2_proofs::circuit::floor_planner"],[377,"halo2_proofs::circuit::layouter"],[445,"halo2_proofs::dev"],[608,"halo2_proofs::dev::FailureLocation"],[611,"halo2_proofs::dev::VerifyFailure"],[633,"halo2_proofs::dev::cost"],[678,"halo2_proofs::dev::metadata"],[793,"halo2_proofs::plonk"],[1518,"halo2_proofs::plonk::Error"],[1519,"halo2_proofs::plonk::permutation"],[1576,"halo2_proofs::poly"],[1800,"halo2_proofs::poly::commitment"],[1867,"halo2_proofs::poly::ipa"],[1871,"halo2_proofs::poly::ipa::commitment"],[1918,"halo2_proofs::poly::ipa::msm"],[1948,"halo2_proofs::poly::ipa::multiopen"],[1980,"halo2_proofs::poly::ipa::strategy"],[2053,"halo2_proofs::poly::kzg"],[2057,"halo2_proofs::poly::kzg::commitment"],[2108,"halo2_proofs::poly::kzg::msm"],[2157,"halo2_proofs::poly::kzg::multiopen"],[2222,"halo2_proofs::poly::kzg::strategy"],[2282,"halo2_proofs::transcript"],[2436,"core::fmt"],[2437,"core::fmt"],[2438,"core::any"],[2439,"pasta_curves::arithmetic::curves"],[2440,"subtle"],[2441,"ff"],[2442,"core::cmp"],[2443,"core::ops::arith"],[2444,"alloc::vec"],[2445,"core::ops::function"],[2446,"alloc::boxed"],[2447,"subtle"],[2448,"core::marker"],[2449,"core::marker"],[2450,"core::convert"],[2451,"rand_core"],[2452,"core::ops::arith"],[2453,"core::convert"],[2454,"core::iter::traits::collect"],[2455,"core::ops::arith"],[2456,"core::hash"],[2457,"ff"],[2458,"core::cmp"],[2459,"plotters::drawing::area"],[2460,"plotters::drawing::area"],[2461,"core::ops::range"],[2462,"group::prime"],[2463,"std::collections::hash::map"],[2464,"core::default"],[2465,"std::io::error"],[2466,"std::io::error"],[2467,"core::error"],[2468,"std::io"],[2469,"core::ops::range"],[2470,"halo2curves::pairing"]],"d":["Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","This enum specifies how various types are serialized and …","This module provides common utilities, traits and …","","","Traits and structs for implementing circuit components.","","","","","Tools for developing circuits.","","","Returns the argument unchanged.","","","Calls U::from(self).","This module provides an implementation of a variant of …","Contains utilities for performing arithmetic over …","","This module contains utilities and traits for dealing with …","","","","","The affine version of the curve","The base field over which this elliptic curve is …","The base field over which this elliptic curve is …","CURVE_ID used for hash-to-curve.","This trait is the affine counterpart to Curve and is used …","This trait is a common interface for dealing with elements …","The projective form of the curve","This represents an element of a group with basic …","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Performs a radix-$2$ Fast-Fourier Transformation (FFT) on …","Performs a multi-exponentiation operation.","This computes the inner product of two vectors a and b.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","This evaluates a provided polynomial (in coefficient form) …","Obtains a point given $(x, y)$, failing if it is not on the","Convert coefficient bases group elements to lagrange basis …","Requests a hasher that accepts messages and returns …","Computes the multiplicative inverse of this element, …","Returns whether or not this element is on the curve; should","Returns whether or not this element is on the curve; should","Returns true iff this element is zero.","Returns true iff this element is zero.","Return the Jacobian coordinates of this point.","Divides polynomial a in X by X - b with no remainder.","Returns coefficients of an n - 1 degree polynomial given a …","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","This perform recursive butterfly arithmetic","Performs a small multi-exponentiation operation. Uses the …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","An assigned cell.","A pointer to a cell within a circuit.","A chip implements a set of instructions that can be used …","A type that holds the configuration for this chip, and any …","A layout strategy within a circuit. The layouter is …","A type that holds any general chip state that needs to be …","This is a “namespaced” layouter which borrows a …","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","Represents the type of the “root” of this layouter, so …","A simple FloorPlanner that performs minimal optimizations.","A table layouter that can be used to assign values to a …","A lookup table in the circuit.","Helper trait for implementing a custom Layouter.","A value that might exist within a circuit.","","","","","","","","","","","Returns Value::unknown() if the value is Value::unknown(), …","Converts from &mut Value<V> to Value<&mut V>.","Converts from &Value<V> to Value<&V>.","Enforces an assertion on the contained value, if known.","Assign an advice column value (witness).","Assigns a constant value to the column advice at offset …","Assign the value of the instance column’s cell at …","Assigns a fixed value to a table cell.","","Assigns a fixed value to a table cell.","Assign a fixed value.","Assign a region of gates to an absolute row number.","","Assign a table region to an absolute row number.","","","","","","","","","","","","","","","","","","","","","","Returns the cell.","","","","","","","","","","","Maps a Value<&mut V> to a Value<V> by cloning the contents …","Maps a Value<&V> to a Value<V> by cloning the contents of …","The column of this cell.","The chip holds its own configuration.","Constrains a cell to have a constant value.","Constrains two cells to have the same value.","Constrains a Cell to equal an instance column’s row …","","Maps a Value<&V> to a Value<V> by copying the contents of …","Maps a Value<&mut V> to a Value<V> by copying the contents …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","maps from a fixed column to a pair (default value, vector …","","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","","Checks the contained value for an error condition, if …","Evaluates this value directly, performing an unbatched …","Evaluates this assigned cell’s value directly, …","Implementations of common circuit floor planners.","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","","","Returns the value of the instance column’s cell at …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the field element corresponding to this value.","Inverts this assigned value (taking the inverse of zero to …","Constructs a known value.","Implementations of common circuit layouters.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Returns a new SimpleTableLayouter","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","Squares this field element.","","","","","","","","","","","","Returns the field element corresponding to this value.","","","","","","Transposes a Value<[V; LEN]> into a [Value<V>; LEN].","Transposes a Value<impl IntoIterator<Item = V>> into a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs an unwitnessed value.","Unzips a value containing a tuple of two values.","Returns the value of the AssignedCell.","Returns the field element value of the AssignedCell.","","","","","","","","","","","Zips self with another Value.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Concrete column","The virtual column involved in a region. This includes …","Helper trait for implementing a custom Layouter.","The shape of a region. For a region at a certain index, we …","Virtual column representing a (boolean) selector","Intermediate trait requirements for RegionLayouter when …","Helper trait for implementing a custom Layouter.","Assign an advice column value (witness)","","Assigns a constant value to the column advice at offset …","","Assign the value of the instance column’s cell at …","","Assigns a fixed value to a table cell.","Assigns a fixed value","","","","","","","","","","","Get a reference to the set of columns used in a RegionShape…","Constrains a cell to have a constant value.","","Constraint two cells to have the same value.","","","","","","","","Enables a selector at the given offset.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the value of the instance column’s cell at …","","Calls U::from(self).","Calls U::from(self).","Allows the circuit implementor to name/annotate a Column …","","Create a new RegionShape for a region at region_index.","","Get the region_index of a RegionShape.","Get the row_count of a RegionShape.","","","","","","","","","","","A cell that has been assigned a value.","A cell used in an active gate was not assigned to.","The value of a particular cell within the circuit.","","A struct for collecting and displaying the gates within a …","Graphical renderer for circuit layouts.","A constraint was not satisfied for a particular row.","A constraint was active on an unusable row, and is likely …","The location within the circuit at which a particular …","A location inside a region.","An instance cell used in an active gate was not assigned …","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","A permutation did not preserve the original value of a …","A unique poisoned cell.","A shuffle input did not exist in its corresponding map.","A helper type that augments a FloorPlanner with tracing …","An unassigned cell.","The reasons why a particular circuit is not satisfied.","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","","","","","","","Builds a dot graph string representing the given circuit.","","","","","Collects the gates from within the circuit.","","Developer tools for investigating the cost of a circuit.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Marks cells involved in equality constraints, in red.","Metadata about circuits.","Returns the permutation argument (Assembly) used within a …","","","Prints the queries in this circuit to a CSV grid.","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Returns Ok(()) if this MockProver is satisfied, or a list …","Sets the view height for this layout, as a number of rows.","Sets the view width for this layout, as a number of …","","","","","","","","The offset (relative to the start of the region) at which …","The region in which the failure occurred.","The circuit row on which the failure occurred.","The values of the virtual cells used by this constraint.","The column in which this cell should be assigned.","The column in which this cell should be assigned.","The column in which this permutation is not satisfied.","The polynomial constraint that is not satisfied.","The polynomial constraint that is not satisfied.","The index of the active gate.","The index of the active gate.","The offset (relative to the start of the region) at which …","The offset (relative to the start of the region) at which …","The location at which this constraint is not satisfied.","The location at which the lookup is not satisfied.","The location at which the lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","Measures a circuit to determine its costs, and explain …","The marginal size of a Halo 2 proof, broken down into its …","The size of a Halo 2 proof, broken down into its …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the marginal proof size per instance of this …","Measures a circuit with parameter constant k.","Returns the proof size for the given number of instances …","","","","","","","","","","","","","Metadata about a column within a circuit.","Metadata about a configured constraint within a circuit.","Metadata about a configured gate within a circuit.","Metadata about an assigned region within a circuit.","A “virtual cell” is a PLONK cell that has been queried …","","","","","","","","","","","","","","","","","","","","","Return the column type.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","Return the column index.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An advice column","An Advice variant","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","An enum over the Advice, Fixed, Instance structs","A value assigned to a cell within a circuit.","This trait allows a Circuit to direct some backend to …","A verifier that checks multiple proofs in a batch. This …","Out of bounds index passed to a backend","A challenge squeezed from transcript after advice columns …","This is a challenge","This is a trait that circuits provide implementations for …","A column with an index and type","A TableColumn has not been assigned.","The instance sets up a copy constraint involving a column …","A column type","This is a configuration object that stores things like …","This is a constant polynomial","An individual polynomial constraint.","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","Low-degree expression representing an identity that must …","First phase","A fixed column","A Fixed variant","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","Gate","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","This is a negated polynomial","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Opening error","Attempt to overwrite a default value","Optional circuit configuration parameters. Requires the …","Phase of advice column","Represents the minimal parameters that determine a …","Minimal representation of a verification key that can be …","This is the product of two polynomials","This is a proving key which allows for the creation of …","A value stored as a fraction to enable batch inversion.","This is a scaled polynomial","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","This is the sum of two polynomials","This is an error that can occur during synthesis of the …","A fixed column of a lookup table.","This is an error that could occur during table synthesis.","An error relating to a lookup table.","Third phase","Transcript error","A value that does not require inversion to evaluate.","A Table has columns of uneven lengths.","Attempt to assign a used TableColumn","This is a verifying key which allows for the verification …","A “virtual cell” is a PLONK cell that has been queried …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Adds a proof to the batch.","Returns Advice variant in FirstPhase","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Returns Advice variant in given Phase","Returns advice queries","Allows the developer to include an annotation for an …","Annotate an Instance column.","Annotate a Lookup column.","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns phase of challenges","Requests a challenge that is usable after the given phase.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Column index","Type of this column.","Allocate a new complex selector that can appear anywhere …","Approximate the computational complexity of this …","This will compress selectors together depending on their …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","Returns constants","Returns the name of the constraint at index …","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","Returns ConstraintSystem","Cubes this element.","Return expression from column at the current row","","","","Compute the degree of this polynomial","Compute the degree of the constraint system (the maximum …","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","Doubles this element.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","","","","","","","","Evaluates this assigned value directly, performing an …","Evaluate the polynomial using the provided closures to …","Evaluate the polynomial lazily using the provided closures …","Exits the current region.","Return expression from selector","Return Expression","Fills a fixed column starting from the given row with …","Finalizes the batch and checks its validity.","Allocate a new fixed column","Returns commitments of fixed polynomials","Returns fixed queries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Returns gates","Returns general column annotations","Queries the value of the given challenge.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","","Hashes a verification key into a transcript.","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns inner column","Allocate a new instance column","Returns instance queries","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Inverts this assigned value (taking the inverse of zero to …","Is this selector “simple”? Simple selectors can only …","Returns true iff this element is zero.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of Circuit. By …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","Returns the minimum necessary rows that need to exist in …","","","","","","","","","Returns the gate name.","","","","Returns Advice in given Phase","Constructs a new batch verifier.","Return expression from column at the next row","Returns number of advice columns","Returns number of challenges","Returns number of fixed columns","Returns number of instance columns","Returns number of selectors","Returns the numerator.","Returns a reference to the parameters that should be used …","Returns a reference to the parameters that should be used …","","","","Implementation of permutation argument.","Returns permutation argument","Returns VerifyingKey of permutation","Phase of this column","Phase of this advice column","Phase of this challenge.","Obtain a pinned version of this constraint system; a …","Obtains a pinned representation of this verification key …","Returns constraints of this gate","Exits out of the existing namespace.","Return expression from column at the previous row","","Creates a new (sub)namespace and enters into it.","Query an advice column at a relative position","Query an Any column at a relative position","Return expression from cell","Return expression from column at a relative position","","","","","Make side effects","Query a challenge","Query a fixed column at a relative position","Queries the cell of an instance column at a particular …","Query an instance column at a relative position","Query a selector at the current position.","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Rotation of this query","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","Squares this element.","Square this expression.","","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","","","","","","","","","","","","","","","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","Returns a boolean indicating whether or not the proof is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","A permutation argument.","Struct that accumulates all the necessary data in order to …","The verifying key for a single permutation argument.","","","","","","","Builds the ordered mapping of the cycles. This will only …","","","","","","","Returns columns that participate in the permutation …","Returns commitments of sigma polynomials","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns columns that participate on the permutation …","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns mappings of the copies.","","","","","","","","","","","","","","","","The basis over which a polynomial is described.","The polynomial is defined as coefficients","This is an error that could occur during proving or …","This structure contains precomputed constants and other …","The polynomial is defined as coefficients of Lagrange …","Guards is unfinished verification result. Implement this …","The polynomial is defined as coefficients of Lagrange …","Multi scalar engine which is not evaluated yet.","OpeningProof is not well-formed","The output type of this verification strategy after …","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","A polynomial query at a point","Describes the relative rotation of a vector. Negative …","Caller needs to re-sample a point","Trait representing a strategy for verifying Halo 2 proofs.","A polynomial query at a point","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","The current location in the evaluation domain","","","","","","","","","","","","","","","","","","","","","","","This divides the polynomial (in the extended domain) by …","","","","","","","","","","","Returns an empty (zero) polynomial in the coefficient basis","Returns an empty (zero) polynomial in the extended …","Returns an empty (zero) polynomial in the Lagrange …","","Get the size of the extended domain","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the generator of the extended domain’s …","Get $\\\\omega$, the generator of the $2^k$ order …","Get $\\\\omega^{-1}$, the inverse of the generator of the …","Gets the quotient polynomial’s degree (as a multiple of …","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Inner product argument commitment scheme","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Get the size of the domain","KZG commitment scheme","Computes evaluations (at the point x, where xn = x^n) of …","Obtains a polynomial in Lagrange form when given a vector …","This takes us from an n-length vector into the coefficient …","","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","Create a new prover query based on a polynomial","Create a new verifier query based on a commitment","Create a new verifier query based on a commitment","Create a new verifier query based on a linear combination …","The next location in the evaluation domain","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Obtains an MSM from the verifier strategy and yields back …","Rotates the values in a Lagrange basis polynomial by …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multi scalar multiplication engine","Multi scalar multiplication engine","Accumulator fot comressed verification","Parameters for circuit sysnthesis and prover parameters.","Parameters for circuit sysnthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logaritmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and returns unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","Add another multiexp into this one","Add a vector of scalars to g_scalars. This function will …","Add to u_scalar","Add to w_scalar","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The claimed output of the linear-time polycommit opening …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A vector of challenges u_0, …, u_{k - 1} sampled by the …","Lets caller supply the challenges and obtain an MSM with …","Lets caller supply the purported G point and simply appends","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit challenge.","The scalar representation of a verifier challenge.","EncodedChallenge<C> defines a challenge encoding with a …","The Input type used to derive the challenge encoding. For …","Keccak256 hash function reader for EVM compatibility","Keccak256 hash function writer for EVM compatibility","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","Cast an encoded challenge as a typed ChallengeScalar.","","","","","","","","","","","","","","","","","","","","","","","","","Writing the point to the transcript without writing it to …","","","","","Writing the scalar to the transcript without writing it to …","","","","","","","","","","","","","","","","","","","","","","","","","Conclude the interaction and return the output buffer …","","Conclude the interaction and return the output buffer …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","","Initialize a transcript given an input buffer.","Initialize a transcript given an input buffer.","","","Initialize a transcript given an output buffer.","Initialize a transcript given an output buffer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get an encoded challenge from a given input challenge.","","Read a curve point from the prover.","","","Read a curve scalar from the prover.","","","Squeeze an encoded verifier challenge from the transcript.","","","","","Squeeze a typed challenge (in the scalar field) from the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Write a curve point to the proof and the transcript.","","","Write a scalar to the proof and the transcript.","",""],"i":[1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,21,21,12,21,0,0,12,0,0,10,21,12,10,21,12,21,12,0,0,0,12,10,10,21,0,12,0,21,10,21,12,10,10,21,0,0,21,0,10,10,10,0,0,10,10,10,10,0,0,0,65,0,65,0,0,0,0,58,0,0,0,0,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,42,42,42,51,53,55,42,58,59,58,59,53,38,69,61,62,60,45,42,55,59,53,38,69,61,62,60,45,42,55,59,45,38,61,62,60,45,38,61,62,60,45,38,38,60,65,42,42,58,59,38,38,45,38,38,53,53,38,69,61,61,62,62,60,45,42,55,59,53,38,69,61,62,60,45,42,55,59,38,53,38,69,61,62,60,45,42,55,59,59,62,38,38,45,0,53,38,69,61,62,60,45,42,55,59,53,38,38,69,61,61,62,62,60,45,42,42,55,55,59,38,58,59,58,59,53,38,69,61,62,60,45,42,55,59,42,53,38,69,61,62,60,45,42,55,59,38,38,38,0,65,38,38,38,38,38,38,38,38,38,38,38,42,58,38,53,58,59,58,59,60,60,38,38,38,38,38,38,38,38,38,38,38,69,38,38,61,62,60,45,38,38,53,38,69,61,62,60,45,42,55,59,53,38,69,61,62,60,45,42,55,59,53,38,69,61,62,60,45,42,55,59,38,38,45,45,53,38,69,61,62,60,45,42,55,59,38,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,81,81,80,81,80,81,80,81,80,83,0,0,0,83,0,0,70,82,70,82,70,82,51,70,82,82,83,82,83,82,83,82,83,83,82,70,82,70,82,82,83,82,83,82,83,70,82,83,82,83,82,83,83,83,83,82,83,70,82,82,83,70,82,82,83,82,82,82,83,82,83,82,83,82,83,82,83,89,95,0,0,0,0,95,95,0,92,95,95,0,92,95,89,95,0,89,0,88,88,88,88,88,88,88,92,95,93,98,94,89,88,92,95,93,98,94,89,88,0,92,89,92,89,93,88,0,94,92,95,93,98,94,89,88,92,95,93,98,94,89,88,92,95,93,98,94,89,88,88,88,92,95,89,88,88,88,88,92,92,95,95,93,93,98,94,89,88,92,95,93,98,94,89,88,88,92,95,93,98,94,89,88,92,95,93,98,94,89,88,94,0,88,88,88,93,88,94,88,94,94,98,92,89,92,95,93,92,95,93,98,94,89,88,92,95,93,98,94,89,88,92,95,93,98,94,89,88,88,88,88,88,94,94,92,95,93,98,94,89,88,214,214,215,216,217,218,219,216,220,217,218,217,218,216,221,222,219,221,221,222,217,217,218,218,222,0,0,0,106,108,109,106,108,109,106,108,109,106,108,109,106,108,109,106,108,109,106,108,109,106,108,109,106,108,109,106,106,106,106,108,109,106,108,109,106,108,109,106,108,109,0,0,0,0,0,110,114,111,112,113,110,114,111,112,113,110,111,112,113,110,111,112,113,110,114,110,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,110,114,114,111,111,112,112,113,113,110,110,110,114,114,114,114,111,111,112,112,113,113,113,113,113,110,110,110,114,111,112,113,110,114,111,112,113,110,114,110,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,110,114,111,112,113,0,73,118,0,0,0,0,0,46,0,118,0,0,142,46,0,78,118,0,0,46,0,0,0,0,0,73,118,0,0,78,0,0,73,118,0,46,46,118,46,46,46,142,78,0,0,0,118,0,39,118,0,0,118,118,46,0,0,46,0,46,39,142,142,0,0,0,39,39,39,39,39,39,39,118,39,39,119,73,121,121,121,73,121,54,121,121,54,54,121,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,121,121,39,44,43,56,50,73,86,125,126,127,52,72,118,116,128,121,129,130,39,44,43,56,50,73,86,125,126,127,52,72,118,116,128,121,129,130,44,73,52,125,126,127,44,121,118,121,78,78,78,121,128,54,121,0,129,39,44,43,121,119,118,121,39,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,121,39,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,86,121,121,54,54,39,44,43,56,50,73,86,125,126,127,52,72,118,39,118,118,54,86,72,54,119,121,129,121,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,46,142,142,119,129,143,130,137,39,39,39,39,39,44,44,44,44,138,139,140,43,56,50,73,73,73,73,86,125,126,127,52,72,118,116,116,131,131,131,141,128,121,132,46,46,142,119,129,143,130,129,130,121,121,54,129,130,44,43,56,50,73,86,52,72,129,118,44,86,72,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,52,121,121,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,141,39,86,39,0,0,0,121,121,121,121,121,39,39,39,39,118,118,39,39,128,39,39,118,43,119,44,121,121,121,121,121,39,78,78,44,73,52,0,121,129,43,126,72,121,129,128,54,44,118,54,132,132,124,44,43,56,50,73,118,132,132,54,132,132,129,130,44,125,126,127,121,121,121,121,46,39,118,39,39,39,39,39,39,118,39,39,118,99,78,129,130,39,44,43,56,50,73,86,125,126,127,52,72,118,116,128,121,129,130,46,142,129,137,39,44,44,44,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,121,121,0,137,39,44,138,139,140,43,56,50,73,86,125,126,127,52,72,118,116,131,141,128,121,132,46,142,119,129,143,130,141,78,129,130,223,0,0,0,100,152,153,100,152,153,100,100,152,153,100,152,153,100,153,100,152,153,100,152,153,100,152,153,100,100,152,153,100,152,153,152,100,152,153,100,152,153,100,100,152,153,100,152,153,100,152,153,100,152,153,100,152,153,0,0,0,0,0,0,0,182,171,158,0,0,0,0,171,0,0,162,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,146,164,165,167,168,169,162,123,146,164,165,167,168,169,162,123,146,146,0,146,146,123,146,170,164,165,171,167,168,169,162,162,123,146,170,164,165,171,167,168,169,162,162,123,146,146,170,164,165,171,167,168,169,162,123,146,146,146,123,146,146,146,158,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,146,146,146,146,162,162,162,162,162,162,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,0,162,162,146,0,146,146,146,162,158,146,164,165,165,165,123,162,146,123,158,162,146,146,162,162,146,164,165,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,146,170,164,165,171,167,168,169,162,123,0,0,156,157,0,149,157,0,0,156,0,156,176,0,179,157,156,0,174,174,174,166,166,166,174,174,166,174,174,176,149,179,174,174,174,149,174,149,174,166,174,174,176,174,174,149,174,174,174,149,176,179,157,174,156,149,156,166,166,174,174,174,174,176,157,174,149,0,0,0,0,0,0,0,183,185,183,185,183,183,183,183,0,183,185,183,185,183,183,185,183,183,185,183,185,183,183,185,183,185,183,183,183,185,183,185,183,183,185,183,185,183,185,183,0,183,185,183,0,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,0,0,187,188,187,188,187,187,188,187,188,187,188,187,188,187,188,187,188,187,188,187,188,187,188,187,188,187,188,188,187,188,0,0,0,0,186,189,190,191,186,189,190,191,186,189,186,189,186,186,189,190,191,186,189,190,191,186,189,190,191,190,191,186,189,190,191,186,189,190,191,189,186,189,190,191,186,189,190,191,190,191,190,191,186,189,186,189,190,191,186,189,190,191,186,189,190,191,189,186,186,186,189,190,191,0,0,0,0,0,0,0,192,195,192,195,192,192,192,192,192,195,192,195,192,192,195,192,192,195,192,195,192,192,192,192,195,192,195,192,192,192,195,192,192,195,192,192,192,192,195,192,195,192,195,192,192,195,192,192,0,0,194,196,194,194,194,196,194,196,194,196,194,196,194,196,194,194,194,196,194,196,194,196,194,194,196,194,196,196,194,196,194,196,194,196,194,194,196,194,196,194,196,194,196,194,196,194,196,0,0,0,0,198,200,199,201,198,200,199,201,198,199,198,200,199,201,198,200,199,201,198,200,199,201,198,200,199,201,198,200,199,201,198,200,199,201,198,200,199,201,198,200,199,199,201,198,200,199,201,198,200,199,201,198,200,199,201,200,201,198,200,199,201,0,0,0,202,203,204,202,203,204,202,203,204,202,203,204,202,203,204,202,203,204,202,203,204,203,204,202,203,204,202,203,204,202,203,204,202,203,204,203,203,204,204,203,204,202,203,204,202,203,204,202,203,204,202,203,204,202,203,204,203,0,0,0,0,0,133,0,0,0,0,0,0,0,133,207,208,209,210,206,211,207,208,209,210,206,211,207,208,209,210,206,211,207,208,209,210,206,211,148,207,208,209,210,148,207,208,209,210,207,208,209,210,206,206,211,211,207,208,209,210,206,211,207,208,209,210,206,211,212,209,210,207,208,209,210,206,211,207,208,209,210,206,211,133,211,213,212,207,207,208,208,209,209,210,210,206,211,207,208,209,210,206,211,133,211,159,207,208,159,207,208,148,207,208,209,210,148,207,208,209,210,206,211,206,207,208,209,210,206,211,207,208,209,210,206,211,207,208,209,210,206,211,207,208,209,210,206,211,134,209,210,134,209,210],"f":[0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],0,[3,2],[[1,4],5],[-1,-1,[]],0,[[],3],[-1,-2,[],[]],0,0,[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],-1,[]],[[],-1,[]],[[],-1,[]],[[],-1,[]],[[[8,[-2]],-1,9],2,10,[[11,[-1]]]],[[8,[8,[-1]]],[],12],[[[8,[-1]],[8,[-1]]],-1,10],[[[12,[],[[13,[-1]],[14,[-2]],[15,[-3]]]]],[[17,[[16,[[12,[],[[13,[-1]],[14,[-2]],[15,[-3]]]]]]]]],[18,19],[18,19],[[21,[],[[20,[[12,[],[[13,[-1]],[14,[-2]],[15,[-3]]]]]],[13,[-1]]]]]],[10,10],[10,10],[[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]],[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]],18,18,[[12,[],[[15,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[13,[-1]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]]]],[23,[-1]],[23,[-1]]]],[[[8,[-1]],-1],-1,10],[[-1,-1],[[17,[[12,[],[[13,[-2]],[14,[-1]],[15,[-3]]]]]]],[18,19],[18,19],[[21,[],[[20,[]],[13,[]]]]]],[[24,9],[[24,[-1]]],12],[25,[[27,[26]]]],[10,[[17,[10]]]],[[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]],28,18,18,[[12,[],[[15,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[13,[-1]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]]]],[23,[-1]],[23,[-1]]]],[[[12,[],[[13,[-1]],[14,[-2]],[15,[-3]]]]],28,[18,19],[18,19],[[21,[],[[20,[[12,[],[[13,[-1]],[14,[-2]],[15,[-3]]]]]],[13,[-1]]]]]],[10,28],[10,29],[[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]],[[2,[-2,-2,-2]]],18,18,[[12,[],[[15,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[13,[-1]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]],[22,[[21,[],[[13,[-1]],[14,[-2]],[20,[-3]]]]]]]],[23,[-1]],[23,[-1]]]],[[-2,-1],[[24,[-1]]],10,[[31,[],[[30,[-1]]]]]],[[[8,[-1]],[8,[-1]]],[[24,[-1]]],10],[[-1,-1,-1],[[17,[[21,[],[[13,[-2]],[14,[-1]],[20,[-3]]]]]]],18,18,[[12,[],[[15,[]],[13,[]],[22,[]],[22,[]]]],[23,[-2]],[23,[-2]]]],[[[8,[-1]],-2],2,32,[[26,[[8,[-1]],3]],32,33,34]],[[10,-1],10,[[36,[[8,[35]]]]]],[[10,-1],10,[[36,[[8,[35]]]]]],[-1,10,37],[[[8,[-2]],3,3,[8,[-1]]],2,10,[[11,[-1]]]],[[8,[8,[-1]]],[],12],[10,[[17,[10]]]],[10,[[2,[28,10]]]],[[10,10],[[2,[28,10]]]],[10,10],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[[38,[-2]],[38,[-2]]],-3,[],[[40,[],[[22,[-1]]]]],[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[-1]],-3],[[38,[-2]]],[],[],[[41,[-1],[[22,[[38,[-2]]]]]]]],[[[38,[-1]]],[[38,[-1]]],[]],[[[38,[-1]]],[[38,[-1]]],[]],[[[38,[-1]],-2],2,[],[[41,[-1],[[22,[29]]]]]],[[[42,[-1]],-3,[44,[43]],3,-5],[[6,[[45,[-4,-1]],46]]],10,[[48,[47]]],[[26,[],[[22,[-2]]]]],[],[[49,[],[[22,[[38,[-4]]]]]]]],[[[42,[-1]],-3,[44,[43]],3,-4],[[6,[[45,[-4,-1]],46]]],10,[[48,[47]]],[[26,[],[[22,[-2]]]]],[]],[[[42,[-1]],-3,[44,[50]],3,[44,[43]],3],[[6,[[45,[-1,-1]],46]]],10,[[48,[47]]],[[26,[],[[22,[-2]]]]]],[[51,26,52,3,49],[[6,[2,46]]]],[[[53,[-1,-2]],26,52,3,49],[[6,[2,46]]],10,[[54,[-1]]]],[[[55,[-1]],-3,52,3,-5],[[6,[2,46]]],10,[[48,[47]]],[[26,[],[[22,[-2]]]]],[[48,[[39,[-1]]]]],[[49,[],[[22,[[38,[-4]]]]]]]],[[[42,[-1]],-3,[44,[56]],3,-5],[[6,[[45,[-4,-1]],46]]],10,[[48,[47]]],[[26,[],[[22,[-2]]]]],[],[[49,[],[[22,[[38,[-4]]]]]]]],[[[58,[],[[57,[-1]]]],-4,-6],[[6,[-5,46]]],[[58,[-2]]],10,[[48,[47]]],[[26,[],[[22,[-3]]]]],[],[[49,[[42,[-2]]],[[22,[[6,[-5,46]]]]]]]],[[[59,[-1,-2]],-4,-6],[[6,[-5,46]]],10,[[58,[-1]]],[[48,[47]]],[[26,[],[[22,[-3]]]]],[],[[49,[[42,[-1]]],[[22,[[6,[-5,46]]]]]]]],[[[58,[],[[57,[-1]]]],-4,-5],[[6,[2,46]]],[[58,[-2]]],10,[[48,[47]]],[[26,[],[[22,[-3]]]]],[[49,[[55,[-2]]],[[22,[[6,[2,46]]]]]]]],[[[59,[-1,-2]],-4,-5],[[6,[2,46]]],10,[[58,[-1]]],[[48,[47]]],[[26,[],[[22,[-3]]]]],[[49,[[55,[-1]]],[[22,[[6,[2,46]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[45,[-1,-2]]],60,[],10],[[[38,[-1]]],[[38,[-1]]],34],[61,61],[62,62],[60,60],[[[45,[-1,-2]]],[[45,[-1,-2]]],34,[34,10]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[38,[-1]]],[[38,[-1]]],34],[[[38,[-1]]],[[38,[-1]]],34],0,[[[65,[],[[63,[-1]],[64,[-2]]]]],-1,[66,34],[66,34]],[[[42,[-1]],60,-2],[[6,[2,46]]],10,[[48,[[39,[-1]]]]]],[[[42,[-1]],60,60],[[6,[2,46]]],10],[[[58,[],[[57,[-1]]]],60,[44,[50]],3],[[6,[2,46]]],[[58,[-2]]],10],[[[59,[-1,-2]],60,[44,[50]],3],[[6,[2,46]]],10,[[58,[-1]]]],[[[38,[-1]]],[[38,[-1]]],67],[[[38,[-1]]],[[38,[-1]]],67],[[[45,[-1,-2]],-4,[42,[-2]],[44,[43]],3],[[6,[[45,[-1,-2]],46]]],34,10,[[48,[47]]],[[26,[],[[22,[-3]]]]]],[[[38,[-2]]],[[38,[[39,[-1]]]]],10,[[68,[[39,[-1]]]]]],[[],[[38,[-1]]],[]],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[61,-1,[]],[3,-1,[]],[3,-1,[]],[62,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[38,[-2]]],[[38,[[39,[-1]]]]],10,[[68,[[39,[-1]]]]]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[59,[-1,-2]]],2,10,[[58,[-1]]]],[[62,62],29],[[[38,[-1]],-2],[[6,[2,46]]],[],[[41,[-1],[[22,[29]]]]]],[[[38,[[39,[-1]]]]],[[38,[-1]]],10],[[[45,[[39,[-1]],-1]]],[[45,[-1,-1]]],10],0,[[[53,[-1,-2]],4],5,10,[[54,[-1]]]],[[[38,[-1]],4],5,66],[[69,4],5],[[61,4],5],[[62,4],5],[[60,4],5],[[[45,[-1,-2]],4],5,66,[66,10]],[[[42,[-1]],4],5,[66,10]],[[[55,[-1]],4],5,[66,10]],[[[59,[-1,-2]],4],5,[66,10],[66,[58,[-1]]]],[-1,-1,[]],[[[38,[-1]]],[[38,[[39,[-1]]]]],10],[-1,-1,[]],[-1,-1,[]],[3,61],[-1,-1,[]],[3,62],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[70,[[42,[-1]]],10],[-1,-1,[]],[51,[[55,[-1]]],10],[-1,-1,[]],[-1,-1,[]],[-2,[[38,[-3]]],[],[[31,[],[[30,[[38,[-1]]]]]]],[[71,[-1]]]],[[[58,[],[[57,[-1]]]],72],[[38,[-2]]],[[58,[-2]]],10],[[[59,[-1,-2]],72],[[38,[-1]]],10,[[58,[-1]]]],[[[58,[],[[57,[-1]]]]],-1,[[58,[-2]]],10],[[[59,[-1,-2]]],-3,10,[[58,[-1]]],[]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[[42,[-1]],[44,[50]],3],[[6,[[38,[-1]],46]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[38,[-2]]],[[38,[[39,[-1]]]]],10,[[48,[[39,[-1]]]]]],[[[38,[-2]]],[[38,[[39,[-1]]]]],10,[[68,[[39,[-1]]]]]],[-1,[[38,[-1]]],[]],0,[[[65,[],[[63,[-1]],[64,[-2]]]]],-2,[66,34],[66,34]],[[[38,[-1]],-3],[[38,[-2]]],[],[],[[41,[-1],[[22,[-2]]]]]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[-2]],[38,[-2]]],-3,[],[[23,[],[[22,[-1]]]]],[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[42,[-1]],-3,-4],2,10,[[48,[47]]],[[26,[],[[22,[-2]]]]],[[48,[[44,[73]]]]]],[[[58,[],[[57,[-1]]]],-4],[[59,[-2,-1]]],[[58,[-2]]],10,[[48,[47]]],[[41,[],[[22,[-3]]]]]],[[[38,[-1]]],-2,74,[]],[[-2,[8,[52]]],[[53,[-1,-2]]],10,[[54,[-1]]]],[[[58,[],[[57,[-1]]]],[75,[47]]],2,[[58,[-2]]],10],[[[59,[-1,-2]],[75,[47]]],2,10,[[58,[-1]]]],[[[58,[],[[57,[-1]]]],-4],2,[[58,[-2]]],10,[[48,[47]]],[[41,[],[[22,[-3]]]]]],[[[59,[-1,-2]],-4],2,10,[[58,[-1]]],[[48,[47]]],[[41,[],[[22,[-3]]]]]],0,0,[[[38,[-2]]],[[38,[[39,[-1]]]]],10,[[68,[[39,[-1]]]]]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[[39,[-1]]]],-1],-2,10,[]],[[[38,[-1]],[38,[-1]]],-3,[],[],[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[[38,[-1]],[38,[-1]]],-2,[],[]],[[[38,[-2]],[38,[-2]]],-3,[],[[76,[],[[22,[-1]]]]],[]],[[[38,[[39,[-1]]]],[38,[-1]]],-2,10,[]],[[-2,-3,[24,[[44,[56]]]]],[[6,[2,46]]],10,[[54,[-1]],77],[[78,[-1]]]],[[[38,[-1]]],[[38,[[39,[-2]]]]],[],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[38,[[79,[-1]]]]],[[79,[[38,[-1]]]]],67],[[[38,[-2]],3],[[24,[[38,[-1]]]]],[],[[31,[],[[30,[-1]]]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[],[[38,[-1]]],[]],[[[38,[[2,[-1,-2]]]]],[[2,[[38,[-1]],[38,[-2]]]]],[],[]],[[[45,[-1,-2]]],[[38,[-1]]],[],10],[[[45,[-1,-2]]],[[38,[[39,[-2]]]]],[],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[38,[-1]],[38,[-2]]],[[38,[[2,[-1,-2]]]]],[],[]],0,0,[[[80,[-1,-2]],-4,-6],[[6,[-5,46]]],10,[[54,[-1]],77],[[48,[47]]],[[26,[],[[22,[-3]]]]],[],[[49,[[42,[-1]]],[[22,[[6,[-5,46]]]]]]]],[[[80,[-1,-2]],-4,-5],[[6,[2,46]]],10,[[54,[-1]],77],[[48,[47]]],[[26,[],[[22,[-3]]]]],[[49,[[55,[-1]]],[[22,[[6,[2,46]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[80,[-1,-2]],60,[44,[50]],3],[[6,[2,46]]],10,[[54,[-1]],77]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[81,4],5],[[[80,[-1,-2]],4],5,[66,10],[66,[54,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[80,[-1,-2]],72],[[38,[-1]]],10,[[54,[-1]],77]],[[[80,[-1,-2]]],-3,10,[[54,[-1]],77],[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[80,[-1,-2]],[75,[47]]],2,10,[[54,[-1]],77]],[[[80,[-1,-2]],-4],2,10,[[54,[-1]],77],[[48,[47]]],[[41,[],[[22,[-3]]]]]],[[-2,-3,[24,[[44,[56]]]]],[[6,[2,46]]],10,[[54,[-1]],77],[[78,[-1]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[70,26,[44,[43]],3,49],[[6,[60,46]]]],[[82,26,[44,[43]],3,49],[[6,[60,46]]]],[[70,26,[44,[43]],3,[39,[-1]]],[[6,[60,46]]],10],[[82,26,[44,[43]],3,[39,[-1]]],[[6,[60,46]]],10],[[70,26,[44,[50]],3,[44,[43]],3],[[6,[[2,[60,[38,[-1]]]],46]]],10],[[82,26,[44,[50]],3,[44,[43]],3],[[6,[[2,[60,[38,[-1]]]],46]]],10],[[51,26,52,3,49],[[6,[2,46]]]],[[70,26,[44,[56]],3,49],[[6,[60,46]]]],[[82,26,[44,[56]],3,49],[[6,[60,46]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[82,82],[83,83],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[83,83],84],[82,[[85,[83]]]],[[70,60,[39,[-1]]],[[6,[2,46]]],10],[[82,60,[39,[-1]]],[[6,[2,46]]],10],[[70,60,60],[[6,[2,46]]]],[[82,60,60],[[6,[2,46]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[70,26,86,3],[[6,[2,46]]]],[[82,26,86,3],[[6,[2,46]]]],[[83,83],29],[[82,4],5],[[83,4],5],[-1,-1,[]],[-1,-1,[]],[86,83],[[[44,[73]]],83],[[83,-1],2,87],[[],3],[[],3],[[70,[44,[50]],3],[[6,[[38,[-1]],46]]],10],[[82,[44,[50]],3],[[6,[[38,[-1]],46]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[[70,26,[44,[73]]],2],[[82,26,[44,[73]]],2],[61,82],[[83,83],[[75,[84]]]],[82,61],[82,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[88,[-1]],[44,[43]]],[[8,[[89,[-1]]]]],[90,19]],[[[88,[-1]],-3,[44,[73]]],2,10,[[48,[47]]],[[41,[],[[22,[-2]]]]]],[[[88,[-1]]],2,[90,19]],[[[88,[-1]],-2,-2],2,[90,19],[34,[91,[],[[30,[3]]]]]],[[[88,[-1]]],2,[90,19]],[[[88,[-1]],-3,[44,[43]],3,-5],[[6,[2,46]]],10,[[48,[47]]],[[41,[],[[22,[-2]]]]],[[48,[[39,[-1]]]]],[[41,[],[[22,[[38,[-4]]]]]]]],[[[88,[-1]],-3,[44,[56]],3,-5],[[6,[2,46]]],10,[[48,[47]]],[[41,[],[[22,[-2]]]]],[[48,[[39,[-1]]]]],[[41,[],[[22,[[38,[-4]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,47,10,[[78,[-1]]]],[92,92],[[[89,[-1]]],[[89,[-1]]],[34,10]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],93],[[[88,[-1]],[44,[73]],3,[44,[73]],3],[[6,[2,46]]],10],0,[[],94],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[88,[-1]],-3,86,3],[[6,[2,46]]],10,[[48,[47]]],[[41,[],[[22,[-2]]]]]],[[[88,[-1]],-3],2,10,[[48,[47]]],[[41,[],[[22,[-2]]]]]],[[92,92],29],[[95,95],29],[[[89,[-1]],[89,[-1]]],29,[96,10]],[[[88,[-1]]],2,10],[[[88,[-1]],[44,[56]],3,[38,[[39,[-1]]]]],[[6,[2,46]]],10],[[[88,[-1]]],[[24,[[24,[[89,[-1]]]]]]],[90,19]],[[[88,[-1]],[44,[56]]],[[8,[[89,[-1]]]]],[90,19]],[[92,4],5],[[92,4],5],[[95,4],5],[[95,4],5],[[93,4],[[6,[2,97]]]],[[93,4],5],[[[98,[-1]],4],5,[66,99]],[[94,4],5],[[[89,[-1]],4],5,[66,10]],[[[88,[-1]],4],5,[66,10]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[88,[-1]],72],[[38,[-1]]],10],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[94,29],94],0,[[[88,[-1]]],100,[90,19]],[[[88,[-1]],[75,[47]]],2,10],[[[88,[-1]],-3],2,10,[[48,[47]]],[[41,[],[[22,[-2]]]]]],[93,47],[[[88,[-1]],[44,[50]],3],[[6,[[38,[-1]],46]]],10],[[94,9,-2,[102,[-3,101]]],[[6,[2,103]]],10,[[78,[-1]]],104],[[9,-2,[24,[[24,[-1]]]]],[[6,[[88,[-1]],46]]],[90,19],[[78,[-1]]]],[[94,29],94],[[94,29],94],[[-2,-3,[24,[[44,[56]]]]],[[6,[2,46]]],10,[[54,[-1]],77],[[78,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,47,[]],[-1,47,[]],[-1,47,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[88,[-1]]],[[6,[2,[24,[95]]]]],[90,19]],[[[88,[-1]],-2,-2],[[6,[2,[24,[95]]]]],[90,19],[34,[91,[],[[30,[3]]]]]],[[[88,[-1]],-2,-2],[[6,[2,[24,[95]]]]],[90,19],[34,[91,[],[[30,[3]]]]]],[[[88,[-1]]],[[6,[2,[24,[95]]]]],[90,19]],[[94,[105,[3]]],94],[[94,[105,[3]]],94],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[106,[-1,-2]],4],5,[66,107],[66,78]],[[[108,[-1]],4],5,[66,107]],[[[109,[-1]],4],5,[66,107]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[106,[-1,-2]]],[[108,[-1]]],107,78],[[9,-1],[[106,[-2,-1]]],78,107],[[[106,[-1,-2]],3],[[109,[-1]]],107,78],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[110,110],[111,111],[112,112],[113,113],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[110,110],84],[[114,114],84],[110,73],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[[110,110],29],[[114,114],29],[[111,111],29],[[112,112],29],[[113,113],29],[[110,4],5],[[110,4],5],[[114,4],5],[[114,4],5],[[111,4],5],[[111,4],5],[[112,4],5],[[112,4],5],[[113,4],5],[[113,4],5],[[[44,[73]]],110],[[[2,[73,3]]],110],[-1,-1,[]],[-1,-1,[]],[[[2,[110,115]]],114],[116,114],[[[2,[-1,110,115]]],114,[[36,[25]]]],[-1,-1,[]],[[[2,[3,-1]]],111,[[36,[25]]]],[-1,-1,[]],[[[2,[111,3,-1]]],112,[[36,[25]]]],[[[2,[3,25]]],113],[[[2,[3,47]]],113],[[[2,[3,47,[117,[110,47]]]]],113],[-1,-1,[]],[[[2,[3,25,[117,[110,47]]]]],113],[[110,-1],2,87],[110,3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[110,110],[[75,[84]]]],[[114,114],[[75,[84]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,47,[]],[-1,47,[]],[-1,47,[]],[-1,47,[]],[-1,47,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[118,[-1]],[118,[-1]]],[[118,[-1]]],10],[[[39,[-1]],[39,[-1]]],2,10],[[[39,[-1]],[39,[-1]]],2,10],[[[119,[-1]],[24,[[24,[24]]]],[24,[120]]],2,12],[[],73],[[[121,[-1]]],[[44,[43]]],10],[[[121,[-1]],-2],[[44,[43]]],10,122],[[[121,[-1]]],[[24,[120]]],10],[-1,73,122],[[[121,[-1]]],[[24,[[2,[[44,[43]],123]]]]],10],[[54,-2,[44,[73]]],2,[[48,[47]]],[[41,[],[[22,[-1]]]]]],[[[121,[-1]],-2,-4],2,10,[[48,[[44,[73]]]]],[[48,[47]]],[[26,[],[[22,[-3]]]]]],[[[121,[-1]],52,-3],2,10,[[48,[47]]],[[26,[],[[22,[-2]]]]]],[[54,-2,[44,[43]],3,-5],[[6,[2,46]]],[[48,[47]]],[[41,[],[[22,[-1]]]]],10,[[48,[[39,[-3]]]]],[[41,[],[[22,[[38,[-4]]]]]]]],[[54,-2,[44,[56]],3,-5],[[6,[2,46]]],[[48,[47]]],[[41,[],[[22,[-1]]]]],10,[[48,[[39,[-3]]]]],[[41,[],[[22,[[38,[-4]]]]]]]],[[[121,[-1]]],3,10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[121,[-1]]],[[24,[120]]],10],[[[121,[-1]],-2],72,10,122],[[[39,[-1]]],[[39,[-1]]],34],[[[44,[-1]]],[[44,[-1]]],[34,124]],[43,43],[56,56],[50,50],[73,73],[86,86],[125,125],[126,126],[127,127],[52,52],[72,72],[[[118,[-1]]],[[118,[-1]]],34],[116,116],[[[128,[-1]]],[[128,[-1]]],[34,10]],[[[121,[-1]]],[[121,[-1]]],[34,10]],[[[129,[-1]]],[[129,[-1]]],[34,12]],[[[130,[-1]]],[[130,[-1]]],[34,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[44,[-1]],[44,[-1]]],84,124],[[73,73],84],[[52,52],84],[125,3],[126,3],[127,3],[[[44,[-1]]],-1,124],[[[121,[-1]]],86,10],[[[118,[-1]]],3,10],[[[121,[-1]],[24,[[24,[29]]]]],[[2,[[121,[-1]],[24,[[24,[-1]]]]]]],10],[[[121,[-1]]],-2,10,[]],[[[121,[-1]],-2],-3,10,[],[]],[[[121,[-1]],-2],-3,10,[],[]],[[[121,[-1]]],[[24,[[44,[56]]]]],10],[[[128,[-1]],3],25,10],[[54,[44,[73]],3,[44,[73]],3],[[6,[2,46]]]],[[[121,[-1]],-2,-5],2,10,[[36,[25]]],[[48,[[131,[-1]]]]],[[31,[],[[30,[-3]]]]],[[41,[[132,[-1]]],[[22,[-4]]]]]],[[130,[8,[-1]],[8,[[8,[8]]]],-2,-4],[[6,[2,46]]],78,37,133,[[134,[-3]]]],[[[129,[-1]]],121,12],[[[39,[-1]]],[[39,[-1]]],10],[[[44,[-1]]],[[118,[-2]]],124,10],[[],43],[[],[[121,[-1]]],10],[[],[[119,[-1]]],[135,12]],[[[118,[-1]]],3,10],[[[121,[-1]]],3,10],[[[39,[-1]]],[[75,[-1]]],10],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[121,[-1]],[24,[[24,[29]]]]],[[2,[[121,[-1]],[24,[[24,[-1]]]]]]],10],[[[39,[-1]]],[[39,[-1]]],10],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[86,[42,[-1]],3],[[6,[2,46]]],10],[[[121,[-1]],[44,[56]]],2,10],[[[121,[-1]],-2],2,10,[[48,[[44,[73]]]]]],[[54,-2,86,3],[[6,[2,46]]],[[48,[47]]],[[41,[],[[22,[-1]]]]]],[[54,-2],2,[[48,[47]]],[[41,[],[[22,[-1]]]]]],[[[39,[-1]],[39,[-1]]],29,10],[[[44,[-1]],[44,[-1]]],29,[96,124]],[[43,43],29],[[56,56],29],[[50,50],29],[[73,73],29],[[86,86],29],[[125,125],29],[[126,126],29],[[127,127],29],[[52,52],29],[[72,72],29],[[[118,[-1]],[118,[-1]]],29,96],[[[39,[-1]]],-1,10],[[[118,[-1]],-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-2,10,[],[[26,[-1],[[22,[-2]]]]],[[26,[86],[[22,[-2]]]]],[[26,[125],[[22,[-2]]]]],[[26,[126],[[22,[-2]]]]],[[26,[127],[[22,[-2]]]]],[[26,[72],[[22,[-2]]]]],[[26,[-2],[[22,[-2]]]]],[[26,[-2,-2],[[22,[-2]]]]],[[26,[-2,-2],[[22,[-2]]]]],[[26,[-2,-1],[[22,[-2]]]]]],[[[118,[-1]],-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-2],-2,10,96,[[26,[-1],[[22,[-2]]]]],[[26,[86],[[22,[-2]]]]],[[26,[125],[[22,[-2]]]]],[[26,[126],[[22,[-2]]]]],[[26,[127],[[22,[-2]]]]],[[26,[72],[[22,[-2]]]]],[[26,[-2],[[22,[-2]]]]],[[26,[-2,-2],[[22,[-2]]]]],[[26,[-2,-2],[[22,[-2]]]]],[[26,[-2,-1],[[22,[-2]]]]]],[54,2],[86,[[118,[-1]]],10],[72,[[118,[-1]]],10],[[54,[44,[56]],3,[38,[[39,[-1]]]]],[[6,[2,46]]],10],[[[119,[-1]],[136,[-1]],[129,[-1]]],29,12],[[[121,[-1]]],[[44,[56]]],10],[[[129,[-1]]],[[24,[-1]]],12],[[[121,[-1]]],[[24,[[2,[[44,[56]],123]]]]],10],[[[137,[-1]],4],5,10],[[[39,[-1]],4],5,66],[[[44,[-1]],4],5,[66,124]],[[138,4],5],[[139,4],5],[[140,4],5],[[43,4],5],[[56,4],5],[[50,4],5],[[73,4],5],[[86,4],5],[[125,4],5],[[126,4],5],[[127,4],5],[[52,4],5],[[72,4],5],[[[118,[-1]],4],5,66],[[116,4],5],[[[131,[-1]],4],5,[66,10]],[[[141,[-1,-2,-3]],4],5,[66,10],[66,[48,[[131,[-1]]]]],[66,[31,[],[[30,[-2]]]]]],[[[128,[-1]],4],5,[66,10]],[[[121,[-1]],4],5,[66,10]],[[[132,[-1]],4],5,[66,10]],[[46,4],5],[[46,4],5],[[142,4],5],[[142,4],5],[[[119,[-1]],4],5,[66,12]],[[[129,[-1]],4],5,[66,12]],[[[143,[-1]],4],5,[66,12]],[[[130,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[-1,[[39,[-1]]],10],[[[39,[-1]]],[[39,[-1]]],10],[[[2,[-1,-1]]],[[39,[-1]]],10],[-1,[[39,[-1]]],10],[[[44,[50]]],[[44,[73]]]],[-1,-1,[]],[[[44,[56]]],[[44,[73]]]],[[[44,[43]]],[[44,[73]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[50,73],[43,73],[56,73],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[-1,123]]],116,[[48,[[44,[73]]]]]],[-1,-1,[]],[-1,-1,[]],[[[2,[-1,[118,[-2]]]]],[[131,[-2]]],[[36,[25]]],10],[[[118,[-1]]],[[131,[-1]]],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[144,46],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[8,[120]],1],[[145,[[129,[-1]]]]],0],[[[8,[120]],1],[[145,[[130,[-1]]]]],0],[[[121,[-1]]],[[24,[[128,[-1]]]]],10],[[[121,[-1]]],[[117,[110,47]]],10],[[54,72],[[38,[-1]]],10],[[[129,[-1]]],146,12],[[[130,[-1]]],[[129,[-1]]],12],[[[44,[-1]],-2],2,[147,124],87],[[43,-1],2,87],[[56,-1],2,87],[[50,-1],2,87],[[73,-1],2,87],[[86,-1],2,87],[[52,-1],2,87],[[72,-1],2,87],[[[129,[-1]],-3],[[145,[2]]],12,[[133,[-1]]],[[148,[-1,-2]]]],[[[118,[-1]]],47,10],[[[44,[-1]]],3,124],[86,3],[72,3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[52,[[44,[56]]]],[[[121,[-1]]],[[44,[50]]],10],[[[121,[-1]]],[[24,[[2,[[44,[50]],123]]]]],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[141,[-1,-2,-3]]],-4,10,[[48,[[131,[-1]]]]],[[31,[],[[30,[-2]]]]],[]],[[[39,[-1]]],[[39,[-1]]],10],[86,29],[[[39,[-1]]],29,10],[[-2,[129,[-1]],-3],[[6,[[130,[-1]],46]]],12,[[149,[-1]]],78],[[-2,-3],[[6,[[129,[-1]],46]]],12,[[149,[-1]]],78],[[-2,-3,29],[[6,[[129,[-1]],46]]],12,[[149,[-1]]],78],[[[121,[-1]],-2,-3],3,10,[[36,[25]]],[[41,[[132,[-1]]],[[22,[[24,[[2,[[118,[-1]],52]]]]]]]]]],[[[121,[-1]],-2,-3],3,10,[[36,[25]]],[[41,[[132,[-1]]],[[22,[[24,[[2,[[118,[-1]],[118,[-1]]]]]]]]]]]],[[[121,[-1]]],52,10],[[[121,[-1]]],[[24,[[0,[-1]]]]],10],[[[121,[-1]]],3,10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[118,[-1]],-1],[[118,[-1]]],10],[[[118,[-1]],[118,[-1]]],[[118,[-1]]],10],[[[39,[-1]],[39,[-1]]],2,10],[[[39,[-1]],[39,[-1]]],2,10],[[[128,[-1]]],25,10],[[[39,[-1]]],-2,10,[]],[[[39,[-1]]],-2,10,[]],[[[118,[-1]]],-2,10,[]],[-1,43,122],[[],[[119,[-1]]],12],[[[44,[-1]]],[[118,[-2]]],124,10],[[[121,[-1]]],3,10],[[[121,[-1]]],3,10],[[[121,[-1]]],3,10],[[[121,[-1]]],3,10],[[[121,[-1]]],3,10],[[[39,[-1]]],-1,10],[[[78,[],[[63,[-1]],[150,[-2]],[151,[-3]]]]],-3,34,99,135],[[[78,[],[[63,[-1]],[150,[-2]],[151,[-3]]]]],-3,34,99,135],[[[44,[-1]],[44,[-1]]],[[75,[84]]],124],[[73,73],[[75,[84]]]],[[52,52],[[75,[84]]]],0,[[[121,[-1]]],152,10],[[[129,[-1]]],[[153,[-1]]],12],[43,120],[126,120],[72,120],[[[121,[-1]]],[[137,[-1]]],10],[[[129,[-1]]],[[143,[-1]]],12],[[[128,[-1]]],[[8,[[118,[-1]]]]],10],[[54,[75,[47]]],2],[[[44,[-1]]],[[118,[-2]]],124,10],[-2,[[118,[-1]]],10,[[91,[],[[30,[[118,[-1]]]]]]]],[[54,-2],2,[[48,[47]]],[[41,[],[[22,[-1]]]]]],[[[132,[-1]],[44,[43]],123],[[118,[-1]]],10],[[[132,[-1]],-2,123],[[118,[-1]]],10,[[48,[[44,[73]]]]]],[[124,3,123],[[118,[-1]]],10],[[[44,[-1]],123],[[118,[-2]]],124,10],[[43,3,123],[[118,[-1]]],10],[[56,3,123],[[118,[-1]]],10],[[50,3,123],[[118,[-1]]],10],[[73,3,123],[[118,[-1]]],10],[[[118,[-1]],[132,[-1]]],2,10],[[[132,[-1]],72],[[118,[-1]]],10],[[[132,[-1]],[44,[56]],123],[[118,[-1]]],10],[[54,[44,[50]],3],[[6,[[38,[-1]],46]]],10],[[[132,[-1]],[44,[50]],123],[[118,[-1]]],10],[[[132,[-1]],86],[[118,[-1]]],10],[[-1,1],[[145,[[129,[-2]]]]],154,0],[[-1,1],[[145,[[130,[-2]]]]],154,0],[[[44,[-1]],115],[[118,[-2]]],124,10],[125,123],[126,123],[127,123],[[[121,[-1]]],86,10],[[[121,[-1]],3],2,10],[[[121,[-1]],-2,-3],3,10,[[36,[25]]],[[41,[[132,[-1]]],[[22,[[24,[[2,[[118,[-1]],[118,[-1]]]]]]]]]]]],[[[121,[-1]]],[[24,[[0,[-1]]]]],10],[46,[[75,[155]]]],[[[39,[-1]]],[[39,[-1]]],10],[[[118,[-1]]],[[118,[-1]]],10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],-1],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[39,[-1]],[39,[-1]]],[[39,[-1]]],10],[[[118,[-1]],[118,[-1]]],[[118,[-1]]],10],[[[39,[-1]],[39,[-1]]],2,10],[[[39,[-1]],[39,[-1]]],2,10],[-2,[[118,[-1]]],10,[[91,[],[[30,[[118,[-1]]]]]]]],[[-2,-3,[24,[[44,[56]]]]],[[6,[2,46]]],10,[[54,[-1]],77],[[78,[-1]]]],[[[78,[],[[63,[-1]],[150,[-2]],[151,[-3]]]],-1,-5],[[6,[2,46]]],34,99,135,10,[[58,[-4]]]],[[[129,[-1]],1],[[24,[120]]],0],[[[130,[-1]],1],[[24,[120]]],0],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,47,[]],[-1,47,[]],[[[129,[-1]]],[],12],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[[[44,[73]]],[[6,[[44,[43]],-1]]],[]],[-1,[[6,[-2]]],[],[]],[[[44,[73]]],[[6,[[44,[50]],-1]]],[]],[[[44,[73]]],[[6,[[44,[56]],-1]]],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[121,[-1]]],[[44,[43]]],10],[[[121,[-1]],-2],[[44,[43]]],10,122],[[129,-3,[8,[[8,[8]]]],-5],[[6,[46]]],156,[[157,[-1]]],[[158,[-1,-2]]],133,[[159,[-4]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[118,[-1]],-3],[[141,[-1,-2,-3]]],10,[[48,[[131,[-1]]]]],[[31,[],[[30,[-2]]]]]],[[[78,[],[[63,[-1]],[150,[-2]],[151,[-3]]]]],[[78,[],[[63,[-1]],[150,[-2]],[151,[-3]]]]],34,99,135],[[[129,[-1]],-2,1],[[145,[2]]],0,160],[[[130,[-1]],-2,1],[[145,[2]]],0,160],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[100,100],[152,152],[[[153,[-1]]],[[153,[-1]]],[34,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[100,[[8,[[44,[73]]]]]],[[[153,[-1]]],[[24,[-1]]],12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[100,100],29],[[100,4],5],[[152,4],5],[[[153,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[152,[[24,[[44,[73]]]]]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,[[0,[[91,[],[[30,[[0,[[161,[],[[30,[[2,[3,3]]]]]]]]]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[162,[-1,-2]],[162,[-1,-2]]],[[162,[-1,-2]]],10,163],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1]]],[[146,[-1]]],[34,10]],[[[164,[-1]]],[[164,[-1]]],[34,12]],[[[165,[-1,-2]]],[[165,[-1,-2]]],[34,12],[34,[166,[-1]]]],[167,167],[168,168],[169,169],[[[162,[-1,-2]]],[[162,[-1,-2]]],34,34],[123,123],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[146,[-1]],[24,[-1]]],[[162,[-1,167]]],18],[[[146,[-1]],[162,[-1,167]]],[[162,[-1,169]]],18],0,[[[146,[-1]],-1],[[162,[-1,169]]],18],[[[146,[-1]],-1],[[162,[-1,168]]],18],[[],123],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[162,[-1,-2]]],[[8,[-1]]],[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[162,[-1,-2]]],[[8,[-1]]],[],[]],[3,-1,[]],[[[146,[-1]],[162,[-1,169]]],[[162,[-1,169]]],18],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[146,[-1]]],[[162,[-1,167]]],18],[[[146,[-1]]],[[162,[-1,169]]],18],[[[146,[-1]]],[[162,[-1,168]]],18],[[123,123],29],[[[146,[-1]]],9,18],[[[146,[-1]]],3,18],[[[146,[-1]],[162,[-1,169]]],[[24,[-1]]],18],[[[158,[],[[22,[-1]]]]],29,[]],[[[146,[-1]],4],5,[66,10]],[[[170,[-1]],4],5,[66,10]],[[[164,[-1]],4],5,[66,12]],[[[165,[-1,-2]],4],5,[66,12],[66,[166,[-1]]]],[[171,4],5],[[167,4],5],[[168,4],5],[[169,4],5],[[[162,[-1,-2]],4],5,66,66],[[123,4],5],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[146,[-1]]],-1,18],[[[146,[-1]]],-1,18],[[[146,[-1]]],-1,18],[[[146,[-1]]],3,18],[[[162,[-1,-2]],172],[[8,[-1]]],[],[]],[[[162,[-1,-2]],3],-1,[],[]],[[[162,[-1,-2]],[173,[3]]],[[8,[-1]]],[],[]],[[[162,[-1,-2]],3],-1,[],[]],[[[162,[-1,-2]],[173,[3]]],[[8,[-1]]],[],[]],[[[162,[-1,-2]],172],[[8,[-1]]],[],[]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[162,[-1,-2]]],[[0,[[91,[],[[30,[-1]]]]]]],[],[]],[[[162,[-1,-2]]],[[0,[[91,[],[[30,[-1]]]]]]],[],[]],[[[146,[-1]]],9,18],0,[[[146,[-1]],-1,-1,-2],[[24,[-1]]],18,[[31,[],[[30,[115]]]],34]],[[[146,[-1]],[24,[-1]]],[[162,[-1,168]]],18],[[[146,[-1]],[162,[-1,168]]],[[162,[-1,167]]],18],[[[162,[-1,-2]],-1],[[162,[-1,-2]]],10,163],[[],[[158,[],[[22,[-1]]]]],[]],[[9,9],[[146,[-1]]],18],[[[162,[167]],174],[[164,[-1]]],12],[[[0,[-1,-2]]],[[165,[-1,-2]]],12,[[166,[-1]]]],[-1,[[165,[-1,-2]]],12,[[166,[-1]]]],[-2,[[165,[-1,-2]]],12,[[166,[-1]]]],[[],123],[[[162,[-1,-2]]],3,[],[]],[[[146,[-1]]],[[170,[-1]]],18],[[],123],[[[158,[],[[22,[-1]]]],-2],[[6,[-1,46]]],[],[[41,[],[[22,[[6,[46]]]]]]]],[[[162,[-1,168]],123],[[162,[-1,168]]],10],[[[146,[-1]],[162,[-1,169]],123],[[162,[-1,169]]],18],[[[146,[-1]],-1,123],-1,18],[[[162,[-1,-2]],-1],[[162,[-1,-2]]],10,163],[[[162,[-1,-2]],[162,[-1,-2]]],[[162,[-1,-2]]],10,163],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[174,[-1]],[174,[-1]]],[[174,[-1]]],10],[[[174,[-1]],[174,[-1]]],2,10],[[[174,[-1]],-1],2,10],[[166,166],2],[166,2],[166,24],[-1,-2,[],[]],[-1,-2,[],[]],[166,29],[[[174,[-1]]],[[174,[-1]]],34],[[-1,-2],2,[],[]],[[[176,[],[[175,[-1]]]],[162,[167]],174],[],[[177,[-2]]],12],[[[149,[],[[178,[-1]]]],[162,[168]],174],[],[[166,[-2]]],12],[[179,-1,-3,-4],[[145,[2]]],37,133,[[134,[-2]]],[[31,[],[[30,[164]]]],34]],[[],[[174,[-1]]],10],[3,-1,[]],[3,-1,[]],[[[149,[],[[178,[-1]]]],9],2,[[166,[-2]]],12],[3,2],[[[149,[],[[178,[-1]]]]],-1,[[166,[-2]]],12],[[[174,[-1]],[174,[-1]]],29,96],[166],[[[174,[-1]],4],5,66],[-1,-1,[]],[[[176,[],[[175,[-1]]]]],[[8,[-2]]],[[177,[-2]]],12],[[],3],[-1,-2,[],[]],[[[149,[],[[178,[-1]]]]],9,[[166,[-2]]],12],[[[174,[-1]],[174,[-1]]],[[174,[-1]]],10],[[[174,[-1]],-1],2,10],[[[174,[-1]],[174,[-1]]],2,10],[[[149,[],[[178,[-1]]]]],35,[[166,[-2]]],12],[9,[[176,[],[[175,[-1]]]]],[[177,[-2]]],12],[[],179],[[],[[157,[],[[180,[-1]],[181,[-3]]]]],[[182,[-2],[[181,[-3]]]]],156,[]],[-1,[[174,[-2]]],37,10],[9,-1,[]],[-1,[[145,[[149,[],[[178,[-2]]]]]]],154,[[166,[-3]]],12],[-1,[[145,[-2]]],154,[]],[166,24],[166,2],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[[[176,[],[[175,[-1]]]]],-1,[[177,[-2]]],12],[[[157,[],[[180,[-1]],[181,[-3]]]],-5,-6,-3],[[6,[-1,171]]],[[182,[-2],[[181,[-3]]]]],156,[],133,[[159,[-4]]],[[31,[],[[30,[165]]]],34]],[-1,-2,[],[]],[[[149,[],[[178,[-1]]]],-3],[[145,[2]]],[[166,[-2]]],12,160],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]]],[[183,[-1]]],[34,12]],[[-1,-2],2,[],[]],[[[183,[-1]],[162,[167]],174],[],12],[[[183,[-1]],[162,[168]],174],[],12],[[[183,[-1]],-2,-4,[162,[167]],174],[[145,[2]]],12,37,[[133,[-1]]],[[134,[-1,-3]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[183,[-1]],9],2,12],[3,2],[3,2],[[[183,[-1]]],[[184,[-1]]],12],[[[183,[-1]],4],5,[66,12]],[[[185,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[[[183,[-1]]],[[8,[-1]]],12],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]]],9,12],[[[183,[-1]]],35,12],[9,[[183,[-1]]],12],[9,-1,[]],[-1,[[145,[[183,[-2]]]]],154,12],[-1,[[145,[-2]]],154,[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[183,[-1]]],-2,12,[]],[[[183,[-1]],[184,[-1]],-3],[[6,[[186,[-1]],171]]],12,[[133,[-1]]],[[159,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]],-2],[[145,[2]]],12,160],0,[[[184,[-1]]],2,12],[[[184,[-1]],[184,[-1]]],2,12],[[[184,[-1]],[184,[-1]]],2,12],[[[184,[-1]],8],2,12],[[[184,[-1]]],2,12],[[[184,[-1]]],2,12],[[[184,[-1]]],2,12],[[[184,[-1]]],24,12],[-1,-2,[],[]],[-1,-2,[],[]],[[[184,[-1]]],29,12],[[[184,[-1]]],[[184,[-1]]],[34,12]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[[184,[-1]]],[],12],[[[184,[-1]],4],5,[66,12]],[-1,-1,[]],[[],3],[-1,-2,[],[]],[[[136,[-1]]],[[184,[-1]]],12],[[[184,[-1]]],24,12],[[[184,[-1]]],2,12],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[187,[-1]],-2,-4,-5],[[145,[2]]],12,37,[[133,[-1]]],[[134,[-1,-3]]],[[31,[],[[30,[[164,[-1]]]]]],34]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[187,[-1]],4],5,[66,12]],[[[188,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]]],[[187,[-1]]],12],[[[136,[-1]]],[[188,[-1]]],12],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[188,[-1]],-3,-4,[184,[-1]]],[[6,[-5,171]]],12,[[133,[-1]]],[[159,[-1,-2]]],[[31,[],[[30,[[165,[-1,[184,[-1]]]]]]]],34],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[186,[-1]]],[[186,[-1]]],[34,12]],[[[189,[-1]]],[[189,[-1]]],[34,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[186,[-1]]],-1,12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[190,[-1]]],29,12],[[[191,[-1]]],29,12],[[[186,[-1]],4],5,[66,12]],[[[189,[-1]],4],5,[66,12]],[[[190,[-1]],4],5,[66,12]],[[[191,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]]],[[190,[-1]]],12],[[[183,[-1]]],[[191,[-1]]],12],[[[190,[-1]],-2],[[6,[-3,46]]],12,[[41,[[184,[-1]]],[[22,[[6,[[186,[-1]],46]]]]]]],[]],[[[191,[-1]],-2],[[6,[-3,46]]],12,[[41,[[184,[-1]]],[[22,[[6,[[186,[-1]],46]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],0,[[[186,[-1]]],[[184,[-1]]],12],[[[186,[-1]],-1],[[2,[[184,[-1]],[189,[-1]]]]],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[192,[-1]]],[34,193]],[[-1,-2],2,[],[]],[[[192,[-1]],[162,[167]],174],[],[193,66]],[[[192,[-1]],[162,[168]],174],[],[193,66]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[192,[-1]],9],2,[193,66]],[3,2],[3,2],[[[192,[-1]]],[[194,[-1]]],[193,66]],[[[192,[-1]],4],5,[66,193]],[[[195,[-1]],4],5,[66,193]],[-1,-1,[]],[-1,-1,[]],[[[192,[-1]],9,24,[75,[24]]],[[192,[-1]]],[193,66]],[[[192,[-1]]],[],[193,66]],[[[192,[-1]]],8,[193,66]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],9,[193,66]],[[[192,[-1]]],35,[193,66]],[9,[[192,[-1]]],[193,66]],[9,-1,[]],[-1,[[145,[[192,[-2]]]]],154,[193,66]],[[-1,1],[[145,[[192,[-2]]]]],154,[193,66]],[-1,[[145,[-2]]],154,[]],[[[192,[-1]]],[],[193,66]],[[9,-1],[[192,[-2]]],37,[193,66]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[192,[-1]]],-2,[193,66],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]],-2],[[145,[2]]],[193,66],160],[[[192,[-1]],-2,1],[[145,[2]]],[193,66],160],0,0,[[[194,[-1]],[194,[-1]]],2,[193,66]],[[[196,[-1]],[196,[-1]]],2,[197,66]],[[[194,[-1]]],2,[193,66]],[[[194,[-1]]],24,[193,66]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[194,[-1]]],29,[193,66]],[[[196,[-1]]],29,[197,66]],[[[194,[-1]]],[[194,[-1]]],[34,193]],[[[196,[-1]]],[[196,[-1]]],[34,193]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[194,[-1]]],2,193],[[],[[194,[-1]]],[135,193]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[194,[-1]]],[],[193,66]],[[[194,[-1]],4],5,[66,193]],[[[196,[-1]],4],5,[66,193]],[-1,-1,[]],[[[192,[-1]]],[[196,[-1]]],[197,66]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[194,[-1]]],193],[[[192,[-1]]],[[196,[-1]]],[197,66]],[[[194,[-1]]],24,[193,66]],[[[194,[-1]]],2,[193,66]],[[[196,[-1]]],2,[197,66]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[198,[-1]],-2,-4,-5],[[145,[2]]],[193,66],37,133,[[134,[-3]]],[[31,[],[[30,[164]]]],34]],[[[199,[-1]],-2,-4,-5],[[145,[2]]],[193,66],37,133,[[134,[-3]]],[[31,[],[[30,[164]]]],34]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[198,[-1]],4],5,[66,193]],[[[200,[-1]],4],5,[66,193]],[[[199,[-1]],4],5,[66,193]],[[[201,[-1]],4],5,[66,193]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[198,[-1]]],[193,66]],[[[192,[-1]]],[[200,[-1]]],[197,66]],[[[192,[-1]]],[[199,[-1]]],193],[[[192,[-1]]],[[199,[-1]]],[193,66]],[[[192,[-1]]],[[201,[-1]]],[197,66]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[200,[-1]],-3,-4,[196,[-1]]],[[6,[-5,171]]],[197,66],133,[[159,[-2]]],[[31,[],[[30,[[165,[[194,[-1]]]]]]]],34],[]],[[[201,[-1]],-3,-4,[196,[-1]]],[[6,[-5,171]]],[197,66],133,[[159,[-2]]],[[31,[],[[30,[[165,[[194,[-1]]]]]]]],34],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[202,[-1]]],[[202,[-1]]],[34,197,66]],[[[203,[-1]]],[[203,[-1]]],[34,193]],[[[204,[-1]]],[[204,[-1]]],[34,193]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[203,[-1]]],29,[197,66]],[[[204,[-1]]],29,[197,66]],[[[202,[-1]],4],5,[66,197,66]],[[[203,[-1]],4],5,[66,193]],[[[204,[-1]],4],5,[66,193]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[203,[-1]]],[197,66]],[[[192,[-1]]],[[203,[-1]]],[197,66]],[[[192,[-1]]],[[204,[-1]]],[197,66]],[[[192,[-1]]],[[204,[-1]]],[197,66]],[[[203,[-1]],-2],[[6,[-3,46]]],[197,66],[[41,[],[[22,[[6,[46]]]]]]],[]],[[[204,[-1]],-2],[[6,[-3,46]]],[197,66],[[41,[],[[22,[[6,[46]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[196,[-1]]],[[203,[-1]]],[197,66]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[133,[],[[205,[-1]]]]],[[206,[-2,-3]]],[],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[207,[-1,-2,-3]]],[[207,[-1,-2,-3]]],[34,154],[34,12],[34,[133,[-2]]]],[[[208,[-1,-2,-3]]],[[208,[-1,-2,-3]]],[34,154],[34,12],[34,[133,[-2]]]],[[[209,[-1,-2,-3]]],[[209,[-1,-2,-3]]],[34,160],[34,12],[34,[133,[-2]]]],[[[210,[-1,-2,-3]]],[[210,[-1,-2,-3]]],[34,160],[34,12],[34,[133,[-2]]]],[[[206,[-1,-2]]],[[206,[-1,-2]]],[34,12],34],[[[211,[-1]]],[[211,[-1]]],[34,12]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[148,-1],[[145,[2]]],12],[[[207,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],154,12],[[[208,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],154,12],[[[209,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],160,12],[[[210,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],160,12],[148,[[145,[2]]]],[[[207,[-1,-2,[211,[-2]]]]],[[145,[2]]],154,12],[[[208,[-1,-2,[211,[-2]]]]],[[145,[2]]],154,12],[[[209,[-1,-2,[211,[-2]]]]],[[145,[2]]],160,12],[[[210,[-1,-2,[211,[-2]]]]],[[145,[2]]],160,12],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[206,[-1,-2]]],-3,12,[],[]],[3,-1,[]],[[[211,[-1]]],-2,12,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[212,-1,160],[[[209,[-1,-2,[211,[-2]]]]],-1,160,12],[[[210,[-1,-2,[211,[-2]]]]],-1,160,12],[[[207,[-1,-2,-3]],4],5,[66,154],[66,12],[66,[133,[-2]]]],[[[208,[-1,-2,-3]],4],5,[66,154],[66,12],[66,[133,[-2]]]],[[[209,[-1,-2,-3]],4],5,[66,160],[66,12],[66,[133,[-2]]]],[[[210,[-1,-2,-3]],4],5,[66,160],[66,12],[66,[133,[-2]]]],[[[206,[-1,-2]],4],5,[66,12],66],[[[211,[-1]],4],5,[66,12]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[133,[],[[205,[-1]]]]],[],[]],[[[211,[-1]]],[],12],[-1,213,154],[-1,212,160],[[],3],[-1,[[207,[-1,-2,[211,[-2]]]]],154,12],[-1,[[208,[-1,-2,[211,[-2]]]]],154,12],[[],3],[[],3],[-1,[[209,[-1,-2,[211,[-2]]]]],160,12],[-1,[[210,[-1,-2,[211,[-2]]]]],160,12],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[133,[],[[205,[-1]]]]],[]],[[[79,[120]]],[[211,[-1]]],12],[159,[[145,[-1]]],12],[[[207,[-1,-2,[211,[-2]]]]],[[145,[-2]]],154,12],[[[208,[-1,-2,[211,[-2]]]]],[[145,[-2]]],154,12],[159,145],[[[207,[-1,-2,[211,[-2]]]]],145,154,12],[[[208,[-1,-2,[211,[-2]]]]],145,154,12],[148,-2,12,[[133,[-1]]]],[[[207,[-1,-2,[211,[-2]]]]],[[211,[-2]]],154,12],[[[208,[-1,-2,[211,[-2]]]]],[[211,[-2]]],154,12],[[[209,[-1,-2,[211,[-2]]]]],[[211,[-2]]],160,12],[[[210,[-1,-2,[211,[-2]]]]],[[211,[-2]]],160,12],[148,[[206,[-1,-2]]],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[2,[115,115]]],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[134,-1],[[145,[2]]],12],[[[209,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],160,12],[[[210,[-1,-2,[211,[-2]]]],-2],[[145,[2]]],160,12],[134,[[145,[2]]]],[[[209,[-1,-2,[211,[-2]]]]],[[145,[2]]],160,12],[[[210,[-1,-2,[211,[-2]]]]],[[145,[2]]],160,12]],"c":[],"p":[[6,"SerdeFormat",0],[1,"tuple"],[1,"usize"],[5,"Formatter",2436],[8,"Result",2436],[6,"Result",2437],[5,"TypeId",2438],[1,"slice"],[1,"u32"],[10,"Field",27],[10,"FftGroup",27],[10,"CurveAffine",27],[17,"ScalarExt"],[17,"Base"],[17,"CurveExt"],[5,"Coordinates",2439],[5,"CtOption",2440],[10,"WithSmallOrderMulGroup",2441],[10,"Ord",2442],[17,"AffineExt"],[10,"CurveExt",27],[17,"Output"],[10,"Mul",2443],[5,"Vec",2444],[1,"str"],[10,"Fn",2445],[5,"Box",2446],[5,"Choice",2440],[1,"bool"],[17,"Item"],[10,"IntoIterator",2447],[10,"Send",2448],[10,"Sync",2448],[10,"Clone",2449],[1,"u64"],[10,"AsRef",2450],[10,"RngCore",2451],[5,"Value",74],[6,"Assigned",793],[10,"Add",2443],[10,"FnOnce",2445],[5,"Region",74],[5,"Advice",793],[5,"Column",793],[5,"AssignedCell",74],[6,"Error",793],[5,"String",2452],[10,"Into",2450],[10,"FnMut",2445],[5,"Instance",793],[10,"TableLayouter",377],[5,"TableColumn",793],[5,"SimpleTableLayouter",74],[10,"Assignment",793],[5,"Table",74],[5,"Fixed",793],[17,"Root"],[10,"Layouter",74],[5,"NamespacedLayouter",74],[5,"Cell",74],[5,"RegionIndex",74],[5,"RegionStart",74],[17,"Config"],[17,"Loaded"],[10,"Chip",74],[10,"Debug",2436],[10,"Copy",2448],[10,"Borrow",2453],[5,"SimpleFloorPlanner",74],[10,"RegionLayouter",377],[10,"FromIterator",2447],[5,"Challenge",793],[6,"Any",793],[10,"Neg",2443],[6,"Option",2454],[10,"Sub",2443],[10,"SyncDeps",377],[10,"Circuit",793],[1,"array"],[5,"V1Pass",341],[5,"V1",341],[5,"RegionShape",377],[6,"RegionColumn",377],[6,"Ordering",2442],[5,"HashSet",2455],[5,"Selector",793],[10,"Hasher",2456],[5,"MockProver",445],[6,"CellValue",445],[10,"FromUniformBytes",2441],[10,"Iterator",2457],[6,"FailureLocation",445],[5,"CircuitGates",445],[5,"CircuitLayout",445],[6,"VerifyFailure",445],[10,"PartialEq",2442],[5,"Error",2436],[5,"TracingFloorPlanner",445],[10,"FloorPlanner",793],[5,"Assembly",1519],[5,"Shift",2458],[5,"DrawingArea",2459],[6,"DrawingAreaErrorKind",2459],[10,"DrawingBackend",2460],[5,"Range",2461],[5,"CircuitCost",633],[10,"PrimeGroup",2462],[5,"MarginalProofSize",633],[5,"ProofSize",633],[5,"Column",678],[5,"Gate",678],[5,"Constraint",678],[5,"Region",678],[5,"VirtualCell",678],[1,"i32"],[5,"VirtualCell",793],[5,"HashMap",2463],[6,"Expression",793],[5,"BatchVerifier",793],[1,"u8"],[5,"ConstraintSystem",793],[10,"Phase",793],[5,"Rotation",1576],[10,"ColumnType",793],[5,"FixedQuery",793],[5,"AdviceQuery",793],[5,"InstanceQuery",793],[5,"Gate",793],[5,"VerifyingKey",793],[5,"ProvingKey",793],[5,"Constraint",793],[5,"VirtualCells",793],[10,"EncodedChallenge",2282],[10,"TranscriptWrite",2282],[10,"Default",2464],[8,"ParamsVerifierIPA",1871],[5,"PinnedConstraintSystem",793],[5,"FirstPhase",793],[5,"SecondPhase",793],[5,"ThirdPhase",793],[5,"Constraints",793],[6,"TableError",793],[5,"PinnedVerificationKey",793],[5,"Error",2465],[8,"Result",2465],[5,"EvaluationDomain",1576],[10,"Hash",2456],[10,"Transcript",2282],[10,"Params",1800],[17,"FloorPlanner"],[17,"Params"],[5,"Argument",1519],[5,"VerifyingKey",1519],[10,"Read",2466],[10,"Error",2467],[10,"CommitmentScheme",1800],[10,"Verifier",1800],[10,"VerificationStrategy",1576],[10,"TranscriptRead",2282],[10,"Write",2466],[10,"IndexedParallelIterator",2468],[5,"Polynomial",1576],[10,"Basis",1576],[5,"ProverQuery",1576],[5,"VerifierQuery",1576],[10,"MSM",1800],[5,"Coeff",1576],[5,"LagrangeCoeff",1576],[5,"ExtendedLagrangeCoeff",1576],[5,"PinnedEvaluationDomain",1576],[6,"Error",1576],[5,"RangeFull",2461],[5,"RangeFrom",2461],[5,"Blind",1800],[17,"ParamsVerifier"],[10,"ParamsProver",1800],[10,"ParamsVerifier",1800],[17,"MSM"],[10,"Prover",1800],[17,"Guard"],[17,"MSMAccumulator"],[10,"Guard",1576],[5,"ParamsIPA",1871],[5,"MSMIPA",1918],[5,"IPACommitmentScheme",1871],[5,"GuardIPA",1980],[5,"ProverIPA",1948],[5,"VerifierIPA",1948],[5,"Accumulator",1980],[5,"AccumulatorStrategy",1980],[5,"SingleStrategy",1980],[5,"ParamsKZG",2057],[10,"Engine",2469],[5,"MSMKZG",2108],[5,"KZGCommitmentScheme",2057],[5,"DualMSM",2108],[10,"MultiMillerLoop",2469],[5,"ProverGWC",2157],[5,"ProverSHPLONK",2157],[5,"VerifierGWC",2157],[5,"VerifierSHPLONK",2157],[5,"GuardKZG",2222],[5,"AccumulatorStrategy",2222],[5,"SingleStrategy",2222],[17,"Input"],[5,"ChallengeScalar",2282],[5,"Blake2bRead",2282],[5,"Keccak256Read",2282],[5,"Blake2bWrite",2282],[5,"Keccak256Write",2282],[5,"Challenge255",2282],[10,"TranscriptWriterBuffer",2282],[10,"TranscriptReadBuffer",2282],[15,"InRegion",608],[15,"OutsideRegion",608],[15,"ConstraintNotSatisfied",611],[15,"CellNotAssigned",611],[15,"InstanceCellNotAssigned",611],[15,"Permutation",611],[15,"ConstraintPoisoned",611],[15,"Lookup",611],[15,"Shuffle",611],[15,"NotEnoughRowsAvailable",1518]],"b":[[90,"impl-Add-for-%26Value%3CV%3E"],[91,"impl-Add%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[92,"impl-Add%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[93,"impl-Add%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[94,"impl-Add%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[95,"impl-Add%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[96,"impl-Add%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[97,"impl-Add%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[98,"impl-Add-for-Value%3CV%3E"],[99,"impl-Add%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[146,"impl-Value%3C%26mut+V%3E"],[147,"impl-Value%3C%26V%3E"],[154,"impl-Value%3C%26V%3E"],[155,"impl-Value%3C%26mut+V%3E"],[256,"impl-Mul%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[257,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[258,"impl-Mul%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[259,"impl-Mul%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[260,"impl-Mul%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[261,"impl-Mul-for-Value%3CV%3E"],[262,"impl-Mul%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[263,"impl-Mul%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[264,"impl-Mul%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[265,"impl-Mul-for-%26Value%3CV%3E"],[277,"impl-Sub%3CF%3E-for-Value%3CAssigned%3CF%3E%3E"],[278,"impl-Sub%3CValue%3C%26V%3E%3E-for-Value%3CV%3E"],[279,"impl-Sub%3CF%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[280,"impl-Sub%3C%26Value%3CV%3E%3E-for-Value%3CV%3E"],[281,"impl-Sub-for-%26Value%3CV%3E"],[282,"impl-Sub%3CValue%3CV%3E%3E-for-Value%3C%26V%3E"],[283,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3CAssigned%3CF%3E%3E"],[284,"impl-Sub%3CValue%3CV%3E%3E-for-%26Value%3CV%3E"],[285,"impl-Sub-for-Value%3CV%3E"],[286,"impl-Sub%3CValue%3CF%3E%3E-for-Value%3C%26Assigned%3CF%3E%3E"],[420,"impl-From%3CSelector%3E-for-RegionColumn"],[421,"impl-From%3CColumn%3CAny%3E%3E-for-RegionColumn"],[525,"impl-Debug-for-FailureLocation"],[526,"impl-Display-for-FailureLocation"],[527,"impl-Debug-for-VerifyFailure"],[528,"impl-Display-for-VerifyFailure"],[529,"impl-Display-for-CircuitGates"],[530,"impl-Debug-for-CircuitGates"],[724,"impl-Debug-for-Column"],[725,"impl-Display-for-Column"],[726,"impl-Debug-for-VirtualCell"],[727,"impl-Display-for-VirtualCell"],[728,"impl-Display-for-Gate"],[729,"impl-Debug-for-Gate"],[730,"impl-Display-for-Constraint"],[731,"impl-Debug-for-Constraint"],[732,"impl-Display-for-Region"],[733,"impl-Debug-for-Region"],[734,"impl-From%3CColumn%3CAny%3E%3E-for-Column"],[735,"impl-From%3C(Any,+usize)%3E-for-Column"],[738,"impl-From%3C(Column,+i32)%3E-for-VirtualCell"],[739,"impl-From%3CVirtualCell%3E-for-VirtualCell"],[740,"impl-From%3C(S,+Column,+i32)%3E-for-VirtualCell"],[745,"impl-From%3C(usize,+%26str)%3E-for-Region"],[746,"impl-From%3C(usize,+String)%3E-for-Region"],[747,"impl-From%3C(usize,+String,+HashMap%3CColumn,+String%3E)%3E-for-Region"],[749,"impl-From%3C(usize,+%26str,+HashMap%3CColumn,+String%3E)%3E-for-Region"],[861,"impl-Add%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[862,"impl-Add%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[863,"impl-Add-for-Assigned%3CF%3E"],[864,"impl-Add%3CF%3E-for-%26Assigned%3CF%3E"],[865,"impl-Add%3CF%3E-for-Assigned%3CF%3E"],[866,"impl-Add%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[868,"impl-AddAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[869,"impl-AddAssign-for-Assigned%3CF%3E"],[1147,"impl-Display-for-Error"],[1148,"impl-Debug-for-Error"],[1149,"impl-Display-for-TableError"],[1150,"impl-Debug-for-TableError"],[1157,"impl-From%3C%26F%3E-for-Assigned%3CF%3E"],[1158,"impl-From%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1159,"impl-From%3C(F,+F)%3E-for-Assigned%3CF%3E"],[1160,"impl-From%3CF%3E-for-Assigned%3CF%3E"],[1161,"impl-From%3CColumn%3CInstance%3E%3E-for-Column%3CAny%3E"],[1163,"impl-From%3CColumn%3CFixed%3E%3E-for-Column%3CAny%3E"],[1164,"impl-From%3CColumn%3CAdvice%3E%3E-for-Column%3CAny%3E"],[1171,"impl-From%3CInstance%3E-for-Any"],[1172,"impl-From%3CAdvice%3E-for-Any"],[1173,"impl-From%3CFixed%3E-for-Any"],[1185,"impl-From%3C(S,+Expression%3CF%3E)%3E-for-Constraint%3CF%3E"],[1186,"impl-From%3CExpression%3CF%3E%3E-for-Constraint%3CF%3E"],[1291,"impl-Mul%3CF%3E-for-%26Assigned%3CF%3E"],[1292,"impl-Mul-for-Assigned%3CF%3E"],[1293,"impl-Mul%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1294,"impl-Mul%3CF%3E-for-Assigned%3CF%3E"],[1295,"impl-Mul%3CF%3E-for-Expression%3CF%3E"],[1296,"impl-Mul-for-Expression%3CF%3E"],[1297,"impl-MulAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1298,"impl-MulAssign-for-Assigned%3CF%3E"],[1300,"impl-Neg-for-Assigned%3CF%3E"],[1301,"impl-Neg-for-%26Assigned%3CF%3E"],[1357,"impl-Sub%3CF%3E-for-Assigned%3CF%3E"],[1358,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1359,"impl-Sub%3CF%3E-for-%26Assigned%3CF%3E"],[1360,"impl-Sub%3CAssigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1361,"impl-Sub%3C%26Assigned%3CF%3E%3E-for-%26Assigned%3CF%3E"],[1362,"impl-Sub-for-Assigned%3CF%3E"],[1364,"impl-SubAssign-for-Assigned%3CF%3E"],[1365,"impl-SubAssign%3C%26Assigned%3CF%3E%3E-for-Assigned%3CF%3E"],[1394,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CAdvice%3E"],[1396,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CInstance%3E"],[1397,"impl-TryFrom%3CColumn%3CAny%3E%3E-for-Column%3CFixed%3E"],[1701,"impl-Index%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[1702,"impl-Index%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[1703,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[1704,"impl-IndexMut%3Cusize%3E-for-Polynomial%3CF,+B%3E"],[1705,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-Polynomial%3CF,+B%3E"],[1706,"impl-IndexMut%3CRangeFull%3E-for-Polynomial%3CF,+B%3E"],[1750,"impl-Sub%3CF%3E-for-%26Polynomial%3CF,+B%3E"],[1751,"impl-Sub%3C%26Polynomial%3CF,+B%3E%3E-for-Polynomial%3CF,+B%3E"],[1819,"impl-AddAssign-for-Blind%3CF%3E"],[1820,"impl-AddAssign%3CF%3E-for-Blind%3CF%3E"],[1847,"impl-MulAssign%3CF%3E-for-Blind%3CF%3E"],[1848,"impl-MulAssign-for-Blind%3CF%3E"],[1920,"impl-MSM%3CC%3E-for-MSMIPA%3C\'a,+C%3E"],[1921,"impl-MSMIPA%3C\'a,+C%3E"],[2201,"impl-ProverSHPLONK%3C\'a,+E%3E"],[2202,"impl-Prover%3C\'params,+KZGCommitmentScheme%3CE%3E%3E-for-ProverSHPLONK%3C\'params,+E%3E"],[2260,"impl-AccumulatorStrategy%3C\'params,+E%3E"],[2261,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-AccumulatorStrategy%3C\'params,+E%3E"],[2262,"impl-SingleStrategy%3C\'params,+E%3E"],[2263,"impl-VerificationStrategy%3C\'params,+KZGCommitmentScheme%3CE%3E,+V%3E-for-SingleStrategy%3C\'params,+E%3E"]]}\
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/settings.html b/settings.html
index e4ed7fc69f..4980823aa5 100644
--- a/settings.html
+++ b/settings.html
@@ -1,4 +1,4 @@
-Settings
+Settings
-