diff --git a/docs/lurk/all.html b/docs/lurk/all.html index bd2b735b3b..4afc60d573 100644 --- a/docs/lurk/all.html +++ b/docs/lurk/all.html @@ -1,2 +1,2 @@ List of all items in this crate -

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

\ No newline at end of file +

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

\ No newline at end of file diff --git a/docs/lurk/circuit/gadgets/pointer/struct.AllocatedContPtr.html b/docs/lurk/circuit/gadgets/pointer/struct.AllocatedContPtr.html index da99ff0e42..fbb9ad4c18 100644 --- a/docs/lurk/circuit/gadgets/pointer/struct.AllocatedContPtr.html +++ b/docs/lurk/circuit/gadgets/pointer/struct.AllocatedContPtr.html @@ -22,7 +22,7 @@ b: &Self ) -> Result<Self, SynthesisError>
where CS: ConstraintSystem<F>,

Takes two allocated numbers (a, b) and returns a if the condition is true, and b otherwise.

-

Trait Implementations§

source§

impl<F: Clone + LurkField> Clone for AllocatedContPtr<F>

source§

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

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

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

Performs copy-assignment from source. Read more
source§

impl<F: LurkField> Debug for AllocatedContPtr<F>

source§

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

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

impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>

source§

fn from(other: AllocatedContPtr<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>

source§

fn from(other: AllocatedPtr<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

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

Trait Implementations§

source§

impl<F: Clone + LurkField> Clone for AllocatedContPtr<F>

source§

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

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

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

Performs copy-assignment from source. Read more
source§

impl<F: LurkField> Debug for AllocatedContPtr<F>

source§

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

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

impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>

source§

fn from(other: AllocatedContPtr<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>

source§

fn from(other: AllocatedPtr<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

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

§

impl<F> Send for AllocatedContPtr<F>

§

impl<F> Sync for AllocatedContPtr<F>

§

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

§

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

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/lurk/circuit/gadgets/pointer/struct.AllocatedPtr.html b/docs/lurk/circuit/gadgets/pointer/struct.AllocatedPtr.html index a3985d8bb9..100e15c063 100644 --- a/docs/lurk/circuit/gadgets/pointer/struct.AllocatedPtr.html +++ b/docs/lurk/circuit/gadgets/pointer/struct.AllocatedPtr.html @@ -69,7 +69,7 @@ a: &ZExprPtr<F>, b: &ZExprPtr<F> ) -> Result<Self, SynthesisError>
where - CS: ConstraintSystem<F>,

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for AllocatedPtr<F>

source§

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

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

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

Performs copy-assignment from source. Read more
source§

impl<F: LurkField> Debug for AllocatedPtr<F>

source§

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

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

impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>

source§

fn from(other: AllocatedContPtr<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>

source§

fn from(other: AllocatedPtr<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for AllocatedPtr<F>
where + CS: ConstraintSystem<F>,

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for AllocatedPtr<F>

source§

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

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

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

Performs copy-assignment from source. Read more
source§

impl<F: LurkField> Debug for AllocatedPtr<F>

source§

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

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

impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>

source§

fn from(other: AllocatedContPtr<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>

source§

fn from(other: AllocatedPtr<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

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

§

impl<F> Send for AllocatedPtr<F>

§

impl<F> Sync for AllocatedPtr<F>

§

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

§

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

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/lurk/coprocessor/gadgets/fn.a_ptr_as_z_ptr.html b/docs/lurk/coprocessor/gadgets/fn.a_ptr_as_z_ptr.html index 5288ce3b4d..9c74a1735e 100644 --- a/docs/lurk/coprocessor/gadgets/fn.a_ptr_as_z_ptr.html +++ b/docs/lurk/coprocessor/gadgets/fn.a_ptr_as_z_ptr.html @@ -1,4 +1,4 @@ a_ptr_as_z_ptr in lurk::coprocessor::gadgets - Rust -
pub fn a_ptr_as_z_ptr<T: Tag, F: LurkField>(
+    
pub fn a_ptr_as_z_ptr<T: Tag, F: LurkField>(
     a: &AllocatedPtr<F>
 ) -> Option<ZPtr<T, F>>
\ No newline at end of file diff --git a/docs/lurk/coprocessor/gadgets/fn.chain_car_cdr.html b/docs/lurk/coprocessor/gadgets/fn.chain_car_cdr.html index b6f277b882..5c5df9cb7a 100644 --- a/docs/lurk/coprocessor/gadgets/fn.chain_car_cdr.html +++ b/docs/lurk/coprocessor/gadgets/fn.chain_car_cdr.html @@ -1,5 +1,5 @@ chain_car_cdr in lurk::coprocessor::gadgets - Rust -
pub fn chain_car_cdr<F: LurkField, CS: ConstraintSystem<F>>(
+    
pub fn chain_car_cdr<F: LurkField, CS: ConstraintSystem<F>>(
     cs: &mut CS,
     g: &GlobalAllocator<F>,
     store: &Store<F>,
diff --git a/docs/lurk/coprocessor/gadgets/index.html b/docs/lurk/coprocessor/gadgets/index.html
index 0bd07ac6a5..d9510216f8 100644
--- a/docs/lurk/coprocessor/gadgets/index.html
+++ b/docs/lurk/coprocessor/gadgets/index.html
@@ -1,5 +1,5 @@
 lurk::coprocessor::gadgets - Rust
-    

Module lurk::coprocessor::gadgets

source ·
Expand description

Helper gadgets for synthesis

+

Module lurk::coprocessor::gadgets

source ·
Expand description

Helper gadgets for synthesis

Functions

  • Chains car_cdr calls n times, returning the accumulated cars, the final cdr and the (explored) actual length (<= n) of the cons-like data. For example, calling chain_car_cdr on “ab” with n = 4 should return the full diff --git a/docs/lurk/coprocessor/trie/enum.TrieCoproc.html b/docs/lurk/coprocessor/trie/enum.TrieCoproc.html index 5b401d380c..6a52cf6093 100644 --- a/docs/lurk/coprocessor/trie/enum.TrieCoproc.html +++ b/docs/lurk/coprocessor/trie/enum.TrieCoproc.html @@ -32,7 +32,7 @@ args: &[Ptr], env: &Ptr, cont: &Ptr -) -> Vec<Ptr>

source§

fn evaluate_simple(&self, s: &Store<F>, args: &[Ptr]) -> Ptr

source§

fn has_circuit(&self) -> bool

Returns true if this Coprocessor actually implements a circuit.
source§

impl<F: Debug + LurkField> Debug for TrieCoproc<F>

source§

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

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

impl<F: LurkField> From<InsertCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: InsertCoprocessor<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<LookupCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: LookupCoprocessor<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<NewCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: NewCoprocessor<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for TrieCoproc<F>
where +) -> Vec<Ptr>

source§

fn evaluate_simple(&self, s: &Store<F>, args: &[Ptr]) -> Ptr

source§

fn has_circuit(&self) -> bool

Returns true if this Coprocessor actually implements a circuit.
source§

impl<F: Debug + LurkField> Debug for TrieCoproc<F>

source§

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

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

impl<F: LurkField> From<InsertCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: InsertCoprocessor<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<LookupCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: LookupCoprocessor<F>) -> Self

Converts to this type from the input type.
source§

impl<F: LurkField> From<NewCoprocessor<F>> for TrieCoproc<F>

source§

fn from(c: NewCoprocessor<F>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

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

§

impl<F> Send for TrieCoproc<F>

§

impl<F> Sync for TrieCoproc<F>

§

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

§

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

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/lurk/coroutine/memoset/enum.MemoSetError.html b/docs/lurk/coroutine/memoset/enum.MemoSetError.html new file mode 100644 index 0000000000..0c3cbc8bdb --- /dev/null +++ b/docs/lurk/coroutine/memoset/enum.MemoSetError.html @@ -0,0 +1,121 @@ +MemoSetError in lurk::coroutine::memoset - Rust +
pub enum MemoSetError {
+    QueryDependenciesMissing,
+    QueryResultMissing,
+}

Variants§

§

QueryDependenciesMissing

§

QueryResultMissing

Trait Implementations§

source§

impl Debug for MemoSetError

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata +) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

§

fn deserialize( + &self, + deserializer: &mut D +) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where + C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where + C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

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

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

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

Immutable access to the Deref::Target of a value. Read more
§

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

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

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

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

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

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

impl<T> TryConv for T

§

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

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

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for T
where + T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/index.html b/docs/lurk/coroutine/memoset/index.html index 77a0ed8c40..a18d7ad60e 100644 --- a/docs/lurk/coroutine/memoset/index.html +++ b/docs/lurk/coroutine/memoset/index.html @@ -1,8 +1,8 @@ -lurk::coroutine::memoset - Rust -

Module lurk::coroutine::memoset

source ·
Expand description

The memoset module implements a MemoSet.

+lurk::coroutine::memoset - Rust +

Module lurk::coroutine::memoset

source ·
Expand description

The memoset module implements a MemoSet.

A MemoSet is an abstraction we use to memoize deferred proof of (potentially mutually-recursive) query results. Whenever a computation being proved needs the result of a query, the prover non-deterministically supplies the -correct response. The resulting key-value pair is then added to a multiset representing deferred proofs. The +correct result. The resulting key-value pair is then added to a multiset representing deferred proofs. The dependent proof now must not be accepted until every element in the deferred-proof multiset has been proved.

Implementation depends on a cryptographic multiset – for example, ECMH or LogUp (implemented here). This allows us to prove that every element added to to the multiset is later removed only after having been proved. The @@ -22,6 +22,6 @@ Scope. This allows us to accumulate queries and the subqueries on which they depend, along with the memoized query results computed ‘naturally’ during evaluation. We then separate and sort in an order matching that which the NIVC prover will follow when provably maintaining the multiset accumulator and Fiat-Shamir transcript in the circuit.

-

Structs

Structs

Traits

\ No newline at end of file +performed.
  • Enums

    Traits

    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/sidebar-items.js b/docs/lurk/coroutine/memoset/sidebar-items.js index 51a00dba37..bba2022242 100644 --- a/docs/lurk/coroutine/memoset/sidebar-items.js +++ b/docs/lurk/coroutine/memoset/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["CircuitScope","CircuitTranscript","CoroutineCircuit","LogMemo","LogMemoCircuit","Scope","Transcript"],"trait":["CircuitMemoSet","CircuitQuery","MemoSet","Query"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["MemoSetError"],"struct":["AllocatedProvenance","CircuitScope","CircuitTranscript","CoroutineCircuit","LogMemo","LogMemoCircuit","Provenance","Scope","Transcript"],"trait":["CircuitMemoSet","CircuitQuery","MemoSet","Query"]}; \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/struct.AllocatedProvenance.html b/docs/lurk/coroutine/memoset/struct.AllocatedProvenance.html new file mode 100644 index 0000000000..e48aabcbbf --- /dev/null +++ b/docs/lurk/coroutine/memoset/struct.AllocatedProvenance.html @@ -0,0 +1,121 @@ +AllocatedProvenance in lurk::coroutine::memoset - Rust +
    pub struct AllocatedProvenance<F: LurkField> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Debug + LurkField> Debug for AllocatedProvenance<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata +) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<F, W, T, D> Deserialize<With<T, W>, D> for F
    where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

    §

    fn deserialize( + &self, + deserializer: &mut D +) -> Result<With<T, W>, <D as Fallible>::Error>

    Deserializes using the given deserializer
    §

    impl<T> FmtForward for T

    §

    fn fmt_binary(self) -> FmtBinary<Self>
    where + Self: Binary,

    Causes self to use its Binary implementation when Debug-formatted.
    §

    fn fmt_display(self) -> FmtDisplay<Self>
    where + Self: Display,

    Causes self to use its Display implementation when +Debug-formatted.
    §

    fn fmt_lower_exp(self) -> FmtLowerExp<Self>
    where + Self: LowerExp,

    Causes self to use its LowerExp implementation when +Debug-formatted.
    §

    fn fmt_lower_hex(self) -> FmtLowerHex<Self>
    where + Self: LowerHex,

    Causes self to use its LowerHex implementation when +Debug-formatted.
    §

    fn fmt_octal(self) -> FmtOctal<Self>
    where + Self: Octal,

    Causes self to use its Octal implementation when Debug-formatted.
    §

    fn fmt_pointer(self) -> FmtPointer<Self>
    where + Self: Pointer,

    Causes self to use its Pointer implementation when +Debug-formatted.
    §

    fn fmt_upper_exp(self) -> FmtUpperExp<Self>
    where + Self: UpperExp,

    Causes self to use its UpperExp implementation when +Debug-formatted.
    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where + Self: UpperHex,

    Causes self to use its UpperHex implementation when +Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    §

    impl<T> LayoutRaw for T

    §

    fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

    Gets the layout of the type.
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

    impl<T> Pipe for T
    where + T: ?Sized,

    §

    fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
    where + Self: Sized,

    Pipes by value. This is generally the method you want to use. Read more
    §

    fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
    where + R: 'a,

    Borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
    where + R: 'a,

    Mutably borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
    where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.borrow() into the pipe function. Read more
    §

    fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
    where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
    §

    fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
    where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.as_ref() into the pipe function.
    §

    fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
    where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.as_mut() into the pipe +function.
    §

    fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
    where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.deref() into the pipe function.
    §

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

    Mutably borrows self, then passes self.deref_mut() into the pipe +function.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<T> Pointee for T

    §

    type Metadata = ()

    The type for metadata in pointers and references to Self.
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> Tap for T

    §

    fn tap(self, func: impl FnOnce(&Self)) -> Self

    Immutable access to a value. Read more
    §

    fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

    Mutable access to a value. Read more
    §

    fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Immutable access to the Borrow<B> of a value. Read more
    §

    fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Mutable access to the BorrowMut<B> of a value. Read more
    §

    fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Immutable access to the AsRef<R> view of a value. Read more
    §

    fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Mutable access to the AsMut<R> view of a value. Read more
    §

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

    Immutable access to the Deref::Target of a value. Read more
    §

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

    Mutable access to the Deref::Target of a value. Read more
    §

    fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

    Calls .tap() only in debug builds, and is erased in release builds.
    §

    fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

    Calls .tap_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Calls .tap_borrow() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Calls .tap_ref() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
    §

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

    Calls .tap_deref() only in debug builds, and is erased in release +builds.
    §

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

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

    impl<T> TryConv for T

    §

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

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

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

    §

    type Error = Infallible

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

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

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

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

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<T> Upcastable for T
    where + T: Any + Send + Sync + 'static,

    §

    fn upcast_any_ref(&self) -> &(dyn Any + 'static)

    upcast ref
    §

    fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

    upcast mut ref
    §

    fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

    upcast boxed dyn
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/struct.CircuitScope.html b/docs/lurk/coroutine/memoset/struct.CircuitScope.html index a062bd3647..48de6dfe2f 100644 --- a/docs/lurk/coroutine/memoset/struct.CircuitScope.html +++ b/docs/lurk/coroutine/memoset/struct.CircuitScope.html @@ -1,5 +1,5 @@ CircuitScope in lurk::coroutine::memoset - Rust -
    pub struct CircuitScope<F: LurkField, CM> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone + LurkField, CM: Clone> Clone for CircuitScope<F, CM>

    source§

    fn clone(&self) -> CircuitScope<F, CM>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField, CM: Debug> Debug for CircuitScope<F, CM>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, CM> RefUnwindSafe for CircuitScope<F, CM>
    where +
    pub struct CircuitScope<F: LurkField, CM> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone + LurkField, CM: Clone> Clone for CircuitScope<F, CM>

    source§

    fn clone(&self) -> CircuitScope<F, CM>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField, CM: Debug> Debug for CircuitScope<F, CM>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, CM> RefUnwindSafe for CircuitScope<F, CM>

    §

    impl<F, CM> Send for CircuitScope<F, CM>
    where CM: Send,

    §

    impl<F, CM> Sync for CircuitScope<F, CM>
    where diff --git a/docs/lurk/coroutine/memoset/struct.CircuitTranscript.html b/docs/lurk/coroutine/memoset/struct.CircuitTranscript.html index 4ad8dab47a..72b827b289 100644 --- a/docs/lurk/coroutine/memoset/struct.CircuitTranscript.html +++ b/docs/lurk/coroutine/memoset/struct.CircuitTranscript.html @@ -1,10 +1,10 @@ CircuitTranscript in lurk::coroutine::memoset - Rust -
    pub struct CircuitTranscript<F: LurkField> { /* private fields */ }

    Implementations§

    source§

    impl<F: LurkField> CircuitTranscript<F>

    source

    pub fn pick<CS: ConstraintSystem<F>>( +
    pub struct CircuitTranscript<F: LurkField> { /* private fields */ }

    Implementations§

    source§

    impl<F: LurkField> CircuitTranscript<F>

    source

    pub fn pick<CS: ConstraintSystem<F>>( cs: &mut CS, condition: &Boolean, a: &Self, b: &Self -) -> Result<Self, SynthesisError>

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for CircuitTranscript<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for CircuitTranscript<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> RefUnwindSafe for CircuitTranscript<F>
    where +) -> Result<Self, SynthesisError>

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for CircuitTranscript<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for CircuitTranscript<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

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

    §

    impl<F> Send for CircuitTranscript<F>

    §

    impl<F> Sync for CircuitTranscript<F>

    §

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

    §

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

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/docs/lurk/coroutine/memoset/struct.CoroutineCircuit.html b/docs/lurk/coroutine/memoset/struct.CoroutineCircuit.html index 4fac7e0c96..6b8f591d06 100644 --- a/docs/lurk/coroutine/memoset/struct.CoroutineCircuit.html +++ b/docs/lurk/coroutine/memoset/struct.CoroutineCircuit.html @@ -1,5 +1,5 @@ CoroutineCircuit in lurk::coroutine::memoset - Rust -
    pub struct CoroutineCircuit<'a, F: LurkField, CM, Q> { /* private fields */ }

    Auto Trait Implementations§

    §

    impl<'a, F, CM, Q> RefUnwindSafe for CoroutineCircuit<'a, F, CM, Q>
    where +
    pub struct CoroutineCircuit<'a, F: LurkField, CM, Q> { /* private fields */ }

    Auto Trait Implementations§

    §

    impl<'a, F, CM, Q> RefUnwindSafe for CoroutineCircuit<'a, F, CM, Q>

    §

    impl<'a, F, CM, Q> Send for CoroutineCircuit<'a, F, CM, Q>
    where @@ -8,6 +8,7 @@ CM: Sync, Q: Sync,

    §

    impl<'a, F, CM, Q> Unpin for CoroutineCircuit<'a, F, CM, Q>
    where CM: Unpin, + F: Unpin, Q: Unpin,

    §

    impl<'a, F, CM, Q> UnwindSafe for CoroutineCircuit<'a, F, CM, Q>
    where CM: UnwindSafe, F: UnwindSafe + RefUnwindSafe, diff --git a/docs/lurk/coroutine/memoset/struct.LogMemo.html b/docs/lurk/coroutine/memoset/struct.LogMemo.html index 7fe444f90b..6a9e304cd1 100644 --- a/docs/lurk/coroutine/memoset/struct.LogMemo.html +++ b/docs/lurk/coroutine/memoset/struct.LogMemo.html @@ -1,5 +1,5 @@ LogMemo in lurk::coroutine::memoset - Rust -

    Struct lurk::coroutine::memoset::LogMemo

    source ·
    pub struct LogMemo<F: LurkField> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for LogMemo<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for LogMemo<F>

    source§

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

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

    impl<F: LurkField> Default for LogMemo<F>

    source§

    fn default() -> Self

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

    impl<F: LurkField> MemoSet<F> for LogMemo<F>

    §

    type CM = LogMemoCircuit<F>

    source§

    fn into_circuit<CS: ConstraintSystem<F>>(self, cs: &mut CS) -> Self::CM

    source§

    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM

    source§

    fn count(&self, form: &Ptr) -> usize

    source§

    fn is_finalized(&self) -> bool

    source§

    fn finalize_transcript(&mut self, s: &Store<F>, transcript: Transcript<F>)

    source§

    fn r(&self) -> Option<&F>

    source§

    fn map_to_element(&self, x: F) -> Option<F>

    source§

    fn add(&mut self, kv: Ptr)

    Auto Trait Implementations§

    §

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

    Struct lurk::coroutine::memoset::LogMemo

    source ·
    pub struct LogMemo<F: LurkField> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for LogMemo<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for LogMemo<F>

    source§

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

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

    impl<F: LurkField> Default for LogMemo<F>

    source§

    fn default() -> Self

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

    impl<F: LurkField> MemoSet<F> for LogMemo<F>

    §

    type CM = LogMemoCircuit<F>

    source§

    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM

    source§

    fn count(&self, form: &Ptr) -> usize

    source§

    fn is_finalized(&self) -> bool

    source§

    fn finalize_transcript(&mut self, s: &Store<F>, transcript: Transcript<F>)

    source§

    fn r(&self) -> Option<&F>

    source§

    fn map_to_element(&self, x: F) -> Option<F>

    source§

    fn add(&mut self, kv: Ptr)

    Auto Trait Implementations§

    §

    impl<F> RefUnwindSafe for LogMemo<F>

    §

    impl<F> Send for LogMemo<F>

    §

    impl<F> Sync for LogMemo<F>

    §

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

    §

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

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/docs/lurk/coroutine/memoset/struct.LogMemoCircuit.html b/docs/lurk/coroutine/memoset/struct.LogMemoCircuit.html index da8d45963c..85a59dadba 100644 --- a/docs/lurk/coroutine/memoset/struct.LogMemoCircuit.html +++ b/docs/lurk/coroutine/memoset/struct.LogMemoCircuit.html @@ -1,20 +1,20 @@ LogMemoCircuit in lurk::coroutine::memoset - Rust -
    pub struct LogMemoCircuit<F: LurkField> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: LurkField> CircuitMemoSet<F> for LogMemoCircuit<F>

    source§

    fn allocated_r(&self) -> AllocatedNum<F>

    source§

    fn synthesize_add<CS: ConstraintSystem<F>>( +
    pub struct LogMemoCircuit<F: LurkField> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: LurkField> CircuitMemoSet<F> for LogMemoCircuit<F>

    source§

    fn allocated_r(&self) -> AllocatedNum<F>

    source§

    fn synthesize_add<CS: ConstraintSystem<F>>( &self, cs: &mut CS, acc: &AllocatedNum<F>, - kv: &AllocatedPtr<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn synthesize_remove_n<CS: ConstraintSystem<F>>( + provenance: &AllocatedPtr<F> +) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn synthesize_remove_n<CS: ConstraintSystem<F>>( &self, cs: &mut CS, acc: &AllocatedNum<F>, - kv: &AllocatedPtr<F>, + provenance: &AllocatedPtr<F>, count: &AllocatedNum<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn synthesize_map_to_element<CS: ConstraintSystem<F>>( +) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn synthesize_map_to_element<CS: ConstraintSystem<F>>( &self, cs: &mut CS, x: AllocatedNum<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn count(&self, form: &Ptr) -> usize

    source§

    impl<F: Clone + LurkField> Clone for LogMemoCircuit<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for LogMemoCircuit<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> RefUnwindSafe for LogMemoCircuit<F>
    where +) -> Result<AllocatedNum<F>, SynthesisError>

    source§

    fn count(&self, form: &Ptr) -> usize

    source§

    impl<F: Clone + LurkField> Clone for LogMemoCircuit<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for LogMemoCircuit<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

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

    §

    impl<F> Send for LogMemoCircuit<F>

    §

    impl<F> Sync for LogMemoCircuit<F>

    §

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

    §

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

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/docs/lurk/coroutine/memoset/struct.Provenance.html b/docs/lurk/coroutine/memoset/struct.Provenance.html new file mode 100644 index 0000000000..f9f8f14e79 --- /dev/null +++ b/docs/lurk/coroutine/memoset/struct.Provenance.html @@ -0,0 +1,118 @@ +Provenance in lurk::coroutine::memoset - Rust +
    pub struct Provenance { /* private fields */ }

    Trait Implementations§

    source§

    impl Debug for Provenance

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata +) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<F, W, T, D> Deserialize<With<T, W>, D> for F
    where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

    §

    fn deserialize( + &self, + deserializer: &mut D +) -> Result<With<T, W>, <D as Fallible>::Error>

    Deserializes using the given deserializer
    §

    impl<T> FmtForward for T

    §

    fn fmt_binary(self) -> FmtBinary<Self>
    where + Self: Binary,

    Causes self to use its Binary implementation when Debug-formatted.
    §

    fn fmt_display(self) -> FmtDisplay<Self>
    where + Self: Display,

    Causes self to use its Display implementation when +Debug-formatted.
    §

    fn fmt_lower_exp(self) -> FmtLowerExp<Self>
    where + Self: LowerExp,

    Causes self to use its LowerExp implementation when +Debug-formatted.
    §

    fn fmt_lower_hex(self) -> FmtLowerHex<Self>
    where + Self: LowerHex,

    Causes self to use its LowerHex implementation when +Debug-formatted.
    §

    fn fmt_octal(self) -> FmtOctal<Self>
    where + Self: Octal,

    Causes self to use its Octal implementation when Debug-formatted.
    §

    fn fmt_pointer(self) -> FmtPointer<Self>
    where + Self: Pointer,

    Causes self to use its Pointer implementation when +Debug-formatted.
    §

    fn fmt_upper_exp(self) -> FmtUpperExp<Self>
    where + Self: UpperExp,

    Causes self to use its UpperExp implementation when +Debug-formatted.
    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where + Self: UpperHex,

    Causes self to use its UpperHex implementation when +Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    §

    impl<T> LayoutRaw for T

    §

    fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

    Gets the layout of the type.
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

    impl<T> Pipe for T
    where + T: ?Sized,

    §

    fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
    where + Self: Sized,

    Pipes by value. This is generally the method you want to use. Read more
    §

    fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
    where + R: 'a,

    Borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
    where + R: 'a,

    Mutably borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
    where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.borrow() into the pipe function. Read more
    §

    fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
    where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
    §

    fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
    where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.as_ref() into the pipe function.
    §

    fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
    where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.as_mut() into the pipe +function.
    §

    fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
    where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.deref() into the pipe function.
    §

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

    Mutably borrows self, then passes self.deref_mut() into the pipe +function.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<T> Pointee for T

    §

    type Metadata = ()

    The type for metadata in pointers and references to Self.
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> Tap for T

    §

    fn tap(self, func: impl FnOnce(&Self)) -> Self

    Immutable access to a value. Read more
    §

    fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

    Mutable access to a value. Read more
    §

    fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Immutable access to the Borrow<B> of a value. Read more
    §

    fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Mutable access to the BorrowMut<B> of a value. Read more
    §

    fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Immutable access to the AsRef<R> view of a value. Read more
    §

    fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Mutable access to the AsMut<R> view of a value. Read more
    §

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

    Immutable access to the Deref::Target of a value. Read more
    §

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

    Mutable access to the Deref::Target of a value. Read more
    §

    fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

    Calls .tap() only in debug builds, and is erased in release builds.
    §

    fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

    Calls .tap_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Calls .tap_borrow() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Calls .tap_ref() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
    §

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

    Calls .tap_deref() only in debug builds, and is erased in release +builds.
    §

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

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

    impl<T> TryConv for T

    §

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

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

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

    §

    type Error = Infallible

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

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

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

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

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<T> Upcastable for T
    where + T: Any + Send + Sync + 'static,

    §

    fn upcast_any_ref(&self) -> &(dyn Any + 'static)

    upcast ref
    §

    fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

    upcast mut ref
    §

    fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

    upcast boxed dyn
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/struct.Scope.html b/docs/lurk/coroutine/memoset/struct.Scope.html index a250c8dd24..ec902a3c95 100644 --- a/docs/lurk/coroutine/memoset/struct.Scope.html +++ b/docs/lurk/coroutine/memoset/struct.Scope.html @@ -1,21 +1,24 @@ -Scope in lurk::coroutine::memoset - Rust -

    Struct lurk::coroutine::memoset::Scope

    source ·
    pub struct Scope<Q, M> { /* private fields */ }
    Expand description

    A Scope tracks the queries made while evaluating, including the subqueries that result from evaluating other +Scope in lurk::coroutine::memoset - Rust

    +

    Struct lurk::coroutine::memoset::Scope

    source ·
    pub struct Scope<Q, M, F: LurkField> { /* private fields */ }
    Expand description

    A Scope tracks the queries made while evaluating, including the subqueries that result from evaluating other queries – then makes use of the bookkeeping performed at evaluation time to synthesize proof of each query performed.

    -

    Implementations§

    source§

    impl<F: LurkField, Q: Query<F>> Scope<Q, LogMemo<F>>

    source

    pub fn query(&mut self, s: &Store<F>, form: Ptr) -> Ptr

    source

    pub fn synthesize<CS: ConstraintSystem<F>>( +

    Implementations§

    source§

    impl<F: LurkField, Q: Query<F>> Scope<Q, LogMemo<F>, F>

    source

    pub fn query(&mut self, s: &Store<F>, form: Ptr) -> Ptr

    source

    pub fn synthesize<CS: ConstraintSystem<F>>( &mut self, cs: &mut CS, g: &mut GlobalAllocator<F>, s: &Store<F> -) -> Result<(), SynthesisError>

    Trait Implementations§

    source§

    impl<Q: Clone, M: Clone> Clone for Scope<Q, M>

    source§

    fn clone(&self) -> Scope<Q, M>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<Q: Debug, M: Debug> Debug for Scope<Q, M>

    source§

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

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

    impl<F: LurkField, Q> Default for Scope<Q, LogMemo<F>>

    source§

    fn default() -> Self

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

    Auto Trait Implementations§

    §

    impl<Q, M> RefUnwindSafe for Scope<Q, M>
    where +) -> Result<(), SynthesisError>

    Trait Implementations§

    source§

    impl<Q: Clone, M: Clone, F: Clone + LurkField> Clone for Scope<Q, M, F>

    source§

    fn clone(&self) -> Scope<Q, M, F>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<Q: Debug, M: Debug, F: Debug + LurkField> Debug for Scope<Q, M, F>

    source§

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

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

    impl<F: LurkField, Q: Query<F>> Default for Scope<Q, LogMemo<F>, F>

    source§

    fn default() -> Self

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

    Auto Trait Implementations§

    §

    impl<Q, M, F> RefUnwindSafe for Scope<Q, M, F>

    §

    impl<Q, M> Send for Scope<Q, M>
    where + Q: RefUnwindSafe,

    §

    impl<Q, M, F> Send for Scope<Q, M, F>
    where M: Send, - Q: Send,

    §

    impl<Q, M> Sync for Scope<Q, M>
    where + Q: Send,

    §

    impl<Q, M, F> Sync for Scope<Q, M, F>
    where M: Sync, - Q: Sync,

    §

    impl<Q, M> Unpin for Scope<Q, M>
    where + Q: Sync,

    §

    impl<Q, M, F> Unpin for Scope<Q, M, F>
    where + F: Unpin, M: Unpin, - Q: Unpin,

    §

    impl<Q, M> UnwindSafe for Scope<Q, M>
    where + Q: Unpin,

    §

    impl<Q, M, F> UnwindSafe for Scope<Q, M, F>
    where + F: UnwindSafe, M: UnwindSafe, Q: UnwindSafe,

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( diff --git a/docs/lurk/coroutine/memoset/struct.Transcript.html b/docs/lurk/coroutine/memoset/struct.Transcript.html index 6a09a27641..51133e034d 100644 --- a/docs/lurk/coroutine/memoset/struct.Transcript.html +++ b/docs/lurk/coroutine/memoset/struct.Transcript.html @@ -1,5 +1,5 @@ Transcript in lurk::coroutine::memoset - Rust -
    pub struct Transcript<F> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone> Clone for Transcript<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug> Debug for Transcript<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> RefUnwindSafe for Transcript<F>
    where +
    pub struct Transcript<F> { /* private fields */ }

    Trait Implementations§

    source§

    impl<F: Clone> Clone for Transcript<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug> Debug for Transcript<F>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

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

    §

    impl<F> Send for Transcript<F>
    where F: Send,

    §

    impl<F> Sync for Transcript<F>
    where F: Sync,

    §

    impl<F> Unpin for Transcript<F>
    where diff --git a/docs/lurk/coroutine/memoset/trait.CircuitMemoSet.html b/docs/lurk/coroutine/memoset/trait.CircuitMemoSet.html index 068126be75..a1965bf621 100644 --- a/docs/lurk/coroutine/memoset/trait.CircuitMemoSet.html +++ b/docs/lurk/coroutine/memoset/trait.CircuitMemoSet.html @@ -1,5 +1,5 @@ CircuitMemoSet in lurk::coroutine::memoset - Rust -
    pub trait CircuitMemoSet<F: LurkField>: Clone {
    +    
    pub trait CircuitMemoSet<F: LurkField>: Clone {
         // Required methods
         fn synthesize_remove_n<CS: ConstraintSystem<F>>(
             &self,
    @@ -21,19 +21,19 @@
             kv: &AllocatedPtr<F>
         ) -> Result<AllocatedNum<F>, SynthesisError>;
         fn count(&self, form: &Ptr) -> usize;
    -}

    Required Methods§

    source

    fn synthesize_remove_n<CS: ConstraintSystem<F>>( +}

    Required Methods§

    source

    fn synthesize_remove_n<CS: ConstraintSystem<F>>( &self, cs: &mut CS, acc: &AllocatedNum<F>, kv: &AllocatedPtr<F>, count: &AllocatedNum<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn allocated_r(&self) -> AllocatedNum<F>

    source

    fn synthesize_map_to_element<CS: ConstraintSystem<F>>( +) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn allocated_r(&self) -> AllocatedNum<F>

    source

    fn synthesize_map_to_element<CS: ConstraintSystem<F>>( &self, cs: &mut CS, x: AllocatedNum<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn synthesize_add<CS: ConstraintSystem<F>>( +) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn synthesize_add<CS: ConstraintSystem<F>>( &self, cs: &mut CS, acc: &AllocatedNum<F>, kv: &AllocatedPtr<F> -) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn count(&self, form: &Ptr) -> usize

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file +) -> Result<AllocatedNum<F>, SynthesisError>

    source

    fn count(&self, form: &Ptr) -> usize

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/trait.CircuitQuery.html b/docs/lurk/coroutine/memoset/trait.CircuitQuery.html index 3d6558e422..6626ee0f79 100644 --- a/docs/lurk/coroutine/memoset/trait.CircuitQuery.html +++ b/docs/lurk/coroutine/memoset/trait.CircuitQuery.html @@ -1,5 +1,5 @@ CircuitQuery in lurk::coroutine::memoset - Rust -
    pub trait CircuitQuery<F: LurkField>
    where +
    pub trait CircuitQuery<F: LurkField>
    where Self: Sized + Clone,
    { // Required methods fn synthesize_eval<CS: ConstraintSystem<F>>( @@ -10,7 +10,7 @@ scope: &mut CircuitScope<F, LogMemoCircuit<F>>, acc: &AllocatedPtr<F>, transcript: &CircuitTranscript<F> - ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError>; + ) -> Result<((AllocatedPtr<F>, AllocatedPtr<F>), AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError>; fn symbol(&self) -> Symbol; fn from_ptr<CS: ConstraintSystem<F>>( cs: &mut CS, @@ -25,7 +25,7 @@ // Provided method fn symbol_ptr(&self, s: &Store<F>) -> Ptr { ... } -}

    Required Methods§

    source

    fn synthesize_eval<CS: ConstraintSystem<F>>( +}

    Required Methods§

    source

    fn synthesize_eval<CS: ConstraintSystem<F>>( &self, cs: &mut CS, g: &GlobalAllocator<F>, @@ -33,12 +33,12 @@ scope: &mut CircuitScope<F, LogMemoCircuit<F>>, acc: &AllocatedPtr<F>, transcript: &CircuitTranscript<F> -) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError>

    source

    fn symbol(&self) -> Symbol

    source

    fn from_ptr<CS: ConstraintSystem<F>>( +) -> Result<((AllocatedPtr<F>, AllocatedPtr<F>), AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError>

    source

    fn symbol(&self) -> Symbol

    source

    fn from_ptr<CS: ConstraintSystem<F>>( cs: &mut CS, s: &Store<F>, ptr: &Ptr -) -> Option<Self>

    source

    fn dummy_from_index<CS: ConstraintSystem<F>>( +) -> Option<Self>

    source

    fn dummy_from_index<CS: ConstraintSystem<F>>( cs: &mut CS, s: &Store<F>, index: usize -) -> Self

    Provided Methods§

    source

    fn symbol_ptr(&self, s: &Store<F>) -> Ptr

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file +) -> Self

    Provided Methods§

    source

    fn symbol_ptr(&self, s: &Store<F>) -> Ptr

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/trait.MemoSet.html b/docs/lurk/coroutine/memoset/trait.MemoSet.html index 6f8e732696..3a5ddc833a 100644 --- a/docs/lurk/coroutine/memoset/trait.MemoSet.html +++ b/docs/lurk/coroutine/memoset/trait.MemoSet.html @@ -1,14 +1,13 @@ -MemoSet in lurk::coroutine::memoset - Rust -
    pub trait MemoSet<F: LurkField>: Clone {
    +MemoSet in lurk::coroutine::memoset - Rust
    +    
    pub trait MemoSet<F: LurkField>: Clone {
         type CM: CircuitMemoSet<F>;
     
         // Required methods
    -    fn into_circuit<CS: ConstraintSystem<F>>(self, cs: &mut CS) -> Self::CM;
    -    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM;
    +    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM;
         fn is_finalized(&self) -> bool;
         fn finalize_transcript(&mut self, s: &Store<F>, transcript: Transcript<F>);
         fn r(&self) -> Option<&F>;
         fn map_to_element(&self, x: F) -> Option<F>;
         fn add(&mut self, kv: Ptr);
         fn count(&self, form: &Ptr) -> usize;
    -}

    Required Associated Types§

    Required Methods§

    source

    fn into_circuit<CS: ConstraintSystem<F>>(self, cs: &mut CS) -> Self::CM

    source

    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM

    source

    fn is_finalized(&self) -> bool

    source

    fn finalize_transcript(&mut self, s: &Store<F>, transcript: Transcript<F>)

    source

    fn r(&self) -> Option<&F>

    source

    fn map_to_element(&self, x: F) -> Option<F>

    source

    fn add(&mut self, kv: Ptr)

    source

    fn count(&self, form: &Ptr) -> usize

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file +}

    Required Associated Types§

    Required Methods§

    source

    fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM

    source

    fn is_finalized(&self) -> bool

    source

    fn finalize_transcript(&mut self, s: &Store<F>, transcript: Transcript<F>)

    source

    fn r(&self) -> Option<&F>

    source

    fn map_to_element(&self, x: F) -> Option<F>

    source

    fn add(&mut self, kv: Ptr)

    source

    fn count(&self, form: &Ptr) -> usize

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/docs/lurk/coroutine/memoset/trait.Query.html b/docs/lurk/coroutine/memoset/trait.Query.html index 573b34d338..c414225542 100644 --- a/docs/lurk/coroutine/memoset/trait.Query.html +++ b/docs/lurk/coroutine/memoset/trait.Query.html @@ -4,7 +4,7 @@ type CQ: CircuitQuery<F>; // Required methods - fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>>) -> Ptr; + fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>, F>) -> Ptr; fn from_ptr(s: &Store<F>, ptr: &Ptr) -> Option<Self>; fn to_ptr(&self, s: &Store<F>) -> Ptr; fn to_circuit<CS: ConstraintSystem<F>>( @@ -20,12 +20,12 @@ // Provided methods fn recursive_eval( &self, - scope: &mut Scope<Self, LogMemo<F>>, + scope: &mut Scope<Self, LogMemo<F>, F>, s: &Store<F>, subquery: Self ) -> Ptr { ... } fn symbol_ptr(&self, s: &Store<F>) -> Ptr { ... } -}

    Required Associated Types§

    Required Methods§

    source

    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>>) -> Ptr

    source

    fn from_ptr(s: &Store<F>, ptr: &Ptr) -> Option<Self>

    source

    fn to_ptr(&self, s: &Store<F>) -> Ptr

    source

    fn to_circuit<CS: ConstraintSystem<F>>( +}

    Required Associated Types§

    Required Methods§

    source

    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>, F>) -> Ptr

    source

    fn from_ptr(s: &Store<F>, ptr: &Ptr) -> Option<Self>

    source

    fn to_ptr(&self, s: &Store<F>) -> Ptr

    source

    fn to_circuit<CS: ConstraintSystem<F>>( &self, cs: &mut CS, s: &Store<F> @@ -33,7 +33,7 @@

    source

    fn count() -> usize

    How many types of query are provided?

    Provided Methods§

    source

    fn recursive_eval( &self, - scope: &mut Scope<Self, LogMemo<F>>, + scope: &mut Scope<Self, LogMemo<F>, F>, s: &Store<F>, subquery: Self ) -> Ptr

    source

    fn symbol_ptr(&self, s: &Store<F>) -> Ptr

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/docs/lurk/enum.Num.html b/docs/lurk/enum.Num.html index 174228b70c..e399a621ff 100644 --- a/docs/lurk/enum.Num.html +++ b/docs/lurk/enum.Num.html @@ -16,7 +16,7 @@ implementing type (Self). The strategy is passed the arguments given in args. Read more

    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more

    source§

    impl<F: Clone + LurkField> Clone for Num<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for Num<F>

    source§

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

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

    impl<'de, F: LurkField> Deserialize<'de> for Num<F>

    source§

    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where - D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<F: LurkField> Display for Num<F>

    source§

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

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

    impl<F: LurkField> DivAssign for Num<F>

    source§

    fn div_assign(&mut self, rhs: Self)

    Performs the /= operation. Read more
    source§

    impl<F: LurkField> From<UInt> for Num<F>

    source§

    fn from(n: UInt) -> Self

    Converts to this type from the input type.
    source§

    impl<F: LurkField> From<u64> for Num<F>

    source§

    fn from(n: u64) -> Self

    Converts to this type from the input type.
    source§

    impl<F: LurkField> Hash for Num<F>

    source§

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

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

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

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<F: LurkField> Display for Num<F>

    source§

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

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

    impl<F: LurkField> DivAssign for Num<F>

    source§

    fn div_assign(&mut self, rhs: Self)

    Performs the /= operation. Read more
    source§

    impl<F: LurkField> From<UInt> for Num<F>

    source§

    fn from(n: UInt) -> Self

    Converts to this type from the input type.
    source§

    impl<F: LurkField> From<u64> for Num<F>

    source§

    fn from(n: u64) -> Self

    Converts to this type from the input type.
    source§

    impl<F: LurkField> Hash for Num<F>

    source§

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

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

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

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

    impl<F: LurkField> MulAssign for Num<F>

    source§

    fn mul_assign(&mut self, rhs: Self)

    Performs the *= operation. Read more
    source§

    impl<F: PartialEq + LurkField> PartialEq for Num<F>

    source§

    fn eq(&self, other: &Num<F>) -> bool

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

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

    This method tests for !=. The default implementation is almost always diff --git a/docs/lurk/enum.UInt.html b/docs/lurk/enum.UInt.html index fd39fff4bf..d0ec5c8818 100644 --- a/docs/lurk/enum.UInt.html +++ b/docs/lurk/enum.UInt.html @@ -2,17 +2,17 @@

    Enum lurk::UInt

    source ·
    pub enum UInt {
         U64(u64),
     }
    Expand description

    Unsigned fixed-width integer type for Lurk.

    -

    Variants§

    §

    U64(u64)

    Implementations§

    source§

    impl UInt

    source

    pub fn is_zero(&self) -> bool

    Trait Implementations§

    source§

    impl Add for UInt

    §

    type Output = UInt

    The resulting type after applying the + operator.
    source§

    fn add(self, other: Self) -> Self

    Performs the + operation. Read more
    source§

    impl Arbitrary for UInt

    §

    type Parameters = <u64 as Arbitrary>::Parameters

    The type of parameters that arbitrary_with accepts for configuration +

    Variants§

    §

    U64(u64)

    Implementations§

    source§

    impl UInt

    source

    pub fn is_zero(&self) -> bool

    Trait Implementations§

    source§

    impl Add for UInt

    §

    type Output = UInt

    The resulting type after applying the + operator.
    source§

    fn add(self, other: Self) -> Self

    Performs the + operation. Read more
    source§

    impl Arbitrary for UInt

    §

    type Parameters = <u64 as Arbitrary>::Parameters

    The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
    §

    type Strategy = Map<<u64 as Arbitrary>::Strategy, fn(_: u64) -> UInt>

    The type of Strategy used to generate values of type Self.
    source§

    fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values -of type the implementing type (Self). Read more
    source§

    impl Clone for UInt

    source§

    fn clone(&self) -> UInt

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for UInt

    source§

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

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

    impl<'de> Deserialize<'de> for UInt

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for UInt

    source§

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

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

    impl Div for UInt

    §

    type Output = UInt

    The resulting type after applying the / operator.
    source§

    fn div(self, other: Self) -> Self

    Performs the / operation. Read more
    source§

    impl<F: LurkField> From<UInt> for Num<F>

    source§

    fn from(n: UInt) -> Self

    Converts to this type from the input type.
    source§

    impl From<UInt> for u64

    source§

    fn from(u: UInt) -> u64

    Converts to this type from the input type.
    source§

    impl From<u64> for UInt

    source§

    fn from(n: u64) -> Self

    Converts to this type from the input type.
    source§

    impl Mul for UInt

    §

    type Output = UInt

    The resulting type after applying the * operator.
    source§

    fn mul(self, other: Self) -> Self

    Performs the * operation. Read more
    source§

    impl PartialEq for UInt

    source§

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

    This method tests for self and other values to be equal, and is used +of type the implementing type (Self). Read more
    source§

    impl Clone for UInt

    source§

    fn clone(&self) -> UInt

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for UInt

    source§

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

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

    impl<'de> Deserialize<'de> for UInt

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for UInt

    source§

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

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

    impl Div for UInt

    §

    type Output = UInt

    The resulting type after applying the / operator.
    source§

    fn div(self, other: Self) -> Self

    Performs the / operation. Read more
    source§

    impl<F: LurkField> From<UInt> for Num<F>

    source§

    fn from(n: UInt) -> Self

    Converts to this type from the input type.
    source§

    impl From<UInt> for u64

    source§

    fn from(u: UInt) -> u64

    Converts to this type from the input type.
    source§

    impl From<u64> for UInt

    source§

    fn from(n: u64) -> Self

    Converts to this type from the input type.
    source§

    impl Mul for UInt

    §

    type Output = UInt

    The resulting type after applying the * operator.
    source§

    fn mul(self, other: Self) -> Self

    Performs the * operation. Read more
    source§

    impl PartialEq for UInt

    source§

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

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

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

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

    impl PartialOrd for UInt

    source§

    fn partial_cmp(&self, other: &UInt) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

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

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

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

    This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
    1.0.0 · source§

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

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

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

    This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
    source§

    impl Rem for UInt

    §

    type Output = UInt

    The resulting type after applying the % operator.
    source§

    fn rem(self, other: Self) -> Self

    Performs the % operation. Read more
    source§

    impl Serialize for UInt

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Sub for UInt

    §

    type Output = UInt

    The resulting type after applying the - operator.
    source§

    fn sub(self, other: Self) -> Self

    Performs the - operation. Read more
    source§

    impl Copy for UInt

    source§

    impl Eq for UInt

    source§

    impl StructuralEq for UInt

    source§

    impl StructuralPartialEq for UInt

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for UInt

    §

    impl Send for UInt

    §

    impl Sync for UInt

    §

    impl Unpin for UInt

    §

    impl UnwindSafe for UInt

    Blanket Implementations§

    source§

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

    source§

    impl Rem for UInt

    §

    type Output = UInt

    The resulting type after applying the % operator.
    source§

    fn rem(self, other: Self) -> Self

    Performs the % operation. Read more
    source§

    impl Serialize for UInt

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Sub for UInt

    §

    type Output = UInt

    The resulting type after applying the - operator.
    source§

    fn sub(self, other: Self) -> Self

    Performs the - operation. Read more
    source§

    impl Copy for UInt

    source§

    impl Eq for UInt

    source§

    impl StructuralEq for UInt

    source§

    impl StructuralPartialEq for UInt

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for UInt

    §

    impl Send for UInt

    §

    impl Sync for UInt

    §

    impl Unpin for UInt

    §

    impl UnwindSafe for UInt

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

    impl<T> Borrow<T> for T
    where diff --git a/docs/lurk/error/enum.ProofError.html b/docs/lurk/error/enum.ProofError.html index 84709140f6..b13954424a 100644 --- a/docs/lurk/error/enum.ProofError.html +++ b/docs/lurk/error/enum.ProofError.html @@ -4,7 +4,7 @@ SuperNova(SuperNovaError), Synthesis(SynthesisError), Reduction(ReductionError), -}

    Variants§

    §

    Nova(NovaError)

    §

    SuperNova(SuperNovaError)

    §

    Synthesis(SynthesisError)

    §

    Reduction(ReductionError)

    Trait Implementations§

    source§

    impl Debug for ProofError

    source§

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

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

    impl Display for ProofError

    source§

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

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

    impl Error for ProofError

    source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<NovaError> for ProofError

    source§

    fn from(source: NovaError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ReductionError> for ProofError

    source§

    fn from(source: ReductionError) -> Self

    Converts to this type from the input type.
    source§

    impl From<SuperNovaError> for ProofError

    source§

    fn from(source: SuperNovaError) -> Self

    Converts to this type from the input type.
    source§

    impl From<SynthesisError> for ProofError

    source§

    fn from(source: SynthesisError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    Nova(NovaError)

    §

    SuperNova(SuperNovaError)

    §

    Synthesis(SynthesisError)

    §

    Reduction(ReductionError)

    Trait Implementations§

    source§

    impl Debug for ProofError

    source§

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

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

    impl Display for ProofError

    source§

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

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

    impl Error for ProofError

    source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<NovaError> for ProofError

    source§

    fn from(source: NovaError) -> Self

    Converts to this type from the input type.
    source§

    impl From<ReductionError> for ProofError

    source§

    fn from(source: ReductionError) -> Self

    Converts to this type from the input type.
    source§

    impl From<SuperNovaError> for ProofError

    source§

    fn from(source: SuperNovaError) -> Self

    Converts to this type from the input type.
    source§

    impl From<SynthesisError> for ProofError

    source§

    fn from(source: SynthesisError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

    impl<T> Borrow<T> for T
    where diff --git a/docs/lurk/error/enum.ReductionError.html b/docs/lurk/error/enum.ReductionError.html index 3eee6910a8..5877d06b32 100644 --- a/docs/lurk/error/enum.ReductionError.html +++ b/docs/lurk/error/enum.ReductionError.html @@ -2,7 +2,7 @@
    pub enum ReductionError {
         Misc(String),
         Store(Error),
    -}

    Variants§

    §

    Misc(String)

    §

    Store(Error)

    Trait Implementations§

    source§

    impl Clone for ReductionError

    source§

    fn clone(&self) -> ReductionError

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ReductionError

    source§

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

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

    impl Display for ReductionError

    source§

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

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

    impl Error for ReductionError

    source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<ReductionError> for ProofError

    source§

    fn from(source: ReductionError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    Misc(String)

    §

    Store(Error)

    Trait Implementations§

    source§

    impl Clone for ReductionError

    source§

    fn clone(&self) -> ReductionError

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ReductionError

    source§

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

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

    impl Display for ReductionError

    source§

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

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

    impl Error for ReductionError

    source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    impl From<ReductionError> for ProofError

    source§

    fn from(source: ReductionError) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

    impl<T> Borrow<T> for T
    where diff --git a/docs/lurk/lem/multiframe/struct.MultiFrame.html b/docs/lurk/lem/multiframe/struct.MultiFrame.html index dbd5a1a4f9..dcc1d5d101 100644 --- a/docs/lurk/lem/multiframe/struct.MultiFrame.html +++ b/docs/lurk/lem/multiframe/struct.MultiFrame.html @@ -21,7 +21,7 @@ cs: &mut CS ) -> Result<(), SynthesisError>

    Synthesize the circuit into a rank-1 quadratic constraint system.

    source§

    impl<'a, F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for MultiFrame<'a, F, C>

    source§

    fn clone(&self) -> MultiFrame<'a, F, C>

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<'a, F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for MultiFrame<'a, F, C>

    source§

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

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

    impl<'a, F: LurkField, C: Coprocessor<F>> FrameLike<Ptr> for MultiFrame<'a, F, C>

    §

    type FrameIO = Vec<Ptr>

    the type for the Frame’s IO
    source§

    fn input(&self) -> &Vec<Ptr>

    the input of the frame
    source§

    fn output(&self) -> &Vec<Ptr>

    the output of the frame
    source§

    impl<'a, F, C> NonUniformCircuit<<F as CurveCycleEquipped>::E1> for MultiFrame<'a, F, C>
    where F: CurveCycleEquipped + LurkField, - C: Coprocessor<F> + 'a,

    §

    type C1 = MultiFrame<'a, F, C>

    The type of the step-circuits on the primary
    §

    type C2 = TrivialSecondaryCircuit<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::Scalar>

    The type of the step-circuits on the secondary
    source§

    fn num_circuits(&self) -> usize

    How many circuits are provided?
    source§

    fn primary_circuit(&self, circuit_index: usize) -> MultiFrame<'a, F, C>

    Return a new instance of the primary circuit at index.
    source§

    fn secondary_circuit(&self) -> C2<F>

    Return a new instance of the secondary circuit.
    §

    fn initial_circuit_index(&self) -> usize

    Initial circuit index, defaults to zero.
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Provable<F> for MultiFrame<'a, F, C>

    source§

    fn public_inputs(&self) -> Vec<F>

    Returns the public inputs of the provable structure.
    source§

    fn public_input_size(&self) -> usize

    Returns the size of the public inputs.
    source§

    fn num_frames(&self) -> usize

    Returns the number of reduction frames in the provable structure.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F> + 'a> Prover<'a, F, MultiFrame<'a, F, C>> for NovaProver<'a, F, C>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type RecursiveSnark = Proof<F, MultiFrame<'a, F, C>>

    Associated proof type, which must implement RecursiveSNARKTrait
    source§

    fn reduction_count(&self) -> usize

    Returns the number of reductions for the prover.
    source§

    fn folding_mode(&self) -> &FoldingMode

    Returns a reference to the prover’s FoldingMode
    source§

    fn evaluate_and_prove( + C: Coprocessor<F> + 'a,

    §

    type C1 = MultiFrame<'a, F, C>

    The type of the step-circuits on the primary
    §

    type C2 = TrivialSecondaryCircuit<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::Scalar>

    The type of the step-circuits on the secondary
    source§

    fn num_circuits(&self) -> usize

    How many circuits are provided?
    source§

    fn primary_circuit(&self, circuit_index: usize) -> MultiFrame<'a, F, C>

    Return a new instance of the primary circuit at index.
    source§

    fn secondary_circuit(&self) -> C2<F>

    Return a new instance of the secondary circuit.
    §

    fn initial_circuit_index(&self) -> usize

    Initial circuit index, defaults to zero.
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Provable<F> for MultiFrame<'a, F, C>

    source§

    fn public_inputs(&self) -> Vec<F>

    Returns the public inputs of the provable structure.
    source§

    fn public_input_size(&self) -> usize

    Returns the size of the public inputs.
    source§

    fn num_frames(&self) -> usize

    Returns the number of reduction frames in the provable structure.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F> + 'a> Prover<'a, F, MultiFrame<'a, F, C>> for NovaProver<'a, F, C>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type RecursiveSnark = Proof<F, MultiFrame<'a, F, C>>

    Associated proof type, which must implement RecursiveSNARKTrait
    source§

    fn reduction_count(&self) -> usize

    Returns the number of reductions for the prover.
    source§

    fn folding_mode(&self) -> &FoldingMode

    Returns a reference to the prover’s FoldingMode
    source§

    fn evaluate_and_prove( &self, pp: &Self::PublicParams, expr: Ptr, @@ -33,7 +33,7 @@ pp: &Self::PublicParams, steps: Vec<M>, store: &'a Store<F> -) -> Result<(Self::RecursiveSnark, Vec<F>, Vec<F>, usize), ProofError>

    Generates a recursive proof from a vector of M
    source§

    fn expected_num_steps(&self, raw_iterations: usize) -> usize

    Returns the expected total number of steps for the prover given raw iterations.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> Prover<'a, F, MultiFrame<'a, F, C>> for SuperNovaProver<'a, F, C>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type RecursiveSnark = Proof<F, MultiFrame<'a, F, C>>

    Associated proof type, which must implement RecursiveSNARKTrait
    source§

    fn reduction_count(&self) -> usize

    Returns the number of reductions for the prover.
    source§

    fn folding_mode(&self) -> &FoldingMode

    Returns a reference to the prover’s FoldingMode
    source§

    fn evaluate_and_prove( +) -> Result<(Self::RecursiveSnark, Vec<F>, Vec<F>, usize), ProofError>

    Generates a recursive proof from a vector of M
    source§

    fn expected_num_steps(&self, raw_iterations: usize) -> usize

    Returns the expected total number of steps for the prover given raw iterations.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> Prover<'a, F, MultiFrame<'a, F, C>> for SuperNovaProver<'a, F, C>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type RecursiveSnark = Proof<F, MultiFrame<'a, F, C>>

    Associated proof type, which must implement RecursiveSNARKTrait
    source§

    fn reduction_count(&self) -> usize

    Returns the number of reductions for the prover.
    source§

    fn folding_mode(&self) -> &FoldingMode

    Returns a reference to the prover’s FoldingMode
    source§

    fn evaluate_and_prove( &self, pp: &Self::PublicParams, expr: Ptr, @@ -45,45 +45,45 @@ pp: &Self::PublicParams, steps: Vec<M>, store: &'a Store<F> -) -> Result<(Self::RecursiveSnark, Vec<F>, Vec<F>, usize), ProofError>

    Generates a recursive proof from a vector of M
    source§

    fn expected_num_steps(&self, raw_iterations: usize) -> usize

    Returns the expected total number of steps for the prover given raw iterations.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> RecursiveSNARKTrait<F, MultiFrame<'a, F, C>> for Proof<F, C1LEM<'a, F, C>>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type ErrorType = SuperNovaError

    Type for error potentially thrown during verification
    source§

    fn prove_recursively( - pp: &PublicParams<F>, +) -> Result<(Self::RecursiveSnark, Vec<F>, Vec<F>, usize), ProofError>

    Generates a recursive proof from a vector of M
    source§

    fn expected_num_steps(&self, raw_iterations: usize) -> usize

    Returns the expected total number of steps for the prover given raw iterations.
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> RecursiveSNARKTrait<F, MultiFrame<'a, F, C>> for Proof<F, C1LEM<'a, F, C>>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type ErrorType = NovaError

    Type for error potentially thrown during verification
    source§

    fn prove_recursively( + pp: &PublicParams<F>, z0: &[F], steps: Vec<C1LEM<'a, F, C>>, store: &Store<F> -) -> Result<Self, ProofError>

    Generate the recursive SNARK, encoded in ProveOutput
    source§

    fn compress(self, pp: &PublicParams<F>) -> Result<Self, ProofError>

    Compress a proof
    source§

    fn verify( +) -> Result<Self, ProofError>

    Generate the recursive SNARK, encoded in ProveOutput
    source§

    fn compress(self, pp: &PublicParams<F>) -> Result<Self, ProofError>

    Compress a proof
    source§

    fn verify( &self, pp: &Self::PublicParams, z0: &[F], zi: &[F] -) -> Result<bool, Self::ErrorType>

    Verify the proof given the public parameters, the input and output values
    source§

    fn z0_secondary() -> Vec<Dual<F>>

    Return the z0_secondary
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> RecursiveSNARKTrait<F, MultiFrame<'a, F, C>> for Proof<F, C1LEM<'a, F, C>>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type ErrorType = NovaError

    Type for error potentially thrown during verification
    source§

    fn prove_recursively( - pp: &PublicParams<F>, +) -> Result<bool, Self::ErrorType>

    Verify the proof given the public parameters, the input and output values
    source§

    fn z0_secondary() -> Vec<Dual<F>>

    Return the z0_secondary
    source§

    impl<'a, F: CurveCycleEquipped, C: Coprocessor<F>> RecursiveSNARKTrait<F, MultiFrame<'a, F, C>> for Proof<F, C1LEM<'a, F, C>>

    §

    type PublicParams = PublicParams<F>

    Associated type for public parameters
    §

    type ErrorType = SuperNovaError

    Type for error potentially thrown during verification
    source§

    fn prove_recursively( + pp: &PublicParams<F>, z0: &[F], steps: Vec<C1LEM<'a, F, C>>, store: &Store<F> -) -> Result<Self, ProofError>

    Generate the recursive SNARK, encoded in ProveOutput
    source§

    fn compress(self, pp: &PublicParams<F>) -> Result<Self, ProofError>

    Compress a proof
    source§

    fn verify( +) -> Result<Self, ProofError>

    Generate the recursive SNARK, encoded in ProveOutput
    source§

    fn compress(self, pp: &PublicParams<F>) -> Result<Self, ProofError>

    Compress a proof
    source§

    fn verify( &self, pp: &Self::PublicParams, z0: &[F], zi: &[F] -) -> Result<bool, Self::ErrorType>

    Verify the proof given the public parameters, the input and output values
    source§

    fn z0_secondary() -> Vec<Dual<F>>

    Return the z0_secondary
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the the number of inputs or outputs of each step +) -> Result<bool, Self::ErrorType>

    Verify the proof given the public parameters, the input and output values
    source§

    fn z0_secondary() -> Vec<Dual<F>>

    Return the z0_secondary

    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the number of inputs or outputs of each step (this method is called only at circuit synthesis time) synthesize and output methods are expected to take as -input a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS: ConstraintSystem<F>>( +input a vector of size equal to arity and output a vector of size equal to arity

    source§

    fn synthesize<CS>( &self, cs: &mut CS, - _pc: Option<&AllocatedNum<F>>, z: &[AllocatedNum<F>] -) -> Result<(Option<AllocatedNum<F>>, Vec<AllocatedNum<F>>), SynthesisError>

    Synthesize the circuit for a computation step and return variable -that corresponds to the output of the step pc_{i+1} and z_{i+1}
    source§

    fn circuit_index(&self) -> usize

    Return this StepCircuit’s assigned index, for use when enforcing the program counter.
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the number of inputs or outputs of each step +) -> Result<Vec<AllocatedNum<F>>, SynthesisError>
    where + CS: ConstraintSystem<F>,

    Sythesize the circuit for a computation step and return variable +that corresponds to the output of the step z_{i+1}
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the the number of inputs or outputs of each step (this method is called only at circuit synthesis time) synthesize and output methods are expected to take as -input a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS>( +input a vector of size equal to arity and output a vector of size equal to arity

    source§

    fn synthesize<CS: ConstraintSystem<F>>( &self, cs: &mut CS, + _pc: Option<&AllocatedNum<F>>, z: &[AllocatedNum<F>] -) -> Result<Vec<AllocatedNum<F>>, SynthesisError>
    where - CS: ConstraintSystem<F>,

    Sythesize the circuit for a computation step and return variable -that corresponds to the output of the step z_{i+1}

    Auto Trait Implementations§

    §

    impl<'a, F, C> RefUnwindSafe for MultiFrame<'a, F, C>
    where +) -> Result<(Option<AllocatedNum<F>>, Vec<AllocatedNum<F>>), SynthesisError>

    Synthesize the circuit for a computation step and return variable +that corresponds to the output of the step pc_{i+1} and z_{i+1}
    source§

    fn circuit_index(&self) -> usize

    Return this StepCircuit’s assigned index, for use when enforcing the program counter.

    Auto Trait Implementations§

    §

    impl<'a, F, C> RefUnwindSafe for MultiFrame<'a, F, C>

    §

    impl<'a, F, C> Send for MultiFrame<'a, F, C>

    §

    impl<'a, F, C> Sync for MultiFrame<'a, F, C>

    §

    impl<'a, F, C> Unpin for MultiFrame<'a, F, C>
    where F: Unpin,

    §

    impl<'a, F, C> UnwindSafe for MultiFrame<'a, F, C>
    where diff --git a/docs/lurk/lem/pointers/struct.Ptr.html b/docs/lurk/lem/pointers/struct.Ptr.html index 6f73193cb0..fb64e29aa0 100644 --- a/docs/lurk/lem/pointers/struct.Ptr.html +++ b/docs/lurk/lem/pointers/struct.Ptr.html @@ -2,11 +2,11 @@

    Struct lurk::lem::pointers::Ptr

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

    Ptr is a tagged pointer. The tag is there to say what kind of data it encodes. Since tags can be encoded as field elements, they are also able to be expressed as raw pointers. A Ptr can thus be seen as a tuple of RawPtrs.

    -

    Implementations§

    source§

    impl Ptr

    source

    pub fn new(tag: Tag, raw: RawPtr) -> Self

    source

    pub fn tag(&self) -> &Tag

    source

    pub fn raw(&self) -> &RawPtr

    source

    pub fn parts(&self) -> (&Tag, &RawPtr)

    source

    pub fn has_tag(&self, tag: &Tag) -> bool

    source

    pub fn has_tag_in(&self, tags: &[Tag]) -> bool

    source

    pub fn is_sym(&self) -> bool

    source

    pub fn is_num(&self) -> bool

    source

    pub fn is_str(&self) -> bool

    source

    pub fn is_fun(&self) -> bool

    source

    pub fn is_nil(&self) -> bool

    source

    pub fn is_list(&self) -> bool

    source

    pub fn cast(self, tag: Tag) -> Self

    source

    pub fn get_atom(&self) -> Option<usize>

    source

    pub fn get_index2(&self) -> Option<usize>

    source

    pub fn get_index3(&self) -> Option<usize>

    source

    pub fn get_index4(&self) -> Option<usize>

    source

    pub fn atom(tag: Tag, idx: usize) -> Ptr

    source§

    impl Ptr

    Implementations§

    source§

    impl Ptr

    source

    pub fn new(tag: Tag, raw: RawPtr) -> Self

    source

    pub fn tag(&self) -> &Tag

    source

    pub fn raw(&self) -> &RawPtr

    source

    pub fn parts(&self) -> (&Tag, &RawPtr)

    source

    pub fn has_tag(&self, tag: &Tag) -> bool

    source

    pub fn has_tag_in(&self, tags: &[Tag]) -> bool

    source

    pub fn is_sym(&self) -> bool

    source

    pub fn is_num(&self) -> bool

    source

    pub fn is_str(&self) -> bool

    source

    pub fn is_fun(&self) -> bool

    source

    pub fn is_nil(&self) -> bool

    source

    pub fn is_list(&self) -> bool

    source

    pub fn cast(self, tag: Tag) -> Self

    source

    pub fn get_atom(&self) -> Option<usize>

    source

    pub fn get_index2(&self) -> Option<usize>

    source

    pub fn get_index3(&self) -> Option<usize>

    source

    pub fn get_index4(&self) -> Option<usize>

    source

    pub fn atom(tag: Tag, idx: usize) -> Ptr

    source§

    impl Ptr

    source

    pub fn fmt_to_string<F: LurkField>( &self, store: &Store<F>, state: &State -) -> String

    source

    pub fn fmt_to_string_simple<F: LurkField>(&self, store: &Store<F>) -> String

    Trait Implementations§

    source§

    impl CEKState<Ptr> for Vec<Ptr>

    source§

    fn expr(&self) -> &Ptr

    the expression, or control word (C)
    source§

    fn env(&self) -> &Ptr

    the environment (E)
    source§

    fn cont(&self) -> &Ptr

    the continuation (K)
    source§

    impl Clone for Ptr

    source§

    fn clone(&self) -> Ptr

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Ptr

    source§

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

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

    impl<'de> Deserialize<'de> for Ptr

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where +) -> String

    source

    pub fn fmt_to_string_simple<F: LurkField>(&self, store: &Store<F>) -> String

    Trait Implementations§

    source§

    impl CEKState<Ptr> for Vec<Ptr>

    source§

    fn expr(&self) -> &Ptr

    the expression, or control word (C)
    source§

    fn env(&self) -> &Ptr

    the environment (E)
    source§

    fn cont(&self) -> &Ptr

    the continuation (K)
    source§

    impl Clone for Ptr

    source§

    fn clone(&self) -> Ptr

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Ptr

    source§

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

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

    impl<'de> Deserialize<'de> for Ptr

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> FrameLike<Ptr> for MultiFrame<'a, F, C>

    §

    type FrameIO = Vec<Ptr>

    the type for the Frame’s IO
    source§

    fn input(&self) -> &Vec<Ptr>

    the input of the frame
    source§

    fn output(&self) -> &Vec<Ptr>

    the output of the frame
    source§

    impl Hash for Ptr

    source§

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

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

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

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

    impl PartialEq for Ptr

    source§

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

    This method tests for self and other values to be equal, and is used diff --git a/docs/lurk/lem/store/index.html b/docs/lurk/lem/store/index.html index 11c57bb8cb..1fe6938bc6 100644 --- a/docs/lurk/lem/store/index.html +++ b/docs/lurk/lem/store/index.html @@ -1,3 +1,3 @@ lurk::lem::store - Rust -

    Module lurk::lem::store

    source ·

    Structs

    • The Store is a crucial part of Lurk’s implementation and tries to be a -vesatile data structure for many parts of Lurk’s data pipeline.
    \ No newline at end of file +

    Module lurk::lem::store

    source ·

    Structs

    • The Store is a crucial part of Lurk’s implementation and tries to be a +vesatile data structure for many parts of Lurk’s data pipeline.
    • WithStore provides a distinct type for coupling a store with a value of another type.
    \ No newline at end of file diff --git a/docs/lurk/lem/store/sidebar-items.js b/docs/lurk/lem/store/sidebar-items.js index 25d50fac1c..d85b27b2b9 100644 --- a/docs/lurk/lem/store/sidebar-items.js +++ b/docs/lurk/lem/store/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["Store"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["Store","WithStore"]}; \ No newline at end of file diff --git a/docs/lurk/lem/store/struct.Store.html b/docs/lurk/lem/store/struct.Store.html index 858322af14..b43b4cef39 100644 --- a/docs/lurk/lem/store/struct.Store.html +++ b/docs/lurk/lem/store/struct.Store.html @@ -1,4 +1,4 @@ -Store in lurk::lem::store - Rust +Store in lurk::lem::store - Rust

    Struct lurk::lem::store::Store

    source ·
    pub struct Store<F: LurkField> {
         pub poseidon_cache: PoseidonCache<F>,
         pub inverse_poseidon_cache: InversePoseidonCache<F>,
    @@ -15,15 +15,15 @@
     all the hashing to be done by the hydration step in multiple threads.

    The Store also provides an infra to speed up interning strings and symbols. This data is saved in string_ptr_cache and symbol_ptr_cache.

    -

    Fields§

    §poseidon_cache: PoseidonCache<F>§inverse_poseidon_cache: InversePoseidonCache<F>§hash3zeros_idx: usize§hash4zeros_idx: usize§hash6zeros_idx: usize§hash8zeros_idx: usize

    Implementations§

    source§

    impl<F: LurkField> Store<F>

    source

    pub fn hash3_cost(&self) -> usize

    Cost of poseidon hash with arity 3, including the input

    -
    source

    pub fn hash4_cost(&self) -> usize

    Cost of poseidon hash with arity 4, including the input

    -
    source

    pub fn hash6_cost(&self) -> usize

    Cost of poseidon hash with arity 6, including the input

    -
    source

    pub fn hash8_cost(&self) -> usize

    Cost of poseidon hash with arity 8, including the input

    -
    source

    pub fn hash3zeros(&self) -> &F

    Retrieves the hash of 3 padded zeros

    -
    source

    pub fn hash4zeros(&self) -> &F

    Retrieves the hash of 4 padded zeros

    -
    source

    pub fn hash6zeros(&self) -> &F

    Retrieves the hash of 6 padded zeros

    -
    source

    pub fn hash8zeros(&self) -> &F

    Retrieves the hash of 8 padded zeros

    -
    source

    pub fn ptrs_to_raw_ptrs<const N: usize, const P: usize>( +

    Fields§

    §poseidon_cache: PoseidonCache<F>§inverse_poseidon_cache: InversePoseidonCache<F>§hash3zeros_idx: usize§hash4zeros_idx: usize§hash6zeros_idx: usize§hash8zeros_idx: usize

    Implementations§

    source§

    impl<F: LurkField> Store<F>

    source

    pub fn hash3_cost(&self) -> usize

    Cost of poseidon hash with arity 3, including the input

    +
    source

    pub fn hash4_cost(&self) -> usize

    Cost of poseidon hash with arity 4, including the input

    +
    source

    pub fn hash6_cost(&self) -> usize

    Cost of poseidon hash with arity 6, including the input

    +
    source

    pub fn hash8_cost(&self) -> usize

    Cost of poseidon hash with arity 8, including the input

    +
    source

    pub fn hash3zeros(&self) -> &F

    Retrieves the hash of 3 padded zeros

    +
    source

    pub fn hash4zeros(&self) -> &F

    Retrieves the hash of 4 padded zeros

    +
    source

    pub fn hash6zeros(&self) -> &F

    Retrieves the hash of 6 padded zeros

    +
    source

    pub fn hash8zeros(&self) -> &F

    Retrieves the hash of 8 padded zeros

    +
    source

    pub fn ptrs_to_raw_ptrs<const N: usize, const P: usize>( &self, ptrs: &[Ptr; P] ) -> [RawPtr; N]

    Converts array of pointers of size P to array of raw pointers of size N such that P = N * 2. @@ -31,27 +31,27 @@ for generic const P and remove it completely, so we must keep it and do a dynamic assertion that it equals N * 2. This is not very ergonomic though, since we must add turbofishes like ::<6, 3> instead of the simpler ::<3>.

    -
    source

    pub fn raw_ptrs_to_ptrs<const N: usize, const P: usize>( +

    source

    pub fn raw_ptrs_to_ptrs<const N: usize, const P: usize>( &self, raw_ptrs: &[RawPtr; N] ) -> Option<[Ptr; P]>

    Tries to convert array of raw pointers of size N to array of pointers of size P = N * 2. It might fail since not all raw pointers represent valid tags.

    -
    source

    pub fn intern_f(&self, f: F) -> (usize, bool)

    source

    pub fn intern_raw_atom(&self, f: F) -> RawPtr

    Creates an atom RawPtr which points to a cached element of the finite +

    source

    pub fn intern_f(&self, f: F) -> (usize, bool)

    source

    pub fn intern_raw_atom(&self, f: F) -> RawPtr

    Creates an atom RawPtr which points to a cached element of the finite field F

    -
    source

    pub fn intern_atom(&self, tag: Tag, f: F) -> Ptr

    source

    pub fn intern_raw_ptrs<const N: usize>(&self, ptrs: [RawPtr; N]) -> RawPtr

    Creates a RawPtr that’s a parent of N children

    -
    source

    pub fn intern_raw_ptrs_hydrated<const N: usize>( +

    source

    pub fn intern_atom(&self, tag: Tag, f: F) -> Ptr

    source

    pub fn intern_raw_ptrs<const N: usize>(&self, ptrs: [RawPtr; N]) -> RawPtr

    Creates a RawPtr that’s a parent of N children

    +
    source

    pub fn intern_raw_ptrs_hydrated<const N: usize>( &self, ptrs: [RawPtr; N], z: FWrap<F> ) -> RawPtr

    Similar to intern_raw_ptrs but doesn’t add the resulting pointer to dehydrated. This function is used when converting a ZStore to a Store.

    -
    source

    pub fn intern_ptrs<const N: usize, const P: usize>( +

    source

    pub fn intern_ptrs<const N: usize, const P: usize>( &self, tag: Tag, ptrs: [Ptr; P] ) -> Ptr

    Creates a Ptr that’s a parent of N children

    -
    source

    pub fn intern_ptrs_hydrated<const N: usize, const P: usize>( +

    source

    pub fn intern_ptrs_hydrated<const N: usize, const P: usize>( &self, tag: Tag, ptrs: [Ptr; P], @@ -59,40 +59,40 @@ ) -> Ptr

    Similar to intern_ptrs but doesn’t add the resulting pointer to dehydrated. This function is used when converting a ZStore to a Store.

    -
    source

    pub fn fetch_f(&self, idx: usize) -> Option<&F>

    source

    pub fn fetch_raw_ptrs<const N: usize>(&self, idx: usize) -> Option<&[RawPtr; N]>

    source

    pub fn fetch_ptrs<const N: usize, const P: usize>( +

    source

    pub fn fetch_f(&self, idx: usize) -> Option<&F>

    source

    pub fn fetch_raw_ptrs<const N: usize>(&self, idx: usize) -> Option<&[RawPtr; N]>

    source

    pub fn fetch_ptrs<const N: usize, const P: usize>( &self, idx: usize -) -> Option<[Ptr; P]>

    source

    pub fn expect_f(&self, idx: usize) -> &F

    source

    pub fn expect_raw_ptrs<const N: usize>(&self, idx: usize) -> &[RawPtr; N]

    source

    pub fn expect_ptrs<const N: usize, const P: usize>( +) -> Option<[Ptr; P]>

    source

    pub fn expect_f(&self, idx: usize) -> &F

    source

    pub fn expect_raw_ptrs<const N: usize>(&self, idx: usize) -> &[RawPtr; N]

    source

    pub fn expect_ptrs<const N: usize, const P: usize>( &self, idx: usize -) -> [Ptr; P]

    source

    pub fn tag(&self, tag: Tag) -> RawPtr

    source

    pub fn fetch_tag(&self, ptr: &RawPtr) -> Option<Tag>

    source

    pub fn raw_to_ptr(&self, tag: &RawPtr, raw: &RawPtr) -> Option<Ptr>

    source

    pub fn push_binding(&self, sym: Ptr, val: Ptr, env: Ptr) -> Ptr

    source

    pub fn pop_binding(&self, env: Ptr) -> Option<[Ptr; 3]>

    source

    pub fn intern_empty_env(&self) -> Ptr

    source

    pub fn num(&self, f: F) -> Ptr

    source

    pub fn num_u64(&self, u: u64) -> Ptr

    source

    pub fn u64(&self, u: u64) -> Ptr

    source

    pub fn char(&self, c: char) -> Ptr

    source

    pub fn comm(&self, hash: F) -> Ptr

    source

    pub fn raw_zero(&self) -> RawPtr

    source

    pub fn zero(&self, tag: Tag) -> Ptr

    source

    pub fn is_zero(&self, ptr: &RawPtr) -> bool

    source

    pub fn dummy(&self) -> Ptr

    source

    pub fn opaque(&self, z: ZPtr<F>) -> Ptr

    Creates an atom pointer from a ZPtr, with its hash. Hashing +) -> [Ptr; P]

    source

    pub fn tag(&self, tag: Tag) -> RawPtr

    source

    pub fn fetch_tag(&self, ptr: &RawPtr) -> Option<Tag>

    source

    pub fn raw_to_ptr(&self, tag: &RawPtr, raw: &RawPtr) -> Option<Ptr>

    source

    pub fn push_binding(&self, sym: Ptr, val: Ptr, env: Ptr) -> Ptr

    source

    pub fn pop_binding(&self, env: Ptr) -> Option<[Ptr; 3]>

    source

    pub fn push_provenance(&self, sym: Ptr, val: Ptr, env: Ptr) -> Ptr

    source

    pub fn pop_provenance(&self, env: Ptr) -> Option<[Ptr; 3]>

    source

    pub fn intern_empty_env(&self) -> Ptr

    source

    pub fn num(&self, f: F) -> Ptr

    source

    pub fn num_u64(&self, u: u64) -> Ptr

    source

    pub fn u64(&self, u: u64) -> Ptr

    source

    pub fn char(&self, c: char) -> Ptr

    source

    pub fn comm(&self, hash: F) -> Ptr

    source

    pub fn raw_zero(&self) -> RawPtr

    source

    pub fn zero(&self, tag: Tag) -> Ptr

    source

    pub fn is_zero(&self, ptr: &RawPtr) -> bool

    source

    pub fn dummy(&self) -> Ptr

    source

    pub fn opaque(&self, z: ZPtr<F>) -> Ptr

    Creates an atom pointer from a ZPtr, with its hash. Hashing such pointer will result on the same original ZPtr

    -
    source

    pub fn intern_string(&self, s: &str) -> Ptr

    source

    pub fn fetch_string(&self, ptr: &Ptr) -> Option<String>

    source

    pub fn intern_symbol_path(&self, path: &[String]) -> Ptr

    source

    pub fn intern_symbol(&self, sym: &Symbol) -> Ptr

    source

    pub fn fetch_symbol(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn fetch_sym(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn fetch_key(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn intern_lurk_symbol(&self, name: &str) -> Ptr

    source

    pub fn intern_nil(&self) -> Ptr

    source

    pub fn intern_t(&self) -> Ptr

    source

    pub fn intern_user_symbol(&self, name: &str) -> Ptr

    source

    pub fn key(&self, name: &str) -> Ptr

    source

    pub fn add_comm(&self, hash: F, secret: F, payload: Ptr)

    source

    pub fn hide(&self, secret: F, payload: Ptr) -> Ptr

    source

    pub fn hide_and_return_z_payload(&self, secret: F, payload: Ptr) -> (F, ZPtr<F>)

    source

    pub fn commit(&self, payload: Ptr) -> Ptr

    source

    pub fn open(&self, hash: F) -> Option<&(F, Ptr)>

    source

    pub fn cons(&self, car: Ptr, cdr: Ptr) -> Ptr

    source

    pub fn intern_fun(&self, arg: Ptr, body: Ptr, env: Ptr) -> Ptr

    source

    pub fn cont_outermost(&self) -> Ptr

    source

    pub fn cont_error(&self) -> Ptr

    source

    pub fn cont_terminal(&self) -> Ptr

    source

    pub fn car_cdr(&self, ptr: &Ptr) -> Result<(Ptr, Ptr)>

    source

    pub fn list(&self, elts: Vec<Ptr>) -> Ptr

    Interns a sequence of pointers as a proper (nil-terminated) cons-list

    -
    source

    pub fn improper_list(&self, elts: Vec<Ptr>, last: Ptr) -> Ptr

    Interns a sequence of pointers as an improper cons-list whose last +

    source

    pub fn intern_string(&self, s: &str) -> Ptr

    source

    pub fn fetch_string(&self, ptr: &Ptr) -> Option<String>

    source

    pub fn intern_symbol_path(&self, path: &[String]) -> Ptr

    source

    pub fn intern_symbol(&self, sym: &Symbol) -> Ptr

    source

    pub fn fetch_symbol(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn fetch_sym(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn fetch_key(&self, ptr: &Ptr) -> Option<Symbol>

    source

    pub fn intern_lurk_symbol(&self, name: &str) -> Ptr

    source

    pub fn intern_nil(&self) -> Ptr

    source

    pub fn intern_t(&self) -> Ptr

    source

    pub fn intern_user_symbol(&self, name: &str) -> Ptr

    source

    pub fn key(&self, name: &str) -> Ptr

    source

    pub fn add_comm(&self, hash: F, secret: F, payload: Ptr)

    source

    pub fn hide(&self, secret: F, payload: Ptr) -> Ptr

    source

    pub fn hide_and_return_z_payload(&self, secret: F, payload: Ptr) -> (F, ZPtr<F>)

    source

    pub fn commit(&self, payload: Ptr) -> Ptr

    source

    pub fn open(&self, hash: F) -> Option<&(F, Ptr)>

    source

    pub fn cons(&self, car: Ptr, cdr: Ptr) -> Ptr

    source

    pub fn intern_fun(&self, arg: Ptr, body: Ptr, env: Ptr) -> Ptr

    source

    pub fn cont_outermost(&self) -> Ptr

    source

    pub fn cont_error(&self) -> Ptr

    source

    pub fn cont_terminal(&self) -> Ptr

    source

    pub fn car_cdr(&self, ptr: &Ptr) -> Result<(Ptr, Ptr)>

    source

    pub fn list(&self, elts: Vec<Ptr>) -> Ptr

    Interns a sequence of pointers as a proper (nil-terminated) cons-list

    +
    source

    pub fn improper_list(&self, elts: Vec<Ptr>, last: Ptr) -> Ptr

    Interns a sequence of pointers as an improper cons-list whose last element is last

    -
    source

    pub fn fetch_list(&self, ptr: &Ptr) -> Option<(Vec<Ptr>, Option<Ptr>)>

    Fetches a cons list that was interned. If the list is improper, the second +

    source

    pub fn fetch_list(&self, ptr: &Ptr) -> Option<(Vec<Ptr>, Option<Ptr>)>

    Fetches a cons list that was interned. If the list is improper, the second element of the returned pair will carry the improper terminating value

    -
    source

    pub fn fetch_env(&self, ptr: &Ptr) -> Option<Vec<(Ptr, Ptr)>>

    Fetches an environment

    -
    source

    pub fn intern_syntax(&self, syn: Syntax<F>) -> Ptr

    source

    pub fn read(&self, state: Rc<RefCell<State>>, input: &str) -> Result<Ptr>

    source

    pub fn read_maybe_meta<'a>( +

    source

    pub fn fetch_env(&self, ptr: &Ptr) -> Option<Vec<(Ptr, Ptr)>>

    Fetches an environment

    +
    source

    pub fn intern_syntax(&self, syn: Syntax<F>) -> Ptr

    source

    pub fn read(&self, state: Rc<RefCell<State>>, input: &str) -> Result<Ptr>

    source

    pub fn read_maybe_meta<'a>( &self, state: Rc<RefCell<State>>, input: &'a str -) -> Result<(usize, Span<'a>, Ptr, bool), Error>

    source

    pub fn read_with_default_state(&self, input: &str) -> Result<Ptr>

    source

    pub fn hydrate_z_cache(&self)

    Hashes enqueued RawPtr trees from the bottom to the top, avoiding deep +) -> Result<(usize, Span<'a>, Ptr, bool), Error>

    source

    pub fn read_with_default_state(&self, input: &str) -> Result<Ptr>

    source

    pub fn hydrate_z_cache(&self)

    Hashes enqueued RawPtr trees from the bottom to the top, avoiding deep recursions in hash_raw_ptr. Resets the dehydrated queue afterwards.

    -
    source

    pub fn hash_raw_ptr(&self, ptr: &RawPtr) -> FWrap<F>

    Safe version of hash_raw_ptr_unsafe that doesn’t hit a stack overflow by +

    source

    pub fn hash_raw_ptr(&self, ptr: &RawPtr) -> FWrap<F>

    Safe version of hash_raw_ptr_unsafe that doesn’t hit a stack overflow by precomputing the pointers that need to be hashed in order to hash the provided ptr

    -
    source

    pub fn hash_ptr(&self, ptr: &Ptr) -> ZPtr<F>

    Hydrates a Ptr. That is, creates a ZPtr with the tag of the pointer +

    source

    pub fn hash_ptr(&self, ptr: &Ptr) -> ZPtr<F>

    Hydrates a Ptr. That is, creates a ZPtr with the tag of the pointer and the hash of its raw pointer

    -
    source

    pub fn to_scalar_vector(&self, ptrs: &[Ptr]) -> Vec<F>

    Constructs a vector of scalars that correspond to tags and hashes computed +

    source

    pub fn to_scalar_vector(&self, ptrs: &[Ptr]) -> Vec<F>

    Constructs a vector of scalars that correspond to tags and hashes computed from a slice of Ptrs turned into ZPtrs

    -
    source

    pub fn to_scalar_vector_raw(&self, ptrs: &[RawPtr]) -> Vec<F>

    source

    pub fn raw_ptr_eq(&self, a: &RawPtr, b: &RawPtr) -> bool

    Equality of the content-addressed versions of two pointers

    -
    source

    pub fn ptr_eq(&self, a: &Ptr, b: &Ptr) -> bool

    source

    pub fn to_raw_ptr(&self, z: &FWrap<F>) -> RawPtr

    Attempts to recover the RawPtr that corresponds to a field element z +

    source

    pub fn to_scalar_vector_raw(&self, ptrs: &[RawPtr]) -> Vec<F>

    source

    pub fn raw_ptr_eq(&self, a: &RawPtr, b: &RawPtr) -> bool

    Equality of the content-addressed versions of two pointers

    +
    source

    pub fn ptr_eq(&self, a: &Ptr, b: &Ptr) -> bool

    source

    pub fn to_raw_ptr(&self, z: &FWrap<F>) -> RawPtr

    Attempts to recover the RawPtr that corresponds to a field element z from inverse_z_cache. If the mapping is not there, returns a raw atom pointer with value

    -
    source

    pub fn to_ptr(&self, z_ptr: &ZPtr<F>) -> Ptr

    Attempts to recover the Ptr that corresponds to a ZPtr. If the mapping +

    source

    pub fn to_ptr(&self, z_ptr: &ZPtr<F>) -> Ptr

    Attempts to recover the Ptr that corresponds to a ZPtr. If the mapping is not there, returns an atom pointer with the same tag and value

    -

    Trait Implementations§

    source§

    impl<F: Debug + LurkField> Debug for Store<F>

    source§

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

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

    impl<F: LurkField> Default for Store<F>

    source§

    fn default() -> Self

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

    impl<F: LurkField> EvaluationStore for Store<F>

    §

    type Ptr = Ptr

    the type for the Store’s pointers
    §

    type Error = Error

    the type for the Store’s errors
    source§

    fn read(&self, expr: &str) -> Result<Self::Ptr, Self::Error>

    interpreting a string representation of an expression
    source§

    fn initial_empty_env(&self) -> Self::Ptr

    getting a pointer to the initial, empty environment
    source§

    fn get_cont_terminal(&self) -> Self::Ptr

    getting the terminal continuation pointer
    source§

    fn hydrate_z_cache(&self)

    cache hashes for pointers enqueued for hydration
    source§

    fn ptr_eq(&self, left: &Self::Ptr, right: &Self::Ptr) -> bool

    hash-equality of the expressions represented by Ptrs

    Auto Trait Implementations§

    §

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

    Trait Implementations§

    source§

    impl<F: Debug + LurkField> Debug for Store<F>

    source§

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

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

    impl<F: LurkField> Default for Store<F>

    source§

    fn default() -> Self

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

    impl<F: LurkField> EvaluationStore for Store<F>

    §

    type Ptr = Ptr

    the type for the Store’s pointers
    §

    type Error = Error

    the type for the Store’s errors
    source§

    fn read(&self, expr: &str) -> Result<Self::Ptr, Self::Error>

    interpreting a string representation of an expression
    source§

    fn initial_empty_env(&self) -> Self::Ptr

    getting a pointer to the initial, empty environment
    source§

    fn get_cont_terminal(&self) -> Self::Ptr

    getting the terminal continuation pointer
    source§

    fn hydrate_z_cache(&self)

    cache hashes for pointers enqueued for hydration
    source§

    fn ptr_eq(&self, left: &Self::Ptr, right: &Self::Ptr) -> bool

    hash-equality of the expressions represented by Ptrs

    Auto Trait Implementations§

    §

    impl<F> RefUnwindSafe for Store<F>

    §

    impl<F> Send for Store<F>

    §

    impl<F> Sync for Store<F>

    §

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

    §

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

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/docs/lurk/lem/store/struct.WithStore.html b/docs/lurk/lem/store/struct.WithStore.html new file mode 100644 index 0000000000..dbdd1a138b --- /dev/null +++ b/docs/lurk/lem/store/struct.WithStore.html @@ -0,0 +1,126 @@ +WithStore in lurk::lem::store - Rust +

    Struct lurk::lem::store::WithStore

    source ·
    pub struct WithStore<'a, F: LurkField, T>(pub T, pub &'a Store<F>);
    Expand description

    WithStore provides a distinct type for coupling a store with a value of another type.

    +

    Tuple Fields§

    §0: T§1: &'a Store<F>

    Implementations§

    source§

    impl<'a, F: LurkField, T> WithStore<'a, F, T>

    source

    pub fn store(&self) -> &Store<F>

    source

    pub fn inner(&self) -> &T

    source

    pub fn to_inner(self) -> T

    Trait Implementations§

    source§

    impl<'a, F: LurkField> Debug for WithStore<'a, F, Provenance>

    source§

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

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<'a, F, T> RefUnwindSafe for WithStore<'a, F, T>

    §

    impl<'a, F, T> Send for WithStore<'a, F, T>
    where + T: Send,

    §

    impl<'a, F, T> Sync for WithStore<'a, F, T>
    where + T: Sync,

    §

    impl<'a, F, T> Unpin for WithStore<'a, F, T>
    where + T: Unpin,

    §

    impl<'a, F, T> UnwindSafe for WithStore<'a, F, T>
    where + F: UnwindSafe + RefUnwindSafe, + T: UnwindSafe,

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata +) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

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

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

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

    source§

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

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<F, W, T, D> Deserialize<With<T, W>, D> for F
    where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

    §

    fn deserialize( + &self, + deserializer: &mut D +) -> Result<With<T, W>, <D as Fallible>::Error>

    Deserializes using the given deserializer
    §

    impl<T> FmtForward for T

    §

    fn fmt_binary(self) -> FmtBinary<Self>
    where + Self: Binary,

    Causes self to use its Binary implementation when Debug-formatted.
    §

    fn fmt_display(self) -> FmtDisplay<Self>
    where + Self: Display,

    Causes self to use its Display implementation when +Debug-formatted.
    §

    fn fmt_lower_exp(self) -> FmtLowerExp<Self>
    where + Self: LowerExp,

    Causes self to use its LowerExp implementation when +Debug-formatted.
    §

    fn fmt_lower_hex(self) -> FmtLowerHex<Self>
    where + Self: LowerHex,

    Causes self to use its LowerHex implementation when +Debug-formatted.
    §

    fn fmt_octal(self) -> FmtOctal<Self>
    where + Self: Octal,

    Causes self to use its Octal implementation when Debug-formatted.
    §

    fn fmt_pointer(self) -> FmtPointer<Self>
    where + Self: Pointer,

    Causes self to use its Pointer implementation when +Debug-formatted.
    §

    fn fmt_upper_exp(self) -> FmtUpperExp<Self>
    where + Self: UpperExp,

    Causes self to use its UpperExp implementation when +Debug-formatted.
    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where + Self: UpperHex,

    Causes self to use its UpperHex implementation when +Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    §

    impl<T> LayoutRaw for T

    §

    fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

    Gets the layout of the type.
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

    impl<T> Pipe for T
    where + T: ?Sized,

    §

    fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
    where + Self: Sized,

    Pipes by value. This is generally the method you want to use. Read more
    §

    fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
    where + R: 'a,

    Borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
    where + R: 'a,

    Mutably borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
    where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.borrow() into the pipe function. Read more
    §

    fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R +) -> R
    where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
    §

    fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
    where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.as_ref() into the pipe function.
    §

    fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
    where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.as_mut() into the pipe +function.
    §

    fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
    where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.deref() into the pipe function.
    §

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

    Mutably borrows self, then passes self.deref_mut() into the pipe +function.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<T> Pointee for T

    §

    type Metadata = ()

    The type for metadata in pointers and references to Self.
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> Tap for T

    §

    fn tap(self, func: impl FnOnce(&Self)) -> Self

    Immutable access to a value. Read more
    §

    fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

    Mutable access to a value. Read more
    §

    fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Immutable access to the Borrow<B> of a value. Read more
    §

    fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Mutable access to the BorrowMut<B> of a value. Read more
    §

    fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Immutable access to the AsRef<R> view of a value. Read more
    §

    fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Mutable access to the AsMut<R> view of a value. Read more
    §

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

    Immutable access to the Deref::Target of a value. Read more
    §

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

    Mutable access to the Deref::Target of a value. Read more
    §

    fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

    Calls .tap() only in debug builds, and is erased in release builds.
    §

    fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

    Calls .tap_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Calls .tap_borrow() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Calls .tap_ref() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
    §

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

    Calls .tap_deref() only in debug builds, and is erased in release +builds.
    §

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

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

    impl<T> TryConv for T

    §

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

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

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

    §

    type Error = Infallible

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

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

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

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

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<T> Upcastable for T
    where + T: Any + Send + Sync + 'static,

    §

    fn upcast_any_ref(&self) -> &(dyn Any + 'static)

    upcast ref
    §

    fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

    upcast mut ref
    §

    fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

    upcast boxed dyn
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/docs/lurk/lem/struct.Var.html b/docs/lurk/lem/struct.Var.html index c2d02cd0c0..d99e438f2d 100644 --- a/docs/lurk/lem/struct.Var.html +++ b/docs/lurk/lem/struct.Var.html @@ -1,6 +1,6 @@ Var in lurk::lem - Rust

    Struct lurk::lem::Var

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

    LEM variables

    -

    Implementations§

    source§

    impl Var

    source

    pub fn name(&self) -> &AString

    source

    pub fn new(name: &str) -> Self

    Trait Implementations§

    source§

    impl Clone for Var

    source§

    fn clone(&self) -> Var

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Var

    source§

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

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

    impl Display for Var

    source§

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

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

    impl Hash for Var

    source§

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

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

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

    Implementations§

    source§

    impl Var

    source

    pub fn name(&self) -> &AString

    source

    pub fn new(name: &str) -> Self

    Trait Implementations§

    source§

    impl Clone for Var

    source§

    fn clone(&self) -> Var

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Var

    source§

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

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

    impl Display for Var

    source§

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

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

    impl Hash for Var

    source§

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

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

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

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

    impl PartialEq for Var

    source§

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

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

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

    This method tests for !=. The default implementation is almost always diff --git a/docs/lurk/parser/enum.Error.html b/docs/lurk/parser/enum.Error.html index 6e5c4725cd..1e696a3020 100644 --- a/docs/lurk/parser/enum.Error.html +++ b/docs/lurk/parser/enum.Error.html @@ -2,7 +2,7 @@

    Enum lurk::parser::Error

    source ·
    pub enum Error {
         NoInput,
         Syntax(String),
    -}

    Variants§

    §

    NoInput

    §

    Syntax(String)

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Error

    source§

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

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

    impl Display for Error

    source§

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

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

    impl Error for Error

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl UnwindSafe for Error

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Variants§

    §

    NoInput

    §

    Syntax(String)

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Error

    source§

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

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

    impl Display for Error

    source§

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

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

    impl Error for Error

    1.30.0 · source§

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

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

    fn description(&self) -> &str

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

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

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

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

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

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl UnwindSafe for Error

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    source§

    impl<T> Borrow<T> for T
    where diff --git a/docs/lurk/parser/error/enum.ParseErrorKind.html b/docs/lurk/parser/error/enum.ParseErrorKind.html index 66a2aa688a..0104e24b40 100644 --- a/docs/lurk/parser/error/enum.ParseErrorKind.html +++ b/docs/lurk/parser/error/enum.ParseErrorKind.html @@ -9,7 +9,7 @@ InvalidChar(String), Nom(ErrorKind), InterningError(String), -}

    Variants§

    §

    InvalidBase16EscapeSequence(String, Option<ParseIntError>)

    §

    InvalidBaseEncoding(LitBase)

    §

    NumError(String)

    §

    NumLiteralTooBig(F, BigUint)

    §

    UnknownBaseCode

    §

    ParseIntErr(ParseIntError)

    §

    InvalidChar(String)

    §

    Nom(ErrorKind)

    §

    InterningError(String)

    Implementations§

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for ParseErrorKind<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for ParseErrorKind<F>

    source§

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

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

    impl<F: LurkField> Display for ParseErrorKind<F>

    source§

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

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

    impl<F: PartialEq + LurkField> PartialEq for ParseErrorKind<F>

    source§

    fn eq(&self, other: &ParseErrorKind<F>) -> bool

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

    Variants§

    §

    InvalidBase16EscapeSequence(String, Option<ParseIntError>)

    §

    InvalidBaseEncoding(LitBase)

    §

    NumError(String)

    §

    NumLiteralTooBig(F, BigUint)

    §

    UnknownBaseCode

    §

    ParseIntErr(ParseIntError)

    §

    InvalidChar(String)

    §

    Nom(ErrorKind)

    §

    InterningError(String)

    Implementations§

    Trait Implementations§

    source§

    impl<F: Clone + LurkField> Clone for ParseErrorKind<F>

    source§

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

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

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

    Performs copy-assignment from source. Read more
    source§

    impl<F: Debug + LurkField> Debug for ParseErrorKind<F>

    source§

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

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

    impl<F: LurkField> Display for ParseErrorKind<F>

    source§

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

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

    impl<F: PartialEq + LurkField> PartialEq for ParseErrorKind<F>

    source§

    fn eq(&self, other: &ParseErrorKind<F>) -> bool

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

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

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

    impl<F: Eq + LurkField> Eq for ParseErrorKind<F>

    source§

    impl<F: LurkField> StructuralEq for ParseErrorKind<F>

    source§

    impl<F: LurkField> StructuralPartialEq for ParseErrorKind<F>

    Auto Trait Implementations§

    §

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

    §

    impl<F> Send for ParseErrorKind<F>

    §

    impl<F> Sync for ParseErrorKind<F>

    §

    impl<F> Unpin for ParseErrorKind<F>
    where diff --git a/docs/lurk/struct.Symbol.html b/docs/lurk/struct.Symbol.html index a0edeaefd1..7e7688944b 100644 --- a/docs/lurk/struct.Symbol.html +++ b/docs/lurk/struct.Symbol.html @@ -8,8 +8,8 @@ of the generated Strategy. Parameters must implement Default.

    §

    type Strategy = Map<(<Vec<String> as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy), fn(_: (Vec<String>, bool)) -> Symbol>

    The type of Strategy used to generate values of type Self.
    source§

    fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values -of type the implementing type (Self). Read more
    source§

    impl Clone for Symbol

    source§

    fn clone(&self) -> Symbol

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Symbol

    source§

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

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

    impl<'de> Deserialize<'de> for Symbol

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Symbol

    source§

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

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

    impl From<&'static str> for Symbol

    source§

    fn from(value: &'static str) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for Symbol

    source§

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

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

    fn hash_slice<H>(data: &[Self], state: &mut H)
    where +of type the implementing type (Self). Read more

    source§

    impl Clone for Symbol

    source§

    fn clone(&self) -> Symbol

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Symbol

    source§

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

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

    impl<'de> Deserialize<'de> for Symbol

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for Symbol

    source§

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

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

    impl From<&'static str> for Symbol

    source§

    fn from(value: &'static str) -> Self

    Converts to this type from the input type.
    source§

    impl Hash for Symbol

    source§

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

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

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

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

    impl PartialEq for Symbol

    source§

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

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

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

    This method tests for !=. The default implementation is almost always diff --git a/docs/lurk/z_data/enum.ZData.html b/docs/lurk/z_data/enum.ZData.html index 0828d33e6e..4b3040d79b 100644 --- a/docs/lurk/z_data/enum.ZData.html +++ b/docs/lurk/z_data/enum.ZData.html @@ -31,7 +31,7 @@
    Errors
    of the generated Strategy. Parameters must implement Default.
    §

    type Strategy = BoxedStrategy<ZData>

    The type of Strategy used to generate values of type Self.
    source§

    fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values -of type the implementing type (Self). Read more
    source§

    impl Clone for ZData

    source§

    fn clone(&self) -> ZData

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ZData

    source§

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

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

    impl Display for ZData

    source§

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

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

    impl PartialEq for ZData

    source§

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

    This method tests for self and other values to be equal, and is used +of type the implementing type (Self). Read more
    source§

    impl Clone for ZData

    source§

    fn clone(&self) -> ZData

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

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

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ZData

    source§

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

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

    impl Display for ZData

    source§

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

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

    impl PartialEq for ZData

    source§

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

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

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

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

    impl Eq for ZData

    source§

    impl StructuralEq for ZData

    source§

    impl StructuralPartialEq for ZData

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for ZData

    §

    impl Send for ZData

    §

    impl Sync for ZData

    §

    impl Unpin for ZData

    §

    impl UnwindSafe for ZData

    Blanket Implementations§

    source§

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

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( diff --git a/docs/search-index.js b/docs/search-index.js index 08fcac0c17..171466221d 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["lurk",{"doc":"Lurk","t":"GPFPPGNNNNNNQNNNNNNQCCNNNNNNCCCQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNCNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNQNNNCQQNNNNNNNQQCNNNNNNNNCCNNNNNNNNCQNNNQNQQNNNNNNNNNNNNNNNQNNNNNNNNNQQNNNECEEECCCCKMMMHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCHGJJPFPFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNHHOONNNNNOOHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKNCMNNMCNCNNNCCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIGIPFFPFFPPFIIFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCRRKKFFFFFKKFFMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNMNMNNNNNNNNMNNNNNNNNNNMNNNMMNNNNNMNMMNMNMMNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNNONONCNONNNNNNNNNOFGPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPTFPGKTPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIPPFPPPPPPPGPPPPPPPPFPPPPPPGPPPPPPPGPPPPPPPPPPFPNONNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNCNONNNONNNNNNCOCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGPPFPPFFNNNNNNNONNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNHHHHHHNNNNHHNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPFGINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGJPPIIPNCNNNNNNNNCONNNNNNNNNCCCNNNNNNNNNPPPGPNNNNNNNNNNNNNNNNNNNNNNNNNHNHHHHHHHNNNNNNNNNNPPPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNONNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPPGNNNNNNNNNNNNNNNNNNNHHHHHHHHNNNNNNNNNHHHHHHHHHHHHHHHHHHHHHKRRKGRKPPKKRRRKRNNMMNNNNMMNMNMNMMNMMNNCMMNNMMMMMMCNNNNNNMNNIIPKIIRIRIRIFIGFPIINNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNHNNNNNNNNNNNNNNNNNNNNNNNNNNIPIIGPPGFPIIIFINNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHHHFGFPPPOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNHNNNNNHHNNNNNNNNNNNNHNPPGNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNHNNNNNNNCCCCPPPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOIIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNN","n":["Num","Scalar","Symbol","U64","U64","UInt","add","add_assign","arbitrary_with","arbitrary_with","arbitrary_with","as_child","block","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","char","circuit","cli","clone","clone","clone","clone_into","clone_into","clone_into","config","coprocessor","coroutine","ctrl","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","direct_child","direct_parent","div","div_assign","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error","eval","extend","field","fmt","fmt","fmt","fmt","fmt","fmt","fmt_path_component_to_string","fmt_path_to_string","fmt_to_string","from","from","from","from","from","from","from","from_scalar","from_str_impl","func","get_hash","get_hash","has_parent","hash","hash","header","header","header","init","init","init","into","into","into","into_scalar","is_keyword","is_negative","is_root","is_root_key","is_root_sym","is_whitespace","is_zero","is_zero","key","key_from_vec","keyword","layout_raw","layout_raw","layout_raw","lem","list","lit","most_negative","most_positive","mul","mul_assign","name","new","new_from_vec","num","op","parser","partial_cmp","partial_cmp","partial_cmp","path","pointer_metadata","pointer_metadata","pointer_metadata","prints_as_absolute","proof","public_parameters","rem","root","root_key","root_sym","serialize","serialize","serialize","set_as_keyword","state","str","sub","sub_assign","sym","sym","sym_from_vec","symbol","tag","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","uint","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","var","vars","vzip","vzip","vzip","z_cont","z_data","z_expr","z_ptr","z_store","gadgets","circom","constraints","pointer","CircomGadget","evaluate_simple","into_circom_input","name","alloc_equal","AllocatedContPtr","AllocatedPtr","alloc","alloc","alloc_constant","alloc_constant","alloc_equal","alloc_equal","alloc_infallible","alloc_tag","alloc_tag_equal","alloc_tag_equal","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","enforce_equal","enforce_equal","fmt","fmt","from","from","from","from","from_parts","get_value","hash","hash","implies_ptr_equal","init","init","into","into","is_char","is_comm","is_cons","is_fun","is_num","is_str","is_sym","is_thunk","is_u64","layout_raw","layout_raw","pick","pick","pick_const","pointer_metadata","pointer_metadata","tag","tag","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","parse_and_run","paths","lurk_default_dir","Flow","LURK_CONFIG","LURK_CONFIG_FILE","Parallel","ParallelConfig","ParallelN","PerfConfig","Sequential","Settings","WitnessGeneration","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","default","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_config","home_dir","init","init","init","init","init","into","into","into","into","into","is_parallel","is_sequential","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","lurk_config","lurk_config_file","parallelism","perf","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","poseidon_witnesses","precompute_neptune","public_params_default_dir","public_params_dir","recursive_steps","synthesis","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","witness_generation","CoCircuit","Coprocessor","arity","circom","eval_arity","evaluate","evaluate_internal","evaluate_simple","gadgets","has_circuit","sha256","synthesize","synthesize_internal","synthesize_simple","trie","non_wasm","CircomCoprocessor","arity","borrow","borrow_mut","clone","clone_into","create","deref","deref_mut","deserialize","drop","eval_arity","evaluate_simple","fmt","from","has_circuit","init","into","layout_raw","name","new","pointer_metadata","synthesize_simple","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","a_ptr_as_z_ptr","chain_car_cdr","SC","Sha256Coproc","Sha256Coprocessor","arity","arity","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","fmt","fmt","from","from","from","has_circuit","has_circuit","init","init","into","into","layout_raw","layout_raw","new","pointer_metadata","pointer_metadata","serialize","serialize","synthesize","synthesize_internal","synthesize_simple","synthesize_simple","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","ChildMap","Error","HashPreimagePath","Insert","InsertCoprocessor","InsertProof","Lookup","LookupCoprocessor","LookupProof","MissingPreimage","New","NewCoprocessor","PreimagePath","StandardTrie","Trie","TrieCoproc","arity","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","constants","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","empty_root","eval_arity","eval_arity","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","evaluate_simple","evaluate_simple","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","has_circuit","has_circuit","has_circuit","has_circuit","init","init","init","init","init","init","init","init","insert","install","into","into","into","into","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","leaves","lookup","new","new_with_capacity","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","prove_insert","prove_lookup","root","row_size","serialize","serialize","serialize","synthesize","synthesize_insert","synthesize_internal","synthesize_simple","synthesize_simple","synthesize_simple","synthesize_simple","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_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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","memoset","CM","CQ","CircuitMemoSet","CircuitQuery","CircuitScope","CircuitTranscript","CoroutineCircuit","LogMemo","LogMemoCircuit","MemoSet","Query","Scope","Transcript","add","add","allocated_r","allocated_r","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count","count","count","count","count","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","dummy_from_index","dummy_from_index","eval","finalize_transcript","finalize_transcript","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_ptr","from_ptr","index","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into_circuit","into_circuit","is_finalized","is_finalized","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","map_to_element","map_to_element","pick","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","query","r","r","recursive_eval","recursive_eval","symbol","symbol","symbol_ptr","symbol_ptr","symbol_ptr","symbol_ptr","synthesize","synthesize_add","synthesize_add","synthesize_eval","synthesize_map_to_element","synthesize_map_to_element","synthesize_remove_n","synthesize_remove_n","to_circuit","to_circuit","to_circuit","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_ptr","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Misc","Nova","ProofError","Reduction","ReductionError","Store","SuperNova","Synthesis","as_error","as_error","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","header","header","in_current_span","in_current_span","init","init","into","into","layout_raw","layout_raw","pointer_metadata","pointer_metadata","source","source","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","Frame","_p","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","i","init","input","into","lang","layout_raw","output","pointer_metadata","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","witness","Binding","Coproc","Dummy","DummyCoprocessor","Lang","add_binding","add_coprocessor","arity","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coprocessor_count","coprocessors","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_index_by_symbol","has_circuit","has_coprocessors","init","init","init","init","into","into","into","into","is_default","key","layout_raw","layout_raw","layout_raw","layout_raw","lookup_by_sym","new","new","new_with_bindings","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","serialize","serialize","serialize","synthesize","synthesize_internal","synthesize_simple","to_owned","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","BN256","FIELD","FWrap","Grumpkin","LanguageField","LurkField","NON_HIDING_COMMITMENT_SECRET","Pallas","Vesta","arbitrary_with","arbitrary_with","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","compare","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from_bytes","from_char","from_cont_tag","from_expr_tag","from_op1","from_op2","from_u16","from_u32","from_u64","get_field","get_hash","hash","header","hex_digits","init","init","into","into","is_negative","layout_raw","layout_raw","most_negative","most_positive","partial_cmp","pointer_metadata","pointer_metadata","serialize","serialize","to_bytes","to_char","to_cont_tag","to_expr_tag","to_op1","to_op2","to_owned","to_owned","to_possible_value","to_string","to_u128","to_u128_unchecked","to_u16","to_u32","to_u32_unchecked","to_u64","to_u64_unchecked","trimmed_hex_digits","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","value_variants","vzip","vzip","AString","Add","And","Block","Call","Cast","Cons2","Cons3","Cons4","Copy","Cproc","Ctrl","Decons2","Decons3","Decons4","Div","DivRem64","Emit","EqTag","EqVal","Func","Hash3Zeros","Hash4Zeros","Hash6Zeros","Hash8Zeros","Hide","If","Lit","Lit","Lt","MatchSymbol","MatchTag","Mul","Not","Num","Op","Open","Or","PopBinding","PushBinding","Return","String","Sub","Symbol","Trunc","Unit","Var","Zero","alloc_consts","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","call_simple","check","circuit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_slots","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_hash","get_hash","hash","hash","header","init","init","init","init","init","init","input_params","into","into","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","multiframe","name","name","new","new","num_constraints","output_size","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointers","slots_count","store","synthesize_frame","synthesize_frame_aux","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_ptr","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unroll","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","vzip","AllocatedVal","Bits","Boolean","GlobalAllocator","Number","Pointer","SlotWitness","SlotsAllocations","alloc_const","alloc_const_cloned","alloc_ptr","alloc_tag","alloc_tag_cloned","alloc_z_ptr","alloc_z_ptr_from_parts","allocations","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_slots_allocations","clone","clone_into","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","from","from","from","from","init","init","init","init","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","witness","EvalConfig","borrow","borrow_mut","deref","deref_mut","deserialize","drop","eval_step","evaluate","evaluate_simple","evaluate_simple_with_env","evaluate_with_env","evaluate_with_env_and_cont","from","init","into","layout_raw","make_cprocs_funcs_from_lang","make_eval_step_from_config","new_ivc","new_nivc","pointer_metadata","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","MultiFrame","arity","arity","blank","borrow","borrow_mut","build_frames","cache_witness","circuit_index","clear_cached_witness","clone","clone_into","deref","deref_mut","deserialize","drop","emitted","fmt","frames","from","from_frames","init","input","into","layout_raw","num_circuits","num_frames","output","pointer_metadata","precedes","primary_circuit","program_counter","public_input_size","public_inputs","secondary_circuit","significant_frame_count","synthesize","synthesize","synthesize","synthesize_frames","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Atom","Hash4","Hash6","Hash8","Ptr","RawPtr","ZPtr","atom","borrow","borrow","borrow_mut","borrow_mut","cast","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","dummy","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt_to_string","fmt_to_string_simple","from","from","get_atom","get_atom","get_hash","get_hash","get_hash4","get_hash6","get_hash8","get_index2","get_index3","get_index4","has_tag","has_tag_in","hash","hash","init","init","into","into","is_fun","is_hash","is_list","is_nil","is_num","is_str","is_sym","layout_raw","layout_raw","new","parts","pointer_metadata","pointer_metadata","raw","serialize","serialize","tag","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","Store","add_comm","borrow","borrow_mut","car_cdr","char","comm","commit","cons","cont_error","cont_outermost","cont_terminal","default","deref","deref_mut","deserialize","drop","dummy","expect_f","expect_ptrs","expect_raw_ptrs","fetch_env","fetch_f","fetch_key","fetch_list","fetch_ptrs","fetch_raw_ptrs","fetch_string","fetch_sym","fetch_symbol","fetch_tag","fmt","from","get_cont_terminal","hash3_cost","hash3zeros","hash3zeros_idx","hash4_cost","hash4zeros","hash4zeros_idx","hash6_cost","hash6zeros","hash6zeros_idx","hash8_cost","hash8zeros","hash8zeros_idx","hash_ptr","hash_raw_ptr","hide","hide_and_return_z_payload","hydrate_z_cache","hydrate_z_cache","improper_list","init","initial_empty_env","intern_atom","intern_empty_env","intern_f","intern_fun","intern_lurk_symbol","intern_nil","intern_ptrs","intern_ptrs_hydrated","intern_raw_atom","intern_raw_ptrs","intern_raw_ptrs_hydrated","intern_string","intern_symbol","intern_symbol_path","intern_syntax","intern_t","intern_user_symbol","into","inverse_poseidon_cache","is_zero","key","layout_raw","list","num","num_u64","opaque","open","pointer_metadata","pop_binding","poseidon_cache","ptr_eq","ptr_eq","ptrs_to_raw_ptrs","push_binding","raw_ptr_eq","raw_ptrs_to_ptrs","raw_to_ptr","raw_zero","read","read","read_maybe_meta","read_with_default_state","tag","to_ptr","to_raw_ptr","to_scalar_vector","to_scalar_vector_raw","try_from","try_into","type_id","u64","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","zero","Cont","Expr","Op1","Op2","Tag","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","get_hash","hash","header","index","init","into","layout_raw","pointer_metadata","pos","serialize","to_field","to_owned","to_string","try_from","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Err","Error","LURK_WHITESPACE","NoInput","Ok","ParseResult","Span","Syntax","as_error","base","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","error","extra","fmt","fmt","from","header","in_current_span","init","into","layout_raw","pointer_metadata","position","string","syntax","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Bin","Dec","Hex","LitBase","Oct","base_digits","borrow","borrow_mut","clone","clone_into","code","decode","default","deref","deref_mut","deserialize","drop","encode","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","init","into","is_digit","layout_raw","parse_bin_digits","parse_code","parse_dec_digits","parse_hex_digits","parse_litbase_be_bytes","parse_litbase_code","parse_litbase_digits","parse_litbase_le_bytes","parse_oct_digits","pointer_metadata","radix","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","InterningError","InvalidBase16EscapeSequence","InvalidBaseEncoding","InvalidChar","Nom","NumError","NumLiteralTooBig","ParseError","ParseErrorKind","ParseIntErr","UnknownBaseCode","add_context","append","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","errors","expected","fmt","fmt","fmt","fmt","from","from","from_error_kind","header","header","init","init","input","into","into","is_nom_err","layout_raw","layout_raw","map_parse_err","new","opt","or","pointer_metadata","pointer_metadata","res","throw","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","No","Pos","Pos","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","from_upto","get_from_offset","init","into","layout_raw","pointer_metadata","range","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","from_column","from_line","from_offset","upto_column","upto_line","upto_offset","EscapedChar","EscapedWS","Literal","StringFragment","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","init","into","layout_raw","parse_escaped_char","parse_escaped_whitespace","parse_fragment","parse_literal","parse_string","parse_string_inner","parse_string_inner1","parse_unicode","pointer_metadata","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","parse_absolute_symbol","parse_char","parse_hash_char","parse_line_comment","parse_list","parse_maybe_meta","parse_num","parse_num_inner","parse_quote","parse_raw_keyword","parse_raw_symbol","parse_relative_symbol","parse_space","parse_space1","parse_string","parse_symbol","parse_symbol_limb","parse_symbol_limb_raw","parse_symbol_limbs","parse_syntax","parse_uint","CEKState","Error","ErrorType","EvaluationStore","FoldingMode","FrameIO","FrameLike","IVC","NIVC","Provable","Prover","Ptr","PublicParams","PublicParams","RecursiveSNARKTrait","RecursiveSnark","borrow","borrow_mut","compress","cont","deref","deref_mut","deserialize","drop","env","evaluate_and_prove","expected_num_steps","expr","fmt","folding_mode","from","get_cont_terminal","hydrate_z_cache","init","initial_empty_env","input","into","layout_raw","nova","num_frames","output","pointer_metadata","prove","prove_recursively","ptr_eq","public_input_size","public_inputs","read","reduction_count","supernova","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","verify","vzip","z0_secondary","C1LEM","C2","Compressed","CurveCycleEquipped","Dual","E1","E1","EE1","EE1","EE2","EE2","NovaCircuitShape","NovaProver","NovaPublicParams","Proof","PublicParams","Recursive","SS1","SS2","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","circuit_cache_key","circuits","compress","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","evaluate_and_prove","fmt","fmt","folding_mode","from","from","from","from","init","init","init","into","into","into","layout_raw","layout_raw","layout_raw","new","pk","pointer_metadata","pointer_metadata","pointer_metadata","pp","prove_from_frames","prove_recursively","public_params","reduction_count","serialize","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","vk","vzip","vzip","vzip","C2","Compressed","EE1","EE2","FoldingConfig","IVC","NIVC","Proof","PublicParams","Recursive","SS1","SS2","SuperNovaAuxParams","SuperNovaProver","SuperNovaPublicParams","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_cache_key","circuit_cache_keys","clone","clone_into","compress","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","evaluate_and_prove","fmt","fmt","folding_mode","from","from","from","from","from","index","init","init","init","init","into","into","into","into","lang","layout_raw","layout_raw","layout_raw","layout_raw","new","new_ivc","new_nivc","num_circuits","pk","pk_and_vk","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pp","prove_from_frames","prove_recursively","public_params","reduction_count","reduction_count","serialize","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","vk","vzip","vzip","vzip","vzip","disk_cache","instance","public_params","supernova_aux_params","supernova_circuit_params","supernova_public_params","Instance","Kind","Metadata","NovaPublicParams","SuperNovaAuxParams","SuperNovaCircuitParams","abomonated","abomonated","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cache_key","cache_key","circuit_param_instances","clone","clone","clone_into","clone_into","create","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","key","kind","kind","lang","lang","lang","layout_raw","layout_raw","layout_raw","new","open","pointer_metadata","pointer_metadata","pointer_metadata","rc","rc","reindex","serialize","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","State","add_package","borrow","borrow_mut","default","deref","deref_mut","deserialize","drop","fmt","fmt_to_string","from","get_current_package_name","import","init","init_lurk_state","initial_lurk_state","intern","intern_path","intern_relative_path","into","layout_raw","lurk_sym","meta_package_symbol","new_with_package","pointer_metadata","rccell","resolve","set_current_package","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","use_package","user_sym","vzip","Atom","Cell","ZData","arbitrary_with","borrow","borrow_mut","byte_count","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_z_data","header","init","into","layout_raw","pointer_metadata","read_size_bytes","tag","tag_is_atom","tag_is_small","to_bytes","to_owned","to_string","to_trimmed_le_bytes","to_z_data","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_cont","z_expr","z_ptr","z_store","Binop","Binop2","Call","Call0","Call2","Dummy","Emit","Error","If","Let","LetRec","Lookup","Outermost","Tail","Terminal","Unop","ZCont","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","hash_components","init","into","layout_raw","pointer_metadata","serialize","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_ptr","body","body","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","evaled_arg","function","operator","operator","operator","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","unevaled_arg","unevaled_args","unevaled_args","var","var","Char","Comm","Cons","EmptyStr","Fun","Key","Nil","Num","RootKey","RootSym","Str","Sym","Thunk","UInt","ZExpr","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","header","init","into","layout_raw","pointer_metadata","serialize","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_ptr","arg","body","closed_env","ZContPtr","ZExprPtr","ZPtr","arbitrary_with","borrow","borrow_mut","clone","clone_into","cmp","compare","deref","deref_mut","deserialize","deserialize","drop","dummy","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from_base32","from_parts","get_hash","hash","header","init","into","layout_raw","partial_cmp","parts","pointer_metadata","serialize","tag","tag_field","to_base32","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","value","vzip","ZStore","arbitrary_with","borrow","borrow_mut","clone","clone_into","cont_map","default","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","expr_map","fmt","from","get_cont","get_expr","immediate_z_expr","init","insert_z_expr","into","layout_raw","new","nil_z_ptr","pointer_metadata","put_string","put_symbol","serialize","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip"],"q":[[0,"lurk"],[196,"lurk::circuit"],[197,"lurk::circuit::gadgets"],[200,"lurk::circuit::gadgets::circom"],[204,"lurk::circuit::gadgets::constraints"],[205,"lurk::circuit::gadgets::pointer"],[284,"lurk::cli"],[286,"lurk::cli::paths"],[287,"lurk::config"],[444,"lurk::coprocessor"],[459,"lurk::coprocessor::circom"],[460,"lurk::coprocessor::circom::non_wasm"],[491,"lurk::coprocessor::gadgets"],[493,"lurk::coprocessor::sha256"],[560,"lurk::coprocessor::trie"],[792,"lurk::coroutine"],[793,"lurk::coroutine::memoset"],[1005,"lurk::error"],[1070,"lurk::eval"],[1105,"lurk::eval::lang"],[1227,"lurk::field"],[1337,"lurk::lem"],[1584,"lurk::lem::circuit"],[1678,"lurk::lem::eval"],[1707,"lurk::lem::multiframe"],[1755,"lurk::lem::pointers"],[1852,"lurk::lem::store"],[1963,"lurk::lem::tag"],[2007,"lurk::parser"],[2048,"lurk::parser::base"],[2097,"lurk::parser::error"],[2183,"lurk::parser::position"],[2218,"lurk::parser::position::Pos"],[2224,"lurk::parser::string"],[2264,"lurk::parser::syntax"],[2285,"lurk::proof"],[2344,"lurk::proof::nova"],[2438,"lurk::proof::supernova"],[2555,"lurk::public_parameters"],[2561,"lurk::public_parameters::instance"],[2663,"lurk::state"],[2701,"lurk::z_data"],[2750,"lurk::z_data::z_cont"],[2800,"lurk::z_data::z_cont::ZCont"],[2832,"lurk::z_data::z_expr"],[2882,"lurk::z_data::z_expr::ZExpr"],[2885,"lurk::z_data::z_ptr"],[2935,"lurk::z_data::z_store"],[2978,"core::option"],[2979,"core::clone"],[2980,"core::result"],[2981,"serde::de"],[2982,"rkyv::with"],[2983,"core::cmp"],[2984,"core::convert"],[2985,"core::fmt"],[2986,"core::fmt"],[2987,"core::hash"],[2988,"core::marker"],[2989,"core::hash"],[2990,"core::fmt"],[2991,"core::alloc::layout"],[2992,"core::alloc::layout"],[2993,"core::cmp"],[2994,"core::any"],[2995,"alloc::boxed"],[2996,"core::any"],[2997,"bellpepper_core::gadgets::boolean"],[2998,"bellpepper_core::constraint_system"],[2999,"ff"],[3000,"bellpepper_core::constraint_system"],[3001,"camino"],[3002,"std::collections::hash::map"],[3003,"config::error"],[3004,"serde::de"],[3005,"core::cell"],[3006,"alloc::rc"],[3007,"core::error"],[3008,"arecibo::supernova::error"],[3009,"arecibo::errors"],[3010,"core::marker"],[3011,"clap_builder::builder::possible_value"],[3012,"alloc::sync"],[3013,"core::ops::function"],[3014,"nom::traits"],[3015,"nom::internal"],[3016,"arecibo"],[3017,"arecibo"],[3018,"arecibo::supernova::snark"],[3019,"arecibo::supernova::snark"],[3020,"std::io::error"],[3021,"anyhow"]],"d":["Finite field element type for Lurk. Has different internal …","a scalar field element in full field representation","Type for hierarchical symbol names.","a small scalar field element in U64 representation for …","","Unsigned fixed-width integer type for Lurk.","","","","","","","","","","","","","","","","","","","","","","","Global config for Lurk Includes settings for cache …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Creates a new Symbol with the path extended by the given …","The finite field used in the language.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Creates a new Num<F> from the given scalar s.","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Converts self into a scalar value of type F.","","Returns true if self is negative.","","","Returns true if the Symbol is the root symbol","","Determines if self is zero.","","","","","","","","Lurk Evaluation Model (LEM)","","","Returns the most negative value representable by Num<F>.","Returns the most positive value representable by Num<F>.","","","","","","","","","","","","","","","","","This module offers a connection the the backend proving …","","","","Creates a new Symbol with an empty path.","Creates a new Symbol with an empty path.","","","","","This module implements an abstraction for the Lurk state, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ZData is a lightweight binary data serialization format.","","","","","Usage of circom coprocessors.","","","An interface to declare a new type of Circom gadget. It …","","","","This could now use alloc_is_zero to avoid duplication.","Allocated version of ContPtr.","Allocated version of Ptr.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Enforce equality of two allocated pointers given an …","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Takes two allocated numbers (a, b) and returns a if the …","Takes two allocated numbers (a, b) and returns a if the …","","","","","","","","","","","","","","","","","","","","","","Parses CLI arguments and continues the program flow …","","","The level of parallelism used when synthesizing the Lurk …","Global config variable for Settings","Global path variable for configuration file","Try to be smart about thread management based on # of cpus …","Parallel configuration settings","How many threads to use? (Advisory, might be ignored.)","Performance-related configuration settings","Runs without parallelism","Contains the Lurk config settings The public_params_dir …","Should we use optimized witness-generation when possible?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Loads config settings from a file or env vars The public …","Returns the home directory used by cargo`` and rustup`","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true on Flow::Parallel or Flow::ParallelN","Returns true on Flow::Sequential","","","","","","Gets the LURK_CONFIG settings. If uninitialized, sets the …","Gets the LURK_CONFIG_FILE path. If uninitialized, sets the …","Parallelism settings","Parallelism & witness gen configs","","","","","","The poseidon witness part of synthesis.","NOTE: Neptune itself will do this transparently at the …","","Public parameter disk cache location","Multiple StepCircuits.","Synthesis (within one StepCircuit)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness generation settings","CoCircuit is a trait that represents a generalized …","Coprocessor is a trait that represents a generalized …","","","","","Function for internal plumbing. Reimplementing is not …","","Helper gadgets for synthesis","Returns true if this Coprocessor actually implements a …","","","Function for internal plumbing. Reimplementing is not …","","The trie module implements a Trie with the following …","Some circom features require non WASM platform features, …","A concrete instantiation of a CircomGadget with a …","TODO: Generalize","","","","","Creates a CircomConfig by loading in the data in …","","","","","TODO: Generalize","","","Returns the argument unchanged.","","","Calls U::from(self).","","The defined name of this coprocessor, which is just the …","Creates a CircomCoprocessor and panics if it fails","","","","","","","","","","","","Chains car_cdr calls n times, returning the accumulated car…","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A sparse Trie.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","","","Add the Trie-associated functions to a Lang with standard …","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).","","","","","","","","","How many leaves does this Trie have?","Returns a value corresponding to the commitment associated …","Creates a new Trie, saving preimage data in store. HEIGHT …","Creates a new Trie, saving preimage data in store. Height …","","","","","","","","","","Returns a slice of preimages, corresponding to the path. …","","How many nodes does the rowth row have?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Verify a LookupProof. Note that this verification is …","Verify an InsertProof. Note that this verification is …","","","","","","","","","The memoset module implements a MemoSet.","","","","","","","","","","","","A Scope tracks the queries made while evaluating, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","How many types of query are provided?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","What is this queries index? Used for ordering circuits and …","","","","","","","","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 argument unchanged.","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","A Binding associates a name (Sym) and Coprocessor. It …","CoProc is an enum that wraps over different …","","DummyCoprocessor is a concrete implementation of the …","Lang is a struct that represents a language with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Dummy Coprocessor takes no arguments.","","","","And does nothing but return nil. It should probably never …","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The BN256 scalar field,","The type of the field element’s representation","Wrapper struct around a field element that implements …","THe Grumpkin scalar field,","The type of finite fields used in the language For …","Trait implemented by finite fields used in the language","The default secret for non-hiding commitments","The Pallas field,","The Vesta field,","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Attempts to construct a field element from a byte slice","Constructs a field element from a char","Constructs a field element from a ContTag","Constructs a field element from an ExprTag","Constructs a field element from an Op1","Constructs a field element from an Op2","Constructs a field element from a u16","Constructs a field element from a u32","Constructs a field element from a u64","Returns the LanguageField of the field","","","","Converts the field element to a hexadecimal string","","","Calls U::from(self).","Calls U::from(self).","A field element is defined to be negative if it is odd …","","","We define this to be the smallest negative field element","0 - 1 is one minus the modulus, which must be even in a …","","","","","","Converts the field element to a byte vector","Attempts to convert the field element to a char","Attempts to convert the field element to a ContTag","Attempts to convert the field element to an ExprTag","Attempts to convert the field element to an Op1","Attempts to convert the field element to an Op2","","","","","Attempts to convert the field element to a u64","Converts the first 16 bytes of the field element to a u128","Attempts to convert the field element to a u16","Attempts to convert the field element to a u32","Converts the first 4 bytes of the field element to a u32","Attempts to convert the field element to a u64","Converts the first 8 bytes of the field element to a u64","Converts the field to a variable-length hex string","","","","","","","","","","","","","","","","","Add(y, a, b) binds y to the sum of a and b","And(y, a, b) binds y to the conjunction of a and b","A block is a sequence of operations followed by a control. …","Call(ys, f, xs) binds ys to the results of f applied to xs","Cast(y, t, x) binds y to a pointer with tag t and the hash …","Cons2(x, t, ys) binds x to a Ptr with tag t and 2 children …","Cons3(x, t, ys) binds x to a Ptr with tag t and 3 children …","Cons4(x, t, ys) binds x to a Ptr with tag t and 4 children …","Copy(x, y) binds x to a copy of what y is bound to","Cproc(ys, c, xs) binds ys to the results of coprocessor c …","The basic control nodes for LEM logical paths.","Decons2([a, b], x) binds a and b to the 2 children of x","Decons3([a, b, c], x) binds a, b and c to the 3 children …","Decons4([a, b, c, d], x) binds a, b, c and d to the 4 …","Div(y, a, b) binds y to the sum of a and b","DivRem64(ys, a, b) binds ys to (a / b, a % b) as if they …","Emit(v) simply prints out the value of v when interpreting …","EqTag(y, a, b) binds y to the boolean a.tag == b.tag","EqVal(y, a, b) binds y to the boolean a.val == b.val","A Func is a LEM function. It consist of input params, …","Hash3Zeros(x, t) binds x to a …","Hash4Zeros(x, t) binds x to a …","Hash6Zeros(x, t) binds x to a …","Hash8Zeros(x, t) binds x to a …","Hide(x, s, p) binds x to a (comm) Ptr resulting from …","If(x, true_block, false_block) runs true_block if x is …","LEM literals","Lit(x, l) binds x to the pointer representing that Lit","Lt(y, a, b) binds y to 1 if a < b, or to 0 otherwise","MatchSymbol(x, cases, def) requires that x is a symbol and …","MatchTag(x, cases, def) checks whether the tag of x …","Mul(y, a, b) binds y to the sum of a and b","Not(y, a) binds y to the negation of a","","The atomic operations of LEMs.","Open(s, p, h) binds s and p to the secret and payload …","Or(y, a, b) binds y to the disjunction of a and b","PopBinding(ys, x) is the inverse of PushBinding","PushBinding(x, ys) is a Lurk specific operation. It binds x…","Return(rets) sets the output to rets","","Sub(y, a, b) binds y to the sum of a and b","","Trunc(y, a, n) binds y to a truncated to n bits, up to 64 …","","LEM variables","Zero(x, t) binds x to a Ptr::zero(t)","","","","","","","","","","","","","","","","","Performs the static checks described in LEM’s docstring.","Constraint system for LEM","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","Instantiates a Func with the appropriate transformations …","","Computes the number of constraints that synthesize should …","","","","","","","","","","","Create R1CS constraints for a LEM function given an …","Helper API for tests","","","","","","","","","","","","","","","","","","","","","","","","","","","","Unrolls a function of equal input/output sizes n times","","","","","","","","","","","","","","","","","","","","","","","","","","","","Manages global allocations for constants in a constraint …","","","","","Memoizes allocations for numerical constants in a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cached version of Lurk’s default step function (IVC, no …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Creates the Funcs used to call coprocessors in the NIVC …","Creates a LEM Func corresponding to Lurk’s step function …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Ptr is a tagged pointer. The tag is there to say what kind …","RawPtr is the basic pointer type of the LEM store. An Atom …","A ZPtr is the result of “hydrating” a Ptr, which is a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Store is a crucial part of Lurk’s implementation and …","","","","","","","","","","","","","","","","","","","","","Fetches an environment","","","Fetches a cons list that was interned. If the list is …","","","","","","","","Returns the argument unchanged.","","Cost of poseidon hash with arity 3, including the input","Retrieves the hash of 3 padded zeros","","Cost of poseidon hash with arity 4, including the input","Retrieves the hash of 4 padded zeros","","Cost of poseidon hash with arity 6, including the input","Retrieves the hash of 6 padded zeros","","Cost of poseidon hash with arity 8, including the input","Retrieves the hash of 8 padded zeros","","Hydrates a Ptr. That is, creates a ZPtr with the tag of …","Safe version of hash_raw_ptr_unsafe that doesn’t hit a …","","","","Hashes enqueued RawPtr trees from the bottom to the top, …","Interns a sequence of pointers as an improper cons-list …","","","","","","","","","Creates a Ptr that’s a parent of N children","Similar to intern_ptrs but doesn’t add the resulting …","Creates an atom RawPtr which points to a cached element of …","Creates a RawPtr that’s a parent of N children","Similar to intern_raw_ptrs but doesn’t add the resulting …","","","","","","","Calls U::from(self).","","","","","Interns a sequence of pointers as a proper (nil…","","","Creates an atom pointer from a ZPtr, with its hash. Hashing","","","","","","","Converts array of pointers of size P to array of raw …","","Equality of the content-addressed versions of two pointers","Tries to convert array of raw pointers of size N to array …","","","","","","","","Attempts to recover the Ptr that corresponds to a ZPtr. If …","Attempts to recover the RawPtr that corresponds to a field …","Constructs a vector of scalars that correspond to tags and …","","","","","","","","","","","","","","","The LEM Tag is a wrapper around other types that are used …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","Contains the error value","","","","Contains the success value","","","","","","","","","","","","","","","Extra information that can be embedded by the user. …","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Get the code corresponding to the base algorithm.","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Source code position of an expression in a file","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Construct a position from the difference of two Spans","Retrieves the from_offset attribute, if present","","Calls U::from(self).","","","Use the range information in a Position to pretty-print …","","","","","","","","","","","","","","","","","","A string fragment contains a fragment of a string being …","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Parse an escaped character: \\\\n, \\\\t, \\\\r, \\\\u{00AC}, etc.","Parse a backslash, followed by any amount of whitespace. …","Combine parse_literal, parse_escaped_whitespace, and …","","Parse a string with the outer delimiter characters","Parse a string. Use a loop of parse_fragment and push all …","Parse a non-empty string. Use a loop of parse_fragment and …","Parse a unicode sequence, of the form u{XXXX}, where XXXX …","","","","","","","","","","","","","","","","","","","","","","","","","relative: foo.bar absolute: .foo.bar.baz, :foo.bar …","","","","","","The State of a CEK machine.","the type for the Store’s errors","Type for error potentially thrown during verification","A trait for a store of expressions","Folding mode used for proving","the type for the Frame’s IO","A Frame of evaluation in a CEK machine.","Variant for IVC folding","Variant for NIVC folding","A trait for provable structures over a field F.","A trait for a prover that works with a field F.","the type for the Store’s pointers","Associated type for public parameters","Associated type for public parameters","Trait to abstract Nova and SuperNova proofs","Associated proof type, which must implement …","","","Compress a proof","the continuation (K)","","","","","the environment (E)","Evaluate an expression with an environment and then …","Returns the expected total number of steps for the prover …","the expression, or control word (C)","","Returns a reference to the prover’s FoldingMode","Returns the argument unchanged.","getting the terminal continuation pointer","cache hashes for pointers enqueued for hydration","","getting a pointer to the initial, empty environment","the input of the frame","Calls U::from(self).","","An adapter to a Nova proving system implementation.","Returns the number of reduction frames in the provable …","the output of the frame","","Generates a recursive proof from a vector of M","Generate the recursive SNARK, encoded in ProveOutput","hash-equality of the expressions represented by Ptrs","Returns the size of the public inputs.","Returns the public inputs of the provable structure.","interpreting a string representation of an expression","Returns the number of reductions for the prover.","An adapter to a SuperNova proving system implementation.","","","","","","","Verify the proof given the public parameters, the input …","","Return the z0_secondary","Type alias for a MultiFrame with S1 field elements. This …","Type alias for a Trivial Test Circuit with G2 scalar field …","A proof for the final step of a recursive computation …","This trait defines most of the requirements for …","Convenience alias for the Dual field of a …","Convenience alias for the primary group type pegged to a …","Why the next 2 types?","Type alias for the Evaluation Engine using G1 group …","a concrete implementation of an …","Type alias for the Evaluation Engine using G2 group …","a concrete implementation of an …","Type alias for Nova Circuit Parameters with the curve …","A struct for the Nova prover that operates on field …","Type alias for Nova Public Parameters with the curve cycle …","An enum representing the two types of proofs that can be …","A struct that contains public parameters for the Nova …","A proof for the intermediate steps of a recursive …","Type alias for the Relaxed R1CS Spartan SNARK using G1 …","Type alias for the Relaxed R1CS Spartan SNARK using G2 …","","","","","","","Computes a cache key of the primary circuit. The point is …","Generates the circuits for the Nova proving system.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Create a new NovaProver with a reduction count and a Lang","provides a reference to a ProverKey suitable for producing …","","","","Public parameters for the Nova proving system.","Generate a proof from a sequence of frames","","Generates the public parameters for the Nova proving …","","","","","","","","","","","","","","","","","","","","","","","provides a reference to a VerifierKey suitable for …","","","","Type alias for a Trivial Test Circuit with G2 scalar field …","A proof for the final step of a recursive computation","Type alias for the Evaluation Engine using G1 group …","Type alias for the Evaluation Engine using G2 group …","Folding configuration specifies the Lang, the reduction …","IVC: a single circuit implementing the Lang’s reduction …","NIVC: each folding step will use one of a fixed set of …","An enum representing the two types of proofs that can be …","A struct that contains public parameters for the SuperNova …","A proof for the intermediate steps of a recursive …","Type alias for the Relaxed R1CS Spartan SNARK using G1 …","Type alias for the Relaxed R1CS Spartan SNARK using G2 …","Type alias for SuperNova Aux Parameters with the curve …","A struct for the Nova prover that operates on field …","Type alias for SuperNova Public Parameters with the curve …","","","","","","","","","Computes a cache key of a supernova primary circuit. The …","Collects all the cache keys of supernova instance. We need …","","","","","","","","","","","","","","","","","return the digest","","","","","","","","","","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).","Return a reference to the contained Lang.","","","","","Create a new SuperNovaProver with a reduction count and a …","Create a new IVC config for lang.","Create a new NIVC config for lang.","Return the total number of NIVC circuits potentially …","provides a reference to a ProverKey suitable for producing …","Prover key and Verifier key for SuperNova","","","","","Public params for SuperNova.","Generate a proof from a sequence of frames","","Generates the running claim params for the SuperNova …","","Return contained reduction count.","","","","","","","","","","","","","","","","","","","","","","","","","","","","provides a reference to a VerifierKey suitable for …","","","","","","Instances","","","","Attempts to extract abomonated public parameters.","Instances compute a cache-key for the objects they …","From ::nova, there are 3 “kinds” of public param …","What we put into the cache","Tag for nova::NovaPublicParams instances","Tag for supernova::SuperNovaAuxParams instances","Tag for [supernova::SuperNovaCircuitParams] instances","","","","","","","","","","","If this Instance is of Kind::SuperNovaAuxParams, then …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The key (or cache_key) of this Instance used to retrieve …","","","The key (or cache_key) of this Instance used to retrieve …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Keeps track of the current package for symbol resolution …","Adds a package to a state","","","","","","","","","Formats a symbol to string w.r.t. the current package","Returns the argument unchanged.","Returns the name of the current package","Imports a set of symbols to the current package","","Initiates the Lurk state with the appropriate structure of …","Returns a shared reference to the initial Lurk state","Interns a symbol into the current package","Call intern_fold w.r.t. the root package","Call intern_fold w.r.t. the current package","Calls U::from(self).","","Returns the symbol in the Lurk package given the symbol …","Returns the symbol corresponding to the name of the meta …","Creates a new state with a given package as the current one","","Wraps a state with Rc<RefCell<...>>","Returns the resolved (fully-qualified) symbol given a …","Sets the current package of the state","","","","","","","Imports all symbols from a certain package","Returns the symbol in the user package given the symbol …","","An Atom contains a byte sequence.","A Cell contains an arbitrary number of child nodes.","ZData is a binary tree with two types of nodes: Atom and …","","","","Returns the number of bytes required to encode the given …","","","","","","","","","","","","","","","Returns the argument unchanged.","Deserializes a ZData from a &[u8].","","","","Calls U::from(self).","","","Returns the usize that’s represented by a little endian …","Returns the tag byte for this ZData.","Determines if a given tag byte represents an Atom.","Determines if a given tag byte represents a Cell with a …","Serializes this ZData into a Vec<u8>.","","","Returns the little-endian byte sequence for the given …","","","","","","","","","","","","","","","A function call with one argument","A function call with no arguments","A nested function call","","","","","","","","The outermost continuation, meaning no further …","","","","A ZCont is the content-addressed representation of a Lurk …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Creates a list of field elements corresponding to the ZCont…","","Calls U::from(self).","","","","","","","","","","","","Hashes the ZCont field representation and creates a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A commitment, which contains an opaque value and a pointer …","A cons list of ZExprPtrs","","","","A null expression","A field element representing a number","","","Contains a string and a pointer to the tail.","Contains a symbol (a list of strings) and a pointer to the …","An unevaluated expression and continuation","","A ZExpr is the content-addressed representation of a Lurk …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","Constructs a ZExprPtr from a ZExpr, creating a Poseidon …","","","","Alias for a continuation pointer","Alias for an expression pointer","A struct representing a scalar pointer with a tag and a …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Converts a base32-encoded string to a ZPtr","Creates a ZPtr from a tag and a value","","","","","Calls U::from(self).","","","","","","Returns the tag","Returns the tag in field representation","Converts the ZPtr to a base32-encoded string","","","","","","","","","Returns the value","","A ZStore is a content-addressed, serializable …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the owned ZCont corresponding to ptr if the former …","Returns the owned ZExpr corresponding to ptr if the former …","Returns the ZExpr immediately corresponding to the ZExprPtr…","","If the entry is not present, or the pointer is immediate, …","Calls U::from(self).","","Creates a new, empty ZStore","Stores a null symbol in the ZStore and returns the …","","Stores a string in the ZStore and returns the resulting …","Stores a symbol in the ZStore and returns the resulting …","","","","","","","","",""],"i":[0,2,0,2,1,0,1,2,2,5,1,5,0,2,5,1,2,5,1,0,0,0,2,5,1,2,5,1,0,0,0,0,2,5,1,2,5,1,2,2,5,5,1,1,5,5,1,2,2,5,1,2,5,1,2,2,2,2,2,5,5,5,5,5,1,1,1,1,1,0,0,5,0,2,2,5,5,1,1,5,5,5,2,2,2,5,5,1,1,2,5,0,2,5,5,2,5,2,5,1,2,5,1,2,5,1,2,5,2,5,5,5,5,2,1,5,5,0,2,5,1,0,0,0,2,2,1,2,5,5,5,0,0,0,2,5,1,5,2,5,1,5,0,0,1,5,5,5,2,5,1,5,0,0,1,2,5,0,5,0,0,2,5,1,2,5,1,2,5,1,2,5,1,2,5,1,0,2,5,1,2,5,1,2,5,1,0,0,2,5,1,0,0,0,0,0,0,0,0,0,0,40,40,40,0,0,0,43,52,43,52,43,52,43,43,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,43,52,52,43,43,43,52,43,43,52,43,52,43,43,43,43,43,43,43,43,43,43,52,43,52,43,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,0,0,0,0,0,0,60,0,60,0,60,0,0,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,56,57,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,56,56,56,56,57,57,57,57,57,58,58,58,58,58,59,59,59,59,59,60,60,60,60,60,56,57,58,59,60,56,57,58,59,60,56,0,56,57,58,59,60,56,57,58,59,60,60,60,56,57,58,59,60,0,0,57,56,56,57,58,59,60,58,59,0,56,58,58,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,57,0,0,63,0,64,64,64,64,0,64,0,63,63,63,0,0,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,68,0,0,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,67,68,68,67,68,67,68,68,68,67,68,67,68,67,68,68,67,68,67,68,67,68,67,68,67,67,68,67,68,68,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,0,0,0,71,0,0,71,0,0,77,71,0,0,0,0,0,71,72,73,74,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,71,72,73,74,71,72,73,74,195,72,73,74,76,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,72,73,73,74,74,76,78,79,77,71,72,73,74,76,78,79,76,71,72,73,74,71,71,71,72,73,74,77,71,72,73,74,76,78,79,77,71,71,71,71,72,73,74,76,78,79,71,72,73,74,77,71,72,73,74,76,78,79,76,0,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,76,76,76,76,77,71,72,73,74,76,78,79,76,76,76,76,72,73,74,71,76,71,71,72,73,74,71,72,73,74,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,78,79,77,71,72,73,74,76,78,79,0,85,94,0,0,0,0,0,0,0,0,0,0,0,85,87,86,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,89,90,91,92,87,88,89,90,91,92,87,88,94,86,85,87,88,91,87,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,94,95,94,85,87,89,90,91,92,87,88,196,89,90,91,92,87,88,94,95,94,196,89,90,91,92,87,88,196,89,90,91,92,87,88,85,87,85,87,196,89,90,91,92,87,88,85,87,90,196,89,90,91,92,87,88,91,85,87,94,94,94,95,94,94,95,95,91,86,88,95,86,88,86,88,94,85,87,89,90,91,92,87,88,94,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,196,89,90,91,92,87,88,97,98,0,98,0,97,98,98,98,97,98,97,98,97,97,97,98,97,98,97,98,97,98,97,98,98,97,97,98,98,98,98,98,97,98,97,98,97,98,97,98,97,98,97,98,97,98,97,97,98,97,98,97,98,97,98,97,98,97,98,97,98,97,98,97,0,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,0,101,101,101,101,101,101,101,101,101,101,101,101,0,0,105,0,0,83,83,105,106,105,83,103,106,105,83,103,106,105,83,106,105,83,83,83,83,106,105,83,103,106,105,83,103,106,106,105,105,83,83,103,106,105,83,103,106,105,105,105,106,105,106,105,83,103,106,105,105,83,103,103,83,105,83,106,105,83,103,106,105,83,103,83,83,106,105,83,103,83,83,103,83,106,105,83,103,106,105,83,105,105,105,106,105,83,106,105,83,103,106,105,83,103,106,105,83,103,106,105,83,103,106,105,83,103,106,105,83,103,106,105,83,103,108,4,0,108,0,0,4,108,108,108,109,108,109,108,109,108,109,108,109,109,109,108,108,109,108,109,108,108,109,109,108,109,108,109,108,108,108,108,108,109,109,109,109,109,108,108,109,108,109,4,4,4,4,4,4,4,4,4,4,109,109,108,4,108,109,108,109,4,108,109,4,4,109,108,109,108,109,4,4,4,4,4,4,108,109,108,108,4,4,4,4,4,4,4,4,108,109,108,109,108,109,108,109,108,109,108,109,108,108,109,0,120,120,0,120,120,120,120,120,120,120,0,120,120,120,120,120,120,120,120,0,120,120,120,120,120,119,0,120,120,119,119,120,120,117,0,120,120,120,120,119,117,120,117,120,120,0,120,115,115,115,116,117,118,119,120,115,116,117,118,119,120,115,115,115,0,115,116,117,118,119,120,115,116,117,118,119,120,118,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,115,115,115,115,115,116,116,116,116,116,117,117,117,117,117,118,118,118,118,118,119,119,119,119,119,120,120,120,120,120,0,115,116,116,117,118,119,120,115,116,117,118,119,120,116,117,116,117,116,115,116,117,118,119,120,115,115,116,117,118,119,120,115,116,117,118,119,120,0,116,115,115,116,115,115,115,116,117,118,119,120,0,115,0,115,115,0,115,116,117,118,119,120,117,116,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,115,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,115,116,117,118,119,120,0,122,122,0,122,122,0,0,65,65,65,65,65,65,65,123,126,123,122,65,126,123,122,65,0,122,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,122,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,126,123,122,65,123,0,127,127,127,127,127,127,0,0,0,0,0,0,127,127,127,127,0,0,127,127,127,127,127,127,127,127,127,127,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,133,133,133,133,0,0,0,42,133,42,133,42,42,133,42,133,42,133,42,133,42,133,133,42,42,133,42,125,133,42,133,133,133,133,133,42,42,42,42,42,133,42,42,42,133,42,133,42,133,42,133,133,133,42,42,42,42,42,133,42,133,42,133,42,42,133,42,42,42,42,42,133,42,42,42,133,42,42,133,42,42,133,42,133,42,133,42,133,42,133,42,133,42,133,42,133,42,0,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,132,132,132,132,0,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,138,0,0,136,138,0,0,136,136,0,136,136,136,136,136,136,136,136,0,135,136,136,136,136,136,136,136,136,136,0,0,0,136,136,136,136,136,136,136,136,136,137,137,137,0,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,0,137,0,0,0,0,0,0,0,137,137,137,137,137,137,137,137,137,137,144,144,144,144,144,144,144,0,0,144,144,140,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,144,144,144,144,144,140,140,140,140,140,140,140,144,144,140,140,144,140,140,144,140,144,140,140,144,140,144,144,140,0,140,140,140,144,140,140,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,144,140,146,0,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,197,197,197,197,197,197,147,147,147,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,0,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,150,0,0,155,0,156,156,0,0,159,150,153,0,153,156,156,150,151,156,156,156,156,151,153,153,151,156,153,156,159,159,156,159,155,156,156,0,160,155,156,153,150,159,160,160,159,153,0,156,156,156,156,156,156,150,156,150,0,0,164,0,0,0,130,0,130,0,130,0,0,0,0,0,164,0,0,165,164,166,165,164,166,0,0,164,165,164,166,165,164,166,165,165,164,164,166,165,164,166,166,165,166,166,165,165,164,166,165,164,166,165,164,166,165,164,166,166,165,165,164,166,165,166,164,0,166,165,164,165,164,166,165,164,166,165,164,166,165,164,166,165,164,166,165,164,166,164,165,165,164,166,0,174,0,0,0,129,129,0,0,174,0,0,0,0,0,175,174,176,129,175,174,176,129,0,0,129,129,174,175,174,176,129,175,174,176,129,175,174,174,176,129,175,175,174,176,129,176,176,129,176,175,175,174,176,129,175,175,174,176,129,175,174,176,129,129,175,174,176,129,176,129,129,129,175,175,175,174,176,129,175,176,174,0,176,129,174,129,175,174,176,129,175,174,176,129,175,174,176,129,175,174,176,129,175,174,176,129,175,174,176,129,174,175,175,174,176,129,0,0,0,0,0,0,0,0,0,185,185,185,182,186,182,185,186,182,185,186,182,186,182,185,186,185,186,182,182,185,186,182,185,186,182,185,185,186,186,182,185,186,185,186,185,185,185,185,185,186,186,186,186,186,182,185,186,182,185,186,182,185,186,182,185,186,182,182,186,182,182,186,182,185,186,182,182,182,185,186,182,186,182,185,186,185,186,182,185,186,182,185,186,182,185,186,182,185,186,182,185,186,182,185,186,182,185,186,0,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,0,80,80,80,80,80,0,0,80,80,80,80,80,80,80,80,80,80,80,80,0,80,190,190,0,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,0,190,190,190,190,190,190,190,190,190,190,190,190,190,0,190,190,190,190,190,190,190,0,0,0,0,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,0,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,198,199,200,201,202,203,204,205,206,207,208,198,199,209,207,202,205,206,207,200,201,202,203,204,206,198,199,201,206,208,198,199,192,192,192,192,192,192,192,192,192,192,192,192,192,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,210,210,210,0,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194],"f":[0,0,0,0,0,0,[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[5,5],[[6,[5]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[[2,[-1]]],[[2,[-1]]],[7,4]],[5,5],[1,1],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,0,0,0,[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[9,[[2,[-2]]]]],10,4],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[5]]],10],[-1,[[9,[1]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[5,12],5],[5,[[6,[5]]]],[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[8,3],[8,3],[8,3],[[[2,[-1]],[2,[-1]]],13,[14,4]],[[5,5],13],[[1,1],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,0,[[5,[15,[-1]]],5,[[16,[12]]]],0,[[[2,[-1]],17],18,[19,4]],[[[2,[-1]],17],18,4],[[5,17],18],[[5,17],18],[[1,17],18],[[1,17],18],[12,20],[5,20],[5,20],[21,[[2,[-1]]],4],[1,[[2,[-1]]],4],[-1,-1,[]],[-1,-1,[]],[12,5],[21,1],[-1,-1,[]],[-1,[[2,[-1]]],4],[12,[[6,[5]]]],0,[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[[5,5],13],[[[2,[-1]],-2],3,4,25],[[5,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[-1]]],-1,4],[5,13],[[[2,[-1]]],13,4],[5,13],[5,13],[5,13],[30,13],[[[2,[-1]]],13,4],[1,13],[[[15,[-1]]],5,[[16,[12]]]],[[[31,[20]]],5],0,[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],0,0,0,[[],[[2,[-1]]],4],[[],[[2,[-1]]],4],[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[5,[[34,[12]]]],[[[15,[-1]],13],5,[[16,[12]]]],[[[31,[20]],13],5],0,0,0,[[[2,[-1]],[2,[-1]]],[[6,[35]]],4],[[5,5],[[6,[35]]]],[[1,1],[[6,[35]]]],[5,[[15,[20]]]],[[]],[[]],[[]],[5,13],0,0,[[1,1],1],[13,5],[[],5],[[],5],[[[2,[-1]],-2],9,4,36],[[5,-1],9,36],[[1,-1],9,36],[5,3],0,0,[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[[[15,[-1]]],5,[[16,[12]]]],0,[[[31,[20]]],5],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],0,[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[[40,[41,[-1]],[15,[42]]],42,4],[[40,[15,[[43,[-1]]]]],[[31,[[3,[20,[31,[-1]]]]]]],4],[40,12],[[-2,[44,[-1]],[44,[-1]]],[[9,[45,46]]],47,[[48,[-1]]]],0,0,[[-2,-4],[[9,[[43,[-1]],46]]],4,[[48,[-1]]],0,[[51,[],[[49,[[9,[[50,[-3,-1]],46]]]]]]]],[[-2,-3],[[9,[[52,[-1]],46]]],4,[[48,[-1]]],[[51,[],[[49,[[9,[[53,[-1]],46]]]]]]]],[[-2,[50,[-3,-1]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]],0],[[-2,[53,[-1]]],[[9,[[52,[-1]],46]]],4,[[48,[-1]]]],[[[43,[-1]],-2,[43,[-1]]],[[9,[45,46]]],4,[[48,[-1]]]],[[[52,[-1]],-2,[52,[-1]]],[[9,[45,46]]],4,[[48,[-1]]]],[[-2,-4],[[43,[-1]]],4,[[48,[-1]]],0,[[51,[],[[49,[[50,[-3,-1]]]]]]]],[[-2,-1,[44,[-1]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[43,[-1]],-2,-1],[[9,[45,46]]],4,[[48,[-1]]]],[[[52,[-1]],-2,-1],[[9,[45,46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[43,[-1]]],[[43,[-1]]],[7,47]],[[[52,[-1]]],[[52,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[43,[-1]],-2,[43,[-1]]],3,4,[[48,[-1]]]],[[[52,[-1]],-2,[52,[-1]]],3,4,[[48,[-1]]]],[[[43,[-1]],17],18,4],[[[52,[-1]],17],18,4],[-1,-1,[]],[[[52,[-1]]],[[43,[-1]]],4],[-1,-1,[]],[[[43,[-1]]],[[52,[-1]]],4],[[[44,[-1]],[44,[-1]]],[[43,[-1]]],4],[[[43,[-1]]],[[6,[[50,[-2,-1]]]]],4,0],[[[43,[-1]]],[[44,[-1]]],4],[[[52,[-1]]],[[44,[-1]]],4],[[[43,[-1]],-2,45,[43,[-1]]],3,4,[[48,[-1]]]],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[9,[45,46]]],4,[[48,[-1]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[-2,45,[43,[-1]],[43,[-1]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[-2,45,[52,[-1]],[52,[-1]]],[[9,[[52,[-1]],46]]],4,[[48,[-1]]]],[[-2,45,[54,[-1]],[54,[-1]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[]],[[]],[[[43,[-1]]],[[44,[-1]]],4],[[[52,[-1]]],[[44,[-1]]],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[34,[3]]]],0,[[],55],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,[],[]],[[],56],[[],57],[[],58],[[],59],[[],60],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[9,[56]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[57]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[[56,56],13],[[57,57],13],[[58,58],13],[[59,59],13],[[60,60],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[56,17],18],[[57,17],18],[[58,17],18],[[59,17],18],[[60,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[55,[6,[[61,[12,20]]]]],[[9,[56,62]]]],[[],55],[[],8],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[60,13],[60,13],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[[6,[55]],[6,[[61,[12,20]]]]],56],[[[6,[55]]],55],0,0,[[]],[[]],[[]],[[]],[[]],0,0,[[],55],0,0,0,[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[63,8],0,[64,8],[[64,[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[64,[41,[-1]],[15,[42]]],[[31,[42]]],4],[[64,[41,[-1]],[15,[42]]],42,4],0,[64,13],0,[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],0,0,0,[[[66,[-1,-2]]],8,4,[[40,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[66,[-1,-2]]],[[66,[-1,-2]]],4,[[40,[-1]]]],[[-1,-2],3,[],[]],[-2,[[34,[[66,[-1,-2]]]]],4,[[40,[-1]]]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[[66,[-1,-2]]],8,4,[[40,[-1]],19]],[[[66,[-1,-2]],[41,[-1]],[15,[42]]],42,4,[[40,[-1]],19]],[[[66,[-1,-2]],17],18,[19,4],19],[-1,-1,[]],[[[66,[-1,-2]]],13,4,[[40,[-1]],19]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[[66,[-1,-2]]],12,4,[[40,[-1]]]],[-2,[[66,[-1,-2]]],4,[[40,[-1]]]],[[]],[[[66,[-1,-2]],-3,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[40,[-1]]],[[48,[-1]]]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[43,[-1]]],[[6,[[50,[-2,-1]]]]],4,0],[[-2,[65,[-1]],[41,[-1]],45,[43,[-1]],8],[[9,[[3,[[31,[[43,[-1]]]],[43,[-1]],[44,[-1]]]],46]]],4,[[48,[-1]]]],0,0,0,[[[67,[-1]]],8,4],[[[68,[-1]]],8,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[67,[-1]]],[[67,[-1]]],[7,4]],[[[68,[-1]]],[[68,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[67,[-2]]]]],10,4],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[68,[-2]]]]],10,[69,4]],[8,3],[8,3],[[[67,[-1]]],8,4],[[[68,[-1]]],8,4],[[[68,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[68,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[67,[-1]],[41,[-1]],[15,[42]]],42,4],[[[68,[-1]],[41,[-1]],[15,[42]]],42,4],[[[67,[-1]],17],18,[19,4]],[[[68,[-1]],17],18,[19,4]],[-1,-1,[]],[-1,-1,[]],[[[67,[-1]]],[[68,[-1]]],4],[[[67,[-1]]],13,4],[[[68,[-1]]],13,4],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[8,[[67,[-1]]],4],[[]],[[]],[[[67,[-1]],-2],9,4,36],[[[68,[-1]],-2],9,[70,4],36],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[67,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[71,[-1]]],8,4],[[[72,[-1]]],8,4],[[[73,[-1]]],8,4],[[[74,[-1]]],8,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,[],[]],[[[71,[-1]]],[[71,[-1]]],[7,4]],[[[72,[-1]]],[[72,[-1]]],7],[[[73,[-1]]],[[73,[-1]]],7],[[[74,[-1]]],[[74,[-1]]],7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],[[72,[-1]]],75],[[],[[73,[-1]]],75],[[],[[74,[-1]]],75],[[],[[76,[-1]]],4],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[72,[-2]]]]],10,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[73,[-2]]]]],10,[]],[-1,[[9,[[74,[-2]]]]],10,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[[76,[-1]]],-1,4],[[[71,[-1]]],8,4],[[[72,[-1]]],8,4],[[[73,[-1]]],8,4],[[[74,[-1]]],8,4],[[[71,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[71,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[71,[-1]],[41,[-1]],[15,[42]]],42,4],[[[72,[-1]],[41,[-1]],[15,[42]]],42,4],[[[73,[-1]],[41,[-1]],[15,[42]]],42,4],[[[74,[-1]],[41,[-1]],[15,[42]]],42,4],[[[77,[-1]],17],18,19],[[[71,[-1]],17],18,[19,4]],[[[72,[-1]],17],18,19],[[[73,[-1]],17],18,19],[[[74,[-1]],17],18,19],[[[76,[-1]],17],18,[19,4]],[[[78,[-1]],17],18,[19,4]],[[[79,[-1]],17],18,[19,4]],[-1,-1,[]],[-1,-1,[]],[[[72,[-1]]],[[71,[-1]]],4],[[[73,[-1]]],[[71,[-1]]],4],[[[74,[-1]]],[[71,[-1]]],4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[71,[-1]]],13,4],[[[72,[-1]]],13,4],[[[73,[-1]]],13,4],[[[74,[-1]]],13,4],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[[76,[-1]],-1,-1],[[9,[13,[77,[-1]]]]],4],[[[82,[[81,[80]]]],[83,[-1,[71,[-1]]]]],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[[76,[-1]]],8,4],[[[76,[-1]],-1],[[9,[[6,[-1]],[77,[-1]]]]],4],[[[0,[-1]],[0,[-1]]],[[76,[-1]]],4],[[[0,[-1]],[0,[-1]],8],[[76,[-1]]],4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[76,[-1]],-1,-1],[[9,[[3,[[79,[-1]],13]],[77,[-1]]]]],4],[[[76,[-1]],-1],[[9,[[78,[-1]],[77,[-1]]]]],4],[[[76,[-1]]],-1,4],[[[76,[-1]],8],8,4],[[[72,[-1]],-2],9,[],36],[[[73,[-1]],-2],9,[],36],[[[74,[-1]],-2],9,[],36],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[76,[-1]],-2,[0,[-1]],[44,[-1]],[44,[-1]],[44,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[72,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[73,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[74,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[78,[-1]],-1,-1,-1,[0,[-1]]],13,4],[[[79,[-1]],-1,-1,-1,[6,[-1]],-1,[0,[-1]]],13,4],[-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,[[[85,[],[[84,[-1]]]],42],3,[[86,[-2]]],4],[[[87,[-1]],42],3,4],[86,[[44,[-1]]],4],[[[88,[-1]]],[[44,[-1]]],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,[],[]],[[[89,[-1]]],[[89,[-1]]],7],[[[90,[-1]]],[[90,[-1]]],[7,4]],[[[91,[-1,-2]]],[[91,[-1,-2]]],7,7],[[[92,[-1,-2]]],[[92,[-1,-2]]],[7,4],7],[[[87,[-1]]],[[87,[-1]]],[7,4]],[[[88,[-1]]],[[88,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[],8],[[86,42],8],[[[85,[],[[84,[-1]]]],42],8,[[86,[-2]]],4],[[[87,[-1]],42],8,4],[[[88,[-1]],42],8,4],[[],[[91,[-1,[87,[-2]]]]],[],4],[[],[[87,[-1]]],4],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[[41,[-1]],8],[[94,[],[[93,[-2]]]]],4,[[95,[-1]]]],[[-2,[41,[-1]],8],95,4,[[48,[-1]]]],[[[94,[],[[93,[-1]]]],[41,[-2]],[91,[[94,[],[[93,[-1]]]],[87,[-2]]]]],42,[[95,[-2]]],4],[[[85,[],[[84,[-1]]]],[41,[-2]],[89,[-2]]],3,[[86,[-2]]],4],[[[87,[-1]],[41,[-1]],[89,[-1]]],3,4],[[[89,[-1]],17],18,19],[[[90,[-1]],17],18,[19,4]],[[[91,[-1,-2]],17],18,19,19],[[[92,[-1,-2]],17],18,[19,4],19],[[[87,[-1]],17],18,[19,4]],[[[88,[-1]],17],18,[19,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[41,[-1]],42],[[6,[[94,[],[[93,[-2]]]]]]],4,[[95,[-1]]]],[[-2,[41,[-1]],42],[[6,[95]]],4,[[48,[-1]]]],[[[94,[],[[93,[-1]]]]],8,[[95,[-2]]],4],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[85,[],[[84,[-1]]]],-3],-1,[[86,[-2]]],4,[[48,[-2]]]],[[[87,[-1]],-2],-3,4,[[48,[-1]]],[]],[[[85,[],[[84,[-1]]]]],13,[[86,[-2]]],4],[[[87,[-1]]],13,4],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[[85,[],[[84,[-1]]]],-2],[[6,[-2]]],[[86,[-2]]],4],[[[87,[-1]],-1],[[6,[-1]]],4],[[-2,45,[90,[-1]],[90,[-1]]],[[9,[[90,[-1]],46]]],4,[[48,[-1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[91,[-2,[87,[-1]]]],[41,[-1]],42],42,4,[[94,[-1]]]],[[[85,[],[[84,[-1]]]]],[[6,[-2]]],[[86,[-2]]],4],[[[87,[-1]]],[[6,[-1]]],4],[[[94,[],[[93,[-1]]]],[91,[[94,[],[[93,[-1]]]],[87,[-2]]]],[41,[-2]],[94,[],[[93,[-1]]]]],42,[[95,[-2]]],4],[[[94,[],[[93,[-1]]]],[91,[[94,[],[[93,[-1]]]],[87,[-2]]]],[41,[-2]],[94,[],[[93,[-1]]]]],42,[[95,[-2]]],4],[[[94,[],[[93,[-1]]]]],5,[[95,[-2]]],4],[95,5],[[[94,[],[[93,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[[[94,[],[[93,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[[95,[41,[-1]]],42,4],[[95,[41,[-1]]],42,4],[[[91,[-2,[87,[-1]]]],-3,[65,[-1]],[41,[-1]]],[[9,[3,46]]],4,[[94,[-1]]],[[48,[-1]]]],[[86,-2,[44,[-1]],[43,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]],[43,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[95,-2,[65,[-1]],[41,[-1]],[92,[-1,[88,[-1]]]],[43,[-1]],[90,[-1]]],[[9,[[3,[[43,[-1]],[43,[-1]],[90,[-1]]]],46]]],4,[[48,[-1]]]],[[86,-2,[44,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[86,-2,[44,[-1]],[43,[-1]],[44,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]],[43,[-1]],[44,[-1]]],[[9,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[94,[],[[93,[-1]]]],-3,[41,[-2]]],-1,[[95,[-2]]],4,[[48,[-2]]]],[[[85,[],[[84,[-1]]]],-3],-1,[[86,[-2]]],4,[[48,[-2]]]],[[[87,[-1]],-2],-3,4,[[48,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[],[[93,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,96,[]],[-1,96,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[97,97],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[98,17],18],[[98,17],18],[[97,17],18],[[97,17],18],[99,98],[-1,-1,[]],[46,98],[97,98],[100,98],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[-1,[],[]],[-1,[],[]],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[]],[[]],[98,[[6,[96]]]],[97,[[6,[96]]]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[101,[-1,-2,-3,-4]]],[[101,[-1,-2,-3,-4]]],[7,102],[7,102],7,7],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[[101,[-1,-2,-3,-4]],[101,[-1,-2,-3,-4]]],13,[14,102],[14,102],14,14],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[101,[-1,-2,-3,-4]],17],18,[19,102],[19,102],19,19],[-1,-1,[]],0,[[],8],0,[-1,-2,[],[]],0,[[],[[9,[32,33]]]],0,[[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[[83,[-1,-2]],-3],3,4,[],[[104,[[103,[-1,-2]]]]]],[[[83,[-1,-2]],-3,-4],3,4,[],[[104,[5]]],[[104,[-2]]]],[[[105,[-1]]],8,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[106,[-1]]],[[106,[-1]]],7],[[[105,[-1]]],[[105,[-1]]],[7,4]],[[[83,[-1,-2]]],[[83,[-1,-2]]],7,7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[83,[-1,-2]]],8,4,[]],[[[83,[-1,-2]]],[[107,[5,-2]]],4,[]],[[],[[83,[-1,-2]]],75,75],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[106,[-2]]]]],10,[]],[-1,[[9,[[105,[-2]]]]],10,[69,4]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[83,[-2,-3]]]]],10,[],69],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[[[106,[-1]]],8,4],[[[105,[-1]]],8,4],[[[105,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[105,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[106,[-1]],[41,[-1]],[15,[42]]],42,4],[[[105,[-1]],[41,[-1]],[15,[42]]],42,4],[[[106,[-1]],17],18,19],[[[105,[-1]],17],18,[19,4]],[[[83,[-1,-2]],17],18,19,19],[[[103,[-1,-2]],17],18,19,19],[-1,-1,[]],[[[106,[-1]]],[[105,[-1]]],4],[-1,-1,[]],[-1,-1,[]],[[[3,[-1,-3]]],[[103,[-2,-3]]],[[104,[5]]],4,[[64,[-2]]]],[-1,-1,[]],[[[83,[-1,-2]],5],[[6,[8]]],4,[]],[[[105,[-1]]],13,4],[[[83,[-1,-2]]],13,4,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[83,[-1,-2]]],13,4,[]],[[[83,[-1,-2]]],20,4,[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[[83,[-1,-2]],5],[[6,[-2]]],4,[]],[[],[[83,[-1,-2]]],4,[]],[[-1,-3],[[103,[-4,-2]]],[[104,[5]]],[],[[104,[-2]]],4],[[[31,[-3]]],[[83,[-1,-2]]],4,[],[[104,[[103,[-1,-2]]]]]],[[]],[[]],[[]],[[]],[[[106,[-1]],-2],9,[],36],[[[105,[-1]],-2],9,[70,4],36],[[[83,[-1,-2]],-3],9,[],70,36],[[[105,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[105,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[105,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[9,[[43,[-1]],46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-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,[],[]],[108,108],[[[109,[-1]]],[[109,[-1]]],7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[109,[-1]],[109,[-1]]],35,4],[[-1,-2],35,[],[]],[[],108],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[9,[108]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[109,[-2]]]]],10,4],[8,3],[8,3],[[108,108],13],[[[109,[-1]],[109,[-1]]],13,14],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[108,17],18],[[108,17],18],[[[109,[-1]],17],18,19],[-1,-1,[]],[-1,-1,[]],[[[15,[110]]],[[6,[4]]]],[30,4],0,0,0,0,[111,4],[112,4],[21,4],[4,108],[[-1,-2],21,[22,23],24],[[[109,[-1]],-2],3,4,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[4,20],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[4,13],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],4],[[],4],[[[109,[-1]],[109,[-1]]],[[6,[35]]],4],[[]],[[]],[[108,-1],9,36],[[[109,[-1]],-2],9,4,36],[4,[[31,[110]]]],[4,[[6,[30]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[-1,-2,[],[]],[-1,-2,[],[]],[108,[[6,[113]]]],[-1,20,[]],[4,[[6,[114]]]],[4,114],[4,[[6,[111]]]],[4,[[6,[112]]]],[4,112],[4,[[6,[21]]]],[4,21],[4,20],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[],[[15,[108]]]],[-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,[[115,-2,[41,[-1]]],[[65,[-1]]],4,[[48,[-1]]]],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,[],[]],0,[[115,[15,[42]],[41,[-1]],[83,[-1,-2]],8],[[34,[0]]],4,[[64,[-1]]]],[115,[[34,[3]]]],0,[115,115],[116,116],[117,117],[118,118],[119,119],[120,120],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[115,115],13],[[116,116],13],[[117,117],13],[[118,118],13],[[119,119],13],[[120,120],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[115,17],18],[[116,17],18],[[116,17],18],[[117,17],18],[[118,17],18],[[119,17],18],[[120,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[[116,-1],3,25],[[117,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],0,[116,121],0,[[20,[31,[116]],8,118],[[34,[115]]]],[12,116],[[115,[41,[-1]]],8,4],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[117,[41,[-1]]],42,4],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[115,8],[[34,[115]]]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[[65,[-1]],-2,-1],[[44,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-1],[[44,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,42,[41,[-1]]],[[43,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-3],[[44,[-1]]],4,[[48,[-1]]],0],[[[65,[-1]],-2,-3],[[44,[-1]]],4,[[48,[-1]]],0],[[[65,[-1]],-2,[125,[-1]]],[[43,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-3,-1],[[43,[-1]]],4,[[48,[-1]]],0],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[122,[-1]]],[[122,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[],[[65,[-1]]],[75,4]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[]],[[]],[[]],[[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[],115],[[[6,[[3,[115,[15,[115]],[83,[-1,-2]]]]]],42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[[[6,[[3,[115,[15,[115]],[83,[-1,-2]]]]]],42,[41,[-1]],8],[[34,[[3,[[31,[42]],8,[31,[42]]]]]]],4,[[64,[-1]]]],[[[6,[[3,[115,[15,[115]],[83,[-1,-2]]]]]],42,42,[41,[-1]],8],[[34,[[3,[[31,[42]],8,[31,[42]]]]]]],4,[[64,[-1]]]],[[[6,[[3,[115,[15,[115]],[83,[-1,-2]]]]]],42,42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[[[6,[[3,[115,[15,[115]],[83,[-1,-2]]]]]],42,42,42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[[83,[-1,-2]]],[[31,[115]]],4,[[64,[-1]]]],[[[127,[-1,-2]]],115,4,[[64,[-1]]]],[[[83,[-1,-2]]],[[127,[-1,-2]]],[],[]],[[[83,[-1,-2]]],[[127,[-1,-2]]],[],[]],[[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[124,[[129,[-1,-2]]]],8],[[128,[-1,-2]]],4,[[64,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[42,42,[41,[-1]],8,[127,[-1,-2]]],[[34,[[31,[0]],98]]],4,[[64,[-1]]]],[[[128,[-1,-2]],[41,[-1]]],[[34,[3,46]]],4,[[64,[-1]]]],[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[128,[-1,-2]]],3,4,[[64,[-1]]]],[[[128,[-1,-2]]],[[128,[-1,-2]]],[7,4],[7,[64,[-1]]]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],0,[[[128,[-1,-2]],17],18,[19,4],[19,[64,[-1]]]],[[[128,[-1,-2]]],[[6,[[31,[0]]]]],4,[[64,[-1]]]],[-1,-1,[]],[[[15,[0]],[41,[-1]],[124,[[129,[-1,-2]]]]],[[31,[[128,[-1,-2]]]]],4,[[64,[-1]]]],[[],8],[[[128,[-1,-2]]],[[31,[42]]],4,[[64,[-1]]]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[[128,[-1,-2]]],8,[130,4],[[64,[-1]]]],[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[128,[-1,-2]]],[[31,[42]]],4,[[64,[-1]]]],[[]],[[[128,[-1,-2]],[128,[-1,-2]]],13,4,[[64,[-1]]]],[[[128,[-1,-2]],8],[[128,[-1,-2]]],[130,4],[[64,[-1]]]],[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[128,[-1,-2]]],8,4,[[64,[-1]]]],[[[128,[-1,-2]]],[[31,[-1]]],4,[[64,[-1]]]],[[[128,[-1,-2]]],[[131,[-1]]],[130,4],[[64,[-1]]]],[[[15,[0]]],8],[[[128,[-1,-2]],-3,[15,[[44,[-1]]]]],[[34,[[31,[[44,[-1]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[128,[-1,-2]],-3,[6,[[44,[-1]]]],[15,[[44,[-1]]]]],[[34,[[3,[[6,[[44,[-1]]]],[31,[[44,[-1]]]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[128,[-1,-2]],-3],[[34,[3,46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[128,[-1,-2]],-3,[41,[-1]],[31,[[43,[-1]]]],[15,[0]],[65,[-1]]],[[34,[[31,[[43,[-1]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[132,8],42],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[42,132],42],[133,133],[42,42],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[133]]],10],[-1,[[9,[42]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[],[[125,[-1]]],4],[[133,133],13],[[42,42],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[133,17],18],[[42,17],18],[[42,[41,[-1]],80],20,4],[[42,[41,[-1]]],20,4],[-1,-1,[]],[-1,-1,[]],[133,[[6,[8]]]],[42,[[6,[8]]]],[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[133,[[6,[8]]]],[133,[[6,[8]]]],[133,[[6,[8]]]],[42,[[6,[8]]]],[42,[[6,[8]]]],[42,[[6,[8]]]],[[42,132],13],[[42,[15,[132]]],13],[[133,-1],3,25],[[42,-1],3,25],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[42,13],[133,13],[42,13],[42,13],[42,13],[42,13],[42,13],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[132,133],42],[42,[[3,[132,133]]]],[[]],[[]],[42,133],[[133,-1],9,36],[[42,-1],9,36],[42,132],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[41,[-1]],-1,-1,42],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[[[41,[-1]],42],[[34,[[3,[42,42]]]]],4],[[[41,[-1]],30],42,4],[[[41,[-1]],-1],42,4],[[[41,[-1]],42],42,4],[[[41,[-1]],42,42],42,4],[[[41,[-1]]],42,4],[[[41,[-1]]],42,4],[[[41,[-1]]],42,4],[[],[[41,[-1]]],4],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[[41,[-1]]],42,4],[[[41,[-1]],8],-1,4],[[[41,[-1]],8],[[134,[42]]],4],[[[41,[-1]],8],[[134,[133]]],4],[[[41,[-1]],42],[[6,[[31,[[3,[42,42]]]]]]],4],[[[41,[-1]],8],[[6,[-1]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],42],[[6,[[3,[[31,[42]],[6,[42]]]]]]],4],[[[41,[-1]],8],[[6,[[134,[42]]]]],4],[[[41,[-1]],8],[[6,[[134,[133]]]]],4],[[[41,[-1]],42],[[6,[20]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],133],[[6,[132]]],4],[[[41,[-1]],17],18,[19,4]],[-1,-1,[]],[[[41,[-1]]],-2,4,[]],[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]],42],[[125,[-1]]],4],[[[41,[-1]],133],[[109,[-1]]],4],[[[41,[-1]],-1,42],42,4],[[[41,[-1]],-1,42],[[3,[-1,[125,[-1]]]]],4],[[[41,[-1]]],3,4],[[[41,[-1]]],3,4],[[[41,[-1]],[31,[42]],42],42,4],[[],8],[[[41,[-1]]],-2,4,[]],[[[41,[-1]],132,-1],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],-1],[[3,[8,13]]],4],[[[41,[-1]],42,42,42],42,4],[[[41,[-1]],12],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],132,[134,[42]]],42,4],[[[41,[-1]],132,[134,[42]],[125,[-1]]],42,4],[[[41,[-1]],-1],133,4],[[[41,[-1]],[134,[133]]],133,4],[[[41,[-1]],[134,[133]],[109,[-1]]],133,4],[[[41,[-1]],12],42,4],[[[41,[-1]],5],42,4],[[[41,[-1]],[15,[20]]],42,4],[[[41,[-1]],[0,[-1]]],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],12],42,4],[-1,-2,[],[]],0,[[[41,[-1]],133],13,4],[[[41,[-1]],12],42,4],[[],[[9,[32,33]]]],[[[41,[-1]],[31,[42]]],42,4],[[[41,[-1]],-1],42,4],[[[41,[-1]],21],42,4],[[[41,[-1]],[125,[-1]]],42,4],[[[41,[-1]],-1],[[6,[[3,[-1,42]]]]],4],[[]],[[[41,[-1]],42],[[6,[[134,[42]]]]],4],0,[[[41,[-1]],-2,-2],13,4,[]],[[[41,[-1]],42,42],13,4],[[[41,[-1]],[134,[42]]],[[134,[133]]],4],[[[41,[-1]],42,42,42],42,4],[[[41,[-1]],133,133],13,4],[[[41,[-1]],[134,[133]]],[[6,[[134,[42]]]]],4],[[[41,[-1]],133,133],[[6,[42]]],4],[[[41,[-1]]],133,4],[[[41,[-1]],12],[[34,[-2,-3]]],4,[],[]],[[[41,[-1]],[82,[[81,[80]]]],12],[[34,[42]]],4],[[[41,[-1]],[82,[[81,[80]]]],12],[[34,[[3,[8,135,42,13]],136]]],4],[[[41,[-1]],12],[[34,[42]]],4],[[[41,[-1]],132],133,4],[[[41,[-1]],[125,[-1]]],42,4],[[[41,[-1]],[109,[-1]]],133,4],[[[41,[-1]],[15,[42]]],[[31,[-1]]],4],[[[41,[-1]],[15,[133]]],[[31,[-1]]],4],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[41,[-1]],21],42,4],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[41,[-1]],132],42,4],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[132,132],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[-1,[[9,[132]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[132,132],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[132,17],18],[[132,17],18],[-1,-1,[]],[[-1,-2],21,[22,23],24],[[132,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[132,8],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],[8,[[6,[132]]]],[[132,-1],9,36],[132,-1,4],[-1,-2,[],[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[111,[[34,[132,-1]]],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,96,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[136,136],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],0,0,[[136,17],18],[[136,17],18],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[-1,[],[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],0,0,0,[-1,-2,[],[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,[137,12],[-1,-2,[],[]],[-1,-2,[],[]],[137,137],[[-1,-2],3,[],[]],[137,30],[[137,135],[[138,[-1,[31,[110]]]]],4],[[],137],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[137,-1],20,[[16,[[15,[110]]]]]],[[137,137],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[137,17],18],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[137,30],13],[[],[[9,[32,33]]]],[[],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[135,[[138,[-1,137]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[137,[[0,[[139,[135],[[49,[[138,[-1,[31,[110]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,137]]]]]]]]],4],[137,[[38,[139]]]],[137,[[0,[[139,[135],[[49,[[138,[-1,[31,[110]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[]],[137,112],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[-1,12,[140,[-1,-2]]],[[140,[-1,-2]]],[141,142],4],[[-1,143,[140,[-1,-2]]],[[140,[-1,-2]]],[141,142],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[144,[-1]]],[[144,[-1]]],[7,4]],[[[140,[-1,-2]]],[[140,[-1,-2]]],[7,142],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[144,[-1]],[144,[-1]]],13,[14,4]],[[[140,[-1,-2]],[140,[-1,-2]]],13,[14,142],[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,0,[[[144,[-1]],17],18,4],[[[144,[-1]],17],18,[19,4]],[[[140,[-1,-2]],17],18,[19,142],[19,4]],[[[140,[135,-1]],17],18,4],[-1,-1,[]],[-1,-1,[]],[[-1,143],[[140,[-1,-2]]],[141,142],4],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[144,[-1]]],13,4],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[[145,[-1,-2,[140,[-1,-3]]]],-4],[[145,[-1,-2,[140,[-1,-3]]]]],142,[],4,[[139,[[140,[-1,-3]]],[[49,[[140,[-1,-3]]]]]]]],[[-1,[144,[-2]]],[[140,[-1,-2]]],142,4],[[[6,[-1]],-2,[144,[-3]]],[[145,[-2,-1,[140,[-2,-3]]]]],[],142,4],[[[140,[-1,-2]],[140,[-1,-2]]],[[140,[-1,-2]]],[141,142],4],[[]],[[]],[[[9,[-1,-2]],-3,-5],[[145,[-3,-1,[140,[-3,-4]]]]],[],[],142,4,[[139,[-2],[[49,[[144,[-4]]]]]]]],[[-1,[144,[-2]]],[[145,[-1,-3,[140,[-1,-2]]]]],142,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[146,146],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[146,146],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[146,17],18],[-1,-1,[]],[[135,135],146],[146,[[6,[8]]]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],[[12,8,8,8,8],20],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[147,147],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[147,147],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[147,17],18],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[30,12],[[0,[[139,[135],[[49,[[138,[-1,30]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,135]]]]]]]]],4],[[30,13,12],[[0,[[139,[135],[[49,[[138,[-1,147]]]]]]]]],4],[[30,13,12],[[0,[[139,[135],[[49,[[138,[-1,135]]]]]]]]],4],[30,[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[30,13,12],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[30,13,12],[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,30]]]]]]]]],4],[[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[124,[5]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[135,[[138,[-1,135]]],4],[[[82,[[81,[80]]]],13,13],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[6,[[3,[13,[0,[-1]]]]]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[137,[[0,[[139,[135],[[49,[[138,[-1,[2,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[124,[5]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[124,[5]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[124,[5]]]]]]]]]]],4],[135,[[138,[-1,[31,[135]]]]],4],[135,[[138,[-1,[31,[135]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[12,[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[12,[[0,[[139,[135],[[49,[[138,[-1,20]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[31,[20]]]]]]]]]]],4],[[[82,[[81,[80]]]],13,13],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],[[],[[0,[[139,[135],[[49,[[138,[-1,[0,[-1]]]]]]]]]]],4],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[150,[],[[148,[-1]],[149,[-2]]]],-1],[[9,[[150,[],[[148,[-1]],[149,[-2]]]],98]]],[],[]],[151,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[151,-1,[]],[[[153,[],[[148,[-1]],[152,[-2]]]],-1,42,42,[41,[-3]],8],[[9,[[3,[-2,[31,[-3]],[31,[-3]],8]],98]]],[],[[150,[-3,-4],[[148,[-1]]]]],130,[[155,[42],[[154,[[31,[42]]]]]]]],[[[153,[],[[148,[-1]],[152,[-2]]]],8],8,[],[[150,[-3,-4],[[148,[-1]]]]],130,[[155,[42],[[154,[[31,[42]]]]]]]],[151,-1,[]],[[156,17],18],[[[153,[],[[148,[-1]],[152,[-2]]]]],156,[],[[150,[-3,-4],[[148,[-1]]]]],130,[[155,[42],[[154,[[31,[42]]]]]]]],[-1,-1,[]],[[[159,[],[[157,[-1]],[158,[-2]]]]],-1,[],19],[[[159,[],[[157,[-1]],[158,[-2]]]]],3,[],19],[[],8],[[[159,[],[[157,[-1]],[158,[-2]]]]],-1,[],19],[[[155,[],[[154,[-1]]]]],-1,[[151,[-2]]],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],0,[160,8],[[[155,[],[[154,[-1]]]]],-1,[[151,[-2]]],[]],[[]],[[[153,[],[[148,[-1]],[152,[-2]]]],-1,[31,[-4]],[41,[-3]]],[[9,[[3,[-2,[31,[-3]],[31,[-3]],8]],98]]],[],[[150,[-3,-4],[[148,[-1]]]]],130,[[155,[42],[[154,[[31,[42]]]]]]]],[[-1,[15,[-2]],[31,[-3]],[41,[-2]]],[[9,[[150,[],[[148,[-1]],[149,[-4]]]],98]]],[],130,[],[]],[[[159,[],[[157,[-1]],[158,[-2]]]],-1,-1],13,[],19],[160,8],[160,[[31,[-1]]],4],[[[159,[],[[157,[-1]],[158,[-2]]]],12],[[9,[-1,-2]]],[],19],[[[153,[],[[148,[-1]],[152,[-2]]]]],8,[],[[150,[-3,-4],[[148,[-1]]]]],130,[[155,[42],[[154,[[31,[42]]]]]]]],0,[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[[[150,[],[[148,[-1]],[149,[-2]]]],-1,[15,[-3]],[15,[-3]]],[[9,[13,-2]]],[],[],130],[-1,-2,[],[]],[[],[[31,[[161,[-1]]]]],130],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,[],[]],[[8,[124,[[83,[-1,-2]]]]],-1,130,[[64,[-1]]]],[[8,[124,[[83,[-1,-2]]]]],[[3,[[162,[-1,-2]],[163,[-1]]]]],130,[[64,[-1]]]],[[[164,[-1,[162,[-1,-2]]]],[165,[-1]]],[[9,[[164,[-1,[162,[-1,-2]]]],98]]],130,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[165,[-2]]]]],10,130],[-1,[[9,[[164,[-2,-3]]]]],10,130,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[[[166,[-1,-2]],-3,42,42,[41,[-1]],8],[[9,[[3,[-4,[31,[-1]],[31,[-1]],8]],98]]],130,[[64,[-1]]],[],[]],[[[165,[-1]],17],18,130],[[[166,[-1,-2]],17],18,[19,130],[19,[64,[-1]]]],[[[166,[-1,-2]]],156,130,[[64,[-1]]]],[[[167,[-1]]],[[165,[-1]]],130],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[8,[124,[[83,[-1,-2]]]]],[[166,[-1,-2]]],130,[[64,[-1]]]],[[[165,[-1]]],[[171,[[168,[-1]],[169,[-1]],[170,[-1]]]]],130],[[]],[[]],[[]],0,[[[166,[-1,-2]],[165,[-1]],[15,[0]],[41,[-1]]],[[9,[[3,[[164,[-1,[162,[-1,-2]]]],[31,[-1]],[31,[-1]],8]],98]]],130,[[64,[-1]]]],[[[165,[-1]],[15,[-1]],[31,[[162,[-1,-2]]]],[41,[-1]]],[[9,[[164,[-1,[162,[-1,-2]]]],98]]],130,[[64,[-1]]]],[[8,[124,[[83,[-1,-2]]]]],[[165,[-1]]],130,[[64,[-1]]]],[[[166,[-1,-2]]],8,130,[[64,[-1]]]],[[[165,[-1]],-2],9,130,36],[[[164,[-1,-2]],-3],9,130,[],36],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[164,[-1,[162,[-1,-2]]]],-3,[15,[-1]],[15,[-1]]],[[9,[13,-4]]],130,[[64,[-1]]],[],[]],[[[165,[-1]]],[[172,[[168,[-1]],[169,[-1]],[170,[-1]]]]],130],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],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,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[8,[124,[[83,[-1,-2]]]],8],-1,130,[[64,[-1]]]],[[8,[124,[[83,[-1,-2]]]]],[[173,[[168,[-1]]]]],130,[[64,[-1]]]],[[[129,[-1,-2]]],[[129,[-1,-2]]],[7,4],[7,[64,[-1]]]],[[-1,-2],3,[],[]],[[[174,[-1,[162,[-1,-2]]]],[175,[-1]]],[[9,[[174,[-1,[162,[-1,-2]]]],98]]],130,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[174,[-2,-3]]]]],10,130,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[[175,[-1]]],-1,130],[8,3],[8,3],[8,3],[8,3],[[[176,[-1,-2]],-3,42,42,[41,[-1]],8],[[9,[[3,[-4,[31,[-1]],[31,[-1]],8]],98]]],130,[[64,[-1]]],[],[]],[[[176,[-1,-2]],17],18,[19,130],[19,[64,[-1]]]],[[[129,[-1,-2]],17],18,[19,4],[19,[64,[-1]]]],[[[176,[-1,-2]]],156,130,[[64,[-1]]]],[[[177,[-1]]],[[175,[-1]]],130],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[175,[-1]],8],-2,130,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[129,[-1,-2]]],[[124,[[83,[-1,-2]]]]],4,[[64,[-1]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[8,[124,[[83,[-1,-2]]]]],[[176,[-1,-2]]],130,[[64,[-1]]]],[[[124,[[83,[-1,-2]]]],8],[[129,[-1,-2]]],4,[[64,[-1]]]],[[[124,[[83,[-1,-2]]]],8],[[129,[-1,-2]]],4,[[64,[-1]]]],[[[129,[-1,-2]]],8,4,[[64,[-1]]]],[[[175,[-1]]],[[180,[[168,[-1]],[178,[-1]],[179,[-1]]]]],130],0,[[]],[[]],[[]],[[]],0,[[[176,[-1,-2]],[175,[-1]],[15,[0]],[41,[-1]]],[[9,[[3,[[174,[-1,[162,[-1,-2]]]],[31,[-1]],[31,[-1]],8]],98]]],130,[[64,[-1]]]],[[[175,[-1]],[15,[-1]],[31,[[162,[-1,-2]]]],[41,[-1]]],[[9,[[174,[-1,[162,[-1,-2]]]],98]]],130,[[64,[-1]]]],[[8,[124,[[83,[-1,-2]]]]],[[175,[-1]]],130,[[64,[-1]]]],[[[176,[-1,-2]]],8,130,[[64,[-1]]]],[[[129,[-1,-2]]],8,4,[[64,[-1]]]],[[[174,[-1,-2]],-3],9,130,[],36],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[174,[-1,[162,[-1,-2]]]],-3,[15,[-1]],[15,[-1]]],[[9,[13,-4]]],130,[[64,[-1]]],[],[]],[[[175,[-1]]],[[181,[[168,[-1]],[178,[-1]],[179,[-1]]]]],130],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[182,[-1,-2]]],[[9,[[165,[-1]],0]]],130,[[64,[-1]]]],[[[182,[-1,-2]]],[[9,[[183,[-1]],0]]],130,[[64,[-1]]]],[[[182,[-1,-2]]],[[9,[[184,[-1]],0]]],130,[[64,[-1]]]],[[[182,[-1,-2]]],[[9,[[175,[-1]],0]]],130,[[64,[-1]]]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[182,[-1,-2]]],[[31,[[182,[-1,-2]]]]],130,[[64,[-1]]]],[185,185],[186,186],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[182,[-1,-2]],187],[[189,[188]]],130,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[185]]],10],[-1,[[9,[186]]],10],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[[185,185],13],[[186,186],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[182,[-1,-2]],17],18,[19,130],[19,[64,[-1]]]],[[185,17],18],[[186,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[182,[-1,-2]]],20,130,[[64,[-1]]]],0,0,[[[182,[-1,-2]]],[[124,[[83,[-1,-2]]]]],130,[[64,[-1]]]],0,0,[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[],[[9,[32,33]]]],[[8,[124,[[83,[-1,-2]]]],13,185],[[182,[-1,-2]]],130,[[64,[-1]]]],[[[182,[-1,-2]],187],[[189,[188]]],130,[[64,[-1]]]],[[]],[[]],[[]],0,0,[[[182,[-1,-2]],8],[[182,[-1,-2]]],130,[[64,[-1]]]],[[185,-1],9,36],[[186,-1],9,36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[],80],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[80,17],18],[[80,[124,[5]]],20],[-1,-1,[]],[80,[[124,[5]]]],[[80,[15,[[124,[5]]]]],[[34,[3]]]],[[],8],[[],80],[[],80],[[80,-1],[[124,[5]]],[[16,[12]]]],[[80,[15,[-1]],13,13],[[34,[[124,[5]]]]],[[16,[12]]]],[[80,[15,[-1]],13],[[34,[[124,[5]]]]],[[16,[12]]]],[-1,-2,[],[]],[[],[[9,[32,33]]]],[12,5],[[],5],0,[[]],[80,[[82,[[81,[80]]]]]],[[80,12],[[6,[[124,[5]]]]]],[[80,[124,[5]]],[[34,[3]]]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],0,[12,5],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[8,110],[190,190],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[190,190],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[190,17],18],[[190,17],18],[-1,-1,[]],[[[15,[110]]],[[34,[190]]]],[190,[[9,[-1,0]]],69],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],[[[15,[110]]],[[6,[8]]]],[190,110],[110,13],[110,13],[190,[[31,[110]]]],[-1,-2,[],[]],[-1,20,[]],[8,[[31,[110]]]],[-1,[[9,[190,0]]],70],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],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,[],[]],[[[191,[-1]]],[[191,[-1]]],[7,4]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[191,[-2]]]]],10,[69,4]],[8,3],[[[191,[-1]],[191,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[191,[-1]],17],18,[19,4]],[-1,-1,[]],[[[191,[-1]]],[[134,[-1]]],4],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],[[[191,[-1]],-2],9,[70,4],36],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[191,[-1]],[0,[-1]]],[[53,[-1]]],4],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,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[192,[-1]]],[7,4]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[192,[-2]]]]],10,[69,4]],[8,3],[[[192,[-1]],[192,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[192,[-1]],17],18,[19,4]],[[[192,[-1]],17],18,4],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[]],[[[192,[-1]],-2],9,[70,4],36],[-1,-2,[],[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[192,[-1]],[0,[-1]]],[[54,[-1]]],4],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[50,[-1,-2]]],[[50,[-1,-2]]],[7,0],[7,4]],[[-1,-2],3,[],[]],[[[50,[-1,-2]],[50,[-1,-2]]],35,0,4],[[-1,-2],35,[],[]],[8,-1,[]],[8,-1,[]],[-1,[[9,[[50,[-2,-3]]]]],10,[69,0],[69,4]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[8,3],[[],[[50,[132,-1]]],4],[[[50,[-1,-2]],[50,[-1,-2]]],13,[14,0],[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[50,[-1,-2]],17],18,[0,27],4],[[[50,[-1,-2]],17],18,[19,0],[19,4]],[-1,-1,[]],[12,[[9,[[50,[-1,-2]],193]]],0,4],[[-1,-2],[[50,[-1,-2]]],0,4],[[-1,-2],21,[22,23],24],[[[50,[-1,-2]],-3],3,0,4,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[[50,[-1,-2]],[50,[-1,-2]]],[[6,[35]]],0,4],[[[50,[-1,-2]]],[[3,[-2,-2]]],0,4],[[]],[[[50,[-1,-2]],-3],9,[70,0],[70,4],36],[[[50,[-1,-2]]],-1,0,4],[[[50,[-1,-2]]],-2,0,4],[[[50,[-1,-2]]],20,0,4],[-1,-2,[],[]],[-1,20,[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[[[50,[-1,-2]]],-2,0,4],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[194,[-1]]],[[194,[-1]]],[7,4]],[[-1,-2],3,[],[]],0,[[],[[194,[-1]]],[75,4]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[9,[[11,[-3,-4]]]]],[],[],[],[]],[-1,[[9,[[194,[-2]]]]],10,[69,4]],[8,3],[[[194,[-1]],[194,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[[194,[-1]],17],18,[19,4]],[-1,-1,[]],[[[194,[-1]],[53,[-1]]],[[6,[[191,[-1]]]]],4],[[[194,[-1]],[54,[-1]]],[[6,[[192,[-1]]]]],4],[[[54,[-1]]],[[6,[[192,[-1]]]]],4],[[],8],[[[194,[-1]],[54,[-1]],[6,[[192,[-1]]]]],[[6,[[6,[[192,[-1]]]]]]],4],[-1,-2,[],[]],[[],[[9,[32,33]]]],[[],[[194,[-1]]],4],[[[194,[-1]],[0,[-1]]],[[54,[-1]]],4],[[]],[[[194,[-1]],12,[0,[-1]]],[[3,[[54,[-1]],[192,[-1]]]]],4],[[[194,[-1]],5,[0,[-1]]],[[3,[[54,[-1]],[192,[-1]]]]],4],[[[194,[-1]],-2],9,[70,4],36],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]]],"c":[],"p":[[6,"UInt",0],[6,"Num",0],[1,"tuple"],[10,"LurkField",1227],[5,"Symbol",0],[6,"Option",2978],[10,"Clone",2979],[1,"usize"],[6,"Result",2980],[10,"Deserializer",2981],[5,"With",2982],[1,"str"],[1,"bool"],[10,"PartialEq",2983],[1,"slice"],[10,"AsRef",2984],[5,"Formatter",2985],[8,"Result",2985],[10,"Debug",2985],[5,"String",2986],[1,"u64"],[10,"Hash",2987],[10,"Sized",2988],[10,"BuildHasher",2987],[10,"Hasher",2987],[5,"IndentedSection",2989],[10,"Display",2985],[10,"Send",2988],[10,"Sync",2988],[1,"char"],[5,"Vec",2990],[5,"Layout",2991],[5,"LayoutError",2991],[8,"Result",2992],[6,"Ordering",2983],[10,"Serializer",2993],[5,"TypeId",2994],[5,"Box",2995],[10,"Any",2994],[10,"CircomGadget",200],[5,"Store",1852],[5,"Ptr",1755],[5,"AllocatedPtr",205],[5,"AllocatedNum",2996],[6,"Boolean",2997],[6,"SynthesisError",2998],[10,"PrimeField",2999],[10,"ConstraintSystem",2998],[17,"Output"],[5,"ZPtr",2885],[10,"FnOnce",3000],[5,"AllocatedContPtr",205],[8,"ZContPtr",2885],[8,"ZExprPtr",2885],[5,"Utf8PathBuf",3001],[5,"Settings",287],[5,"PerfConfig",287],[5,"ParallelConfig",287],[5,"WitnessGeneration",287],[6,"Flow",287],[5,"HashMap",3002],[6,"ConfigError",3003],[10,"CoCircuit",444],[10,"Coprocessor",444],[5,"GlobalAllocator",1584],[5,"CircomCoprocessor",460],[5,"Sha256Coprocessor",493],[6,"Sha256Coproc",493],[10,"Deserialize",2981],[10,"Serialize",2993],[6,"TrieCoproc",560],[5,"NewCoprocessor",560],[5,"LookupCoprocessor",560],[5,"InsertCoprocessor",560],[10,"Default",3004],[5,"Trie",560],[6,"Error",560],[5,"LookupProof",560],[5,"InsertProof",560],[5,"State",2663],[5,"RefCell",3005],[5,"Rc",3006],[5,"Lang",1105],[17,"CM"],[10,"MemoSet",793],[10,"CircuitMemoSet",793],[5,"LogMemo",793],[5,"LogMemoCircuit",793],[5,"Transcript",793],[5,"CircuitTranscript",793],[5,"Scope",793],[5,"CircuitScope",793],[17,"CQ"],[10,"Query",793],[10,"CircuitQuery",793],[10,"Error",3007],[6,"ReductionError",1005],[6,"ProofError",1005],[6,"SuperNovaError",3008],[6,"NovaError",3009],[5,"Frame",1070],[10,"Copy",2988],[5,"Binding",1105],[10,"Into",2984],[6,"Coproc",1105],[5,"DummyCoprocessor",1105],[5,"IndexMap",3010],[6,"LanguageField",1227],[5,"FWrap",1227],[1,"u8"],[1,"u16"],[1,"u32"],[5,"PossibleValue",3011],[1,"u128"],[5,"Func",1337],[5,"Var",1337],[6,"Lit",1337],[5,"Block",1337],[6,"Ctrl",1337],[6,"Op",1337],[8,"AString",1337],[6,"AllocatedVal",1584],[5,"SlotWitness",1584],[5,"Arc",3012],[8,"ZPtr",1755],[5,"SlotsAllocations",1584],[5,"EvalConfig",1678],[5,"MultiFrame",1707],[6,"FoldingConfig",2438],[10,"CurveCycleEquipped",2344],[8,"C2",2438],[6,"Tag",1963],[6,"RawPtr",1755],[1,"array"],[8,"Span",2007],[6,"Error",2007],[6,"LitBase",2048],[8,"ParseResult",2007],[10,"Fn",3000],[5,"ParseError",2097],[10,"InputLength",3013],[10,"AsBytes",3013],[6,"ErrorKind",3014],[6,"ParseErrorKind",2097],[8,"IResult",3015],[6,"Pos",2183],[6,"StringFragment",2224],[17,"PublicParams"],[17,"ErrorType"],[10,"RecursiveSNARKTrait",2285],[10,"CEKState",2285],[17,"RecursiveSnark"],[10,"Prover",2285],[17,"FrameIO"],[10,"FrameLike",2285],[6,"FoldingMode",2285],[17,"Ptr"],[17,"Error"],[10,"EvaluationStore",2285],[10,"Provable",2285],[8,"Dual",2344],[8,"C1LEM",2344],[8,"C2",2344],[6,"Proof",2344],[5,"PublicParams",2344],[5,"NovaProver",2344],[8,"NovaPublicParams",2344],[8,"E1",2344],[8,"SS1",2344],[8,"SS2",2344],[5,"ProverKey",3016],[5,"VerifierKey",3016],[5,"CircuitDigests",3017],[6,"Proof",2438],[5,"PublicParams",2438],[5,"SuperNovaProver",2438],[8,"SuperNovaPublicParams",2438],[8,"SS1",2438],[8,"SS2",2438],[5,"ProverKey",3018],[5,"VerifierKey",3018],[5,"Instance",2561],[8,"SuperNovaAuxParams",2438],[8,"NovaCircuitShape",2344],[6,"Kind",2561],[5,"Metadata",2561],[5,"Utf8Path",3001],[5,"File",3019],[8,"Result",3020],[6,"ZData",2701],[6,"ZCont",2750],[6,"ZExpr",2832],[5,"Error",2992],[5,"ZStore",2935],[8,"ChildMap",560],[5,"CoroutineCircuit",793],[15,"Pos",2218],[15,"Let",2800],[15,"LetRec",2800],[15,"Call0",2800],[15,"Call",2800],[15,"Call2",2800],[15,"Tail",2800],[15,"Lookup",2800],[15,"Unop",2800],[15,"Binop",2800],[15,"Binop2",2800],[15,"If",2800],[15,"Emit",2800],[15,"Fun",2882]],"b":[[73,"impl-Debug-for-Num%3CF%3E"],[74,"impl-Display-for-Num%3CF%3E"],[75,"impl-Display-for-Symbol"],[76,"impl-Debug-for-Symbol"],[77,"impl-Display-for-UInt"],[78,"impl-Debug-for-UInt"],[82,"impl-From%3Cu64%3E-for-Num%3CF%3E"],[83,"impl-From%3CUInt%3E-for-Num%3CF%3E"],[665,"impl-From%3CNewCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[666,"impl-From%3CLookupCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[667,"impl-From%3CInsertCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[1029,"impl-Display-for-ProofError"],[1030,"impl-Debug-for-ProofError"],[1031,"impl-Debug-for-ReductionError"],[1032,"impl-Display-for-ReductionError"],[1033,"impl-From%3CSuperNovaError%3E-for-ProofError"],[1035,"impl-From%3CSynthesisError%3E-for-ProofError"],[1036,"impl-From%3CReductionError%3E-for-ProofError"],[1037,"impl-From%3CNovaError%3E-for-ProofError"],[1271,"impl-Display-for-LanguageField"],[1272,"impl-Debug-for-LanguageField"],[1478,"impl-Debug-for-Var"],[1479,"impl-Display-for-Var"],[1708,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1709,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1743,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1744,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1745,"impl-Circuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1902,"impl-EvaluationStore-for-Store%3CF%3E"],[1903,"impl-Store%3CF%3E"],[1937,"impl-EvaluationStore-for-Store%3CF%3E"],[1938,"impl-Store%3CF%3E"],[1945,"impl-EvaluationStore-for-Store%3CF%3E"],[1946,"impl-Store%3CF%3E"],[1983,"impl-Debug-for-Tag"],[1984,"impl-Display-for-Tag"],[2027,"impl-Debug-for-Error"],[2028,"impl-Display-for-Error"],[2140,"impl-Display-for-ParseErrorKind%3CF%3E"],[2141,"impl-Debug-for-ParseErrorKind%3CF%3E"],[2142,"impl-Debug-for-ParseError%3CI,+F%3E"],[2143,"impl-Display-for-ParseError%3CLocatedSpan%3C%26str%3E,+F%3E"],[2720,"impl-Display-for-ZData"],[2721,"impl-Debug-for-ZData"],[2863,"impl-Debug-for-ZExpr%3CF%3E"],[2864,"impl-Display-for-ZExpr%3CF%3E"],[2907,"impl-Display-for-ZPtr%3CE,+F%3E"],[2908,"impl-Debug-for-ZPtr%3CE,+F%3E"]]}],\ +["lurk",{"doc":"Lurk","t":"GPFPPGNNNNNNQNNNNNNQCCNNNNNNCCCQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNCNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNQNNNCQQNNNNNNNQQCNNNNNNNNCCNNNNNNNNCQNNNQNQQNNNNNNNNNNNNNNNQNNNNNNNNNQQNNNECEEECCCCKMMMHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCHGJJPFPFPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNHHOONNNNNOOHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKNCMNNMCNCNNNCCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHPGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIGIPFFPFFPPFIIFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFRRKKFFFFFKGFKPPFFMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNMNNNMMNNNNNMNMMNMNMMNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNNONONCNONNNNNNNNNOFGPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPTFPGKTPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIPPFPPPPPPPGPPPPPPPPFPPPPPPGPPPPPPPGPPPPPPPPPPFPNONNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNCNONNNONNNNNNCOCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGPPFPPFFNNNNNNNONNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNHHHHHHNNNNHHNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPFGINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGJPPIIPNCNNNNNNNNCONNNNNNNNNCCCNNNNNNNNNPPPGPNNNNNNNNNNNNNNNNNNNNNNNNNHNHHHHHHHNNNNNNNNNNPPPPPPPFGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNONNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPPGNNNNNNNNNNNNNNNNNNNHHHHHHHHNNNNNNNNNHHHHHHHHHHHHHHHHHHHHHKRRKGRKPPKKRRRKRNNMMNNNNMMNMNMNMMNMMNNCMMNNMMMMMMCNNNNNNMNNIIPKIIRIRIRIFIGFPIINNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNHNNNNNNNNNNNNNNNNNNNNNNNNNNIPIIGPPGFPIIIFINNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHHHFGFPPPOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOONNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNHNNNNNHHNNNNNNNNNNNNHNPPGNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNHNNNNNNNCCCCPPPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOIIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNN","n":["Num","Scalar","Symbol","U64","U64","UInt","add","add_assign","arbitrary_with","arbitrary_with","arbitrary_with","as_child","block","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","char","circuit","cli","clone","clone","clone","clone_into","clone_into","clone_into","config","coprocessor","coroutine","ctrl","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","direct_child","direct_parent","div","div_assign","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","error","eval","extend","field","fmt","fmt","fmt","fmt","fmt","fmt","fmt_path_component_to_string","fmt_path_to_string","fmt_to_string","from","from","from","from","from","from","from","from_scalar","from_str_impl","func","get_hash","get_hash","has_parent","hash","hash","header","header","header","init","init","init","into","into","into","into_scalar","is_keyword","is_negative","is_root","is_root_key","is_root_sym","is_whitespace","is_zero","is_zero","key","key_from_vec","keyword","layout_raw","layout_raw","layout_raw","lem","list","lit","most_negative","most_positive","mul","mul_assign","name","new","new_from_vec","num","op","parser","partial_cmp","partial_cmp","partial_cmp","path","pointer_metadata","pointer_metadata","pointer_metadata","prints_as_absolute","proof","public_parameters","rem","root","root_key","root_sym","serialize","serialize","serialize","set_as_keyword","state","str","sub","sub_assign","sym","sym","sym_from_vec","symbol","tag","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","uint","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","var","vars","vzip","vzip","vzip","z_cont","z_data","z_expr","z_ptr","z_store","gadgets","circom","constraints","pointer","CircomGadget","evaluate_simple","into_circom_input","name","alloc_equal","AllocatedContPtr","AllocatedPtr","alloc","alloc","alloc_constant","alloc_constant","alloc_equal","alloc_equal","alloc_infallible","alloc_tag","alloc_tag_equal","alloc_tag_equal","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","enforce_equal","enforce_equal","fmt","fmt","from","from","from","from","from_parts","get_value","hash","hash","implies_ptr_equal","init","init","into","into","is_char","is_comm","is_cons","is_fun","is_num","is_str","is_sym","is_thunk","is_u64","layout_raw","layout_raw","pick","pick","pick_const","pointer_metadata","pointer_metadata","tag","tag","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","parse_and_run","paths","lurk_default_dir","Flow","LURK_CONFIG","LURK_CONFIG_FILE","Parallel","ParallelConfig","ParallelN","PerfConfig","Sequential","Settings","WitnessGeneration","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","default","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_config","home_dir","init","init","init","init","init","into","into","into","into","into","is_parallel","is_sequential","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","lurk_config","lurk_config_file","parallelism","perf","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","poseidon_witnesses","precompute_neptune","public_params_default_dir","public_params_dir","recursive_steps","synthesis","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","witness_generation","CoCircuit","Coprocessor","arity","circom","eval_arity","evaluate","evaluate_internal","evaluate_simple","gadgets","has_circuit","sha256","synthesize","synthesize_internal","synthesize_simple","trie","non_wasm","CircomCoprocessor","arity","borrow","borrow_mut","clone","clone_into","create","deref","deref_mut","deserialize","drop","eval_arity","evaluate_simple","fmt","from","has_circuit","init","into","layout_raw","name","new","pointer_metadata","synthesize_simple","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","a_ptr_as_z_ptr","chain_car_cdr","SC","Sha256Coproc","Sha256Coprocessor","arity","arity","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","fmt","fmt","from","from","from","has_circuit","has_circuit","init","init","into","into","layout_raw","layout_raw","new","pointer_metadata","pointer_metadata","serialize","serialize","synthesize","synthesize_internal","synthesize_simple","synthesize_simple","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","ChildMap","Error","HashPreimagePath","Insert","InsertCoprocessor","InsertProof","Lookup","LookupCoprocessor","LookupProof","MissingPreimage","New","NewCoprocessor","PreimagePath","StandardTrie","Trie","TrieCoproc","arity","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","constants","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","empty_root","eval_arity","eval_arity","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","evaluate_simple","evaluate_simple","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","has_circuit","has_circuit","has_circuit","has_circuit","init","init","init","init","init","init","init","init","insert","install","into","into","into","into","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","leaves","lookup","new","new_with_capacity","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","prove_insert","prove_lookup","root","row_size","serialize","serialize","serialize","synthesize","synthesize_insert","synthesize_internal","synthesize_simple","synthesize_simple","synthesize_simple","synthesize_simple","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_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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","memoset","AllocatedProvenance","CM","CQ","CircuitMemoSet","CircuitQuery","CircuitScope","CircuitTranscript","CoroutineCircuit","LogMemo","LogMemoCircuit","MemoSet","MemoSetError","Provenance","Query","QueryDependenciesMissing","QueryResultMissing","Scope","Transcript","add","add","allocated_r","allocated_r","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","count","count","count","count","count","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","dummy_from_index","dummy_from_index","eval","finalize_transcript","finalize_transcript","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_ptr","from_ptr","index","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","is_finalized","is_finalized","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","map_to_element","map_to_element","pick","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","query","r","r","recursive_eval","recursive_eval","symbol","symbol","symbol_ptr","symbol_ptr","symbol_ptr","symbol_ptr","synthesize","synthesize_add","synthesize_add","synthesize_eval","synthesize_map_to_element","synthesize_map_to_element","synthesize_remove_n","synthesize_remove_n","to_circuit","to_circuit","to_circuit","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_ptr","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Misc","Nova","ProofError","Reduction","ReductionError","Store","SuperNova","Synthesis","as_error","as_error","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","header","header","in_current_span","in_current_span","init","init","into","into","layout_raw","layout_raw","pointer_metadata","pointer_metadata","source","source","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","Frame","_p","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","i","init","input","into","lang","layout_raw","output","pointer_metadata","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","witness","Binding","Coproc","Dummy","DummyCoprocessor","Lang","add_binding","add_coprocessor","arity","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","coprocessor_count","coprocessors","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","eval_arity","eval_arity","evaluate","evaluate_internal","evaluate_simple","evaluate_simple","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_index_by_symbol","has_circuit","has_coprocessors","init","init","init","init","into","into","into","into","is_default","key","layout_raw","layout_raw","layout_raw","layout_raw","lookup_by_sym","new","new","new_with_bindings","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","serialize","serialize","serialize","synthesize","synthesize_internal","synthesize_simple","to_owned","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","BN256","FIELD","FWrap","Grumpkin","LanguageField","LurkField","NON_HIDING_COMMITMENT_SECRET","Pallas","Vesta","arbitrary_with","arbitrary_with","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","compare","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from_bytes","from_char","from_cont_tag","from_expr_tag","from_op1","from_op2","from_u16","from_u32","from_u64","get_field","get_hash","hash","header","hex_digits","init","init","into","into","is_negative","layout_raw","layout_raw","most_negative","most_positive","partial_cmp","pointer_metadata","pointer_metadata","serialize","serialize","to_bytes","to_char","to_cont_tag","to_expr_tag","to_op1","to_op2","to_owned","to_owned","to_possible_value","to_string","to_u128","to_u128_unchecked","to_u16","to_u32","to_u32_unchecked","to_u64","to_u64_unchecked","trimmed_hex_digits","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","value_variants","vzip","vzip","AString","Add","And","Block","Call","Cast","Cons2","Cons3","Cons4","Copy","Cproc","Ctrl","Decons2","Decons3","Decons4","Div","DivRem64","Emit","EqTag","EqVal","Func","Hash3Zeros","Hash4Zeros","Hash6Zeros","Hash8Zeros","Hide","If","Lit","Lit","Lt","MatchSymbol","MatchTag","Mul","Not","Num","Op","Open","Or","PopBinding","PushBinding","Return","String","Sub","Symbol","Trunc","Unit","Var","Zero","alloc_consts","body","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","call_simple","check","circuit","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_slots","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_hash","get_hash","hash","hash","header","init","init","init","init","init","init","input_params","into","into","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","layout_raw","multiframe","name","name","new","new","num_constraints","output_size","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pointers","slots_count","store","synthesize_frame","synthesize_frame_aux","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_ptr","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unroll","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","vzip","vzip","AllocatedVal","Bits","Boolean","GlobalAllocator","Number","Pointer","SlotWitness","SlotsAllocations","alloc_const","alloc_const_cloned","alloc_ptr","alloc_tag","alloc_tag_cloned","alloc_z_ptr","alloc_z_ptr_from_parts","allocations","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_slots_allocations","clone","clone_into","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","from","from","from","from","init","init","init","init","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","vzip","witness","EvalConfig","borrow","borrow_mut","deref","deref_mut","deserialize","drop","eval_step","evaluate","evaluate_simple","evaluate_simple_with_env","evaluate_with_env","evaluate_with_env_and_cont","from","init","into","layout_raw","make_cprocs_funcs_from_lang","make_eval_step_from_config","new_ivc","new_nivc","pointer_metadata","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","MultiFrame","arity","arity","blank","borrow","borrow_mut","build_frames","cache_witness","circuit_index","clear_cached_witness","clone","clone_into","deref","deref_mut","deserialize","drop","emitted","fmt","frames","from","from_frames","init","input","into","layout_raw","num_circuits","num_frames","output","pointer_metadata","precedes","primary_circuit","program_counter","public_input_size","public_inputs","secondary_circuit","significant_frame_count","synthesize","synthesize","synthesize","synthesize_frames","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Atom","Hash4","Hash6","Hash8","Ptr","RawPtr","ZPtr","atom","borrow","borrow","borrow_mut","borrow_mut","cast","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","dummy","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt_to_string","fmt_to_string_simple","from","from","get_atom","get_atom","get_hash","get_hash","get_hash4","get_hash6","get_hash8","get_index2","get_index3","get_index4","has_tag","has_tag_in","hash","hash","init","init","into","into","is_fun","is_hash","is_list","is_nil","is_num","is_str","is_sym","layout_raw","layout_raw","new","parts","pointer_metadata","pointer_metadata","raw","serialize","serialize","tag","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","Store","WithStore","add_comm","borrow","borrow","borrow_mut","borrow_mut","car_cdr","char","comm","commit","cons","cont_error","cont_outermost","cont_terminal","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","dummy","expect_f","expect_ptrs","expect_raw_ptrs","fetch_env","fetch_f","fetch_key","fetch_list","fetch_ptrs","fetch_raw_ptrs","fetch_string","fetch_sym","fetch_symbol","fetch_tag","fmt","fmt","from","from","get_cont_terminal","hash3_cost","hash3zeros","hash3zeros_idx","hash4_cost","hash4zeros","hash4zeros_idx","hash6_cost","hash6zeros","hash6zeros_idx","hash8_cost","hash8zeros","hash8zeros_idx","hash_ptr","hash_raw_ptr","hide","hide_and_return_z_payload","hydrate_z_cache","hydrate_z_cache","improper_list","init","init","initial_empty_env","inner","intern_atom","intern_empty_env","intern_f","intern_fun","intern_lurk_symbol","intern_nil","intern_ptrs","intern_ptrs_hydrated","intern_raw_atom","intern_raw_ptrs","intern_raw_ptrs_hydrated","intern_string","intern_symbol","intern_symbol_path","intern_syntax","intern_t","intern_user_symbol","into","into","inverse_poseidon_cache","is_zero","key","layout_raw","layout_raw","list","num","num_u64","opaque","open","pointer_metadata","pointer_metadata","pop_binding","pop_provenance","poseidon_cache","ptr_eq","ptr_eq","ptrs_to_raw_ptrs","push_binding","push_provenance","raw_ptr_eq","raw_ptrs_to_ptrs","raw_to_ptr","raw_zero","read","read","read_maybe_meta","read_with_default_state","store","tag","to_inner","to_ptr","to_raw_ptr","to_scalar_vector","to_scalar_vector_raw","try_from","try_from","try_into","try_into","type_id","type_id","u64","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","zero","Cont","Expr","Op1","Op2","Tag","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","get_hash","hash","header","index","init","into","layout_raw","pointer_metadata","pos","serialize","to_field","to_owned","to_string","try_from","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Err","Error","LURK_WHITESPACE","NoInput","Ok","ParseResult","Span","Syntax","as_error","base","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","error","extra","fmt","fmt","from","header","in_current_span","init","into","layout_raw","pointer_metadata","position","string","syntax","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","Bin","Dec","Hex","LitBase","Oct","base_digits","borrow","borrow_mut","clone","clone_into","code","decode","default","deref","deref_mut","deserialize","drop","encode","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","init","into","is_digit","layout_raw","parse_bin_digits","parse_code","parse_dec_digits","parse_hex_digits","parse_litbase_be_bytes","parse_litbase_code","parse_litbase_digits","parse_litbase_le_bytes","parse_oct_digits","pointer_metadata","radix","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","InterningError","InvalidBase16EscapeSequence","InvalidBaseEncoding","InvalidChar","Nom","NumError","NumLiteralTooBig","ParseError","ParseErrorKind","ParseIntErr","UnknownBaseCode","add_context","append","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","errors","expected","fmt","fmt","fmt","fmt","from","from","from_error_kind","header","header","init","init","input","into","into","is_nom_err","layout_raw","layout_raw","map_parse_err","new","opt","or","pointer_metadata","pointer_metadata","res","throw","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","vzip","vzip","No","Pos","Pos","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","from_upto","get_from_offset","init","into","layout_raw","pointer_metadata","range","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","from_column","from_line","from_offset","upto_column","upto_line","upto_offset","EscapedChar","EscapedWS","Literal","StringFragment","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","init","into","layout_raw","parse_escaped_char","parse_escaped_whitespace","parse_fragment","parse_literal","parse_string","parse_string_inner","parse_string_inner1","parse_unicode","pointer_metadata","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","parse_absolute_symbol","parse_char","parse_hash_char","parse_line_comment","parse_list","parse_maybe_meta","parse_num","parse_num_inner","parse_quote","parse_raw_keyword","parse_raw_symbol","parse_relative_symbol","parse_space","parse_space1","parse_string","parse_symbol","parse_symbol_limb","parse_symbol_limb_raw","parse_symbol_limbs","parse_syntax","parse_uint","CEKState","Error","ErrorType","EvaluationStore","FoldingMode","FrameIO","FrameLike","IVC","NIVC","Provable","Prover","Ptr","PublicParams","PublicParams","RecursiveSNARKTrait","RecursiveSnark","borrow","borrow_mut","compress","cont","deref","deref_mut","deserialize","drop","env","evaluate_and_prove","expected_num_steps","expr","fmt","folding_mode","from","get_cont_terminal","hydrate_z_cache","init","initial_empty_env","input","into","layout_raw","nova","num_frames","output","pointer_metadata","prove","prove_recursively","ptr_eq","public_input_size","public_inputs","read","reduction_count","supernova","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","verify","vzip","z0_secondary","C1LEM","C2","Compressed","CurveCycleEquipped","Dual","E1","E1","EE1","EE1","EE2","EE2","NovaCircuitShape","NovaProver","NovaPublicParams","Proof","PublicParams","Recursive","SS1","SS2","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","circuit_cache_key","circuits","compress","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","evaluate_and_prove","fmt","fmt","folding_mode","from","from","from","from","init","init","init","into","into","into","layout_raw","layout_raw","layout_raw","new","pk","pointer_metadata","pointer_metadata","pointer_metadata","pp","prove_from_frames","prove_recursively","public_params","reduction_count","serialize","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","vk","vzip","vzip","vzip","C2","Compressed","EE1","EE2","FoldingConfig","IVC","NIVC","Proof","PublicParams","Recursive","SS1","SS2","SuperNovaAuxParams","SuperNovaProver","SuperNovaPublicParams","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_cache_key","circuit_cache_keys","clone","clone_into","compress","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","evaluate_and_prove","fmt","fmt","folding_mode","from","from","from","from","from","index","init","init","init","init","into","into","into","into","lang","layout_raw","layout_raw","layout_raw","layout_raw","new","new_ivc","new_nivc","num_circuits","pk","pk_and_vk","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","pp","prove_from_frames","prove_recursively","public_params","reduction_count","reduction_count","serialize","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","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","upcast_any_ref","verify","vk","vzip","vzip","vzip","vzip","disk_cache","instance","public_params","supernova_aux_params","supernova_circuit_params","supernova_public_params","Instance","Kind","Metadata","NovaPublicParams","SuperNovaAuxParams","SuperNovaCircuitParams","abomonated","abomonated","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cache_key","cache_key","circuit_param_instances","clone","clone","clone_into","clone_into","create","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","key","kind","kind","lang","lang","lang","layout_raw","layout_raw","layout_raw","new","open","pointer_metadata","pointer_metadata","pointer_metadata","rc","rc","reindex","serialize","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","vzip","vzip","vzip","State","add_package","borrow","borrow_mut","default","deref","deref_mut","deserialize","drop","fmt","fmt_to_string","from","get_current_package_name","import","init","init_lurk_state","initial_lurk_state","intern","intern_path","intern_relative_path","into","layout_raw","lurk_sym","meta_package_symbol","new_with_package","pointer_metadata","rccell","resolve","set_current_package","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","use_package","user_sym","vzip","Atom","Cell","ZData","arbitrary_with","borrow","borrow_mut","byte_count","clone","clone_into","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from_bytes","from_z_data","header","init","into","layout_raw","pointer_metadata","read_size_bytes","tag","tag_is_atom","tag_is_small","to_bytes","to_owned","to_string","to_trimmed_le_bytes","to_z_data","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_cont","z_expr","z_ptr","z_store","Binop","Binop2","Call","Call0","Call2","Dummy","Emit","Error","If","Let","LetRec","Lookup","Outermost","Tail","Terminal","Unop","ZCont","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","from","hash_components","init","into","layout_raw","pointer_metadata","serialize","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_ptr","body","body","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","continuation","evaled_arg","function","operator","operator","operator","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","saved_env","unevaled_arg","unevaled_args","unevaled_args","var","var","Char","Comm","Cons","EmptyStr","Fun","Key","Nil","Num","RootKey","RootSym","Str","Sym","Thunk","UInt","ZExpr","arbitrary_with","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","header","init","into","layout_raw","pointer_metadata","serialize","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip","z_ptr","arg","body","closed_env","ZContPtr","ZExprPtr","ZPtr","arbitrary_with","borrow","borrow_mut","clone","clone_into","cmp","compare","deref","deref_mut","deserialize","deserialize","drop","dummy","eq","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from_base32","from_parts","get_hash","hash","header","init","into","layout_raw","partial_cmp","parts","pointer_metadata","serialize","tag","tag_field","to_base32","to_owned","to_string","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","value","vzip","ZStore","arbitrary_with","borrow","borrow_mut","clone","clone_into","cont_map","default","deref","deref_mut","deserialize","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","equivalent","expr_map","fmt","from","get_cont","get_expr","immediate_z_expr","init","insert_z_expr","into","layout_raw","new","nil_z_ptr","pointer_metadata","put_string","put_symbol","serialize","to_owned","try_from","try_into","type_id","upcast_any_box","upcast_any_mut","upcast_any_ref","vzip"],"q":[[0,"lurk"],[196,"lurk::circuit"],[197,"lurk::circuit::gadgets"],[200,"lurk::circuit::gadgets::circom"],[204,"lurk::circuit::gadgets::constraints"],[205,"lurk::circuit::gadgets::pointer"],[284,"lurk::cli"],[286,"lurk::cli::paths"],[287,"lurk::config"],[444,"lurk::coprocessor"],[459,"lurk::coprocessor::circom"],[460,"lurk::coprocessor::circom::non_wasm"],[491,"lurk::coprocessor::gadgets"],[493,"lurk::coprocessor::sha256"],[560,"lurk::coprocessor::trie"],[792,"lurk::coroutine"],[793,"lurk::coroutine::memoset"],[1065,"lurk::error"],[1130,"lurk::eval"],[1165,"lurk::eval::lang"],[1287,"lurk::field"],[1397,"lurk::lem"],[1644,"lurk::lem::circuit"],[1738,"lurk::lem::eval"],[1767,"lurk::lem::multiframe"],[1815,"lurk::lem::pointers"],[1912,"lurk::lem::store"],[2048,"lurk::lem::tag"],[2092,"lurk::parser"],[2133,"lurk::parser::base"],[2182,"lurk::parser::error"],[2268,"lurk::parser::position"],[2303,"lurk::parser::position::Pos"],[2309,"lurk::parser::string"],[2349,"lurk::parser::syntax"],[2370,"lurk::proof"],[2429,"lurk::proof::nova"],[2523,"lurk::proof::supernova"],[2640,"lurk::public_parameters"],[2646,"lurk::public_parameters::instance"],[2748,"lurk::state"],[2786,"lurk::z_data"],[2835,"lurk::z_data::z_cont"],[2885,"lurk::z_data::z_cont::ZCont"],[2917,"lurk::z_data::z_expr"],[2967,"lurk::z_data::z_expr::ZExpr"],[2970,"lurk::z_data::z_ptr"],[3020,"lurk::z_data::z_store"],[3063,"core::option"],[3064,"core::clone"],[3065,"rkyv::with"],[3066,"core::result"],[3067,"serde::de"],[3068,"core::cmp"],[3069,"core::convert"],[3070,"core::fmt"],[3071,"core::fmt"],[3072,"core::hash"],[3073,"core::marker"],[3074,"core::hash"],[3075,"core::fmt"],[3076,"core::alloc::layout"],[3077,"core::alloc::layout"],[3078,"core::cmp"],[3079,"core::any"],[3080,"alloc::boxed"],[3081,"core::any"],[3082,"bellpepper_core::gadgets::boolean"],[3083,"bellpepper_core::constraint_system"],[3084,"ff"],[3085,"bellpepper_core::constraint_system"],[3086,"camino"],[3087,"std::collections::hash::map"],[3088,"config::error"],[3089,"serde::de"],[3090,"core::cell"],[3091,"alloc::rc"],[3092,"core::error"],[3093,"arecibo::errors"],[3094,"arecibo::supernova::error"],[3095,"core::marker"],[3096,"clap_builder::builder::possible_value"],[3097,"alloc::sync"],[3098,"core::fmt"],[3099,"nom::traits"],[3100,"nom::internal"],[3101,"arecibo"],[3102,"arecibo"],[3103,"arecibo::supernova::snark"],[3104,"arecibo::supernova::snark"],[3105,"std::io::error"],[3106,"anyhow"]],"d":["Finite field element type for Lurk. Has different internal …","a scalar field element in full field representation","Type for hierarchical symbol names.","a small scalar field element in U64 representation for …","","Unsigned fixed-width integer type for Lurk.","","","","","","","","","","","","","","","","","","","","","","","Global config for Lurk Includes settings for cache …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Creates a new Symbol with the path extended by the given …","The finite field used in the language.","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Creates a new Num<F> from the given scalar s.","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Converts self into a scalar value of type F.","","Returns true if self is negative.","","","Returns true if the Symbol is the root symbol","","Determines if self is zero.","","","","","","","","Lurk Evaluation Model (LEM)","","","Returns the most negative value representable by Num<F>.","Returns the most positive value representable by Num<F>.","","","","","","","","","","","","","","","","","This module offers a connection the the backend proving …","","","","Creates a new Symbol with an empty path.","Creates a new Symbol with an empty path.","","","","","This module implements an abstraction for the Lurk state, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ZData is a lightweight binary data serialization format.","","","","","Usage of circom coprocessors.","","","An interface to declare a new type of Circom gadget. It …","","","","This could now use alloc_is_zero to avoid duplication.","Allocated version of ContPtr.","Allocated version of Ptr.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Enforce equality of two allocated pointers given an …","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Takes two allocated numbers (a, b) and returns a if the …","Takes two allocated numbers (a, b) and returns a if the …","","","","","","","","","","","","","","","","","","","","","","Parses CLI arguments and continues the program flow …","","","The level of parallelism used when synthesizing the Lurk …","Global config variable for Settings","Global path variable for configuration file","Try to be smart about thread management based on # of cpus …","Parallel configuration settings","How many threads to use? (Advisory, might be ignored.)","Performance-related configuration settings","Runs without parallelism","Contains the Lurk config settings The public_params_dir …","Should we use optimized witness-generation when possible?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Loads config settings from a file or env vars The public …","Returns the home directory used by cargo`` and rustup`","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true on Flow::Parallel or Flow::ParallelN","Returns true on Flow::Sequential","","","","","","Gets the LURK_CONFIG settings. If uninitialized, sets the …","Gets the LURK_CONFIG_FILE path. If uninitialized, sets the …","Parallelism settings","Parallelism & witness gen configs","","","","","","The poseidon witness part of synthesis.","NOTE: Neptune itself will do this transparently at the …","","Public parameter disk cache location","Multiple StepCircuits.","Synthesis (within one StepCircuit)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witness generation settings","CoCircuit is a trait that represents a generalized …","Coprocessor is a trait that represents a generalized …","","","","","Function for internal plumbing. Reimplementing is not …","","Helper gadgets for synthesis","Returns true if this Coprocessor actually implements a …","","","Function for internal plumbing. Reimplementing is not …","","The trie module implements a Trie with the following …","Some circom features require non WASM platform features, …","A concrete instantiation of a CircomGadget with a …","TODO: Generalize","","","","","Creates a CircomConfig by loading in the data in …","","","","","TODO: Generalize","","","Returns the argument unchanged.","","","Calls U::from(self).","","The defined name of this coprocessor, which is just the …","Creates a CircomCoprocessor and panics if it fails","","","","","","","","","","","","Chains car_cdr calls n times, returning the accumulated car…","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A sparse Trie.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","","","Add the Trie-associated functions to a Lang with standard …","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).","","","","","","","","","How many leaves does this Trie have?","Returns a value corresponding to the commitment associated …","Creates a new Trie, saving preimage data in store. HEIGHT …","Creates a new Trie, saving preimage data in store. Height …","","","","","","","","","","Returns a slice of preimages, corresponding to the path. …","","How many nodes does the rowth row have?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Verify a LookupProof. Note that this verification is …","Verify an InsertProof. Note that this verification is …","","","","","","","","","The memoset module implements a MemoSet.","","","","","","","","","","","","","","","","","A Scope tracks the queries made while evaluating, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","How many types of query are provided?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","What is this queries index? Used for ordering circuits and …","","","","","","","","","","","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 argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","A Binding associates a name (Sym) and Coprocessor. It …","CoProc is an enum that wraps over different …","","DummyCoprocessor is a concrete implementation of the …","Lang is a struct that represents a language with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Dummy Coprocessor takes no arguments.","","","","And does nothing but return nil. It should probably never …","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The BN256 scalar field,","The type of the field element’s representation","Wrapper struct around a field element that implements …","THe Grumpkin scalar field,","The type of finite fields used in the language For …","Trait implemented by finite fields used in the language","The default secret for non-hiding commitments","The Pallas field,","The Vesta field,","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Attempts to construct a field element from a byte slice","Constructs a field element from a char","Constructs a field element from a ContTag","Constructs a field element from an ExprTag","Constructs a field element from an Op1","Constructs a field element from an Op2","Constructs a field element from a u16","Constructs a field element from a u32","Constructs a field element from a u64","Returns the LanguageField of the field","","","","Converts the field element to a hexadecimal string","","","Calls U::from(self).","Calls U::from(self).","A field element is defined to be negative if it is odd …","","","We define this to be the smallest negative field element","0 - 1 is one minus the modulus, which must be even in a …","","","","","","Converts the field element to a byte vector","Attempts to convert the field element to a char","Attempts to convert the field element to a ContTag","Attempts to convert the field element to an ExprTag","Attempts to convert the field element to an Op1","Attempts to convert the field element to an Op2","","","","","Attempts to convert the field element to a u64","Converts the first 16 bytes of the field element to a u128","Attempts to convert the field element to a u16","Attempts to convert the field element to a u32","Converts the first 4 bytes of the field element to a u32","Attempts to convert the field element to a u64","Converts the first 8 bytes of the field element to a u64","Converts the field to a variable-length hex string","","","","","","","","","","","","","","","","","Add(y, a, b) binds y to the sum of a and b","And(y, a, b) binds y to the conjunction of a and b","A block is a sequence of operations followed by a control. …","Call(ys, f, xs) binds ys to the results of f applied to xs","Cast(y, t, x) binds y to a pointer with tag t and the hash …","Cons2(x, t, ys) binds x to a Ptr with tag t and 2 children …","Cons3(x, t, ys) binds x to a Ptr with tag t and 3 children …","Cons4(x, t, ys) binds x to a Ptr with tag t and 4 children …","Copy(x, y) binds x to a copy of what y is bound to","Cproc(ys, c, xs) binds ys to the results of coprocessor c …","The basic control nodes for LEM logical paths.","Decons2([a, b], x) binds a and b to the 2 children of x","Decons3([a, b, c], x) binds a, b and c to the 3 children …","Decons4([a, b, c, d], x) binds a, b, c and d to the 4 …","Div(y, a, b) binds y to the sum of a and b","DivRem64(ys, a, b) binds ys to (a / b, a % b) as if they …","Emit(v) simply prints out the value of v when interpreting …","EqTag(y, a, b) binds y to the boolean a.tag == b.tag","EqVal(y, a, b) binds y to the boolean a.val == b.val","A Func is a LEM function. It consist of input params, …","Hash3Zeros(x, t) binds x to a …","Hash4Zeros(x, t) binds x to a …","Hash6Zeros(x, t) binds x to a …","Hash8Zeros(x, t) binds x to a …","Hide(x, s, p) binds x to a (comm) Ptr resulting from …","If(x, true_block, false_block) runs true_block if x is …","LEM literals","Lit(x, l) binds x to the pointer representing that Lit","Lt(y, a, b) binds y to 1 if a < b, or to 0 otherwise","MatchSymbol(x, cases, def) requires that x is a symbol and …","MatchTag(x, cases, def) checks whether the tag of x …","Mul(y, a, b) binds y to the sum of a and b","Not(y, a) binds y to the negation of a","","The atomic operations of LEMs.","Open(s, p, h) binds s and p to the secret and payload …","Or(y, a, b) binds y to the disjunction of a and b","PopBinding(ys, x) is the inverse of PushBinding","PushBinding(x, ys) is a Lurk specific operation. It binds x…","Return(rets) sets the output to rets","","Sub(y, a, b) binds y to the sum of a and b","","Trunc(y, a, n) binds y to a truncated to n bits, up to 64 …","","LEM variables","Zero(x, t) binds x to a Ptr::zero(t)","","","","","","","","","","","","","","","","","Performs the static checks described in LEM’s docstring.","Constraint system for LEM","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","Instantiates a Func with the appropriate transformations …","","Computes the number of constraints that synthesize should …","","","","","","","","","","","Create R1CS constraints for a LEM function given an …","Helper API for tests","","","","","","","","","","","","","","","","","","","","","","","","","","","","Unrolls a function of equal input/output sizes n times","","","","","","","","","","","","","","","","","","","","","","","","","","","","Manages global allocations for constants in a constraint …","","","","","Memoizes allocations for numerical constants in a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cached version of Lurk’s default step function (IVC, no …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Creates the Funcs used to call coprocessors in the NIVC …","Creates a LEM Func corresponding to Lurk’s step function …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Ptr is a tagged pointer. The tag is there to say what kind …","RawPtr is the basic pointer type of the LEM store. An Atom …","A ZPtr is the result of “hydrating” a Ptr, which is a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Store is a crucial part of Lurk’s implementation and …","WithStore provides a distinct type for coupling a store …","","","","","","","","","","","","","","","","","","","","","","","","","","","Fetches an environment","","","Fetches a cons list that was interned. If the list is …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Cost of poseidon hash with arity 3, including the input","Retrieves the hash of 3 padded zeros","","Cost of poseidon hash with arity 4, including the input","Retrieves the hash of 4 padded zeros","","Cost of poseidon hash with arity 6, including the input","Retrieves the hash of 6 padded zeros","","Cost of poseidon hash with arity 8, including the input","Retrieves the hash of 8 padded zeros","","Hydrates a Ptr. That is, creates a ZPtr with the tag of …","Safe version of hash_raw_ptr_unsafe that doesn’t hit a …","","","","Hashes enqueued RawPtr trees from the bottom to the top, …","Interns a sequence of pointers as an improper cons-list …","","","","","","","","","","","Creates a Ptr that’s a parent of N children","Similar to intern_ptrs but doesn’t add the resulting …","Creates an atom RawPtr which points to a cached element of …","Creates a RawPtr that’s a parent of N children","Similar to intern_raw_ptrs but doesn’t add the resulting …","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","Interns a sequence of pointers as a proper (nil…","","","Creates an atom pointer from a ZPtr, with its hash. Hashing","","","","","","","","","Converts array of pointers of size P to array of raw …","","","Equality of the content-addressed versions of two pointers","Tries to convert array of raw pointers of size N to array …","","","","","","","","","","Attempts to recover the Ptr that corresponds to a ZPtr. If …","Attempts to recover the RawPtr that corresponds to a field …","Constructs a vector of scalars that correspond to tags and …","","","","","","","","","","","","","","","","","","","","","","The LEM Tag is a wrapper around other types that are used …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","Contains the error value","","","","Contains the success value","","","","","","","","","","","","","","","Extra information that can be embedded by the user. …","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Get the code corresponding to the base algorithm.","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Source code position of an expression in a file","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Construct a position from the difference of two Spans","Retrieves the from_offset attribute, if present","","Calls U::from(self).","","","Use the range information in a Position to pretty-print …","","","","","","","","","","","","","","","","","","A string fragment contains a fragment of a string being …","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Parse an escaped character: \\\\n, \\\\t, \\\\r, \\\\u{00AC}, etc.","Parse a backslash, followed by any amount of whitespace. …","Combine parse_literal, parse_escaped_whitespace, and …","","Parse a string with the outer delimiter characters","Parse a string. Use a loop of parse_fragment and push all …","Parse a non-empty string. Use a loop of parse_fragment and …","Parse a unicode sequence, of the form u{XXXX}, where XXXX …","","","","","","","","","","","","","","","","","","","","","","","","","relative: foo.bar absolute: .foo.bar.baz, :foo.bar …","","","","","","The State of a CEK machine.","the type for the Store’s errors","Type for error potentially thrown during verification","A trait for a store of expressions","Folding mode used for proving","the type for the Frame’s IO","A Frame of evaluation in a CEK machine.","Variant for IVC folding","Variant for NIVC folding","A trait for provable structures over a field F.","A trait for a prover that works with a field F.","the type for the Store’s pointers","Associated type for public parameters","Associated type for public parameters","Trait to abstract Nova and SuperNova proofs","Associated proof type, which must implement …","","","Compress a proof","the continuation (K)","","","","","the environment (E)","Evaluate an expression with an environment and then …","Returns the expected total number of steps for the prover …","the expression, or control word (C)","","Returns a reference to the prover’s FoldingMode","Returns the argument unchanged.","getting the terminal continuation pointer","cache hashes for pointers enqueued for hydration","","getting a pointer to the initial, empty environment","the input of the frame","Calls U::from(self).","","An adapter to a Nova proving system implementation.","Returns the number of reduction frames in the provable …","the output of the frame","","Generates a recursive proof from a vector of M","Generate the recursive SNARK, encoded in ProveOutput","hash-equality of the expressions represented by Ptrs","Returns the size of the public inputs.","Returns the public inputs of the provable structure.","interpreting a string representation of an expression","Returns the number of reductions for the prover.","An adapter to a SuperNova proving system implementation.","","","","","","","Verify the proof given the public parameters, the input …","","Return the z0_secondary","Type alias for a MultiFrame with S1 field elements. This …","Type alias for a Trivial Test Circuit with G2 scalar field …","A proof for the final step of a recursive computation …","This trait defines most of the requirements for …","Convenience alias for the Dual field of a …","Convenience alias for the primary group type pegged to a …","Why the next 2 types?","Type alias for the Evaluation Engine using G1 group …","a concrete implementation of an …","Type alias for the Evaluation Engine using G2 group …","a concrete implementation of an …","Type alias for Nova Circuit Parameters with the curve …","A struct for the Nova prover that operates on field …","Type alias for Nova Public Parameters with the curve cycle …","An enum representing the two types of proofs that can be …","A struct that contains public parameters for the Nova …","A proof for the intermediate steps of a recursive …","Type alias for the Relaxed R1CS Spartan SNARK using G1 …","Type alias for the Relaxed R1CS Spartan SNARK using G2 …","","","","","","","Computes a cache key of the primary circuit. The point is …","Generates the circuits for the Nova proving system.","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Create a new NovaProver with a reduction count and a Lang","provides a reference to a ProverKey suitable for producing …","","","","Public parameters for the Nova proving system.","Generate a proof from a sequence of frames","","Generates the public parameters for the Nova proving …","","","","","","","","","","","","","","","","","","","","","","","provides a reference to a VerifierKey suitable for …","","","","Type alias for a Trivial Test Circuit with G2 scalar field …","A proof for the final step of a recursive computation","Type alias for the Evaluation Engine using G1 group …","Type alias for the Evaluation Engine using G2 group …","Folding configuration specifies the Lang, the reduction …","IVC: a single circuit implementing the Lang’s reduction …","NIVC: each folding step will use one of a fixed set of …","An enum representing the two types of proofs that can be …","A struct that contains public parameters for the SuperNova …","A proof for the intermediate steps of a recursive …","Type alias for the Relaxed R1CS Spartan SNARK using G1 …","Type alias for the Relaxed R1CS Spartan SNARK using G2 …","Type alias for SuperNova Aux Parameters with the curve …","A struct for the Nova prover that operates on field …","Type alias for SuperNova Public Parameters with the curve …","","","","","","","","","Computes a cache key of a supernova primary circuit. The …","Collects all the cache keys of supernova instance. We need …","","","","","","","","","","","","","","","","","return the digest","","","","","","","","","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).","Return a reference to the contained Lang.","","","","","Create a new SuperNovaProver with a reduction count and a …","Create a new IVC config for lang.","Create a new NIVC config for lang.","Return the total number of NIVC circuits potentially …","provides a reference to a ProverKey suitable for producing …","Prover key and Verifier key for SuperNova","","","","","Public params for SuperNova.","Generate a proof from a sequence of frames","","Generates the running claim params for the SuperNova …","","Return contained reduction count.","","","","","","","","","","","","","","","","","","","","","","","","","","","","provides a reference to a VerifierKey suitable for …","","","","","","Instances","","","","Attempts to extract abomonated public parameters.","Instances compute a cache-key for the objects they …","From ::nova, there are 3 “kinds” of public param …","What we put into the cache","Tag for nova::NovaPublicParams instances","Tag for supernova::SuperNovaAuxParams instances","Tag for [supernova::SuperNovaCircuitParams] instances","","","","","","","","","","","If this Instance is of Kind::SuperNovaAuxParams, then …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The key (or cache_key) of this Instance used to retrieve …","","","The key (or cache_key) of this Instance used to retrieve …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Keeps track of the current package for symbol resolution …","Adds a package to a state","","","","","","","","","Formats a symbol to string w.r.t. the current package","Returns the argument unchanged.","Returns the name of the current package","Imports a set of symbols to the current package","","Initiates the Lurk state with the appropriate structure of …","Returns a shared reference to the initial Lurk state","Interns a symbol into the current package","Call intern_fold w.r.t. the root package","Call intern_fold w.r.t. the current package","Calls U::from(self).","","Returns the symbol in the Lurk package given the symbol …","Returns the symbol corresponding to the name of the meta …","Creates a new state with a given package as the current one","","Wraps a state with Rc<RefCell<...>>","Returns the resolved (fully-qualified) symbol given a …","Sets the current package of the state","","","","","","","Imports all symbols from a certain package","Returns the symbol in the user package given the symbol …","","An Atom contains a byte sequence.","A Cell contains an arbitrary number of child nodes.","ZData is a binary tree with two types of nodes: Atom and …","","","","Returns the number of bytes required to encode the given …","","","","","","","","","","","","","","","Returns the argument unchanged.","Deserializes a ZData from a &[u8].","","","","Calls U::from(self).","","","Returns the usize that’s represented by a little endian …","Returns the tag byte for this ZData.","Determines if a given tag byte represents an Atom.","Determines if a given tag byte represents a Cell with a …","Serializes this ZData into a Vec<u8>.","","","Returns the little-endian byte sequence for the given …","","","","","","","","","","","","","","","A function call with one argument","A function call with no arguments","A nested function call","","","","","","","","The outermost continuation, meaning no further …","","","","A ZCont is the content-addressed representation of a Lurk …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Creates a list of field elements corresponding to the ZCont…","","Calls U::from(self).","","","","","","","","","","","","Hashes the ZCont field representation and creates a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A commitment, which contains an opaque value and a pointer …","A cons list of ZExprPtrs","","","","A null expression","A field element representing a number","","","Contains a string and a pointer to the tail.","Contains a symbol (a list of strings) and a pointer to the …","An unevaluated expression and continuation","","A ZExpr is the content-addressed representation of a Lurk …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","Constructs a ZExprPtr from a ZExpr, creating a Poseidon …","","","","Alias for a continuation pointer","Alias for an expression pointer","A struct representing a scalar pointer with a tag and a …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Converts a base32-encoded string to a ZPtr","Creates a ZPtr from a tag and a value","","","","","Calls U::from(self).","","","","","","Returns the tag","Returns the tag in field representation","Converts the ZPtr to a base32-encoded string","","","","","","","","","Returns the value","","A ZStore is a content-addressed, serializable …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the owned ZCont corresponding to ptr if the former …","Returns the owned ZExpr corresponding to ptr if the former …","Returns the ZExpr immediately corresponding to the ZExprPtr…","","If the entry is not present, or the pointer is immediate, …","Calls U::from(self).","","Creates a new, empty ZStore","Stores a null symbol in the ZStore and returns the …","","Stores a string in the ZStore and returns the resulting …","Stores a symbol in the ZStore and returns the resulting …","","","","","","","","",""],"i":[0,2,0,2,1,0,1,2,2,5,1,5,0,2,5,1,2,5,1,0,0,0,2,5,1,2,5,1,0,0,0,0,2,5,1,2,5,1,2,2,5,5,1,1,5,5,1,2,2,5,1,2,5,1,2,2,2,2,2,5,5,5,5,5,1,1,1,1,1,0,0,5,0,2,2,5,5,1,1,5,5,5,2,2,2,5,5,1,1,2,5,0,2,5,5,2,5,2,5,1,2,5,1,2,5,1,2,5,2,5,5,5,5,2,1,5,5,0,2,5,1,0,0,0,2,2,1,2,5,5,5,0,0,0,2,5,1,5,2,5,1,5,0,0,1,5,5,5,2,5,1,5,0,0,1,2,5,0,5,0,0,2,5,1,2,5,1,2,5,1,2,5,1,2,5,1,0,2,5,1,2,5,1,2,5,1,0,0,2,5,1,0,0,0,0,0,0,0,0,0,0,40,40,40,0,0,0,43,52,43,52,43,52,43,43,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,43,52,52,43,43,43,52,43,43,52,43,52,43,43,43,43,43,43,43,43,43,43,52,43,52,43,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,43,52,0,0,0,0,0,0,60,0,60,0,60,0,0,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,56,57,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,56,56,56,56,57,57,57,57,57,58,58,58,58,58,59,59,59,59,59,60,60,60,60,60,56,57,58,59,60,56,57,58,59,60,56,0,56,57,58,59,60,56,57,58,59,60,60,60,56,57,58,59,60,0,0,57,56,56,57,58,59,60,58,59,0,56,58,58,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,56,57,58,59,60,57,0,0,63,0,64,64,64,64,0,64,0,63,63,63,0,0,0,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,68,0,0,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,67,68,68,67,68,67,68,68,68,67,68,67,68,67,68,68,67,68,67,68,67,68,67,68,67,67,68,67,68,68,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,67,68,0,0,0,71,0,0,71,0,0,77,71,0,0,0,0,0,71,72,73,74,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,71,72,73,74,71,72,73,74,200,72,73,74,76,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,72,73,73,74,74,76,78,79,77,71,72,73,74,76,78,79,76,71,72,73,74,71,71,71,72,73,74,77,71,72,73,74,76,78,79,77,71,71,71,71,72,73,74,76,78,79,71,72,73,74,77,71,72,73,74,76,78,79,76,0,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,76,76,76,76,77,71,72,73,74,76,78,79,76,76,76,76,72,73,74,71,76,71,71,72,73,74,71,72,73,74,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,77,71,72,73,74,76,78,79,78,79,77,71,72,73,74,76,78,79,0,0,85,93,0,0,0,0,0,0,0,0,0,0,0,96,96,0,0,85,87,86,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,89,90,91,92,87,88,89,90,91,92,87,88,93,86,85,87,88,91,87,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,93,95,93,85,87,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,93,95,93,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,85,87,201,96,89,90,97,98,91,92,87,88,85,87,90,201,96,89,90,97,98,91,92,87,88,91,85,87,93,93,93,95,93,93,95,95,91,86,88,95,86,88,86,88,93,85,87,89,90,91,92,87,88,93,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,201,96,89,90,97,98,91,92,87,88,100,101,0,101,0,100,101,101,101,100,101,100,101,100,100,100,101,100,101,100,101,100,101,100,101,101,100,100,101,101,101,101,101,100,101,100,101,100,101,100,101,100,101,100,101,100,101,100,100,101,100,101,100,101,100,101,100,101,100,101,100,101,100,101,100,0,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,0,104,104,104,104,104,104,104,104,104,104,104,104,0,0,108,0,0,83,83,108,109,108,83,106,109,108,83,106,109,108,83,109,108,83,83,83,83,109,108,83,106,109,108,83,106,109,109,108,108,83,83,106,109,108,83,106,109,108,108,108,109,108,109,108,83,106,109,108,108,83,106,106,83,108,83,109,108,83,106,109,108,83,106,83,83,109,108,83,106,83,83,106,83,109,108,83,106,109,108,83,108,108,108,109,108,83,109,108,83,106,109,108,83,106,109,108,83,106,109,108,83,106,109,108,83,106,109,108,83,106,109,108,83,106,111,4,0,111,0,0,4,111,111,111,112,111,112,111,112,111,112,111,112,112,112,111,111,112,111,112,111,111,112,112,111,112,111,112,111,111,111,111,111,112,112,112,112,112,111,111,112,111,112,4,4,4,4,4,4,4,4,4,4,112,112,111,4,111,112,111,112,4,111,112,4,4,112,111,112,111,112,4,4,4,4,4,4,111,112,111,111,4,4,4,4,4,4,4,4,111,112,111,112,111,112,111,112,111,112,111,112,111,111,112,0,123,123,0,123,123,123,123,123,123,123,0,123,123,123,123,123,123,123,123,0,123,123,123,123,123,122,0,123,123,122,122,123,123,120,0,123,123,123,123,122,120,123,120,123,123,0,123,118,118,118,119,120,121,122,123,118,119,120,121,122,123,118,118,118,0,118,119,120,121,122,123,118,119,120,121,122,123,121,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,118,118,118,118,118,119,119,119,119,119,120,120,120,120,120,121,121,121,121,121,122,122,122,122,122,123,123,123,123,123,0,118,119,119,120,121,122,123,118,119,120,121,122,123,119,120,119,120,119,118,119,120,121,122,123,118,118,119,120,121,122,123,118,119,120,121,122,123,0,119,118,118,119,118,118,118,119,120,121,122,123,0,118,0,118,118,0,118,119,120,121,122,123,120,119,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,118,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,118,119,120,121,122,123,0,125,125,0,125,125,0,0,65,65,65,65,65,65,65,126,129,126,125,65,129,126,125,65,0,125,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,125,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,129,126,125,65,126,0,130,130,130,130,130,130,0,0,0,0,0,0,130,130,130,130,0,0,130,130,130,130,130,130,130,130,130,130,0,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,136,136,136,136,0,0,0,42,136,42,136,42,42,136,42,136,42,136,42,136,42,136,136,42,42,136,42,128,136,42,136,136,136,136,136,42,42,42,42,42,136,42,42,42,136,42,136,42,136,42,136,136,136,42,42,42,42,42,136,42,136,42,136,42,42,136,42,42,42,42,42,136,42,42,42,136,42,42,136,42,42,136,42,136,42,136,42,136,42,136,42,136,42,136,42,136,42,0,0,41,138,41,138,41,41,41,41,41,41,41,41,41,41,138,41,138,41,138,41,138,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,138,41,138,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,138,41,41,138,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,138,41,41,41,41,138,41,41,41,41,41,41,138,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,138,41,138,41,41,41,41,138,41,138,41,138,41,41,138,41,138,41,138,41,138,41,41,135,135,135,135,0,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,143,0,0,141,143,0,0,141,141,0,141,141,141,141,141,141,141,141,0,140,141,141,141,141,141,141,141,141,141,0,0,0,141,141,141,141,141,141,141,141,141,142,142,142,0,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,0,142,0,0,0,0,0,0,0,142,142,142,142,142,142,142,142,142,142,149,149,149,149,149,149,149,0,0,149,149,145,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,149,149,149,149,149,145,145,145,145,145,145,145,149,149,145,145,149,145,145,149,145,149,145,145,149,145,149,149,145,0,145,145,145,149,145,145,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,149,145,151,0,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,202,202,202,202,202,202,152,152,152,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,0,0,0,0,0,0,0,152,152,152,152,152,152,152,152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,155,0,0,160,0,161,161,0,0,164,155,158,0,158,161,161,155,156,161,161,161,161,156,158,158,156,161,158,161,164,164,161,164,160,161,161,0,165,160,161,158,155,164,165,165,164,158,0,161,161,161,161,161,161,155,161,155,0,0,169,0,0,0,133,0,133,0,133,0,0,0,0,0,169,0,0,170,169,171,170,169,171,0,0,169,170,169,171,170,169,171,170,170,169,169,171,170,169,171,171,170,171,171,170,170,169,171,170,169,171,170,169,171,170,169,171,171,170,170,169,171,170,171,169,0,171,170,169,170,169,171,170,169,171,170,169,171,170,169,171,170,169,171,170,169,171,169,170,170,169,171,0,179,0,0,0,132,132,0,0,179,0,0,0,0,0,180,179,181,132,180,179,181,132,0,0,132,132,179,180,179,181,132,180,179,181,132,180,179,179,181,132,180,180,179,181,132,181,181,132,181,180,180,179,181,132,180,180,179,181,132,180,179,181,132,132,180,179,181,132,181,132,132,132,180,180,180,179,181,132,180,181,179,0,181,132,179,132,180,179,181,132,180,179,181,132,180,179,181,132,180,179,181,132,180,179,181,132,180,179,181,132,179,180,180,179,181,132,0,0,0,0,0,0,0,0,0,190,190,190,187,191,187,190,191,187,190,191,187,191,187,190,191,190,191,187,187,190,191,187,190,191,187,190,190,191,191,187,190,191,190,191,190,190,190,190,190,191,191,191,191,191,187,190,191,187,190,191,187,190,191,187,190,191,187,187,191,187,187,191,187,190,191,187,187,187,190,191,187,191,187,190,191,190,191,187,190,191,187,190,191,187,190,191,187,190,191,187,190,191,187,190,191,187,190,191,0,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,0,80,80,80,80,80,0,0,80,80,80,80,80,80,80,80,80,80,80,80,0,80,195,195,0,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,0,195,195,195,195,195,195,195,195,195,195,195,195,195,0,195,195,195,195,195,195,195,0,0,0,0,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,0,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,203,204,205,206,207,208,209,210,211,212,213,203,204,214,212,207,210,211,212,205,206,207,208,209,211,203,204,206,211,213,203,204,197,197,197,197,197,197,197,197,197,197,197,197,197,197,0,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,215,215,215,0,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199],"f":[0,0,0,0,0,0,[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[5,5],[[6,[5]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[[2,[-1]]],[[2,[-1]]],[7,4]],[5,5],[1,1],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,0,0,0,[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[2,[-2]]]]],11,4],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[5]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[1]]],11],[[5,12],5],[5,[[6,[5]]]],[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[8,3],[8,3],[8,3],[[[2,[-1]],[2,[-1]]],13,[14,4]],[[5,5],13],[[1,1],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,0,[[5,[15,[-1]]],5,[[16,[12]]]],0,[[[2,[-1]],17],18,[19,4]],[[[2,[-1]],17],18,4],[[5,17],18],[[5,17],18],[[1,17],18],[[1,17],18],[12,20],[5,20],[5,20],[21,[[2,[-1]]],4],[-1,-1,[]],[1,[[2,[-1]]],4],[-1,-1,[]],[12,5],[-1,-1,[]],[21,1],[-1,[[2,[-1]]],4],[12,[[6,[5]]]],0,[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[[5,5],13],[[[2,[-1]],-2],3,4,25],[[5,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[-1]]],-1,4],[5,13],[[[2,[-1]]],13,4],[5,13],[5,13],[5,13],[30,13],[[[2,[-1]]],13,4],[1,13],[[[15,[-1]]],5,[[16,[12]]]],[[[31,[20]]],5],0,[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],0,0,0,[[],[[2,[-1]]],4],[[],[[2,[-1]]],4],[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[5,[[34,[12]]]],[[[15,[-1]],13],5,[[16,[12]]]],[[[31,[20]],13],5],0,0,0,[[[2,[-1]],[2,[-1]]],[[6,[35]]],4],[[5,5],[[6,[35]]]],[[1,1],[[6,[35]]]],[5,[[15,[20]]]],[[]],[[]],[[]],[5,13],0,0,[[1,1],1],[13,5],[[],5],[[],5],[[[2,[-1]],-2],10,4,36],[[5,-1],10,36],[[1,-1],10,36],[5,3],0,0,[[1,1],1],[[[2,[-1]],[2,[-1]]],3,4],[[[15,[-1]]],5,[[16,[12]]]],0,[[[31,[20]]],5],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],0,[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[[40,[41,[-1]],[15,[42]]],42,4],[[40,[15,[[43,[-1]]]]],[[31,[[3,[20,[31,[-1]]]]]]],4],[40,12],[[-2,[44,[-1]],[44,[-1]]],[[10,[45,46]]],47,[[48,[-1]]]],0,0,[[-2,-4],[[10,[[43,[-1]],46]]],4,[[48,[-1]]],0,[[51,[],[[49,[[10,[[50,[-3,-1]],46]]]]]]]],[[-2,-3],[[10,[[52,[-1]],46]]],4,[[48,[-1]]],[[51,[],[[49,[[10,[[53,[-1]],46]]]]]]]],[[-2,[50,[-3,-1]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]],0],[[-2,[53,[-1]]],[[10,[[52,[-1]],46]]],4,[[48,[-1]]]],[[[43,[-1]],-2,[43,[-1]]],[[10,[45,46]]],4,[[48,[-1]]]],[[[52,[-1]],-2,[52,[-1]]],[[10,[45,46]]],4,[[48,[-1]]]],[[-2,-4],[[43,[-1]]],4,[[48,[-1]]],0,[[51,[],[[49,[[50,[-3,-1]]]]]]]],[[-2,-1,[44,[-1]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[43,[-1]],-2,-1],[[10,[45,46]]],4,[[48,[-1]]]],[[[52,[-1]],-2,-1],[[10,[45,46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[43,[-1]]],[[43,[-1]]],[7,47]],[[[52,[-1]]],[[52,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[43,[-1]],-2,[43,[-1]]],3,4,[[48,[-1]]]],[[[52,[-1]],-2,[52,[-1]]],3,4,[[48,[-1]]]],[[[43,[-1]],17],18,4],[[[52,[-1]],17],18,4],[[[52,[-1]]],[[43,[-1]]],4],[-1,-1,[]],[[[43,[-1]]],[[52,[-1]]],4],[-1,-1,[]],[[[44,[-1]],[44,[-1]]],[[43,[-1]]],4],[[[43,[-1]]],[[6,[[50,[-2,-1]]]]],4,0],[[[43,[-1]]],[[44,[-1]]],4],[[[52,[-1]]],[[44,[-1]]],4],[[[43,[-1]],-2,45,[43,[-1]]],3,4,[[48,[-1]]]],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[[43,[-1]],-2],[[10,[45,46]]],4,[[48,[-1]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[-2,45,[43,[-1]],[43,[-1]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[-2,45,[52,[-1]],[52,[-1]]],[[10,[[52,[-1]],46]]],4,[[48,[-1]]]],[[-2,45,[54,[-1]],[54,[-1]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[]],[[]],[[[43,[-1]]],[[44,[-1]]],4],[[[52,[-1]]],[[44,[-1]]],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[34,[3]]]],0,[[],55],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,[],[]],[[],56],[[],57],[[],58],[[],59],[[],60],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[56]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[57]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[[56,56],13],[[57,57],13],[[58,58],13],[[59,59],13],[[60,60],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[56,17],18],[[57,17],18],[[58,17],18],[[59,17],18],[[60,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[55,[6,[[61,[12,20]]]]],[[10,[56,62]]]],[[],55],[[],8],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[60,13],[60,13],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[6,[55]],[6,[[61,[12,20]]]]],56],[[[6,[55]]],55],0,0,[[]],[[]],[[]],[[]],[[]],0,0,[[],55],0,0,0,[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[63,8],0,[64,8],[[64,[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[64,[41,[-1]],[15,[42]]],[[31,[42]]],4],[[64,[41,[-1]],[15,[42]]],42,4],0,[64,13],0,[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[63,-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],0,0,0,[[[66,[-1,-2]]],8,4,[[40,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[66,[-1,-2]]],[[66,[-1,-2]]],4,[[40,[-1]]]],[[-1,-2],3,[],[]],[-2,[[34,[[66,[-1,-2]]]]],4,[[40,[-1]]]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[[66,[-1,-2]]],8,4,[[40,[-1]],19]],[[[66,[-1,-2]],[41,[-1]],[15,[42]]],42,4,[[40,[-1]],19]],[[[66,[-1,-2]],17],18,[19,4],19],[-1,-1,[]],[[[66,[-1,-2]]],13,4,[[40,[-1]],19]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[[66,[-1,-2]]],12,4,[[40,[-1]]]],[-2,[[66,[-1,-2]]],4,[[40,[-1]]]],[[]],[[[66,[-1,-2]],-3,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[40,[-1]]],[[48,[-1]]]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[43,[-1]]],[[6,[[50,[-2,-1]]]]],4,0],[[-2,[65,[-1]],[41,[-1]],45,[43,[-1]],8],[[10,[[3,[[31,[[43,[-1]]]],[43,[-1]],[44,[-1]]]],46]]],4,[[48,[-1]]]],0,0,0,[[[67,[-1]]],8,4],[[[68,[-1]]],8,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[67,[-1]]],[[67,[-1]]],[7,4]],[[[68,[-1]]],[[68,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[10,[[67,[-2]]]]],11,4],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[68,[-2]]]]],11,[69,4]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[67,[-1]]],8,4],[[[68,[-1]]],8,4],[[[68,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[68,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[67,[-1]],[41,[-1]],[15,[42]]],42,4],[[[68,[-1]],[41,[-1]],[15,[42]]],42,4],[[[67,[-1]],17],18,[19,4]],[[[68,[-1]],17],18,[19,4]],[-1,-1,[]],[[[67,[-1]]],[[68,[-1]]],4],[-1,-1,[]],[[[67,[-1]]],13,4],[[[68,[-1]]],13,4],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[8,[[67,[-1]]],4],[[]],[[]],[[[67,[-1]],-2],10,4,36],[[[68,[-1]],-2],10,[70,4],36],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[67,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[68,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[71,[-1]]],8,4],[[[72,[-1]]],8,4],[[[73,[-1]]],8,4],[[[74,[-1]]],8,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,[],[]],[[[71,[-1]]],[[71,[-1]]],[7,4]],[[[72,[-1]]],[[72,[-1]]],7],[[[73,[-1]]],[[73,[-1]]],7],[[[74,[-1]]],[[74,[-1]]],7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],[[72,[-1]]],75],[[],[[73,[-1]]],75],[[],[[74,[-1]]],75],[[],[[76,[-1]]],4],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[72,[-2]]]]],11,[]],[-1,[[10,[[73,[-2]]]]],11,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[74,[-2]]]]],11,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[[76,[-1]]],-1,4],[[[71,[-1]]],8,4],[[[72,[-1]]],8,4],[[[73,[-1]]],8,4],[[[74,[-1]]],8,4],[[[71,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[71,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[71,[-1]],[41,[-1]],[15,[42]]],42,4],[[[72,[-1]],[41,[-1]],[15,[42]]],42,4],[[[73,[-1]],[41,[-1]],[15,[42]]],42,4],[[[74,[-1]],[41,[-1]],[15,[42]]],42,4],[[[77,[-1]],17],18,19],[[[71,[-1]],17],18,[19,4]],[[[72,[-1]],17],18,19],[[[73,[-1]],17],18,19],[[[74,[-1]],17],18,19],[[[76,[-1]],17],18,[19,4]],[[[78,[-1]],17],18,[19,4]],[[[79,[-1]],17],18,[19,4]],[-1,-1,[]],[[[72,[-1]]],[[71,[-1]]],4],[[[73,[-1]]],[[71,[-1]]],4],[[[74,[-1]]],[[71,[-1]]],4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[71,[-1]]],13,4],[[[72,[-1]]],13,4],[[[73,[-1]]],13,4],[[[74,[-1]]],13,4],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[[76,[-1]],-1,-1],[[10,[13,[77,[-1]]]]],4],[[[82,[[81,[80]]]],[83,[-1,[71,[-1]]]]],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[76,[-1]]],8,4],[[[76,[-1]],-1],[[10,[[6,[-1]],[77,[-1]]]]],4],[[[0,[-1]],[0,[-1]]],[[76,[-1]]],4],[[[0,[-1]],[0,[-1]],8],[[76,[-1]]],4],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[76,[-1]],-1,-1],[[10,[[3,[[79,[-1]],13]],[77,[-1]]]]],4],[[[76,[-1]],-1],[[10,[[78,[-1]],[77,[-1]]]]],4],[[[76,[-1]]],-1,4],[[[76,[-1]],8],8,4],[[[72,[-1]],-2],10,[],36],[[[73,[-1]],-2],10,[],36],[[[74,[-1]],-2],10,[],36],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[76,[-1]],-2,[0,[-1]],[44,[-1]],[44,[-1]],[44,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[71,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[72,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[73,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[[[74,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-1]]]],[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[78,[-1]],-1,-1,-1,[0,[-1]]],13,4],[[[79,[-1]],-1,-1,-1,[6,[-1]],-1,[0,[-1]]],13,4],[-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,0,[[[85,[],[[84,[-1]]]],42],3,[[86,[-2]]],4],[[[87,[-1]],42],3,4],[86,[[44,[-1]]],4],[[[88,[-1]]],[[44,[-1]]],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,[],[]],[[[89,[-1]]],[[89,[-1]]],7],[[[90,[-1]]],[[90,[-1]]],[7,4]],[[[91,[-1,-2,-3]]],[[91,[-1,-2,-3]]],7,7,[7,4]],[[[92,[-1,-2]]],[[92,[-1,-2]]],[7,4],7],[[[87,[-1]]],[[87,[-1]]],[7,4]],[[[88,[-1]]],[[88,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[],8],[[86,42],8],[[[85,[],[[84,[-1]]]],42],8,[[86,[-2]]],4],[[[87,[-1]],42],8,4],[[[88,[-1]],42],8,4],[[],[[91,[-2,[87,[-1]],-1]]],4,[[93,[-1]]]],[[],[[87,[-1]]],4],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[[41,[-1]],8],[[93,[],[[94,[-2]]]]],4,[[95,[-1]]]],[[-2,[41,[-1]],8],95,4,[[48,[-1]]]],[[[93,[],[[94,[-1]]]],[41,[-2]],[91,[[93,[],[[94,[-1]]]],[87,[-2]],-2]]],42,[[95,[-2]]],4],[[[85,[],[[84,[-1]]]],[41,[-2]],[89,[-2]]],3,[[86,[-2]]],4],[[[87,[-1]],[41,[-1]],[89,[-1]]],3,4],[[96,17],18],[[[89,[-1]],17],18,19],[[[90,[-1]],17],18,[19,4]],[[97,17],18],[[[98,[-1]],17],18,[19,4]],[[[91,[-1,-2,-3]],17],18,19,19,[19,4]],[[[92,[-1,-2]],17],18,[19,4],19],[[[87,[-1]],17],18,[19,4]],[[[88,[-1]],17],18,[19,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[41,[-1]],42],[[6,[[93,[],[[94,[-2]]]]]]],4,[[95,[-1]]]],[[-2,[41,[-1]],42],[[6,[95]]],4,[[48,[-1]]]],[[[93,[],[[94,[-1]]]]],8,[[95,[-2]]],4],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[85,[],[[84,[-1]]]]],13,[[86,[-2]]],4],[[[87,[-1]]],13,4],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[85,[],[[84,[-1]]]],-2],[[6,[-2]]],[[86,[-2]]],4],[[[87,[-1]],-1],[[6,[-1]]],4],[[-2,45,[90,[-1]],[90,[-1]]],[[10,[[90,[-1]],46]]],4,[[48,[-1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[91,[-2,[87,[-1]],-1]],[41,[-1]],42],42,4,[[93,[-1]]]],[[[85,[],[[84,[-1]]]]],[[6,[-2]]],[[86,[-2]]],4],[[[87,[-1]]],[[6,[-1]]],4],[[[93,[],[[94,[-1]]]],[91,[[93,[],[[94,[-1]]]],[87,[-2]],-2]],[41,[-2]],[93,[],[[94,[-1]]]]],42,[[95,[-2]]],4],[[[93,[],[[94,[-1]]]],[91,[[93,[],[[94,[-1]]]],[87,[-2]],-2]],[41,[-2]],[93,[],[[94,[-1]]]]],42,[[95,[-2]]],4],[[[93,[],[[94,[-1]]]]],5,[[95,[-2]]],4],[95,5],[[[93,[],[[94,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[[[93,[],[[94,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[[95,[41,[-1]]],42,4],[[95,[41,[-1]]],42,4],[[[91,[-2,[87,[-1]],-1]],-3,[65,[-1]],[41,[-1]]],[[10,[3,46]]],4,[[93,[-1]]],[[48,[-1]]]],[[86,-2,[44,[-1]],[43,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]],[43,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[95,-2,[65,[-1]],[41,[-1]],[92,[-1,[88,[-1]]]],[43,[-1]],[90,[-1]]],[[10,[[3,[[3,[[43,[-1]],[43,[-1]]]],[43,[-1]],[90,[-1]]]],46]]],4,[[48,[-1]]]],[[86,-2,[44,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[86,-2,[44,[-1]],[43,[-1]],[44,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[88,[-1]],-2,[44,[-1]],[43,[-1]],[44,[-1]]],[[10,[[44,[-1]],46]]],4,[[48,[-1]]]],[[[93,[],[[94,[-1]]]],-3,[41,[-2]]],-1,[[95,[-2]]],4,[[48,[-2]]]],[[[85,[],[[84,[-1]]]],-3],-1,[[86,[-2]]],4,[[48,[-2]]]],[[[87,[-1]],-2],-3,4,[[48,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[93,[],[[94,[-1]]]],[41,[-2]]],42,[[95,[-2]]],4],[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-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,[-1,99,[]],[-1,99,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,100],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[101,17],18],[[101,17],18],[[100,17],18],[[100,17],18],[102,101],[103,101],[100,101],[46,101],[-1,-1,[]],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[-1,[],[]],[-1,[],[]],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[]],[[]],[101,[[6,[99]]]],[100,[[6,[99]]]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[104,[-1,-2,-3,-4]]],[[104,[-1,-2,-3,-4]]],[7,105],[7,105],7,7],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[[104,[-1,-2,-3,-4]],[104,[-1,-2,-3,-4]]],13,[14,105],[14,105],14,14],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[104,[-1,-2,-3,-4]],17],18,[19,105],[19,105],19,19],[-1,-1,[]],0,[[],8],0,[-1,-2,[],[]],0,[[],[[10,[32,33]]]],0,[[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[[83,[-1,-2]],-3],3,4,[],[[107,[[106,[-1,-2]]]]]],[[[83,[-1,-2]],-3,-4],3,4,[],[[107,[5]]],[[107,[-2]]]],[[[108,[-1]]],8,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[109,[-1]]],[[109,[-1]]],7],[[[108,[-1]]],[[108,[-1]]],[7,4]],[[[83,[-1,-2]]],[[83,[-1,-2]]],7,7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[83,[-1,-2]]],8,4,[]],[[[83,[-1,-2]]],[[110,[5,-2]]],4,[]],[[],[[83,[-1,-2]]],75,75],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[10,[[109,[-2]]]]],11,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[108,[-2]]]]],11,[69,4]],[-1,[[10,[[83,[-2,-3]]]]],11,[],69],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[[[109,[-1]]],8,4],[[[108,[-1]]],8,4],[[[108,[-1]],[41,[-1]],[15,[42]],42,42],[[31,[42]]],4],[[[108,[-1]],[41,[-1]],[15,[42]]],[[31,[42]]],4],[[[109,[-1]],[41,[-1]],[15,[42]]],42,4],[[[108,[-1]],[41,[-1]],[15,[42]]],42,4],[[[109,[-1]],17],18,19],[[[108,[-1]],17],18,[19,4]],[[[83,[-1,-2]],17],18,19,19],[[[106,[-1,-2]],17],18,19,19],[-1,-1,[]],[[[109,[-1]]],[[108,[-1]]],4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[3,[-1,-3]]],[[106,[-2,-3]]],[[107,[5]]],4,[[64,[-2]]]],[[[83,[-1,-2]],5],[[6,[8]]],4,[]],[[[108,[-1]]],13,4],[[[83,[-1,-2]]],13,4,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[83,[-1,-2]]],13,4,[]],[[[83,[-1,-2]]],20,4,[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[83,[-1,-2]],5],[[6,[-2]]],4,[]],[[],[[83,[-1,-2]]],4,[]],[[-1,-3],[[106,[-4,-2]]],[[107,[5]]],[],[[107,[-2]]],4],[[[31,[-3]]],[[83,[-1,-2]]],4,[],[[107,[[106,[-1,-2]]]]]],[[]],[[]],[[]],[[]],[[[109,[-1]],-2],10,[],36],[[[108,[-1]],-2],10,[70,4],36],[[[83,[-1,-2]],-3],10,[],70,36],[[[108,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]],[43,[-1]],[43,[-1]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[108,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[31,[[43,[-1]]]],46]]],4,[[48,[-1]]]],[[[108,[-1]],-2,[65,[-1]],[41,[-1]],45,[15,[[43,[-1]]]]],[[10,[[43,[-1]],46]]],4,[[48,[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-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,[],[]],[111,111],[[[112,[-1]]],[[112,[-1]]],7],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[112,[-1]],[112,[-1]]],35,4],[[-1,-2],35,[],[]],[[],111],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[111]]],11],[-1,[[10,[[112,[-2]]]]],11,4],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[111,111],13],[[[112,[-1]],[112,[-1]]],13,14],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[111,17],18],[[111,17],18],[[[112,[-1]],17],18,19],[-1,-1,[]],[-1,-1,[]],[[[15,[113]]],[[6,[4]]]],[30,4],0,0,0,0,[114,4],[115,4],[21,4],[4,111],[[-1,-2],21,[22,23],24],[[[112,[-1]],-2],3,4,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[4,20],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[4,13],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],4],[[],4],[[[112,[-1]],[112,[-1]]],[[6,[35]]],4],[[]],[[]],[[111,-1],10,36],[[[112,[-1]],-2],10,4,36],[4,[[31,[113]]]],[4,[[6,[30]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[4,[[6,[0]]]],[-1,-2,[],[]],[-1,-2,[],[]],[111,[[6,[116]]]],[-1,20,[]],[4,[[6,[117]]]],[4,117],[4,[[6,[114]]]],[4,[[6,[115]]]],[4,115],[4,[[6,[21]]]],[4,21],[4,20],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[],[[15,[111]]]],[-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,[[118,-2,[41,[-1]]],[[65,[-1]]],4,[[48,[-1]]]],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,[],[]],0,[[118,[15,[42]],[41,[-1]],[83,[-1,-2]],8],[[34,[0]]],4,[[64,[-1]]]],[118,[[34,[3]]]],0,[118,118],[119,119],[120,120],[121,121],[122,122],[123,123],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[8,3],[8,3],[[118,118],13],[[119,119],13],[[120,120],13],[[121,121],13],[[122,122],13],[[123,123],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[118,17],18],[[119,17],18],[[119,17],18],[[120,17],18],[[121,17],18],[[122,17],18],[[123,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[[119,-1],3,25],[[120,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],[[],8],[[],8],[[],8],[[],8],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],0,[119,124],0,[[20,[31,[119]],8,121],[[34,[118]]]],[12,119],[[118,[41,[-1]]],8,4],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[120,[41,[-1]]],42,4],[-1,20,[]],[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[118,8],[[34,[118]]]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[[65,[-1]],-2,-1],[[44,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-1],[[44,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,42,[41,[-1]]],[[43,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-3],[[44,[-1]]],4,[[48,[-1]]],0],[[[65,[-1]],-2,-3],[[44,[-1]]],4,[[48,[-1]]],0],[[[65,[-1]],-2,[128,[-1]]],[[43,[-1]]],4,[[48,[-1]]]],[[[65,[-1]],-2,-3,-1],[[43,[-1]]],4,[[48,[-1]]],0],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[125,[-1]]],[[125,[-1]]],[7,4]],[[-1,-2],3,[],[]],[[],[[65,[-1]]],[75,4]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[8,3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[]],[[]],[[]],[[]],[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[],118],[[[6,[[3,[118,[15,[118]],[83,[-1,-2]]]]]],42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[[[6,[[3,[118,[15,[118]],[83,[-1,-2]]]]]],42,[41,[-1]],8],[[34,[[3,[[31,[42]],8,[31,[42]]]]]]],4,[[64,[-1]]]],[[[6,[[3,[118,[15,[118]],[83,[-1,-2]]]]]],42,42,[41,[-1]],8],[[34,[[3,[[31,[42]],8,[31,[42]]]]]]],4,[[64,[-1]]]],[[[6,[[3,[118,[15,[118]],[83,[-1,-2]]]]]],42,42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[[[6,[[3,[118,[15,[118]],[83,[-1,-2]]]]]],42,42,42,[41,[-1]],8],[[34,[[31,[0]]]]],4,[[64,[-1]]]],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[[83,[-1,-2]]],[[31,[118]]],4,[[64,[-1]]]],[[[130,[-1,-2]]],118,4,[[64,[-1]]]],[[[83,[-1,-2]]],[[130,[-1,-2]]],[],[]],[[[83,[-1,-2]]],[[130,[-1,-2]]],[],[]],[[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[127,[[132,[-1,-2]]]],8],[[131,[-1,-2]]],4,[[64,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[42,42,[41,[-1]],8,[130,[-1,-2]]],[[34,[[31,[0]],101]]],4,[[64,[-1]]]],[[[131,[-1,-2]],[41,[-1]]],[[34,[3,46]]],4,[[64,[-1]]]],[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[131,[-1,-2]]],3,4,[[64,[-1]]]],[[[131,[-1,-2]]],[[131,[-1,-2]]],[7,4],[7,[64,[-1]]]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],0,[[[131,[-1,-2]],17],18,[19,4],[19,[64,[-1]]]],[[[131,[-1,-2]]],[[6,[[31,[0]]]]],4,[[64,[-1]]]],[-1,-1,[]],[[[15,[0]],[41,[-1]],[127,[[132,[-1,-2]]]]],[[31,[[131,[-1,-2]]]]],4,[[64,[-1]]]],[[],8],[[[131,[-1,-2]]],[[31,[42]]],4,[[64,[-1]]]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[[131,[-1,-2]]],8,[133,4],[[64,[-1]]]],[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[131,[-1,-2]]],[[31,[42]]],4,[[64,[-1]]]],[[]],[[[131,[-1,-2]],[131,[-1,-2]]],13,4,[[64,[-1]]]],[[[131,[-1,-2]],8],[[131,[-1,-2]]],[133,4],[[64,[-1]]]],[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[131,[-1,-2]]],8,4,[[64,[-1]]]],[[[131,[-1,-2]]],[[31,[-1]]],4,[[64,[-1]]]],[[[131,[-1,-2]]],[[134,[-1]]],[133,4],[[64,[-1]]]],[[[15,[0]]],8],[[[131,[-1,-2]],-3,[6,[[44,[-1]]]],[15,[[44,[-1]]]]],[[34,[[3,[[6,[[44,[-1]]]],[31,[[44,[-1]]]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[131,[-1,-2]],-3],[[34,[3,46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[131,[-1,-2]],-3,[15,[[44,[-1]]]]],[[34,[[31,[[44,[-1]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[[[131,[-1,-2]],-3,[41,[-1]],[31,[[43,[-1]]]],[15,[0]],[65,[-1]]],[[34,[[31,[[43,[-1]]]],46]]],4,[[64,[-1]]],[[48,[-1]]]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[135,8],42],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[42,135],42],[136,136],[42,42],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[136]]],11],[-1,[[10,[42]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[],[[128,[-1]]],4],[[136,136],13],[[42,42],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[136,17],18],[[42,17],18],[[42,[41,[-1]],80],20,4],[[42,[41,[-1]]],20,4],[-1,-1,[]],[-1,-1,[]],[136,[[6,[8]]]],[42,[[6,[8]]]],[[-1,-2],21,[22,23],24],[[-1,-2],21,[22,23],24],[136,[[6,[8]]]],[136,[[6,[8]]]],[136,[[6,[8]]]],[42,[[6,[8]]]],[42,[[6,[8]]]],[42,[[6,[8]]]],[[42,135],13],[[42,[15,[135]]],13],[[136,-1],3,25],[[42,-1],3,25],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[42,13],[136,13],[42,13],[42,13],[42,13],[42,13],[42,13],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[135,136],42],[42,[[3,[135,136]]]],[[]],[[]],[42,136],[[136,-1],10,36],[[42,-1],10,36],[42,135],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[41,[-1]],-1,-1,42],3,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[41,[-1]],42],[[34,[[3,[42,42]]]]],4],[[[41,[-1]],30],42,4],[[[41,[-1]],-1],42,4],[[[41,[-1]],42],42,4],[[[41,[-1]],42,42],42,4],[[[41,[-1]]],42,4],[[[41,[-1]]],42,4],[[[41,[-1]]],42,4],[[],[[41,[-1]]],4],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[41,[-1]]],42,4],[[[41,[-1]],8],-1,4],[[[41,[-1]],8],[[137,[42]]],4],[[[41,[-1]],8],[[137,[136]]],4],[[[41,[-1]],42],[[6,[[31,[[3,[42,42]]]]]]],4],[[[41,[-1]],8],[[6,[-1]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],42],[[6,[[3,[[31,[42]],[6,[42]]]]]]],4],[[[41,[-1]],8],[[6,[[137,[42]]]]],4],[[[41,[-1]],8],[[6,[[137,[136]]]]],4],[[[41,[-1]],42],[[6,[20]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],42],[[6,[5]]],4],[[[41,[-1]],136],[[6,[135]]],4],[[[138,[-1,97]],17],[[10,[3,139]]],4],[[[41,[-1]],17],18,[19,4]],[-1,-1,[]],[-1,-1,[]],[[[41,[-1]]],-2,4,[]],[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]]],8,4],[[[41,[-1]]],-1,4],0,[[[41,[-1]],42],[[128,[-1]]],4],[[[41,[-1]],136],[[112,[-1]]],4],[[[41,[-1]],-1,42],42,4],[[[41,[-1]],-1,42],[[3,[-1,[128,[-1]]]]],4],[[[41,[-1]]],3,4],[[[41,[-1]]],3,4],[[[41,[-1]],[31,[42]],42],42,4],[[],8],[[],8],[[[41,[-1]]],-2,4,[]],[[[138,[-1,-2]]],-2,4,[]],[[[41,[-1]],135,-1],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],-1],[[3,[8,13]]],4],[[[41,[-1]],42,42,42],42,4],[[[41,[-1]],12],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],135,[137,[42]]],42,4],[[[41,[-1]],135,[137,[42]],[128,[-1]]],42,4],[[[41,[-1]],-1],136,4],[[[41,[-1]],[137,[136]]],136,4],[[[41,[-1]],[137,[136]],[112,[-1]]],136,4],[[[41,[-1]],12],42,4],[[[41,[-1]],5],42,4],[[[41,[-1]],[15,[20]]],42,4],[[[41,[-1]],[0,[-1]]],42,4],[[[41,[-1]]],42,4],[[[41,[-1]],12],42,4],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[41,[-1]],136],13,4],[[[41,[-1]],12],42,4],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[41,[-1]],[31,[42]]],42,4],[[[41,[-1]],-1],42,4],[[[41,[-1]],21],42,4],[[[41,[-1]],[128,[-1]]],42,4],[[[41,[-1]],-1],[[6,[[3,[-1,42]]]]],4],[[]],[[]],[[[41,[-1]],42],[[6,[[137,[42]]]]],4],[[[41,[-1]],42],[[6,[[137,[42]]]]],4],0,[[[41,[-1]],-2,-2],13,4,[]],[[[41,[-1]],42,42],13,4],[[[41,[-1]],[137,[42]]],[[137,[136]]],4],[[[41,[-1]],42,42,42],42,4],[[[41,[-1]],42,42,42],42,4],[[[41,[-1]],136,136],13,4],[[[41,[-1]],[137,[136]]],[[6,[[137,[42]]]]],4],[[[41,[-1]],136,136],[[6,[42]]],4],[[[41,[-1]]],136,4],[[[41,[-1]],12],[[34,[-2,-3]]],4,[],[]],[[[41,[-1]],[82,[[81,[80]]]],12],[[34,[42]]],4],[[[41,[-1]],[82,[[81,[80]]]],12],[[34,[[3,[8,140,42,13]],141]]],4],[[[41,[-1]],12],[[34,[42]]],4],[[[138,[-1,-2]]],[[41,[-1]]],4,[]],[[[41,[-1]],135],136,4],[[[138,[-1,-2]]],-2,4,[]],[[[41,[-1]],[128,[-1]]],42,4],[[[41,[-1]],[112,[-1]]],136,4],[[[41,[-1]],[15,[42]]],[[31,[-1]]],4],[[[41,[-1]],[15,[136]]],[[31,[-1]]],4],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[41,[-1]],21],42,4],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[41,[-1]],135],42,4],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[135,135],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[135]]],11],[8,3],[[135,135],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[135,17],18],[[135,17],18],[-1,-1,[]],[[-1,-2],21,[22,23],24],[[135,-1],3,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[135,8],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],[8,[[6,[135]]]],[[135,-1],10,36],[135,-1,4],[-1,-2,[],[]],[-1,20,[]],[114,[[34,[135,-1]]],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,99,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[141,141],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],0,0,[[141,17],18],[[141,17],18],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[-1,[],[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],0,0,0,[-1,-2,[],[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,[142,12],[-1,-2,[],[]],[-1,-2,[],[]],[142,142],[[-1,-2],3,[],[]],[142,30],[[142,140],[[143,[-1,[31,[113]]]]],4],[[],142],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[142,-1],20,[[16,[[15,[113]]]]]],[[142,142],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[142,17],18],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[142,30],13],[[],[[10,[32,33]]]],[[],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[140,[[143,[-1,142]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[142,[[0,[[144,[140],[[49,[[143,[-1,[31,[113]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,142]]]]]]]]],4],[142,[[38,[144]]]],[142,[[0,[[144,[140],[[49,[[143,[-1,[31,[113]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[]],[142,115],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[-1,12,[145,[-1,-2]]],[[145,[-1,-2]]],[146,147],4],[[-1,148,[145,[-1,-2]]],[[145,[-1,-2]]],[146,147],4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[149,[-1]]],[[149,[-1]]],[7,4]],[[[145,[-1,-2]]],[[145,[-1,-2]]],[7,147],[7,4]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[[[149,[-1]],[149,[-1]]],13,[14,4]],[[[145,[-1,-2]],[145,[-1,-2]]],13,[14,147],[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,0,[[[149,[-1]],17],18,[19,4]],[[[149,[-1]],17],18,4],[[[145,[140,-1]],17],18,4],[[[145,[-1,-2]],17],18,[19,147],[19,4]],[-1,-1,[]],[-1,-1,[]],[[-1,148],[[145,[-1,-2]]],[146,147],4],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[[],8],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[149,[-1]]],13,4],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[[150,[-1,-2,[145,[-1,-3]]]],-4],[[150,[-1,-2,[145,[-1,-3]]]]],147,[],4,[[144,[[145,[-1,-3]]],[[49,[[145,[-1,-3]]]]]]]],[[-1,[149,[-2]]],[[145,[-1,-2]]],147,4],[[[6,[-1]],-2,[149,[-3]]],[[150,[-2,-1,[145,[-2,-3]]]]],[],147,4],[[[145,[-1,-2]],[145,[-1,-2]]],[[145,[-1,-2]]],[146,147],4],[[]],[[]],[[[10,[-1,-2]],-3,-5],[[150,[-3,-1,[145,[-3,-4]]]]],[],[],147,4,[[144,[-2],[[49,[[149,[-4]]]]]]]],[[-1,[149,[-2]]],[[150,[-1,-3,[145,[-1,-2]]]]],147,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,20,[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[151,151],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[151,151],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[151,17],18],[-1,-1,[]],[[140,140],151],[151,[[6,[8]]]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],[[12,8,8,8,8],20],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[152,152],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[152,152],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[152,17],18],[-1,-1,[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[30,12],[[0,[[144,[140],[[49,[[143,[-1,30]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,140]]]]]]]]],4],[[30,13,12],[[0,[[144,[140],[[49,[[143,[-1,152]]]]]]]]],4],[[30,13,12],[[0,[[144,[140],[[49,[[143,[-1,140]]]]]]]]],4],[30,[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[30,13,12],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[30,13,12],[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,30]]]]]]]]],4],[[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[127,[5]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[140,[[143,[-1,140]]],4],[[[82,[[81,[80]]]],13,13],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[6,[[3,[13,[0,[-1]]]]]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[142,[[0,[[144,[140],[[49,[[143,[-1,[2,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[127,[5]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[127,[5]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[127,[5]]]]]]]]]]],4],[140,[[143,[-1,[31,[140]]]]],4],[140,[[143,[-1,[31,[140]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[[[82,[[81,[80]]]],13],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[12,[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[12,[[0,[[144,[140],[[49,[[143,[-1,20]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[31,[20]]]]]]]]]]],4],[[[82,[[81,[80]]]],13,13],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],[[],[[0,[[144,[140],[[49,[[143,[-1,[0,[-1]]]]]]]]]]],4],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[155,[],[[153,[-1]],[154,[-2]]]],-1],[[10,[[155,[],[[153,[-1]],[154,[-2]]]],101]]],[],[]],[156,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[156,-1,[]],[[[158,[],[[153,[-1]],[157,[-2]]]],-1,42,42,[41,[-3]],8],[[10,[[3,[-2,[31,[-3]],[31,[-3]],8]],101]]],[],[[155,[-3,-4],[[153,[-1]]]]],133,[[160,[42],[[159,[[31,[42]]]]]]]],[[[158,[],[[153,[-1]],[157,[-2]]]],8],8,[],[[155,[-3,-4],[[153,[-1]]]]],133,[[160,[42],[[159,[[31,[42]]]]]]]],[156,-1,[]],[[161,17],18],[[[158,[],[[153,[-1]],[157,[-2]]]]],161,[],[[155,[-3,-4],[[153,[-1]]]]],133,[[160,[42],[[159,[[31,[42]]]]]]]],[-1,-1,[]],[[[164,[],[[162,[-1]],[163,[-2]]]]],-1,[],19],[[[164,[],[[162,[-1]],[163,[-2]]]]],3,[],19],[[],8],[[[164,[],[[162,[-1]],[163,[-2]]]]],-1,[],19],[[[160,[],[[159,[-1]]]]],-1,[[156,[-2]]],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],0,[165,8],[[[160,[],[[159,[-1]]]]],-1,[[156,[-2]]],[]],[[]],[[[158,[],[[153,[-1]],[157,[-2]]]],-1,[31,[-4]],[41,[-3]]],[[10,[[3,[-2,[31,[-3]],[31,[-3]],8]],101]]],[],[[155,[-3,-4],[[153,[-1]]]]],133,[[160,[42],[[159,[[31,[42]]]]]]]],[[-1,[15,[-2]],[31,[-3]],[41,[-2]]],[[10,[[155,[],[[153,[-1]],[154,[-4]]]],101]]],[],133,[],[]],[[[164,[],[[162,[-1]],[163,[-2]]]],-1,-1],13,[],19],[165,8],[165,[[31,[-1]]],4],[[[164,[],[[162,[-1]],[163,[-2]]]],12],[[10,[-1,-2]]],[],19],[[[158,[],[[153,[-1]],[157,[-2]]]]],8,[],[[155,[-3,-4],[[153,[-1]]]]],133,[[160,[42],[[159,[[31,[42]]]]]]]],0,[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[[[155,[],[[153,[-1]],[154,[-2]]]],-1,[15,[-3]],[15,[-3]]],[[10,[13,-2]]],[],[],133],[-1,-2,[],[]],[[],[[31,[[166,[-1]]]]],133],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,[],[]],[[8,[127,[[83,[-1,-2]]]]],-1,133,[[64,[-1]]]],[[8,[127,[[83,[-1,-2]]]]],[[3,[[167,[-1,-2]],[168,[-1]]]]],133,[[64,[-1]]]],[[[169,[-1,[167,[-1,-2]]]],[170,[-1]]],[[10,[[169,[-1,[167,[-1,-2]]]],101]]],133,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[-1,[[10,[[170,[-2]]]]],11,133],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[169,[-2,-3]]]]],11,133,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[[[171,[-1,-2]],-3,42,42,[41,[-1]],8],[[10,[[3,[-4,[31,[-1]],[31,[-1]],8]],101]]],133,[[64,[-1]]],[],[]],[[[170,[-1]],17],18,133],[[[171,[-1,-2]],17],18,[19,133],[19,[64,[-1]]]],[[[171,[-1,-2]]],161,133,[[64,[-1]]]],[-1,-1,[]],[[[172,[-1]]],[[170,[-1]]],133],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[8,[127,[[83,[-1,-2]]]]],[[171,[-1,-2]]],133,[[64,[-1]]]],[[[170,[-1]]],[[176,[[173,[-1]],[174,[-1]],[175,[-1]]]]],133],[[]],[[]],[[]],0,[[[171,[-1,-2]],[170,[-1]],[15,[0]],[41,[-1]]],[[10,[[3,[[169,[-1,[167,[-1,-2]]]],[31,[-1]],[31,[-1]],8]],101]]],133,[[64,[-1]]]],[[[170,[-1]],[15,[-1]],[31,[[167,[-1,-2]]]],[41,[-1]]],[[10,[[169,[-1,[167,[-1,-2]]]],101]]],133,[[64,[-1]]]],[[8,[127,[[83,[-1,-2]]]]],[[170,[-1]]],133,[[64,[-1]]]],[[[171,[-1,-2]]],8,133,[[64,[-1]]]],[[[170,[-1]],-2],10,133,36],[[[169,[-1,-2]],-3],10,133,[],36],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[169,[-1,[167,[-1,-2]]]],-3,[15,[-1]],[15,[-1]]],[[10,[13,-4]]],133,[[64,[-1]]],[],[]],[[[170,[-1]]],[[177,[[173,[-1]],[174,[-1]],[175,[-1]]]]],133],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],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,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[8,[127,[[83,[-1,-2]]]],8],-1,133,[[64,[-1]]]],[[8,[127,[[83,[-1,-2]]]]],[[178,[[173,[-1]]]]],133,[[64,[-1]]]],[[[132,[-1,-2]]],[[132,[-1,-2]]],[7,4],[7,[64,[-1]]]],[[-1,-2],3,[],[]],[[[179,[-1,[167,[-1,-2]]]],[180,[-1]]],[[10,[[179,[-1,[167,[-1,-2]]]],101]]],133,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[179,[-2,-3]]]]],11,133,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[[[180,[-1]]],-1,133],[8,3],[8,3],[8,3],[8,3],[[[181,[-1,-2]],-3,42,42,[41,[-1]],8],[[10,[[3,[-4,[31,[-1]],[31,[-1]],8]],101]]],133,[[64,[-1]]],[],[]],[[[181,[-1,-2]],17],18,[19,133],[19,[64,[-1]]]],[[[132,[-1,-2]],17],18,[19,4],[19,[64,[-1]]]],[[[181,[-1,-2]]],161,133,[[64,[-1]]]],[-1,-1,[]],[[[182,[-1]]],[[180,[-1]]],133],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[180,[-1]],8],-2,133,[]],[[],8],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[132,[-1,-2]]],[[127,[[83,[-1,-2]]]]],4,[[64,[-1]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[8,[127,[[83,[-1,-2]]]]],[[181,[-1,-2]]],133,[[64,[-1]]]],[[[127,[[83,[-1,-2]]]],8],[[132,[-1,-2]]],4,[[64,[-1]]]],[[[127,[[83,[-1,-2]]]],8],[[132,[-1,-2]]],4,[[64,[-1]]]],[[[132,[-1,-2]]],8,4,[[64,[-1]]]],[[[180,[-1]]],[[185,[[173,[-1]],[183,[-1]],[184,[-1]]]]],133],0,[[]],[[]],[[]],[[]],0,[[[181,[-1,-2]],[180,[-1]],[15,[0]],[41,[-1]]],[[10,[[3,[[179,[-1,[167,[-1,-2]]]],[31,[-1]],[31,[-1]],8]],101]]],133,[[64,[-1]]]],[[[180,[-1]],[15,[-1]],[31,[[167,[-1,-2]]]],[41,[-1]]],[[10,[[179,[-1,[167,[-1,-2]]]],101]]],133,[[64,[-1]]]],[[8,[127,[[83,[-1,-2]]]]],[[180,[-1]]],133,[[64,[-1]]]],[[[181,[-1,-2]]],8,133,[[64,[-1]]]],[[[132,[-1,-2]]],8,4,[[64,[-1]]]],[[[179,[-1,-2]],-3],10,133,[],36],[-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,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[[[179,[-1,[167,[-1,-2]]]],-3,[15,[-1]],[15,[-1]]],[[10,[13,-4]]],133,[[64,[-1]]],[],[]],[[[180,[-1]]],[[186,[[173,[-1]],[183,[-1]],[184,[-1]]]]],133],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[187,[-1,-2]]],[[10,[[170,[-1]],0]]],133,[[64,[-1]]]],[[[187,[-1,-2]]],[[10,[[188,[-1]],0]]],133,[[64,[-1]]]],[[[187,[-1,-2]]],[[10,[[189,[-1]],0]]],133,[[64,[-1]]]],[[[187,[-1,-2]]],[[10,[[180,[-1]],0]]],133,[[64,[-1]]]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[187,[-1,-2]]],[[31,[[187,[-1,-2]]]]],133,[[64,[-1]]]],[190,190],[191,191],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[[187,[-1,-2]],192],[[194,[193]]],133,[[64,[-1]]]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[190]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[191]]],11],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[8,3],[8,3],[[190,190],13],[[191,191],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[187,[-1,-2]],17],18,[19,133],[19,[64,[-1]]]],[[190,17],18],[[191,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],8],[[],8],[[],8],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[187,[-1,-2]]],20,133,[[64,[-1]]]],0,0,[[[187,[-1,-2]]],[[127,[[83,[-1,-2]]]]],133,[[64,[-1]]]],0,0,[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[],[[10,[32,33]]]],[[8,[127,[[83,[-1,-2]]]],13,190],[[187,[-1,-2]]],133,[[64,[-1]]]],[[[187,[-1,-2]],192],[[194,[193]]],133,[[64,[-1]]]],[[]],[[]],[[]],0,0,[[[187,[-1,-2]],8],[[187,[-1,-2]]],133,[[64,[-1]]]],[[190,-1],10,36],[[191,-1],10,36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[],80],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[80,17],18],[[80,[127,[5]]],20],[-1,-1,[]],[80,[[127,[5]]]],[[80,[15,[[127,[5]]]]],[[34,[3]]]],[[],8],[[],80],[[],80],[[80,-1],[[127,[5]]],[[16,[12]]]],[[80,[15,[-1]],13,13],[[34,[[127,[5]]]]],[[16,[12]]]],[[80,[15,[-1]],13],[[34,[[127,[5]]]]],[[16,[12]]]],[-1,-2,[],[]],[[],[[10,[32,33]]]],[12,5],[[],5],0,[[]],[80,[[82,[[81,[80]]]]]],[[80,12],[[6,[[127,[5]]]]]],[[80,[127,[5]]],[[34,[3]]]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],0,[12,5],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[8,113],[195,195],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[195,195],13],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[195,17],18],[[195,17],18],[-1,-1,[]],[[[15,[113]]],[[34,[195]]]],[195,[[10,[-1,0]]],69],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],[[[15,[113]]],[[6,[8]]]],[195,113],[113,13],[113,13],[195,[[31,[113]]]],[-1,-2,[],[]],[-1,20,[]],[8,[[31,[113]]]],[-1,[[10,[195,0]]],70],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],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,[],[]],[[[196,[-1]]],[[196,[-1]]],[7,4]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[196,[-2]]]]],11,[69,4]],[8,3],[[[196,[-1]],[196,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[196,[-1]],17],18,[19,4]],[-1,-1,[]],[[[196,[-1]]],[[137,[-1]]],4],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],[[[196,[-1]],-2],10,[70,4],36],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[196,[-1]],[0,[-1]]],[[53,[-1]]],4],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,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[197,[-1]]],[[197,[-1]]],[7,4]],[[-1,-2],3,[],[]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[197,[-2]]]]],11,[69,4]],[8,3],[[[197,[-1]],[197,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[197,[-1]],17],18,4],[[[197,[-1]],17],18,[19,4]],[-1,-1,[]],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[]],[[[197,[-1]],-2],10,[70,4],36],[-1,-2,[],[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]],[[[197,[-1]],[0,[-1]]],[[54,[-1]]],4],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[50,[-1,-2]]],[[50,[-1,-2]]],[7,0],[7,4]],[[-1,-2],3,[],[]],[[[50,[-1,-2]],[50,[-1,-2]]],35,0,4],[[-1,-2],35,[],[]],[8,-1,[]],[8,-1,[]],[-1,[[10,[[50,[-2,-3]]]]],11,[69,0],[69,4]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[8,3],[[],[[50,[135,-1]]],4],[[[50,[-1,-2]],[50,[-1,-2]]],13,[14,0],[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[50,[-1,-2]],17],18,[19,0],[19,4]],[[[50,[-1,-2]],17],18,[0,27],4],[-1,-1,[]],[12,[[10,[[50,[-1,-2]],198]]],0,4],[[-1,-2],[[50,[-1,-2]]],0,4],[[-1,-2],21,[22,23],24],[[[50,[-1,-2]],-3],3,0,4,25],[[-1,-2],[[26,[-2,-3]]],[],[27,28,29],[]],[[],8],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[[50,[-1,-2]],[50,[-1,-2]]],[[6,[35]]],0,4],[[[50,[-1,-2]]],[[3,[-2,-2]]],0,4],[[]],[[[50,[-1,-2]],-3],10,[70,0],[70,4],36],[[[50,[-1,-2]]],-1,0,4],[[[50,[-1,-2]]],-2,0,4],[[[50,[-1,-2]]],20,0,4],[-1,-2,[],[]],[-1,20,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[[[50,[-1,-2]]],-2,0,4],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[199,[-1]]],[[199,[-1]]],[7,4]],[[-1,-2],3,[],[]],0,[[],[[199,[-1]]],[75,4]],[8,-1,[]],[8,-1,[]],[[-1,-2],[[10,[[9,[-3,-4]]]]],[],[],[],[]],[-1,[[10,[[199,[-2]]]]],11,[69,4]],[8,3],[[[199,[-1]],[199,[-1]]],13,[14,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[[199,[-1]],17],18,[19,4]],[-1,-1,[]],[[[199,[-1]],[53,[-1]]],[[6,[[196,[-1]]]]],4],[[[199,[-1]],[54,[-1]]],[[6,[[197,[-1]]]]],4],[[[54,[-1]]],[[6,[[197,[-1]]]]],4],[[],8],[[[199,[-1]],[54,[-1]],[6,[[197,[-1]]]]],[[6,[[6,[[197,[-1]]]]]]],4],[-1,-2,[],[]],[[],[[10,[32,33]]]],[[],[[199,[-1]]],4],[[[199,[-1]],[0,[-1]]],[[54,[-1]]],4],[[]],[[[199,[-1]],12,[0,[-1]]],[[3,[[54,[-1]],[197,[-1]]]]],4],[[[199,[-1]],5,[0,[-1]]],[[3,[[54,[-1]],[197,[-1]]]]],4],[[[199,[-1]],-2],10,[70,4],36],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,37,[]],[[[38,[-1]]],[[38,[39]]],[]],[-1,39,[]],[-1,39,[]],[-1,-2,[],[]]],"c":[],"p":[[6,"UInt",0],[6,"Num",0],[1,"tuple"],[10,"LurkField",1287],[5,"Symbol",0],[6,"Option",3063],[10,"Clone",3064],[1,"usize"],[5,"With",3065],[6,"Result",3066],[10,"Deserializer",3067],[1,"str"],[1,"bool"],[10,"PartialEq",3068],[1,"slice"],[10,"AsRef",3069],[5,"Formatter",3070],[8,"Result",3070],[10,"Debug",3070],[5,"String",3071],[1,"u64"],[10,"Hash",3072],[10,"Sized",3073],[10,"BuildHasher",3072],[10,"Hasher",3072],[5,"IndentedSection",3074],[10,"Display",3070],[10,"Send",3073],[10,"Sync",3073],[1,"char"],[5,"Vec",3075],[5,"Layout",3076],[5,"LayoutError",3076],[8,"Result",3077],[6,"Ordering",3068],[10,"Serializer",3078],[5,"TypeId",3079],[5,"Box",3080],[10,"Any",3079],[10,"CircomGadget",200],[5,"Store",1912],[5,"Ptr",1815],[5,"AllocatedPtr",205],[5,"AllocatedNum",3081],[6,"Boolean",3082],[6,"SynthesisError",3083],[10,"PrimeField",3084],[10,"ConstraintSystem",3083],[17,"Output"],[5,"ZPtr",2970],[10,"FnOnce",3085],[5,"AllocatedContPtr",205],[8,"ZContPtr",2970],[8,"ZExprPtr",2970],[5,"Utf8PathBuf",3086],[5,"Settings",287],[5,"PerfConfig",287],[5,"ParallelConfig",287],[5,"WitnessGeneration",287],[6,"Flow",287],[5,"HashMap",3087],[6,"ConfigError",3088],[10,"CoCircuit",444],[10,"Coprocessor",444],[5,"GlobalAllocator",1644],[5,"CircomCoprocessor",460],[5,"Sha256Coprocessor",493],[6,"Sha256Coproc",493],[10,"Deserialize",3067],[10,"Serialize",3078],[6,"TrieCoproc",560],[5,"NewCoprocessor",560],[5,"LookupCoprocessor",560],[5,"InsertCoprocessor",560],[10,"Default",3089],[5,"Trie",560],[6,"Error",560],[5,"LookupProof",560],[5,"InsertProof",560],[5,"State",2748],[5,"RefCell",3090],[5,"Rc",3091],[5,"Lang",1165],[17,"CM"],[10,"MemoSet",793],[10,"CircuitMemoSet",793],[5,"LogMemo",793],[5,"LogMemoCircuit",793],[5,"Transcript",793],[5,"CircuitTranscript",793],[5,"Scope",793],[5,"CircuitScope",793],[10,"Query",793],[17,"CQ"],[10,"CircuitQuery",793],[6,"MemoSetError",793],[5,"Provenance",793],[5,"AllocatedProvenance",793],[10,"Error",3092],[6,"ReductionError",1065],[6,"ProofError",1065],[6,"NovaError",3093],[6,"SuperNovaError",3094],[5,"Frame",1130],[10,"Copy",3073],[5,"Binding",1165],[10,"Into",3069],[6,"Coproc",1165],[5,"DummyCoprocessor",1165],[5,"IndexMap",3095],[6,"LanguageField",1287],[5,"FWrap",1287],[1,"u8"],[1,"u16"],[1,"u32"],[5,"PossibleValue",3096],[1,"u128"],[5,"Func",1397],[5,"Var",1397],[6,"Lit",1397],[5,"Block",1397],[6,"Ctrl",1397],[6,"Op",1397],[8,"AString",1397],[6,"AllocatedVal",1644],[5,"SlotWitness",1644],[5,"Arc",3097],[8,"ZPtr",1815],[5,"SlotsAllocations",1644],[5,"EvalConfig",1738],[5,"MultiFrame",1767],[6,"FoldingConfig",2523],[10,"CurveCycleEquipped",2429],[8,"C2",2523],[6,"Tag",2048],[6,"RawPtr",1815],[1,"array"],[5,"WithStore",1912],[5,"Error",3070],[8,"Span",2092],[6,"Error",2092],[6,"LitBase",2133],[8,"ParseResult",2092],[10,"Fn",3085],[5,"ParseError",2182],[10,"InputLength",3098],[10,"AsBytes",3098],[6,"ErrorKind",3099],[6,"ParseErrorKind",2182],[8,"IResult",3100],[6,"Pos",2268],[6,"StringFragment",2309],[17,"PublicParams"],[17,"ErrorType"],[10,"RecursiveSNARKTrait",2370],[10,"CEKState",2370],[17,"RecursiveSnark"],[10,"Prover",2370],[17,"FrameIO"],[10,"FrameLike",2370],[6,"FoldingMode",2370],[17,"Ptr"],[17,"Error"],[10,"EvaluationStore",2370],[10,"Provable",2370],[8,"Dual",2429],[8,"C1LEM",2429],[8,"C2",2429],[6,"Proof",2429],[5,"PublicParams",2429],[5,"NovaProver",2429],[8,"NovaPublicParams",2429],[8,"E1",2429],[8,"SS1",2429],[8,"SS2",2429],[5,"ProverKey",3101],[5,"VerifierKey",3101],[5,"CircuitDigests",3102],[6,"Proof",2523],[5,"PublicParams",2523],[5,"SuperNovaProver",2523],[8,"SuperNovaPublicParams",2523],[8,"SS1",2523],[8,"SS2",2523],[5,"ProverKey",3103],[5,"VerifierKey",3103],[5,"Instance",2646],[8,"SuperNovaAuxParams",2523],[8,"NovaCircuitShape",2429],[6,"Kind",2646],[5,"Metadata",2646],[5,"Utf8Path",3086],[5,"File",3104],[8,"Result",3105],[6,"ZData",2786],[6,"ZCont",2835],[6,"ZExpr",2917],[5,"Error",3077],[5,"ZStore",3020],[8,"ChildMap",560],[5,"CoroutineCircuit",793],[15,"Pos",2303],[15,"Let",2885],[15,"LetRec",2885],[15,"Call0",2885],[15,"Call",2885],[15,"Call2",2885],[15,"Tail",2885],[15,"Lookup",2885],[15,"Unop",2885],[15,"Binop",2885],[15,"Binop2",2885],[15,"If",2885],[15,"Emit",2885],[15,"Fun",2967]],"b":[[73,"impl-Debug-for-Num%3CF%3E"],[74,"impl-Display-for-Num%3CF%3E"],[75,"impl-Debug-for-Symbol"],[76,"impl-Display-for-Symbol"],[77,"impl-Display-for-UInt"],[78,"impl-Debug-for-UInt"],[82,"impl-From%3Cu64%3E-for-Num%3CF%3E"],[84,"impl-From%3CUInt%3E-for-Num%3CF%3E"],[664,"impl-From%3CNewCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[665,"impl-From%3CLookupCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[666,"impl-From%3CInsertCoprocessor%3CF%3E%3E-for-TrieCoproc%3CF%3E"],[1089,"impl-Display-for-ProofError"],[1090,"impl-Debug-for-ProofError"],[1091,"impl-Debug-for-ReductionError"],[1092,"impl-Display-for-ReductionError"],[1093,"impl-From%3CNovaError%3E-for-ProofError"],[1094,"impl-From%3CSuperNovaError%3E-for-ProofError"],[1095,"impl-From%3CReductionError%3E-for-ProofError"],[1096,"impl-From%3CSynthesisError%3E-for-ProofError"],[1331,"impl-Debug-for-LanguageField"],[1332,"impl-Display-for-LanguageField"],[1538,"impl-Debug-for-Var"],[1539,"impl-Display-for-Var"],[1768,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1769,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1803,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1804,"impl-Circuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1805,"impl-StepCircuit%3CF%3E-for-MultiFrame%3C\'a,+F,+C%3E"],[1971,"impl-EvaluationStore-for-Store%3CF%3E"],[1972,"impl-Store%3CF%3E"],[2012,"impl-EvaluationStore-for-Store%3CF%3E"],[2013,"impl-Store%3CF%3E"],[2021,"impl-EvaluationStore-for-Store%3CF%3E"],[2022,"impl-Store%3CF%3E"],[2068,"impl-Debug-for-Tag"],[2069,"impl-Display-for-Tag"],[2112,"impl-Debug-for-Error"],[2113,"impl-Display-for-Error"],[2225,"impl-Debug-for-ParseErrorKind%3CF%3E"],[2226,"impl-Display-for-ParseErrorKind%3CF%3E"],[2227,"impl-Display-for-ParseError%3CLocatedSpan%3C%26str%3E,+F%3E"],[2228,"impl-Debug-for-ParseError%3CI,+F%3E"],[2805,"impl-Debug-for-ZData"],[2806,"impl-Display-for-ZData"],[2948,"impl-Display-for-ZExpr%3CF%3E"],[2949,"impl-Debug-for-ZExpr%3CF%3E"],[2992,"impl-Debug-for-ZPtr%3CE,+F%3E"],[2993,"impl-Display-for-ZPtr%3CE,+F%3E"]]}],\ ["lurk_macros",{"doc":"Lurk Macros","t":"YYQX","n":["Coproc","TryFromRepr","lurk","serde_test"],"q":[[0,"lurk_macros"]],"d":["","This macro derives an impl of TryFrom for an enum type T …","","This macro is used to generate round-trip serialization …"],"i":[0,0,0,0],"f":[0,0,0,0],"c":[],"p":[],"b":[]}],\ ["lurk_metrics",{"doc":"Metrics infrastructure","t":"SFFNNNNNNNNNNNNNNNNNNN","n":["METRICS_TARGET_NAME","MetricsSink","MetricsSinkHandle","borrow","borrow","borrow_mut","borrow_mut","drop","fmt","fmt","from","from","init","into","into","shutdown","try_from","try_from","try_into","try_into","type_id","type_id"],"q":[[0,"lurk_metrics"],[22,"core::fmt"],[23,"core::fmt"],[24,"core::any"]],"d":["","A global metrics sink that keeps a list of thread-local …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initialize and install the global metrics sink, and return …","Calls U::from(self).","Calls U::from(self).","","","","","","",""],"i":[0,0,0,3,1,3,1,1,3,1,3,1,3,3,1,1,3,1,3,1,3,1],"f":[0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[1,2],[[3,4],5],[[1,4],5],[-1,-1,[]],[-1,-1,[]],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[1,2],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]]],"c":[],"p":[[5,"MetricsSinkHandle",0],[1,"tuple"],[5,"MetricsSink",0],[5,"Formatter",22],[8,"Result",22],[6,"Result",23],[5,"TypeId",24]],"b":[]}]\ ]')); diff --git a/docs/src/lurk/circuit/gadgets/macros.rs.html b/docs/src/lurk/circuit/gadgets/macros.rs.html index e252d4ff10..e5d75275f1 100644 --- a/docs/src/lurk/circuit/gadgets/macros.rs.html +++ b/docs/src/lurk/circuit/gadgets/macros.rs.html @@ -256,9 +256,23 @@ 255 256 257 +258 +259 +260 +261 +262 +263 +264

    #![allow(unused_macros)]
     
    -// Enforces constraint that a implies b.
    +/// Simplify creating a namespace.
    +macro_rules! ns {
    +    ($cs:ident, $e:expr) => {
    +        &mut $cs.namespace(|| $e)
    +    };
    +}
    +
    +// Enforces constraint that a implies b.
     macro_rules! if_then {
         ($cs:ident, $a:expr, $b:expr) => {
             enforce_implication(
    diff --git a/docs/src/lurk/coprocessor/gadgets.rs.html b/docs/src/lurk/coprocessor/gadgets.rs.html
    index 530b653ebe..2bc00ca4f3 100644
    --- a/docs/src/lurk/coprocessor/gadgets.rs.html
    +++ b/docs/src/lurk/coprocessor/gadgets.rs.html
    @@ -893,6 +893,97 @@
     892
     893
     894
    +895
    +896
    +897
    +898
    +899
    +900
    +901
    +902
    +903
    +904
    +905
    +906
    +907
    +908
    +909
    +910
    +911
    +912
    +913
    +914
    +915
    +916
    +917
    +918
    +919
    +920
    +921
    +922
    +923
    +924
    +925
    +926
    +927
    +928
    +929
    +930
    +931
    +932
    +933
    +934
    +935
    +936
    +937
    +938
    +939
    +940
    +941
    +942
    +943
    +944
    +945
    +946
    +947
    +948
    +949
    +950
    +951
    +952
    +953
    +954
    +955
    +956
    +957
    +958
    +959
    +960
    +961
    +962
    +963
    +964
    +965
    +966
    +967
    +968
    +969
    +970
    +971
    +972
    +973
    +974
    +975
    +976
    +977
    +978
    +979
    +980
    +981
    +982
    +983
    +984
    +985
     
    //! Helper gadgets for synthesis
     
     use bellpepper_core::{boolean::Boolean, num::AllocatedNum, ConstraintSystem, SynthesisError};
    @@ -1020,7 +1111,7 @@
         cs: &mut CS,
         g: &GlobalAllocator<F>,
         store: &Store<F>,
    -    elts: &[&AllocatedPtr<F>],
    +    elts: &[AllocatedPtr<F>],
         last: Option<AllocatedPtr<F>>,
     ) -> Result<AllocatedPtr<F>, SynthesisError> {
         let init = match last {
    @@ -1068,11 +1159,36 @@
         Ok(AllocatedPtr::from_parts(tag, hash))
     }
     
    +#[inline]
    +pub(crate) fn construct_provenance<F: LurkField, CS: ConstraintSystem<F>>(
    +    cs: &mut CS,
    +    g: &GlobalAllocator<F>,
    +    store: &Store<F>,
    +    query_hash: &AllocatedNum<F>,
    +    result: &AllocatedPtr<F>,
    +    deps: &AllocatedNum<F>,
    +) -> Result<AllocatedPtr<F>, SynthesisError> {
    +    // TODO: should there be a provenance tag?
    +    let tag = g.alloc_tag_cloned(cs, &ExprTag::Env);
    +
    +    let hash = hash_poseidon(
    +        cs,
    +        vec![
    +            query_hash.clone(),
    +            result.tag().clone(),
    +            result.hash().clone(),
    +            deps.clone(),
    +        ],
    +        store.poseidon_cache.constants.c4(),
    +    )?;
    +
    +    Ok(AllocatedPtr::from_parts(tag, hash))
    +}
    +
     /// Deconstructs `env`, assumed to be a composition of a symbol hash, a value `Ptr`, and a next `Env` hash.
     ///
     /// # Panics
     /// Panics if the store can't deconstruct the env hash.
    -#[allow(dead_code)]
     pub(crate) fn deconstruct_env<F: LurkField, CS: ConstraintSystem<F>>(
         cs: &mut CS,
         s: &Store<F>,
    @@ -1121,6 +1237,65 @@
         Ok((key_sym_hash, val, new_env_hash))
     }
     
    +#[allow(dead_code)]
    +pub(crate) fn deconstruct_provenance<F: LurkField, CS: ConstraintSystem<F>>(
    +    cs: &mut CS,
    +    s: &Store<F>,
    +    not_dummy: &Boolean,
    +    provenance: &AllocatedNum<F>,
    +) -> Result<(AllocatedNum<F>, AllocatedPtr<F>, AllocatedNum<F>), SynthesisError> {
    +    let prov_zptr = ZPtr::from_parts(
    +        tag::Tag::Expr(ExprTag::Env),
    +        provenance.get_value().unwrap(),
    +    );
    +    let prov_ptr = s.to_ptr(&prov_zptr);
    +
    +    let (a, b, c, d) = {
    +        if let Some([q, res, deps]) = s.pop_provenance(prov_ptr) {
    +            let q_zptr = s.hash_ptr(&q);
    +            let res_zptr = s.hash_ptr(&res);
    +            let deps_zptr = s.hash_ptr(&deps);
    +            (
    +                *q_zptr.value(),
    +                res_zptr.tag().to_field::<F>(),
    +                *res_zptr.value(),
    +                *deps_zptr.value(),
    +            )
    +        } else {
    +            (F::ZERO, F::ZERO, F::ZERO, F::ZERO)
    +        }
    +    };
    +
    +    let query_cons_hash =
    +        AllocatedNum::alloc_infallible(&mut cs.namespace(|| "query_cons_hash"), || a);
    +    let res_tag = AllocatedNum::alloc_infallible(&mut cs.namespace(|| "res_tag"), || b);
    +    let res_hash = AllocatedNum::alloc_infallible(&mut cs.namespace(|| "res_hash"), || c);
    +    let deps_tuple_hash =
    +        AllocatedNum::alloc_infallible(&mut cs.namespace(|| "deps_tuple_hash"), || d);
    +
    +    let hash = hash_poseidon(
    +        &mut cs.namespace(|| "hash"),
    +        vec![
    +            query_cons_hash.clone(),
    +            res_tag.clone(),
    +            res_hash.clone(),
    +            deps_tuple_hash.clone(),
    +        ],
    +        s.poseidon_cache.constants.c4(),
    +    )?;
    +
    +    let res = AllocatedPtr::from_parts(res_tag, res_hash);
    +
    +    implies_equal(
    +        &mut cs.namespace(|| "hash equality"),
    +        not_dummy,
    +        provenance,
    +        &hash,
    +    );
    +
    +    Ok((query_cons_hash, res, deps_tuple_hash))
    +}
    +
     /// Retrieves the `Ptr` that corresponds to `a_ptr` by using the `Store` as the
     /// hint provider
     #[allow(dead_code)]
    @@ -1583,13 +1758,20 @@
             let a_one = g.alloc_ptr(&mut cs, &one, &store);
     
             // proper list
    -        let a_list = construct_list(&mut cs, &g, &store, &[&a_one, &a_one], None).unwrap();
    +        let a_list =
    +            construct_list(&mut cs, &g, &store, &[a_one.clone(), a_one.clone()], None).unwrap();
             let z_list = store.hash_ptr(&store.list(vec![one, one]));
             assert_eq!(a_ptr_as_z_ptr(&a_list), Some(z_list));
     
             // improper list
    -        let a_list =
    -            construct_list(&mut cs, &g, &store, &[&a_one, &a_one], Some(a_one.clone())).unwrap();
    +        let a_list = construct_list(
    +            &mut cs,
    +            &g,
    +            &store,
    +            &[a_one.clone(), a_one.clone()],
    +            Some(a_one.clone()),
    +        )
    +        .unwrap();
             let z_list = store.hash_ptr(&store.improper_list(vec![one, one], one));
             assert_eq!(a_ptr_as_z_ptr(&a_list), Some(z_list));
         }
    diff --git a/docs/src/lurk/coroutine/memoset/demo.rs.html b/docs/src/lurk/coroutine/memoset/demo.rs.html
    index 630375cdd1..e2c5282092 100644
    --- a/docs/src/lurk/coroutine/memoset/demo.rs.html
    +++ b/docs/src/lurk/coroutine/memoset/demo.rs.html
    @@ -228,6 +228,12 @@
     227
     228
     229
    +230
    +231
    +232
    +233
    +234
    +235
     
    use bellpepper_core::{num::AllocatedNum, ConstraintSystem, SynthesisError};
     
     use super::{
    @@ -236,6 +242,7 @@
     };
     use crate::circuit::gadgets::constraints::alloc_is_zero;
     use crate::circuit::gadgets::pointer::AllocatedPtr;
    +use crate::coprocessor::gadgets::construct_cons;
     use crate::field::LurkField;
     use crate::lem::circuit::GlobalAllocator;
     use crate::lem::{pointers::Ptr, store::Store};
    @@ -257,7 +264,7 @@
     impl<F: LurkField> Query<F> for DemoQuery<F> {
         type CQ = DemoCircuitQuery<F>;
     
    -    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>>) -> Ptr {
    +    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>, F>) -> Ptr {
             match self {
                 Self::Factorial(n) => {
                     let n_zptr = s.hash_ptr(n);
    @@ -347,15 +354,11 @@
             match self {
                 Self::Factorial(n) => {
                     let result_f = n.hash().mul(
    -                    &mut cs.namespace(|| "incremental multiplication"),
    +                    ns!(cs, "incremental multiplication"),
                         subquery_result.hash(),
                     )?;
     
    -                AllocatedPtr::alloc_tag(
    -                    &mut cs.namespace(|| "result"),
    -                    ExprTag::Num.to_field(),
    -                    result_f,
    -                )
    +                AllocatedPtr::alloc_tag(ns!(cs, "result"), ExprTag::Num.to_field(), result_f)
                 }
             }
         }
    @@ -370,20 +373,27 @@
             scope: &mut CircuitScope<F, LogMemoCircuit<F>>,
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
             match self {
                 Self::Factorial(n) => {
                     // FIXME: Check n tag or decide not to.
                     let base_case_f = g.alloc_const(cs, F::ONE);
                     let base_case = AllocatedPtr::alloc_tag(
    -                    &mut cs.namespace(|| "base_case"),
    +                    ns!(cs, "base_case"),
                         ExprTag::Num.to_field(),
                         base_case_f.clone(),
                     )?;
     
    -                let n_is_zero = alloc_is_zero(&mut cs.namespace(|| "n_is_zero"), n.hash())?;
    +                let n_is_zero = alloc_is_zero(ns!(cs, "n_is_zero"), n.hash())?;
     
    -                let new_n = AllocatedNum::alloc(&mut cs.namespace(|| "new_n"), || {
    +                let new_n = AllocatedNum::alloc(ns!(cs, "new_n"), || {
                         n.hash()
                             .get_value()
                             .map(|n| n - F::ONE)
    @@ -398,17 +408,19 @@
                         |lc| lc + n.hash().get_variable() - CS::one(),
                     );
     
    -                let new_num = AllocatedPtr::alloc_tag(
    -                    &mut cs.namespace(|| "new_num"),
    -                    ExprTag::Num.to_field(),
    -                    new_n,
    -                )?;
    +                let new_num =
    +                    AllocatedPtr::alloc_tag(ns!(cs, "new_num"), ExprTag::Num.to_field(), new_n)?;
    +
    +                let symbol = g.alloc_ptr(ns!(cs, "symbol_"), &self.symbol_ptr(store), store);
    +
    +                let query = construct_cons(ns!(cs, "query"), g, store, &symbol, n)?;
     
                     self.recurse(
                         cs,
                         g,
                         store,
                         scope,
    +                    &query,
                         &new_num,
                         &n_is_zero.not(),
                         (&base_case, acc, transcript),
    @@ -442,7 +454,7 @@
         #[test]
         fn test_factorial() {
             let s = Store::default();
    -        let mut scope: Scope<DemoQuery<F>, LogMemo<F>> = Scope::default();
    +        let mut scope: Scope<DemoQuery<F>, LogMemo<F>, F> = Scope::default();
             let zero = s.num(F::ZERO);
             let one = s.num(F::ONE);
             let two = s.num(F::from_u64(2));
    diff --git a/docs/src/lurk/coroutine/memoset/env.rs.html b/docs/src/lurk/coroutine/memoset/env.rs.html
    index dfa24dc6ef..fc9d4d46fe 100644
    --- a/docs/src/lurk/coroutine/memoset/env.rs.html
    +++ b/docs/src/lurk/coroutine/memoset/env.rs.html
    @@ -440,22 +440,6 @@
     439
     440
     441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
     

    use bellpepper_core::{num::AllocatedNum, ConstraintSystem, SynthesisError};
     
     use super::{
    @@ -486,7 +470,7 @@
     impl<F: LurkField> Query<F> for EnvQuery<F> {
         type CQ = EnvCircuitQuery<F>;
     
    -    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>>) -> Ptr {
    +    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>, F>) -> Ptr {
             match self {
                 Self::Lookup(var, env) => {
                     if let Some([v, val, new_env]) = s.pop_binding(*env) {
    @@ -583,7 +567,14 @@
             scope: &mut CircuitScope<F, LogMemoCircuit<F>>,
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
             match self {
                 Self::Lookup(var, env) => {
                     let nil = store.intern_nil();
    @@ -638,11 +629,35 @@
                         &new_env_alloc,
                     )?;
     
    +                let env_alloc = AllocatedPtr::from_parts(env_tag.clone(), env.clone());
    +                let these_args = construct_cons(
    +                    &mut cs.namespace(|| "these_args"),
    +                    g,
    +                    store,
    +                    &var_alloc,
    +                    &env_alloc,
    +                )?;
    +
    +                let symbol = g.alloc_ptr(
    +                    &mut cs.namespace(|| "symbol_"),
    +                    &self.symbol_ptr(store),
    +                    store,
    +                );
    +
    +                let query = construct_cons(
    +                    &mut cs.namespace(|| "query"),
    +                    g,
    +                    store,
    +                    &symbol,
    +                    &these_args,
    +                )?;
    +
                     self.recurse(
                         cs,
                         g,
                         store,
                         scope,
    +                    &query,
                         &recursive_args,
                         &is_immediate.not(),
                         (&immediate_result, acc, transcript),
    @@ -700,7 +715,7 @@
         #[test]
         fn test_env_lookup() {
             let s = Store::<F>::default();
    -        let mut scope: Scope<EnvQuery<F>, LogMemo<F>> = Scope::default();
    +        let mut scope: Scope<EnvQuery<F>, LogMemo<F>, F> = Scope::default();
             let a = s.intern_symbol(&sym!("a"));
             let b = s.intern_symbol(&sym!("b"));
             let c = s.intern_symbol(&sym!("c"));
    @@ -763,70 +778,25 @@
             let c_env = s.push_binding(c, three, b_env);
             let a2_env = s.push_binding(a, four, c_env);
     
    -        {
    -            // With internal insertions transcribed.
    -
    -            let (one_lookup_constraints, one_lookup_aux) =
    -                test_lookup_circuit_aux(s, a, empty, true, expect!["3231"], expect!["3242"]);
    -
    -            test_lookup_circuit_aux(s, a, a_env, true, expect!["3231"], expect!["3242"]);
    -
    -            let (two_lookup_constraints, two_lookup_aux) =
    -                test_lookup_circuit_aux(s, b, a_env, true, expect!["5872"], expect!["5891"]);
    -
    -            test_lookup_circuit_aux(s, b, b_env, true, expect!["3231"], expect!["3242"]);
    -            test_lookup_circuit_aux(s, a, a2_env, true, expect!["3231"], expect!["3242"]);
    -
    -            let (three_lookup_constraints, three_lookup_aux) =
    -                test_lookup_circuit_aux(s, c, b_env, true, expect!["8513"], expect!["8540"]);
    -
    -            test_lookup_circuit_aux(s, c, c_env, true, expect!["3231"], expect!["3242"]);
    -            test_lookup_circuit_aux(s, c, a2_env, true, expect!["5872"], expect!["5891"]);
    -
    -            let delta1_constraints = two_lookup_constraints - one_lookup_constraints;
    -            let delta2_constraints = three_lookup_constraints - two_lookup_constraints;
    -            let overhead_constraints = one_lookup_constraints - delta1_constraints;
    -
    -            assert_eq!(delta1_constraints, delta2_constraints);
    -
    -            // This is the number of constraints per lookup.
    -            expect_eq(delta1_constraints, expect!["2641"]);
    -
    -            // This is the number of constraints in the constant overhead.
    -            expect_eq(overhead_constraints, expect!["590"]);
    -
    -            let delta1_aux = two_lookup_aux - one_lookup_aux;
    -            let delta2_aux = three_lookup_aux - two_lookup_aux;
    -            let overhead_aux = one_lookup_aux - delta1_aux;
    -
    -            assert_eq!(delta1_aux, delta2_aux);
    -
    -            // This is the number of aux per lookup.
    -            expect_eq(delta1_aux, expect!["2649"]);
    -
    -            // This is the number of aux in the constant overhead.
    -            expect_eq(overhead_aux, expect!["593"]);
    -        }
    -
             {
                 // Without internal insertions transcribed.
     
                 let (one_lookup_constraints, one_lookup_aux) =
    -                test_lookup_circuit_aux(s, a, empty, false, expect!["2942"], expect!["2953"]);
    +                test_lookup_circuit_aux(s, a, empty, expect!["3524"], expect!["3541"]);
     
    -            test_lookup_circuit_aux(s, a, a_env, false, expect!["2942"], expect!["2953"]);
    +            test_lookup_circuit_aux(s, a, a_env, expect!["3524"], expect!["3541"]);
     
                 let (two_lookup_constraints, two_lookup_aux) =
    -                test_lookup_circuit_aux(s, b, a_env, false, expect!["5294"], expect!["5313"]);
    +                test_lookup_circuit_aux(s, b, a_env, expect!["6457"], expect!["6485"]);
     
    -            test_lookup_circuit_aux(s, b, b_env, false, expect!["2942"], expect!["2953"]);
    -            test_lookup_circuit_aux(s, a, a2_env, false, expect!["2942"], expect!["2953"]);
    +            test_lookup_circuit_aux(s, b, b_env, expect!["3524"], expect!["3541"]);
    +            test_lookup_circuit_aux(s, a, a2_env, expect!["3524"], expect!["3541"]);
     
                 let (three_lookup_constraints, three_lookup_aux) =
    -                test_lookup_circuit_aux(s, c, b_env, false, expect!["7646"], expect!["7673"]);
    +                test_lookup_circuit_aux(s, c, b_env, expect!["9390"], expect!["9429"]);
     
    -            test_lookup_circuit_aux(s, c, c_env, false, expect!["2942"], expect!["2953"]);
    -            test_lookup_circuit_aux(s, c, a2_env, false, expect!["5294"], expect!["5313"]);
    +            test_lookup_circuit_aux(s, c, c_env, expect!["3524"], expect!["3541"]);
    +            test_lookup_circuit_aux(s, c, a2_env, expect!["6457"], expect!["6485"]);
     
                 let delta1_constraints = two_lookup_constraints - one_lookup_constraints;
                 let delta2_constraints = three_lookup_constraints - two_lookup_constraints;
    @@ -835,10 +805,10 @@
                 assert_eq!(delta1_constraints, delta2_constraints);
     
                 // This is the number of constraints per lookup.
    -            expect_eq(delta1_constraints, expect!["2352"]);
    +            expect_eq(delta1_constraints, expect!["2933"]);
     
                 // This is the number of constraints in the constant overhead.
    -            expect_eq(overhead_constraints, expect!["590"]);
    +            expect_eq(overhead_constraints, expect!["591"]);
     
                 let delta1_aux = two_lookup_aux - one_lookup_aux;
                 let delta2_aux = three_lookup_aux - two_lookup_aux;
    @@ -847,10 +817,10 @@
                 assert_eq!(delta1_aux, delta2_aux);
     
                 // This is the number of aux per lookup.
    -            expect_eq(delta1_aux, expect!["2360"]);
    +            expect_eq(delta1_aux, expect!["2944"]);
     
                 // This is the number of aux in the constant overhead.
    -            expect_eq(overhead_aux, expect!["593"]);
    +            expect_eq(overhead_aux, expect!["597"]);
             }
         }
     
    @@ -858,7 +828,6 @@
             s: &Store<F>,
             sym: Ptr,
             env: Ptr,
    -        transcribe_internal_insertions: bool,
             expected_constraints_simple: Expect,
             expected_aux_simple: Expect,
         ) -> (usize, usize) {
    @@ -867,8 +836,7 @@
                 expected.assert_eq(&computed.to_string());
             };
     
    -        let mut scope: Scope<EnvQuery<F>, LogMemo<F>> =
    -            Scope::new(transcribe_internal_insertions, 1);
    +        let mut scope: Scope<EnvQuery<F>, LogMemo<F>, F> = Scope::new(1);
     
             let make_query = |sym, env| EnvQuery::Lookup(sym, env).to_ptr(s);
     
    diff --git a/docs/src/lurk/coroutine/memoset/mod.rs.html b/docs/src/lurk/coroutine/memoset/mod.rs.html
    index 151641dcad..e6386bd6e7 100644
    --- a/docs/src/lurk/coroutine/memoset/mod.rs.html
    +++ b/docs/src/lurk/coroutine/memoset/mod.rs.html
    @@ -1212,11 +1212,235 @@
     1211
     1212
     1213
    +1214
    +1215
    +1216
    +1217
    +1218
    +1219
    +1220
    +1221
    +1222
    +1223
    +1224
    +1225
    +1226
    +1227
    +1228
    +1229
    +1230
    +1231
    +1232
    +1233
    +1234
    +1235
    +1236
    +1237
    +1238
    +1239
    +1240
    +1241
    +1242
    +1243
    +1244
    +1245
    +1246
    +1247
    +1248
    +1249
    +1250
    +1251
    +1252
    +1253
    +1254
    +1255
    +1256
    +1257
    +1258
    +1259
    +1260
    +1261
    +1262
    +1263
    +1264
    +1265
    +1266
    +1267
    +1268
    +1269
    +1270
    +1271
    +1272
    +1273
    +1274
    +1275
    +1276
    +1277
    +1278
    +1279
    +1280
    +1281
    +1282
    +1283
    +1284
    +1285
    +1286
    +1287
    +1288
    +1289
    +1290
    +1291
    +1292
    +1293
    +1294
    +1295
    +1296
    +1297
    +1298
    +1299
    +1300
    +1301
    +1302
    +1303
    +1304
    +1305
    +1306
    +1307
    +1308
    +1309
    +1310
    +1311
    +1312
    +1313
    +1314
    +1315
    +1316
    +1317
    +1318
    +1319
    +1320
    +1321
    +1322
    +1323
    +1324
    +1325
    +1326
    +1327
    +1328
    +1329
    +1330
    +1331
    +1332
    +1333
    +1334
    +1335
    +1336
    +1337
    +1338
    +1339
    +1340
    +1341
    +1342
    +1343
    +1344
    +1345
    +1346
    +1347
    +1348
    +1349
    +1350
    +1351
    +1352
    +1353
    +1354
    +1355
    +1356
    +1357
    +1358
    +1359
    +1360
    +1361
    +1362
    +1363
    +1364
    +1365
    +1366
    +1367
    +1368
    +1369
    +1370
    +1371
    +1372
    +1373
    +1374
    +1375
    +1376
    +1377
    +1378
    +1379
    +1380
    +1381
    +1382
    +1383
    +1384
    +1385
    +1386
    +1387
    +1388
    +1389
    +1390
    +1391
    +1392
    +1393
    +1394
    +1395
    +1396
    +1397
    +1398
    +1399
    +1400
    +1401
    +1402
    +1403
    +1404
    +1405
    +1406
    +1407
    +1408
    +1409
    +1410
    +1411
    +1412
    +1413
    +1414
    +1415
    +1416
    +1417
    +1418
    +1419
    +1420
    +1421
    +1422
    +1423
    +1424
    +1425
    +1426
    +1427
    +1428
    +1429
    +1430
    +1431
    +1432
    +1433
    +1434
    +1435
    +1436
    +1437
     
    //! The `memoset` module implements a `MemoSet`.
     //!
     //! A `MemoSet` is an abstraction we use to memoize deferred proof of (potentially mutually-recursive) query results.
     //! Whenever a computation being proved needs the result of a query, the prover non-deterministically supplies the
    -//! correct response. The resulting key-value pair is then added to a multiset representing deferred proofs. The
    +//! correct result. The resulting key-value pair is then added to a multiset representing deferred proofs. The
     //! dependent proof now must not be accepted until every element in the deferred-proof multiset has been proved.
     //!
     //! Implementation depends on a cryptographic multiset -- for example, ECMH or LogUp (implemented here). This allows us
    @@ -1242,7 +1466,8 @@
     //! prover will follow when provably maintaining the multiset accumulator and Fiat-Shamir transcript in the circuit.
     
     use itertools::Itertools;
    -use std::collections::HashMap;
    +use std::collections::{HashMap, HashSet};
    +use std::fmt::{Debug, Formatter};
     use std::marker::PhantomData;
     
     use bellpepper_core::{boolean::Boolean, num::AllocatedNum, ConstraintSystem, SynthesisError};
    @@ -1253,11 +1478,16 @@
         constraints::{enforce_equal, enforce_equal_zero, invert, sub},
         pointer::AllocatedPtr,
     };
    -use crate::coprocessor::gadgets::construct_cons; // FIXME: Move to common location.
    -use crate::field::LurkField;
    +use crate::coprocessor::gadgets::{
    +    construct_cons, construct_list, construct_provenance, deconstruct_provenance,
    +};
    +use crate::field::LurkField;
     use crate::lem::circuit::GlobalAllocator;
     use crate::lem::tag::Tag;
    -use crate::lem::{pointers::Ptr, store::Store};
    +use crate::lem::{
    +    pointers::Ptr,
    +    store::{Store, WithStore},
    +};
     use crate::tag::{ExprTag, Tag as XTag};
     use crate::z_ptr::ZPtr;
     
    @@ -1269,6 +1499,12 @@
     mod multiset;
     mod query;
     
    +#[derive(Debug)]
    +pub enum MemoSetError {
    +    QueryDependenciesMissing,
    +    QueryResultMissing,
    +}
    +
     #[derive(Clone, Debug)]
     pub struct Transcript<F> {
         acc: Ptr,
    @@ -1292,9 +1528,9 @@
             s.cons(key, value)
         }
     
    -    fn make_kv_count(s: &Store<F>, kv: Ptr, count: usize) -> Ptr {
    +    fn make_provenance_count(s: &Store<F>, provenance: Ptr, count: usize) -> Ptr {
             let count_num = s.num(F::from_u64(count as u64));
    -        s.cons(kv, count_num)
    +        s.cons(provenance, count_num)
         }
     
         /// Since the transcript is just a content-addressed Lurk list, its randomness is the hash value of the associated
    @@ -1352,21 +1588,11 @@
             Ok(Self { acc })
         }
     
    -    fn make_kv<CS: ConstraintSystem<F>>(
    -        cs: &mut CS,
    -        g: &GlobalAllocator<F>,
    -        s: &Store<F>,
    -        key: &AllocatedPtr<F>,
    -        value: &AllocatedPtr<F>,
    -    ) -> Result<AllocatedPtr<F>, SynthesisError> {
    -        construct_cons(cs, g, s, key, value)
    -    }
    -
    -    fn make_kv_count<CS: ConstraintSystem<F>>(
    +    fn make_provenance_count<CS: ConstraintSystem<F>>(
             cs: &mut CS,
             g: &GlobalAllocator<F>,
             s: &Store<F>,
    -        kv: &AllocatedPtr<F>,
    +        provenance: &AllocatedPtr<F>,
             count: u64,
         ) -> Result<(AllocatedPtr<F>, AllocatedNum<F>), SynthesisError> {
             let allocated_count =
    @@ -1377,7 +1603,10 @@
                 allocated_count.clone(),
             )?;
     
    -        Ok((construct_cons(cs, g, s, kv, &count_ptr)?, allocated_count))
    +        Ok((
    +            construct_cons(cs, g, s, provenance, &count_ptr)?,
    +            allocated_count,
    +        ))
         }
     
         fn r(&self) -> &AllocatedNum<F> {
    @@ -1392,69 +1621,222 @@
         }
     }
     
    +#[derive(Debug)]
    +pub struct Provenance {
    +    ptr: OnceCell<Ptr>,
    +    query: Ptr,
    +    result: Ptr,
    +    // Dependencies is an ordered list of provenance(Ptr)s on which this depends.
    +    dependencies: Vec<Ptr>,
    +}
    +
    +impl Provenance {
    +    fn new(
    +        query: Ptr,
    +        result: Ptr,
    +        // Provenances on which this depends.
    +        dependencies: Vec<Ptr>,
    +    ) -> Self {
    +        Self {
    +            ptr: OnceCell::new(),
    +            query,
    +            result,
    +            dependencies,
    +        }
    +    }
    +
    +    fn to_ptr<F: LurkField>(&self, store: &Store<F>) -> &Ptr {
    +        self.ptr.get_or_init(|| {
    +            let dependencies_list = if self.dependencies.len() == 1 {
    +                self.dependencies[0]
    +            } else {
    +                store.list(self.dependencies.clone())
    +            };
    +
    +            store.push_provenance(self.query, self.result, dependencies_list)
    +        })
    +    }
    +}
    +
    +#[derive(Debug)]
    +pub struct AllocatedProvenance<F: LurkField> {
    +    ptr: OnceCell<AllocatedPtr<F>>,
    +    query: AllocatedPtr<F>,
    +    result: AllocatedPtr<F>,
    +    // Dependencies is an ordered list of provenance(Ptr)s on which this depends.
    +    dependencies: Vec<AllocatedPtr<F>>,
    +}
    +
    +impl<F: LurkField> AllocatedProvenance<F> {
    +    fn new(
    +        query: AllocatedPtr<F>,
    +        result: AllocatedPtr<F>,
    +        // Provenances on which this depends.
    +        dependencies: Vec<AllocatedPtr<F>>,
    +    ) -> Self {
    +        Self {
    +            ptr: OnceCell::new(),
    +            query,
    +            result,
    +            dependencies,
    +        }
    +    }
    +
    +    fn to_ptr<CS: ConstraintSystem<F>>(
    +        &self,
    +        cs: &mut CS,
    +        g: &GlobalAllocator<F>,
    +        s: &Store<F>,
    +    ) -> Result<&AllocatedPtr<F>, SynthesisError> {
    +        self.ptr.get_or_try_init(|| {
    +            let deps = {
    +                let arity = self.dependencies.len();
    +
    +                if arity == 1 {
    +                    self.dependencies[0].clone()
    +                } else {
    +                    // TODO: Use a hash of exactly `arity` instead of a Lurk list.
    +                    construct_list(ns!(cs, "dependencies_list"), g, s, &self.dependencies, None)?
    +                }
    +            };
    +
    +            construct_provenance(
    +                ns!(cs, "provenance"),
    +                g,
    +                s,
    +                self.query.hash(),
    +                &self.result,
    +                deps.hash(),
    +            )
    +        })
    +    }
    +}
    +
    +type PW<'a, F> = WithStore<'a, F, Provenance>;
    +
    +impl<'a, F: LurkField> Debug for PW<'a, F> {
    +    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
    +        let p = self.inner();
    +        let s = self.store();
    +
    +        f.debug_struct("Provenance")
    +            .field("full", &p.to_ptr(s).fmt_to_string_simple(s))
    +            .field("query", &p.query.fmt_to_string_simple(s))
    +            .field(
    +                "dependencies",
    +                &p.dependencies
    +                    .iter()
    +                    .map(|ptr| ptr.fmt_to_string_simple(s))
    +                    .join(", "),
    +            )
    +            .finish()
    +    }
    +}
    +
     #[derive(Clone, Debug)]
     /// A `Scope` tracks the queries made while evaluating, including the subqueries that result from evaluating other
     /// queries -- then makes use of the bookkeeping performed at evaluation time to synthesize proof of each query
     /// performed.
    -pub struct Scope<Q, M> {
    +pub struct Scope<Q, M, F: LurkField> {
         memoset: M,
         /// k => v
         queries: HashMap<Ptr, Ptr>,
         /// k => ordered subqueries
         dependencies: HashMap<Ptr, Vec<Q>>,
    +    /// inverse of dependencies
    +    dependents: HashMap<Ptr, HashSet<Ptr>>,
         /// kv pairs
         toplevel_insertions: Vec<Ptr>,
         /// internally-inserted keys
         internal_insertions: Vec<Ptr>,
         /// unique keys: query-index -> [key]
         unique_inserted_keys: HashMap<usize, Vec<Ptr>>,
    -    transcribe_internal_insertions: bool,
         // This may become an explicit map or something allowing more fine-grained control.
    -    default_rc: usize,
    +    provenances: OnceCell<HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>>,
    +    default_rc: usize,
     }
     
     const DEFAULT_RC_FOR_QUERY: usize = 1;
    -const DEFAULT_TRANSCRIBE_INTERNAL_INSERTIONS: bool = false;
     
    -impl<F: LurkField, Q> Default for Scope<Q, LogMemo<F>> {
    +impl<F: LurkField, Q: Query<F>> Default for Scope<Q, LogMemo<F>, F> {
         fn default() -> Self {
    -        Self::new(DEFAULT_TRANSCRIBE_INTERNAL_INSERTIONS, DEFAULT_RC_FOR_QUERY)
    +        Self::new(DEFAULT_RC_FOR_QUERY)
         }
     }
     
    -impl<F: LurkField, Q> Scope<Q, LogMemo<F>> {
    -    fn new(transcribe_internal_insertions: bool, default_rc: usize) -> Self {
    +impl<F: LurkField, Q: Query<F>> Scope<Q, LogMemo<F>, F> {
    +    fn new(default_rc: usize) -> Self {
             Self {
                 memoset: Default::default(),
                 queries: Default::default(),
                 dependencies: Default::default(),
    +            dependents: Default::default(),
                 toplevel_insertions: Default::default(),
                 internal_insertions: Default::default(),
                 unique_inserted_keys: Default::default(),
    -            transcribe_internal_insertions,
    +            provenances: Default::default(),
                 default_rc,
             }
         }
    +
    +    fn provenance(&self, store: &Store<F>, query: Ptr) -> Result<Provenance, MemoSetError> {
    +        let query_dependencies = self.dependencies.get(&query);
    +        let result = self
    +            .queries
    +            .get(&query)
    +            .ok_or(MemoSetError::QueryResultMissing)?;
    +
    +        let dependencies = if let Some(deps) = query_dependencies {
    +            Ok(deps
    +                .iter()
    +                .map(|query| {
    +                    let ptr = query.to_ptr(store);
    +                    *self.provenance(store, ptr).unwrap().to_ptr(store)
    +                })
    +                .collect())
    +        } else {
    +            Err(MemoSetError::QueryDependenciesMissing)
    +        }?;
    +
    +        Ok(Provenance::new(query, *result, dependencies))
    +    }
    +
    +    fn provenance_from_kv(&self, store: &Store<F>, kv: Ptr) -> Result<Provenance, MemoSetError> {
    +        let (query, result) = store.car_cdr(&kv).expect("kv missing");
    +        let query_dependencies = self.dependencies.get(&query);
    +
    +        let dependencies = if let Some(deps) = query_dependencies {
    +            Ok(deps
    +                .iter()
    +                .map(|query| {
    +                    let ptr = query.to_ptr(store);
    +                    *self.provenance(store, ptr).unwrap().to_ptr(store)
    +                })
    +                .collect())
    +        } else {
    +            Ok(Vec::new())
    +        }?;
    +
    +        Ok(Provenance::new(query, result, dependencies))
    +    }
     }
     
     #[derive(Debug, Clone)]
     pub struct CircuitScope<F: LurkField, CM> {
         memoset: CM, // CircuitMemoSet
    -    /// k -> v
    -    queries: HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>,
    +    /// k -> prov
    +    provenances: HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>,
         /// k -> allocated v
         transcript: CircuitTranscript<F>,
         acc: Option<AllocatedPtr<F>>,
    -    transcribe_internal_insertions: bool,
     }
     
     pub struct CoroutineCircuit<'a, F: LurkField, CM, Q> {
    -    queries: &'a HashMap<Ptr, Ptr>,
    +    provenances: HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>,
         memoset: CM,
         keys: Vec<Ptr>,
         query_index: usize,
         store: &'a Store<F>,
    -    transcribe_internal_insertions: bool,
         rc: usize,
         _p: PhantomData<Q>,
     }
    @@ -1463,7 +1845,7 @@
     // That will require a CircuitScopeTrait.
     impl<'a, F: LurkField, Q: Query<F>> CoroutineCircuit<'a, F, LogMemoCircuit<F>, Q> {
         fn new(
    -        scope: &'a Scope<Q, LogMemo<F>>,
    +        scope: &'a Scope<Q, LogMemo<F>, F>,
             memoset: LogMemoCircuit<F>,
             keys: Vec<Ptr>,
             query_index: usize,
    @@ -1473,11 +1855,10 @@
             assert!(keys.len() <= rc);
             Self {
                 memoset,
    -            queries: &scope.queries,
    -            keys,
    +            provenances: scope.provenances(store).clone(), // FIXME
    +            keys,
                 query_index,
                 store,
    -            transcribe_internal_insertions: scope.transcribe_internal_insertions,
                 rc,
                 _p: Default::default(),
             }
    @@ -1497,14 +1878,8 @@
                 unreachable!()
             };
     
    -        let mut circuit_scope: CircuitScope<F, LogMemoCircuit<F>> = CircuitScope::from_queries(
    -            cs,
    -            g,
    -            self.store,
    -            self.memoset.clone(),
    -            self.queries,
    -            self.transcribe_internal_insertions,
    -        );
    +        let mut circuit_scope: CircuitScope<F, LogMemoCircuit<F>> =
    +            CircuitScope::new(cs, g, self.store, self.memoset.clone(), &self.provenances);
             circuit_scope.update_from_io(memoset_acc.clone(), transcript.clone(), r);
     
             for (i, key) in self
    @@ -1514,7 +1889,7 @@
                 .pad_using(self.rc, |_| None)
                 .enumerate()
             {
    -            let cs = &mut cs.namespace(|| format!("internal-{i}"));
    +            let cs = ns!(cs, format!("internal-{i}"));
                 circuit_scope.synthesize_prove_key_query::<_, Q>(
                     cs,
                     g,
    @@ -1525,7 +1900,7 @@
             }
     
             let (memoset_acc, transcript, r_num) = circuit_scope.io();
    -        let r = AllocatedPtr::alloc_tag(&mut cs.namespace(|| "r"), ExprTag::Num.to_field(), r_num)?;
    +        let r = AllocatedPtr::alloc_tag(ns!(cs, "r"), ExprTag::Num.to_field(), r_num)?;
     
             let z_out = vec![c.clone(), e.clone(), k.clone(), memoset_acc, transcript, r];
     
    @@ -1534,31 +1909,51 @@
         }
     }
     
    -impl<F: LurkField, Q: Query<F>> Scope<Q, LogMemo<F>> {
    +impl<F: LurkField, Q: Query<F>> Scope<Q, LogMemo<F>, F> {
         pub fn query(&mut self, s: &Store<F>, form: Ptr) -> Ptr {
    -        let (response, kv_ptr) = self.query_aux(s, form);
    +        let (result, kv_ptr) = self.query_aux(s, form);
     
             self.toplevel_insertions.push(kv_ptr);
     
    -        response
    +        result
         }
     
         fn query_recursively(&mut self, s: &Store<F>, parent: &Q, child: Q) -> Ptr {
             let form = child.to_ptr(s);
    +
             self.internal_insertions.push(form);
     
    -        let (response, _) = self.query_aux(s, form);
    +        let (result, _) = self.query_aux(s, form);
    +
    +        self.register_dependency(s, parent, child);
    +        result
    +    }
    +
    +    fn register_dependency(&mut self, s: &Store<F>, parent: &Q, child: Q) {
    +        let parent_ptr = parent.to_ptr(s);
    +
    +        self.dependents
    +            .entry(child.to_ptr(s))
    +            .and_modify(|parents| {
    +                parents.insert(parent_ptr);
    +            })
    +            .or_insert_with(|| {
    +                let mut set = HashSet::new();
    +                set.insert(parent_ptr);
    +                set
    +            });
     
             self.dependencies
    -            .entry(parent.to_ptr(s))
    +            .entry(parent_ptr)
                 .and_modify(|children| children.push(child.clone()))
                 .or_insert_with(|| vec![child]);
    -
    -        response
         }
     
         fn query_aux(&mut self, s: &Store<F>, form: Ptr) -> (Ptr, Ptr) {
    -        let response = self.queries.get(&form).cloned().unwrap_or_else(|| {
    +        // Ensure base-case queries explicitly contain no dependencies.
    +        self.dependencies.entry(form).or_insert_with(|| Vec::new());
    +
    +        let result = self.queries.get(&form).cloned().unwrap_or_else(|| {
                 let query = Q::from_ptr(s, &form).expect("invalid query");
     
                 let evaluated = query.eval(s, self);
    @@ -1567,19 +1962,113 @@
                 evaluated
             });
     
    -        let kv = Transcript::make_kv(s, form, response);
    -        self.memoset.add(kv);
    +        let kv = Transcript::make_kv(s, form, result);
     
    -        (response, kv)
    +        // FIXME: The memoset should hold the provenances, not the kvs.
    +        self.memoset.add(kv);
    +
    +        (result, kv)
         }
     
         fn finalize_transcript(&mut self, s: &Store<F>) -> Transcript<F> {
             let (transcript, insertions) = self.build_transcript(s);
             self.memoset.finalize_transcript(s, transcript.clone());
             self.unique_inserted_keys = insertions;
    +
             transcript
         }
     
    +    fn provenances(&self, store: &Store<F>) -> &HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>> {
    +        self.provenances
    +            .get_or_init(|| self.compute_provenances(store))
    +    }
    +
    +    // Retain for use when debugging.
    +    //
    +    // fn dbg_provenances(&self, store: &Store<F>) {
    +    //     Self::dbg_provenances_zptrs(store, self.provenances(store));
    +    // }
    +
    +    // fn dbg_provenances_ptrs(store: &Store<F>, provenances: &HashMap<Ptr, Ptr>) {
    +    //     for provenance in provenances.values() {
    +    //         dbg!(provenance.fmt_to_string_simple(store));
    +    //     }
    +    // }
    +
    +    // fn dbg_provenances_zptrs(store: &Store<F>, provenances: &HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>) {
    +    //     for (q, provenance) in provenances {
    +    //         dbg!(
    +    //             store.to_ptr(q).fmt_to_string_simple(store),
    +    //             store.to_ptr(provenance).fmt_to_string_simple(store)
    +    //         );
    +    //     }
    +    // }
    +
    +    fn compute_provenances(&self, store: &Store<F>) -> HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>> {
    +        let base_cases = self
    +            .queries
    +            .keys()
    +            .filter(|key| {
    +                if let Some(deps) = self.dependencies.get(key) {
    +                    deps.is_empty()
    +                } else {
    +                    true
    +                }
    +            })
    +            .collect::<HashSet<_>>();
    +        let mut todo = base_cases;
    +        let mut provenances = HashMap::default();
    +
    +        while !todo.is_empty() {
    +            todo = self.extend_provenances(store, &mut provenances, todo);
    +        }
    +
    +        provenances
    +            .iter()
    +            .map(|(k, v)| (store.hash_ptr(k), store.hash_ptr(v)))
    +            .collect()
    +    }
    +
    +    fn extend_provenances(
    +        &self,
    +        store: &Store<F>,
    +        provenances: &mut HashMap<Ptr, Ptr>,
    +        todo: HashSet<&Ptr>,
    +    ) -> HashSet<&Ptr> {
    +        let mut next = HashSet::new();
    +
    +        for query in todo.into_iter() {
    +            if provenances.get(query).is_some() {
    +                continue;
    +            };
    +
    +            let sub_provenances = self
    +                .dependencies
    +                .get(query)
    +                .expect("dependencies missing")
    +                .iter()
    +                .map(|dep| provenances.get(&dep.to_ptr(store)).unwrap())
    +                .cloned()
    +                .collect::<Vec<_>>();
    +
    +            let result = self.queries.get(query).expect("result missing");
    +            let p = Provenance::new(*query, *result, sub_provenances.clone());
    +            let provenance = p.to_ptr(store);
    +
    +            if let Some(dependents) = self.dependents.get(query) {
    +                for dependent in dependents {
    +                    if provenances.get(dependent).is_none() {
    +                        next.insert(dependent);
    +                    }
    +                }
    +            };
    +
    +            provenances.insert(*query, *provenance);
    +        }
    +
    +        next
    +    }
    +
         fn ensure_transcript_finalized(&mut self, s: &Store<F>) {
             if !self.memoset.is_finalized() {
                 self.finalize_transcript(s);
    @@ -1623,7 +2112,8 @@
                 insert(kv);
             }
             for kv in self.toplevel_insertions.iter() {
    -            transcript.add(s, *kv);
    +            let provenance = self.provenance_from_kv(s, *kv).unwrap();
    +            transcript.add(s, *provenance.to_ptr(s));
             }
     
             // Then add insertions and removals interleaved, sorted by query type. We interleave insertions and removals
    @@ -1633,29 +2123,16 @@
             for index in 0..Q::count() {
                 for key in unique_keys.get(&index).expect("unreachable") {
                     for kv in insertions.get(key).unwrap().iter() {
    -                    if let Some(dependencies) = self.dependencies.get(key) {
    -                        dependencies.iter().for_each(|dependency| {
    -                            let k = dependency.to_ptr(s);
    -                            let v = self
    -                                .queries
    -                                .get(&k)
    -                                .expect("value missing for dependency key");
    -                            // Add an insertion for each dependency (subquery) of the query identified by `key`. Notice
    -                            // that these keys might already have been inserted before, but we need to repeat if so
    -                            // because the proof must do so each time a query is used.
    -                            let kv = Transcript::make_kv(s, k, *v);
    -                            if self.transcribe_internal_insertions {
    -                                transcript.add(s, kv)
    -                            }
    -                        })
    -                    };
    +                    let provenance = self.provenance_from_kv(s, *kv).unwrap();
    +                    let prov = provenance.to_ptr(s);
                         let count = self.memoset.count(kv);
    -                    let kv_count = Transcript::make_kv_count(s, *kv, count);
    +
    +                    let prov_count = Transcript::make_provenance_count(s, *prov, count);
     
                         // Add removal for the query identified by `key`. The queries being removed here were deduplicated
                         // above, so each is removed only once. However, we freely choose the multiplicity (`count`) of the
                         // removal to match the total number of insertions actually made (considering dependencies).
    -                    transcript.add(s, kv_count);
    +                    transcript.add(s, prov_count);
                     }
                 }
             }
    @@ -1671,29 +2148,23 @@
             self.ensure_transcript_finalized(s);
             // FIXME: Do we need to allocate a new GlobalAllocator here?
             // Is it okay for this memoset circuit to be shared between all CoroutineCircuits?
    -        let memoset_circuit = self
    -            .memoset
    -            .to_circuit(&mut cs.namespace(|| "memoset_circuit"));
    +        let memoset_circuit = self.memoset.to_circuit(ns!(cs, "memoset_circuit"));
     
    -        let mut circuit_scope = CircuitScope::from_queries(
    -            &mut cs.namespace(|| "transcript"),
    +        let mut circuit_scope = CircuitScope::new(
    +            ns!(cs, "transcript"),
                 g,
                 s,
                 memoset_circuit.clone(),
    -            &self.queries,
    -            self.transcribe_internal_insertions,
    +            self.provenances(s),
             );
    +
             circuit_scope.init(cs, g, s);
             {
                 circuit_scope.synthesize_insert_toplevel_queries(self, cs, g, s)?;
     
                 {
                     let (memoset_acc, transcript, r_num) = circuit_scope.io();
    -                let r = AllocatedPtr::alloc_tag(
    -                    &mut cs.namespace(|| "r"),
    -                    ExprTag::Num.to_field(),
    -                    r_num,
    -                )?;
    +                let r = AllocatedPtr::alloc_tag(ns!(cs, "r"), ExprTag::Num.to_field(), r_num)?;
                     let dummy = g.alloc_ptr(cs, &s.intern_nil(), s);
                     let mut z = vec![
                         dummy.clone(),
    @@ -1704,14 +2175,14 @@
                         r,
                     ];
                     for (index, keys) in self.unique_inserted_keys.iter() {
    -                    let cs = &mut cs.namespace(|| format!("query-index-{index}"));
    +                    let cs = ns!(cs, format!("query-index-{index}"));
     
                         let rc = self.rc_for_query(*index);
     
                         for (i, chunk) in keys.chunks(rc).enumerate() {
                             // This namespace exists only because we are putting multiple 'chunks' into a single, larger circuit (as a stage in development).
                             // It shouldn't exist, when instead we have only the single NIVC circuit repeated multiple times.
    -                        let cs = &mut cs.namespace(|| format!("chunk-{i}"));
    +                        let cs = ns!(cs, format!("chunk-{i}"));
     
                             let mut circuit: CoroutineCircuit<'_, F, LogMemoCircuit<F>, Q> =
                                 CoroutineCircuit::new(
    @@ -1753,25 +2224,18 @@
     }
     
     impl<F: LurkField> CircuitScope<F, LogMemoCircuit<F>> {
    -    fn from_queries<CS: ConstraintSystem<F>>(
    +    fn new<CS: ConstraintSystem<F>>(
             cs: &mut CS,
             g: &mut GlobalAllocator<F>,
             s: &Store<F>,
             memoset: LogMemoCircuit<F>,
    -        queries: &HashMap<Ptr, Ptr>,
    -        transcribe_internal_insertions: bool,
    +        provenances: &HashMap<ZPtr<Tag, F>, ZPtr<Tag, F>>,
         ) -> Self {
    -        let queries = queries
    -            .iter()
    -            .map(|(k, v)| (s.hash_ptr(k), s.hash_ptr(v)))
    -            .collect();
    -
             Self {
                 memoset,
    -            queries,
    -            transcript: CircuitTranscript::new(cs, g, s),
    +            provenances: provenances.clone(), // FIXME
    +            transcript: CircuitTranscript::new(cs, g, s),
                 acc: Default::default(),
    -            transcribe_internal_insertions,
             }
         }
     
    @@ -1781,10 +2245,8 @@
             g: &mut GlobalAllocator<F>,
             s: &Store<F>,
         ) {
    -        self.acc = Some(
    -            AllocatedPtr::alloc_constant(&mut cs.namespace(|| "acc"), s.hash_ptr(&s.num_u64(0)))
    -                .unwrap(),
    -        );
    +        self.acc =
    +            Some(AllocatedPtr::alloc_constant(ns!(cs, "acc"), s.hash_ptr(&s.num_u64(0))).unwrap());
     
             self.transcript = CircuitTranscript::new(cs, g, s);
         }
    @@ -1815,28 +2277,23 @@
             s: &Store<F>,
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
    -        key: &AllocatedPtr<F>,
    -        value: &AllocatedPtr<F>,
    +        provenance: &AllocatedPtr<F>,
             is_toplevel: bool,
         ) -> Result<(AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    -        let kv = CircuitTranscript::make_kv(&mut cs.namespace(|| "kv"), g, s, key, value)?;
    -        let new_transcript = if is_toplevel || self.transcribe_internal_insertions {
    -            transcript.add(&mut cs.namespace(|| "new_transcript"), g, s, &kv)?
    +        let new_transcript = if is_toplevel {
    +            transcript.add(ns!(cs, "new_transcript"), g, s, provenance)?
             } else {
                 transcript.clone()
             };
     
             let acc_v = acc.hash();
     
    -        let new_acc_v =
    -            self.memoset
    -                .synthesize_add(&mut cs.namespace(|| "new_acc_v"), acc_v, &kv)?;
    +        let new_acc_v = self
    +            .memoset
    +            .synthesize_add(ns!(cs, "new_acc_v"), acc_v, provenance)?;
     
    -        let new_acc = AllocatedPtr::alloc_tag(
    -            &mut cs.namespace(|| "new_acc"),
    -            ExprTag::Num.to_field(),
    -            new_acc_v,
    -        )?;
    +        let new_acc =
    +            AllocatedPtr::alloc_tag(ns!(cs, "new_acc"), ExprTag::Num.to_field(), new_acc_v)?;
     
             Ok((new_acc, new_transcript.clone()))
         }
    @@ -1850,37 +2307,37 @@
             transcript: &CircuitTranscript<F>,
             key: &AllocatedPtr<F>,
             value: &AllocatedPtr<F>,
    +        provenance: &AllocatedPtr<F>,
         ) -> Result<(AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    -        let kv = CircuitTranscript::make_kv(&mut cs.namespace(|| "kv"), g, s, key, value)?;
    -        let zptr = kv.get_value().unwrap_or(s.hash_ptr(&s.intern_nil())); // dummy case: use nil
    -        let raw_count = self.memoset.count(&s.to_ptr(&zptr)) as u64; // dummy case: count is meaningless
    +        let raw_count = match (key.get_value(), value.get_value()) {
    +            (Some(k), Some(v)) => {
    +                // FIXME: Memoset should hold the actual provenances, not the kvs.
    +                let kv = s.cons(s.to_ptr(&k), s.to_ptr(&v));
    +                self.memoset.count(&kv) as u64
    +            }
    +            _ => 0, // dummy case: count is meaningless
    +        };
     
    -        let (kv_count, count) = CircuitTranscript::make_kv_count(
    -            &mut cs.namespace(|| "kv_count"),
    +        let (provenance_count, count) = CircuitTranscript::make_provenance_count(
    +            ns!(cs, "kv count"),
                 g,
                 s,
    -            &kv,
    +            provenance,
                 raw_count,
             )?;
    -        let new_transcript = transcript.add(
    -            &mut cs.namespace(|| "new_removal_transcript"),
    -            g,
    -            s,
    -            &kv_count,
    -        )?;
    +
    +        let new_transcript =
    +            transcript.add(ns!(cs, "new_removal_transcript"), g, s, &provenance_count)?;
     
             let new_acc_v = self.memoset.synthesize_remove_n(
    -            &mut cs.namespace(|| "new_acc_v"),
    +            ns!(cs, "new_acc_v"),
                 acc.hash(),
    -            &kv,
    +            provenance,
                 &count,
             )?;
     
    -        let new_acc = AllocatedPtr::alloc_tag(
    -            &mut cs.namespace(|| "new_acc"),
    -            ExprTag::Num.to_field(),
    -            new_acc_v,
    -        )?;
    +        let new_acc =
    +            AllocatedPtr::alloc_tag(ns!(cs, "new_acc"), ExprTag::Num.to_field(), new_acc_v)?;
             Ok((new_acc, new_transcript))
         }
     
    @@ -1899,7 +2356,14 @@
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
             not_dummy: &Boolean,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
             self.synthesize_query_aux(cs, g, store, key, acc, transcript, not_dummy, true)
         }
     
    @@ -1912,7 +2376,14 @@
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
             not_dummy: &Boolean,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
             self.synthesize_query_aux(cs, g, store, key, acc, transcript, not_dummy, false)
         }
     
    @@ -1926,11 +2397,18 @@
             transcript: &CircuitTranscript<F>,
             not_dummy: &Boolean, // TODO: use this more deeply?
             is_toplevel: bool,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    -        let value = AllocatedPtr::alloc(&mut cs.namespace(|| "value"), || {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
    +        let provenance = AllocatedPtr::alloc(ns!(cs, "provenance"), || {
                 Ok(if not_dummy.get_value() == Some(true) {
                     *key.get_value()
    -                    .and_then(|k| self.queries.get(&k))
    +                    .and_then(|k| self.provenances.get(&k))
                         .ok_or(SynthesisError::AssignmentMissing)?
                 } else {
                     // Dummy value that will not be used.
    @@ -1938,15 +2416,22 @@
                 })
             })?;
     
    +        let (_query, result, _deps) = deconstruct_provenance(
    +            ns!(cs, "decons provenance"),
    +            store,
    +            not_dummy,
    +            provenance.hash(),
    +        )?;
    +
             let (new_acc, new_insertion_transcript) =
    -            self.synthesize_insert_query(cs, g, store, acc, transcript, key, &value, is_toplevel)?;
    +            self.synthesize_insert_query(cs, g, store, acc, transcript, &provenance, is_toplevel)?;
     
    -        Ok((value, new_acc, new_insertion_transcript))
    +        Ok(((result, provenance), new_acc, new_insertion_transcript))
         }
     
         fn synthesize_insert_toplevel_queries<CS: ConstraintSystem<F>, Q: Query<F>>(
             &mut self,
    -        scope: &mut Scope<Q, LogMemo<F>>,
    +        scope: &mut Scope<Q, LogMemo<F>, F>,
             cs: &mut CS,
             g: &mut GlobalAllocator<F>,
             s: &Store<F>,
    @@ -1966,16 +2451,14 @@
             kv: &Ptr,
         ) -> Result<(), SynthesisError> {
             let (key, value) = s.car_cdr(kv).unwrap();
    -        let cs = &mut cs.namespace(|| format!("toplevel-{i}"));
    -        let allocated_key = AllocatedPtr::alloc(&mut cs.namespace(|| "allocated_key"), || {
    -            Ok(s.hash_ptr(&key))
    -        })
    -        .unwrap();
    +        let cs = ns!(cs, format!("toplevel-{i}"));
    +        let allocated_key =
    +            AllocatedPtr::alloc(ns!(cs, "allocated_key"), || Ok(s.hash_ptr(&key))).unwrap();
     
             let acc = self.acc.clone().unwrap();
             let insertion_transcript = self.transcript.clone();
     
    -        let (val, new_acc, new_transcript) = self.synthesize_query(
    +        let ((val, _provenance), new_acc, new_transcript) = self.synthesize_query(
                 cs,
                 g,
                 s,
    @@ -2002,7 +2485,7 @@
             key: Option<&Ptr>,
             index: usize,
         ) -> Result<(), SynthesisError> {
    -        let allocated_key = AllocatedPtr::alloc(&mut cs.namespace(|| "allocated_key"), || {
    +        let allocated_key = AllocatedPtr::alloc(ns!(cs, "allocated_key"), || {
                 if let Some(key) = key {
                     Ok(s.hash_ptr(key))
                 } else {
    @@ -2012,9 +2495,9 @@
             .unwrap();
     
             let circuit_query = if let Some(key) = key {
    -            Q::CQ::from_ptr(&mut cs.namespace(|| "circuit_query"), s, key).unwrap()
    +            Q::CQ::from_ptr(ns!(cs, "circuit_query"), s, key).unwrap()
             } else {
    -            Q::CQ::dummy_from_index(&mut cs.namespace(|| "circuit_query"), s, index)
    +            Q::CQ::dummy_from_index(ns!(cs, "circuit_query"), s, index)
             };
     
             let not_dummy = key.is_some();
    @@ -2042,22 +2525,30 @@
             let acc = self.acc.clone().unwrap();
             let transcript = self.transcript.clone();
     
    -        let (val, new_acc, new_transcript) = circuit_query
    -            .synthesize_eval(&mut cs.namespace(|| "eval"), g, s, self, &acc, &transcript)
    +        let ((val, provenance), new_acc, new_transcript) = circuit_query
    +            .synthesize_eval(ns!(cs, "eval"), g, s, self, &acc, &transcript)
                 .unwrap();
     
    -        let (new_acc, new_transcript) =
    -            self.synthesize_remove(cs, g, s, &new_acc, &new_transcript, allocated_key, &val)?;
    +        let (new_acc, new_transcript) = self.synthesize_remove(
    +            cs,
    +            g,
    +            s,
    +            &new_acc,
    +            &new_transcript,
    +            allocated_key,
    +            &val,
    +            &provenance,
    +        )?;
     
             // Prover can choose non-deterministically whether or not a given query is a dummy, to allow for padding.
             let final_acc = AllocatedPtr::pick(
    -            &mut cs.namespace(|| "final_acc"),
    +            ns!(cs, "final_acc"),
                 &Boolean::Constant(not_dummy),
                 &new_acc,
                 self.acc.as_ref().expect("acc missing"),
             )?;
             let final_transcript = CircuitTranscript::pick(
    -            &mut cs.namespace(|| "final_transcripot"),
    +            ns!(cs, "final_transcript"),
                 &Boolean::Constant(not_dummy),
                 &new_transcript,
                 &self.transcript,
    @@ -2106,7 +2597,6 @@
     pub trait MemoSet<F: LurkField>: Clone {
         type CM: CircuitMemoSet<F>;
     
    -    fn into_circuit<CS: ConstraintSystem<F>>(self, cs: &mut CS) -> Self::CM;
         fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM;
     
         fn is_finalized(&self) -> bool;
    @@ -2119,7 +2609,8 @@
     
     #[derive(Debug, Clone)]
     pub struct LogMemo<F: LurkField> {
    -    multiset: MultiSet<Ptr>,
    +    // {kv, ...}
    +    multiset: MultiSet<Ptr>,
         r: OnceCell<F>,
         transcript: OnceCell<Transcript<F>>,
     
    @@ -2149,7 +2640,7 @@
             self.allocated_r
                 .get_or_init(|| {
                     self.r()
    -                    .map(|r| AllocatedNum::alloc_infallible(&mut cs.namespace(|| "r"), || *r))
    +                    .map(|r| AllocatedNum::alloc_infallible(ns!(cs, "r"), || *r))
                 })
                 .clone()
                 .unwrap()
    @@ -2159,14 +2650,6 @@
     impl<F: LurkField> MemoSet<F> for LogMemo<F> {
         type CM = LogMemoCircuit<F>;
     
    -    fn into_circuit<CS: ConstraintSystem<F>>(self, cs: &mut CS) -> Self::CM {
    -        let r = self.allocated_r(cs);
    -        LogMemoCircuit {
    -            multiset: self.multiset,
    -            r,
    -        }
    -    }
    -
         fn to_circuit<CS: ConstraintSystem<F>>(&self, cs: &mut CS) -> Self::CM {
             let r = self.allocated_r(cs);
             LogMemoCircuit {
    @@ -2186,7 +2669,6 @@
             let r = transcript.r(s);
     
             self.r.set(r).expect("r has already been set");
    -
             self.transcript
                 .set(transcript)
                 .expect("transcript already finalized");
    @@ -2218,27 +2700,27 @@
             &self,
             cs: &mut CS,
             acc: &AllocatedNum<F>,
    -        kv: &AllocatedPtr<F>,
    +        provenance: &AllocatedPtr<F>,
         ) -> Result<AllocatedNum<F>, SynthesisError> {
    -        let kv_num = kv.hash().clone();
    -        let element = self.synthesize_map_to_element(&mut cs.namespace(|| "element"), kv_num)?;
    -        acc.add(&mut cs.namespace(|| "add to acc"), &element)
    +        let provenance_num = provenance.hash().clone();
    +        let element = self.synthesize_map_to_element(ns!(cs, "element"), provenance_num)?;
    +        acc.add(ns!(cs, "add to acc"), &element)
         }
     
         fn synthesize_remove_n<CS: ConstraintSystem<F>>(
             &self,
             cs: &mut CS,
             acc: &AllocatedNum<F>,
    -        kv: &AllocatedPtr<F>,
    +        provenance: &AllocatedPtr<F>,
             count: &AllocatedNum<F>,
         ) -> Result<AllocatedNum<F>, SynthesisError> {
    -        let kv_num = kv.hash().clone();
    -        let element = self.synthesize_map_to_element(&mut cs.namespace(|| "element"), kv_num)?;
    -        let scaled = element.mul(&mut cs.namespace(|| "scaled"), count)?;
    -        sub(&mut cs.namespace(|| "add to acc"), acc, &scaled)
    +        let provenance_num = provenance.hash().clone();
    +        let element = self.synthesize_map_to_element(ns!(cs, "element"), provenance_num)?;
    +        let scaled = element.mul(ns!(cs, "scaled"), count)?;
    +        sub(ns!(cs, "add to acc"), acc, &scaled)
         }
     
    -    // x is H(k,v) = hash part of (cons k v)
    +    // x is H(provenance) = hash part of (cons (cons k v) sub-provenances)
         // 1 / r + x
         fn synthesize_map_to_element<CS: ConstraintSystem<F>>(
             &self,
    @@ -2246,9 +2728,9 @@
             x: AllocatedNum<F>,
         ) -> Result<AllocatedNum<F>, SynthesisError> {
             let r = self.r.clone();
    -        let r_plus_x = r.add(&mut cs.namespace(|| "r+x"), &x)?;
    +        let r_plus_x = r.add(ns!(cs, "r+x"), &x)?;
     
    -        invert(&mut cs.namespace(|| "invert(r+x)"), &r_plus_x)
    +        invert(ns!(cs, "invert(r+x)"), &r_plus_x)
         }
     
         fn count(&self, form: &Ptr) -> usize {
    @@ -2268,63 +2750,31 @@
         use std::default::Default;
     
         #[test]
    -    fn test_query_with_internal_insertion_transcript() {
    -        test_query_aux(
    -            true,
    -            expect!["9430"],
    -            expect!["9463"],
    -            expect!["10012"],
    -            expect!["10049"],
    -            1,
    -        );
    -        test_query_aux(
    -            true,
    -            expect!["11174"],
    -            expect!["11213"],
    -            expect!["11756"],
    -            expect!["11799"],
    -            3,
    -        );
    -        test_query_aux(
    -            true,
    -            expect!["18216"],
    -            expect!["18279"],
    -            expect!["18798"],
    -            expect!["18865"],
    -            10,
    -        )
    -    }
    -
    -    #[test]
    -    fn test_query_without_internal_insertion_transcript() {
    +    fn test_query() {
             test_query_aux(
    -            false,
    -            expect!["7985"],
    -            expect!["8018"],
    -            expect!["8567"],
    -            expect!["8604"],
    +            expect!["9451"],
    +            expect!["9502"],
    +            expect!["10034"],
    +            expect!["10092"],
                 1,
             );
             test_query_aux(
    -            false,
    -            expect!["9440"],
    -            expect!["9479"],
    -            expect!["10022"],
    -            expect!["10065"],
    +            expect!["11195"],
    +            expect!["11255"],
    +            expect!["11778"],
    +            expect!["11845"],
                 3,
             );
             test_query_aux(
    -            false,
    -            expect!["15326"],
    -            expect!["15389"],
    -            expect!["15908"],
    -            expect!["15975"],
    +            expect!["18248"],
    +            expect!["18344"],
    +            expect!["18831"],
    +            expect!["18934"],
                 10,
             )
         }
     
         fn test_query_aux(
    -        transcribe_internal_insertions: bool,
             expected_constraints_simple: Expect,
             expected_aux_simple: Expect,
             expected_constraints_compound: Expect,
    @@ -2332,8 +2782,7 @@
             circuit_query_rc: usize,
         ) {
             let s = &Store::<F>::default();
    -        let mut scope: Scope<DemoQuery<F>, LogMemo<F>> =
    -            Scope::new(transcribe_internal_insertions, circuit_query_rc);
    +        let mut scope: Scope<DemoQuery<F>, LogMemo<F>, F> = Scope::new(circuit_query_rc);
             let state = State::init_lurk_state();
     
             let fact_4 = s.read_with_default_state("(factorial . 4)").unwrap();
    @@ -2385,8 +2834,7 @@
             }
     
             {
    -            let mut scope: Scope<DemoQuery<F>, LogMemo<F>> =
    -                Scope::new(transcribe_internal_insertions, circuit_query_rc);
    +            let mut scope: Scope<DemoQuery<F>, LogMemo<F>, F> = Scope::new(circuit_query_rc);
                 scope.query(s, fact_4);
                 scope.query(s, fact_3);
     
    diff --git a/docs/src/lurk/coroutine/memoset/query.rs.html b/docs/src/lurk/coroutine/memoset/query.rs.html
    index d378a08624..1a10ec6070 100644
    --- a/docs/src/lurk/coroutine/memoset/query.rs.html
    +++ b/docs/src/lurk/coroutine/memoset/query.rs.html
    @@ -135,9 +135,38 @@
     134
     135
     136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +161
    +162
    +163
    +164
    +165
     

    use bellpepper_core::{boolean::Boolean, ConstraintSystem, SynthesisError};
     
    -use super::{CircuitScope, CircuitTranscript, LogMemo, LogMemoCircuit, Scope};
    +use super::{AllocatedProvenance, CircuitScope, CircuitTranscript, LogMemo, LogMemoCircuit, Scope};
     use crate::circuit::gadgets::pointer::AllocatedPtr;
     use crate::coprocessor::gadgets::construct_cons;
     use crate::field::LurkField;
    @@ -151,10 +180,10 @@
     {
         type CQ: CircuitQuery<F>;
     
    -    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>>) -> Ptr;
    +    fn eval(&self, s: &Store<F>, scope: &mut Scope<Self, LogMemo<F>, F>) -> Ptr;
         fn recursive_eval(
             &self,
    -        scope: &mut Scope<Self, LogMemo<F>>,
    +        scope: &mut Scope<Self, LogMemo<F>, F>,
             s: &Store<F>,
             subquery: Self,
         ) -> Ptr {
    @@ -188,7 +217,14 @@
             scope: &mut CircuitScope<F, LogMemoCircuit<F>>,
             acc: &AllocatedPtr<F>,
             transcript: &CircuitTranscript<F>,
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError>;
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    >;
     
         fn symbol(&self) -> Symbol;
     
    @@ -216,30 +252,35 @@
             g: &GlobalAllocator<F>,
             store: &Store<F>,
             scope: &mut CircuitScope<F, LogMemoCircuit<F>>,
    +        query: &AllocatedPtr<F>,
             args: &AllocatedPtr<F>,
             is_recursive: &Boolean,
             immediate: (&AllocatedPtr<F>, &AllocatedPtr<F>, &CircuitTranscript<F>),
    -    ) -> Result<(AllocatedPtr<F>, AllocatedPtr<F>, CircuitTranscript<F>), SynthesisError> {
    +    ) -> Result<
    +        (
    +            (AllocatedPtr<F>, AllocatedPtr<F>),
    +            AllocatedPtr<F>,
    +            CircuitTranscript<F>,
    +        ),
    +        SynthesisError,
    +    > {
             let is_immediate = is_recursive.not();
     
             let subquery = {
    -            let symbol = g.alloc_ptr(
    -                &mut cs.namespace(|| "symbol"),
    -                &self.symbol_ptr(store),
    -                store,
    -            );
    -            construct_cons(&mut cs.namespace(|| "subquery"), g, store, &symbol, args)?
    +            let symbol = g.alloc_ptr(ns!(cs, "symbol"), &self.symbol_ptr(store), store);
    +            construct_cons(ns!(cs, "subquery"), g, store, &symbol, args)?
             };
     
    -        let (sub_result, new_acc, new_transcript) = scope.synthesize_internal_query(
    -            &mut cs.namespace(|| "recursive query"),
    -            g,
    -            store,
    -            &subquery,
    -            immediate.1,
    -            immediate.2,
    -            is_recursive,
    -        )?;
    +        let ((sub_result, sub_provenance), new_acc, new_transcript) = scope
    +            .synthesize_internal_query(
    +                ns!(cs, "recursive query"),
    +                g,
    +                store,
    +                &subquery,
    +                immediate.1,
    +                immediate.2,
    +                is_recursive,
    +            )?;
     
             let (recursive_result, recursive_acc, recursive_transcript) = (
                 self.post_recursion(cs, sub_result)?,
    @@ -248,27 +289,44 @@
             );
     
             let value = AllocatedPtr::pick(
    -            &mut cs.namespace(|| "pick value"),
    +            ns!(cs, "pick value"),
                 &is_immediate,
                 immediate.0,
                 &recursive_result,
             )?;
     
             let acc = AllocatedPtr::pick(
    -            &mut cs.namespace(|| "pick acc"),
    +            ns!(cs, "pick acc"),
                 &is_immediate,
                 immediate.1,
                 &recursive_acc,
             )?;
     
             let transcript = CircuitTranscript::pick(
    -            &mut cs.namespace(|| "pick recursive_transcript"),
    +            ns!(cs, "pick recursive_transcript"),
                 &is_immediate,
                 immediate.2,
                 &recursive_transcript,
             )?;
     
    -        Ok((value, acc, transcript))
    +        let nil = g.alloc_ptr(ns!(cs, "nil"), &store.intern_nil(), store);
    +
    +        let dependency_provenance = AllocatedPtr::pick(
    +            ns!(cs, "dependency provenance"),
    +            &is_immediate,
    +            &nil,
    +            &sub_provenance,
    +        )?;
    +
    +        let p = AllocatedProvenance::new(
    +            query.clone(),
    +            value.clone(),
    +            vec![dependency_provenance.clone()],
    +        );
    +
    +        let provenance = p.to_ptr(cs, g, store)?;
    +
    +        Ok(((value, provenance.clone()), acc, transcript))
         }
     }
     
    \ No newline at end of file diff --git a/docs/src/lurk/lem/store.rs.html b/docs/src/lurk/lem/store.rs.html index 49bae77d91..c3ba5d0cda 100644 --- a/docs/src/lurk/lem/store.rs.html +++ b/docs/src/lurk/lem/store.rs.html @@ -1621,6 +1621,44 @@ 1620 1621 1622 +1623 +1624 +1625 +1626 +1627 +1628 +1629 +1630 +1631 +1632 +1633 +1634 +1635 +1636 +1637 +1638 +1639 +1640 +1641 +1642 +1643 +1644 +1645 +1646 +1647 +1648 +1649 +1650 +1651 +1652 +1653 +1654 +1655 +1656 +1657 +1658 +1659 +1660
    use anyhow::{bail, Context, Result};
     use arc_swap::ArcSwap;
     use bellpepper::util_cs::witness_cs::SizedWitness;
    @@ -1690,6 +1728,23 @@
         pub hash8zeros_idx: usize,
     }
     
    +/// `WithStore` provides a distinct type for coupling a store with a value of another type.
    +pub struct WithStore<'a, F: LurkField, T>(pub T, pub &'a Store<F>);
    +
    +impl<'a, F: LurkField, T> WithStore<'a, F, T> {
    +    pub fn store(&self) -> &Store<F> {
    +        self.1
    +    }
    +
    +    pub fn inner(&self) -> &T {
    +        &self.0
    +    }
    +
    +    pub fn to_inner(self) -> T {
    +        self.0
    +    }
    +}
    +
     impl<F: LurkField> Default for Store<F> {
         fn default() -> Self {
             let poseidon_cache = PoseidonCache::default();
    @@ -2018,6 +2073,27 @@
             Some([sym, val, env])
         }
     
    +    #[inline]
    +    pub fn push_provenance(&self, sym: Ptr, val: Ptr, env: Ptr) -> Ptr {
    +        assert_eq!(*sym.tag(), Tag::Expr(Cons));
    +        //assert_eq!(*env.tag(), Tag::Expr(Env));
    +        let raw =
    +            self.intern_raw_ptrs::<4>([*sym.raw(), self.tag(*val.tag()), *val.raw(), *env.raw()]);
    +        Ptr::new(Tag::Expr(Env), raw)
    +    }
    +
    +    #[inline]
    +    pub fn pop_provenance(&self, env: Ptr) -> Option<[Ptr; 3]> {
    +        assert_eq!(*env.tag(), Tag::Expr(Env));
    +        let idx = env.get_index2()?;
    +        let [sym_pay, val_tag, val_pay, env_pay] = self.fetch_raw_ptrs::<4>(idx)?;
    +        let val_tag = self.fetch_tag(val_tag)?;
    +        let query = Ptr::new(Tag::Expr(Cons), *sym_pay);
    +        let val = Ptr::new(val_tag, *val_pay);
    +        let env = Ptr::new(Tag::Expr(Env), *env_pay);
    +        Some([query, val, env])
    +    }
    +
         #[inline]
         pub fn intern_empty_env(&self) -> Ptr {
             self.intern_atom(Tag::Expr(Env), F::ZERO)
    diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js
    index 48a1347e74..02b38402cb 100644
    --- a/docs/trait.impl/core/clone/trait.Clone.js
    +++ b/docs/trait.impl/core/clone/trait.Clone.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<F: Clone + LurkField> Clone for LogMemo<F>"],["impl Clone for Pos"],["impl<F: LurkField, C: CircomGadget<F>> Clone for CircomCoprocessor<F, C>"],["impl<F: Clone + LurkField> Clone for Sha256Coprocessor<F>"],["impl<I: Clone + AsBytes, F: Clone + LurkField> Clone for ParseError<I, F>"],["impl Clone for RawPtr"],["impl Clone for LanguageField"],["impl<E: Clone + Tag, F: Clone + LurkField> Clone for ZPtr<E, F>"],["impl<F: Clone + LurkField> Clone for Num<F>"],["impl<F: Clone + LurkField> Clone for ZExpr<F>"],["impl Clone for Metadata"],["impl<'a> Clone for StringFragment<'a>"],["impl Clone for LitBase"],["impl<T: Clone + Copy, W: Clone + Copy, F: Clone, C: Clone> Clone for Frame<T, W, F, C>"],["impl<F: Clone + LurkField> Clone for AllocatedContPtr<F>"],["impl Clone for Ctrl"],["impl Clone for ReductionError"],["impl<F: Clone> Clone for LookupCoprocessor<F>"],["impl<F: Clone + LurkField> Clone for TrieCoproc<F>"],["impl<F: Clone + PrimeField> Clone for AllocatedPtr<F>"],["impl Clone for Func"],["impl Clone for Block"],["impl<F: Clone + LurkField> Clone for ParseErrorKind<F>"],["impl<F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for FoldingConfig<F, C>"],["impl<F: Clone> Clone for FWrap<F>"],["impl Clone for Symbol"],["impl Clone for Var"],["impl<F: Clone + LurkField> Clone for Coproc<F>"],["impl Clone for Kind"],["impl<F: Clone> Clone for DummyCoprocessor<F>"],["impl<F: Clone> Clone for InsertCoprocessor<F>"],["impl Clone for Error"],["impl<'a, F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for MultiFrame<'a, F, C>"],["impl Clone for UInt"],["impl<F: Clone + LurkField> Clone for ZStore<F>"],["impl<F: Clone, C: Clone> Clone for Lang<F, C>"],["impl<F: Clone + LurkField, CM: Clone> Clone for CircuitScope<F, CM>"],["impl<F: Clone + LurkField> Clone for AllocatedVal<F>"],["impl<F: Clone> Clone for NewCoprocessor<F>"],["impl<Q: Clone, M: Clone> Clone for Scope<Q, M>"],["impl Clone for Ptr"],["impl<F: Clone + LurkField> Clone for CircuitTranscript<F>"],["impl<F: Clone> Clone for Transcript<F>"],["impl Clone for Op"],["impl<F: Clone + LurkField> Clone for Sha256Coproc<F>"],["impl Clone for Lit"],["impl Clone for Tag"],["impl<F: Clone + LurkField> Clone for ZCont<F>"],["impl Clone for ZData"],["impl<F: Clone + LurkField> Clone for LogMemoCircuit<F>"]]
    +"lurk":[["impl Clone for Ptr"],["impl<F: Clone + LurkField> Clone for ZStore<F>"],["impl Clone for Var"],["impl Clone for Op"],["impl<F: Clone> Clone for InsertCoprocessor<F>"],["impl<F: Clone + PrimeField> Clone for AllocatedPtr<F>"],["impl Clone for Ctrl"],["impl Clone for UInt"],["impl<F: Clone + LurkField> Clone for LogMemoCircuit<F>"],["impl Clone for RawPtr"],["impl<'a> Clone for StringFragment<'a>"],["impl Clone for Tag"],["impl Clone for LitBase"],["impl<F: Clone> Clone for FWrap<F>"],["impl Clone for Block"],["impl Clone for Pos"],["impl<F: Clone> Clone for LookupCoprocessor<F>"],["impl Clone for LanguageField"],["impl<T: Clone + Copy, W: Clone + Copy, F: Clone, C: Clone> Clone for Frame<T, W, F, C>"],["impl<F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for FoldingConfig<F, C>"],["impl<F: Clone> Clone for Transcript<F>"],["impl Clone for Lit"],["impl<F: LurkField, C: CircomGadget<F>> Clone for CircomCoprocessor<F, C>"],["impl Clone for ZData"],["impl<E: Clone + Tag, F: Clone + LurkField> Clone for ZPtr<E, F>"],["impl Clone for Error"],["impl<I: Clone + AsBytes, F: Clone + LurkField> Clone for ParseError<I, F>"],["impl<F: Clone + LurkField> Clone for ZCont<F>"],["impl<Q: Clone, M: Clone, F: Clone + LurkField> Clone for Scope<Q, M, F>"],["impl<F: Clone + LurkField> Clone for ParseErrorKind<F>"],["impl<F: Clone + LurkField> Clone for AllocatedContPtr<F>"],["impl Clone for Symbol"],["impl Clone for Kind"],["impl<F: Clone + LurkField> Clone for Sha256Coproc<F>"],["impl Clone for ReductionError"],["impl<F: Clone + LurkField> Clone for AllocatedVal<F>"],["impl<F: Clone> Clone for DummyCoprocessor<F>"],["impl<F: Clone + LurkField> Clone for Coproc<F>"],["impl Clone for Func"],["impl<F: Clone + LurkField> Clone for Sha256Coprocessor<F>"],["impl<F: Clone, C: Clone> Clone for Lang<F, C>"],["impl<F: Clone + LurkField> Clone for CircuitTranscript<F>"],["impl<'a, F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for MultiFrame<'a, F, C>"],["impl<F: Clone> Clone for NewCoprocessor<F>"],["impl<F: Clone + LurkField> Clone for LogMemo<F>"],["impl<F: Clone + LurkField> Clone for TrieCoproc<F>"],["impl<F: Clone + LurkField> Clone for ZExpr<F>"],["impl<F: Clone + LurkField, CM: Clone> Clone for CircuitScope<F, CM>"],["impl<F: Clone + LurkField> Clone for Num<F>"],["impl Clone for Metadata"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/cmp/trait.Eq.js b/docs/trait.impl/core/cmp/trait.Eq.js
    index 899518b279..1ed356c2b0 100644
    --- a/docs/trait.impl/core/cmp/trait.Eq.js
    +++ b/docs/trait.impl/core/cmp/trait.Eq.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl Eq for Tag"],["impl<F: Eq + LurkField> Eq for ZCont<F>"],["impl Eq for Metadata"],["impl<F: Eq + LurkField> Eq for Num<F>"],["impl Eq for Op"],["impl Eq for Var"],["impl<T: Eq + Copy, W: Eq + Copy, F: Eq, C: Eq> Eq for Frame<T, W, F, C>"],["impl Eq for Symbol"],["impl Eq for Settings"],["impl Eq for Block"],["impl Eq for RawPtr"],["impl<F: Eq + LurkField> Eq for ParseErrorKind<F>"],["impl Eq for Pos"],["impl Eq for WitnessGeneration"],["impl Eq for UInt"],["impl Eq for LanguageField"],["impl<F: Eq + LurkField> Eq for ZStore<F>"],["impl<F: Eq + LurkField> Eq for ZExpr<F>"],["impl Eq for Flow"],["impl Eq for PerfConfig"],["impl Eq for Ctrl"],["impl<F: Eq> Eq for FWrap<F>"],["impl Eq for ZData"],["impl Eq for Lit"],["impl Eq for LitBase"],["impl Eq for Kind"],["impl Eq for Func"],["impl Eq for ParallelConfig"],["impl<'a> Eq for StringFragment<'a>"],["impl Eq for Ptr"],["impl<E: Eq + Tag, F: Eq + LurkField> Eq for ZPtr<E, F>"],["impl<I: Eq + AsBytes, F: Eq + LurkField> Eq for ParseError<I, F>"]]
    +"lurk":[["impl Eq for Flow"],["impl Eq for Op"],["impl Eq for ParallelConfig"],["impl Eq for Kind"],["impl Eq for ZData"],["impl Eq for WitnessGeneration"],["impl<F: Eq + LurkField> Eq for ParseErrorKind<F>"],["impl Eq for PerfConfig"],["impl Eq for Ctrl"],["impl Eq for Tag"],["impl Eq for RawPtr"],["impl<F: Eq + LurkField> Eq for ZStore<F>"],["impl Eq for Block"],["impl Eq for Var"],["impl Eq for Symbol"],["impl<I: Eq + AsBytes, F: Eq + LurkField> Eq for ParseError<I, F>"],["impl<F: Eq> Eq for FWrap<F>"],["impl Eq for LitBase"],["impl Eq for Func"],["impl<F: Eq + LurkField> Eq for Num<F>"],["impl Eq for Pos"],["impl<F: Eq + LurkField> Eq for ZCont<F>"],["impl Eq for Settings"],["impl<'a> Eq for StringFragment<'a>"],["impl<F: Eq + LurkField> Eq for ZExpr<F>"],["impl<T: Eq + Copy, W: Eq + Copy, F: Eq, C: Eq> Eq for Frame<T, W, F, C>"],["impl Eq for Ptr"],["impl Eq for Lit"],["impl Eq for LanguageField"],["impl Eq for UInt"],["impl Eq for Metadata"],["impl<E: Eq + Tag, F: Eq + LurkField> Eq for ZPtr<E, F>"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/cmp/trait.Ord.js b/docs/trait.impl/core/cmp/trait.Ord.js
    index 77f010e222..72ad0f294b 100644
    --- a/docs/trait.impl/core/cmp/trait.Ord.js
    +++ b/docs/trait.impl/core/cmp/trait.Ord.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<F: LurkField> Ord for FWrap<F>"],["impl<E: Tag, F: LurkField> Ord for ZPtr<E, F>"]]
    +"lurk":[["impl<E: Tag, F: LurkField> Ord for ZPtr<E, F>"],["impl<F: LurkField> Ord for FWrap<F>"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/cmp/trait.PartialEq.js b/docs/trait.impl/core/cmp/trait.PartialEq.js
    index b7158ec615..dda9b8bad7 100644
    --- a/docs/trait.impl/core/cmp/trait.PartialEq.js
    +++ b/docs/trait.impl/core/cmp/trait.PartialEq.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl PartialEq for ParallelConfig"],["impl<F: PartialEq + LurkField> PartialEq for ZCont<F>"],["impl<T: PartialEq + Copy, W: PartialEq + Copy, F: PartialEq, C: PartialEq> PartialEq for Frame<T, W, F, C>"],["impl PartialEq for ZData"],["impl<F: PartialEq + LurkField> PartialEq for ParseErrorKind<F>"],["impl PartialEq for PerfConfig"],["impl<F: PartialEq + LurkField> PartialEq for ZStore<F>"],["impl PartialEq for UInt"],["impl PartialEq for Metadata"],["impl<F: PartialEq + LurkField> PartialEq for ZExpr<F>"],["impl PartialEq for Lit"],["impl PartialEq for Kind"],["impl PartialEq for Var"],["impl PartialEq for WitnessGeneration"],["impl PartialEq for Pos"],["impl PartialEq for Symbol"],["impl<F: PartialEq> PartialEq for FWrap<F>"],["impl<E: PartialEq + Tag, F: PartialEq + LurkField> PartialEq for ZPtr<E, F>"],["impl PartialEq for Ptr"],["impl PartialEq for Func"],["impl PartialEq for Tag"],["impl PartialEq for Op"],["impl PartialEq for Flow"],["impl<I: PartialEq + AsBytes, F: PartialEq + LurkField> PartialEq for ParseError<I, F>"],["impl PartialEq for Settings"],["impl PartialEq for LanguageField"],["impl PartialEq for LitBase"],["impl<'a> PartialEq for StringFragment<'a>"],["impl PartialEq for RawPtr"],["impl<F: PartialEq + LurkField> PartialEq for Num<F>"],["impl PartialEq for Ctrl"],["impl PartialEq for Block"]]
    +"lurk":[["impl PartialEq for Kind"],["impl<E: PartialEq + Tag, F: PartialEq + LurkField> PartialEq for ZPtr<E, F>"],["impl PartialEq for Var"],["impl PartialEq for WitnessGeneration"],["impl PartialEq for ZData"],["impl PartialEq for Lit"],["impl PartialEq for Tag"],["impl PartialEq for Metadata"],["impl<F: PartialEq + LurkField> PartialEq for ZExpr<F>"],["impl PartialEq for Ctrl"],["impl PartialEq for RawPtr"],["impl PartialEq for LanguageField"],["impl<F: PartialEq + LurkField> PartialEq for ZStore<F>"],["impl PartialEq for Op"],["impl<'a> PartialEq for StringFragment<'a>"],["impl<F: PartialEq + LurkField> PartialEq for Num<F>"],["impl PartialEq for Settings"],["impl PartialEq for PerfConfig"],["impl<F: PartialEq> PartialEq for FWrap<F>"],["impl PartialEq for LitBase"],["impl<I: PartialEq + AsBytes, F: PartialEq + LurkField> PartialEq for ParseError<I, F>"],["impl<T: PartialEq + Copy, W: PartialEq + Copy, F: PartialEq, C: PartialEq> PartialEq for Frame<T, W, F, C>"],["impl PartialEq for Block"],["impl PartialEq for Symbol"],["impl PartialEq for Flow"],["impl PartialEq for UInt"],["impl<F: PartialEq + LurkField> PartialEq for ParseErrorKind<F>"],["impl PartialEq for Func"],["impl PartialEq for Pos"],["impl<F: PartialEq + LurkField> PartialEq for ZCont<F>"],["impl PartialEq for ParallelConfig"],["impl PartialEq for Ptr"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/cmp/trait.PartialOrd.js b/docs/trait.impl/core/cmp/trait.PartialOrd.js
    index ef6d57757f..e81dd68c10 100644
    --- a/docs/trait.impl/core/cmp/trait.PartialOrd.js
    +++ b/docs/trait.impl/core/cmp/trait.PartialOrd.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<F: LurkField> PartialOrd for FWrap<F>"],["impl PartialOrd for Symbol"],["impl<F: LurkField> PartialOrd for Num<F>"],["impl PartialOrd for UInt"],["impl<E: Tag, F: LurkField> PartialOrd for ZPtr<E, F>"]]
    +"lurk":[["impl<F: LurkField> PartialOrd for Num<F>"],["impl<E: Tag, F: LurkField> PartialOrd for ZPtr<E, F>"],["impl PartialOrd for UInt"],["impl PartialOrd for Symbol"],["impl<F: LurkField> PartialOrd for FWrap<F>"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/convert/trait.From.js b/docs/trait.impl/core/convert/trait.From.js
    index 39a0910e5a..da57270be6 100644
    --- a/docs/trait.impl/core/convert/trait.From.js
    +++ b/docs/trait.impl/core/convert/trait.From.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>"],["impl<F: LurkField, C: Coprocessor<F>, S: Into<Symbol>> From<(S, C)> for Binding<F, C>"],["impl<F: CurveCycleEquipped> From<PublicParams<<F as CurveCycleEquipped>::E1>> for PublicParams<F>"],["impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>"],["impl From<ReductionError> for ProofError"],["impl<F: LurkField> From<UInt> for Num<F>"],["impl From<SynthesisError> for ProofError"],["impl<F: LurkField> From<DummyCoprocessor<F>> for Coproc<F>"],["impl From<NovaError> for ProofError"],["impl From<&'static str> for Symbol"],["impl<F: LurkField> From<Sha256Coprocessor<F>> for Sha256Coproc<F>"],["impl<F: LurkField> From<NewCoprocessor<F>> for TrieCoproc<F>"],["impl<F: CurveCycleEquipped> From<PublicParams<<F as CurveCycleEquipped>::E1>> for PublicParams<F>"],["impl<F: LurkField> From<u64> for Num<F>"],["impl From<UInt> for u64"],["impl From<Tag> for u16"],["impl<F: LurkField> From<InsertCoprocessor<F>> for TrieCoproc<F>"],["impl<F: LurkField> From<LookupCoprocessor<F>> for TrieCoproc<F>"],["impl From<u64> for UInt"],["impl From<SuperNovaError> for ProofError"]]
    +"lurk":[["impl<F: LurkField, C: Coprocessor<F>, S: Into<Symbol>> From<(S, C)> for Binding<F, C>"],["impl From<Tag> for u16"],["impl From<UInt> for u64"],["impl From<&'static str> for Symbol"],["impl From<SuperNovaError> for ProofError"],["impl<F: LurkField> From<InsertCoprocessor<F>> for TrieCoproc<F>"],["impl<F: LurkField> From<DummyCoprocessor<F>> for Coproc<F>"],["impl<F: LurkField> From<LookupCoprocessor<F>> for TrieCoproc<F>"],["impl<F: LurkField> From<NewCoprocessor<F>> for TrieCoproc<F>"],["impl<F: LurkField> From<AllocatedPtr<F>> for AllocatedContPtr<F>"],["impl<F: LurkField> From<AllocatedContPtr<F>> for AllocatedPtr<F>"],["impl<F: CurveCycleEquipped> From<PublicParams<<F as CurveCycleEquipped>::E1>> for PublicParams<F>"],["impl<F: LurkField> From<Sha256Coprocessor<F>> for Sha256Coproc<F>"],["impl From<u64> for UInt"],["impl<F: LurkField> From<u64> for Num<F>"],["impl<F: LurkField> From<UInt> for Num<F>"],["impl<F: CurveCycleEquipped> From<PublicParams<<F as CurveCycleEquipped>::E1>> for PublicParams<F>"],["impl From<ReductionError> for ProofError"],["impl From<SynthesisError> for ProofError"],["impl From<NovaError> for ProofError"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js
    index bbcc2905ea..a852020b2a 100644
    --- a/docs/trait.impl/core/default/trait.Default.js
    +++ b/docs/trait.impl/core/default/trait.Default.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<F: LurkField, Q> Default for Scope<Q, LogMemo<F>>"],["impl<F: Default + LurkField> Default for GlobalAllocator<F>"],["impl<F: Default> Default for LookupCoprocessor<F>"],["impl Default for Flow"],["impl<F: LurkField> Default for Store<F>"],["impl<F: Default> Default for InsertCoprocessor<F>"],["impl Default for LanguageField"],["impl Default for WitnessGeneration"],["impl Default for LitBase"],["impl<F: Default> Default for NewCoprocessor<F>"],["impl Default for Settings"],["impl<F: Default, C: Default> Default for Lang<F, C>"],["impl<F: Default + LurkField> Default for ZStore<F>"],["impl Default for State"],["impl Default for PerfConfig"],["impl<'a, F: LurkField, const ARITY: usize, const HEIGHT: usize> Default for Trie<'a, F, ARITY, HEIGHT>"],["impl<F: LurkField> Default for LogMemo<F>"],["impl Default for ParallelConfig"]]
    +"lurk":[["impl<F: Default> Default for NewCoprocessor<F>"],["impl<F: LurkField> Default for LogMemo<F>"],["impl Default for WitnessGeneration"],["impl<F: LurkField> Default for Store<F>"],["impl Default for Settings"],["impl<F: Default> Default for LookupCoprocessor<F>"],["impl<F: LurkField, Q: Query<F>> Default for Scope<Q, LogMemo<F>, F>"],["impl Default for ParallelConfig"],["impl Default for Flow"],["impl Default for LanguageField"],["impl Default for LitBase"],["impl<F: Default, C: Default> Default for Lang<F, C>"],["impl<F: Default + LurkField> Default for GlobalAllocator<F>"],["impl Default for PerfConfig"],["impl<'a, F: LurkField, const ARITY: usize, const HEIGHT: usize> Default for Trie<'a, F, ARITY, HEIGHT>"],["impl Default for State"],["impl<F: Default> Default for InsertCoprocessor<F>"],["impl<F: Default + LurkField> Default for ZStore<F>"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/error/trait.Error.js b/docs/trait.impl/core/error/trait.Error.js
    index e908e67c95..3b22aad93d 100644
    --- a/docs/trait.impl/core/error/trait.Error.js
    +++ b/docs/trait.impl/core/error/trait.Error.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl Error for Error"],["impl Error for ReductionError"],["impl Error for ProofError"]]
    +"lurk":[["impl Error for ReductionError"],["impl Error for Error"],["impl Error for ProofError"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js
    index eb1cf3d996..ddc282b1fe 100644
    --- a/docs/trait.impl/core/fmt/trait.Debug.js
    +++ b/docs/trait.impl/core/fmt/trait.Debug.js
    @@ -1,4 +1,4 @@
     (function() {var implementors = {
    -"lurk":[["impl Debug for ReductionError"],["impl<F: Debug + LurkField> Debug for LogMemo<F>"],["impl<F: LurkField> Debug for AllocatedPtr<F>"],["impl Debug for Kind"],["impl Debug for ProofError"],["impl<'a> Debug for StringFragment<'a>"],["impl Debug for ZData"],["impl Debug for Block"],["impl Debug for Error"],["impl Debug for Func"],["impl Debug for Metadata"],["impl<F: Debug + LurkField> Debug for Store<F>"],["impl Debug for State"],["impl<T: Debug + Copy, W: Debug + Copy, F: Debug, C: Debug> Debug for Frame<T, W, F, C>"],["impl Debug for Lit"],["impl<F: Debug + LurkField> Debug for Coproc<F>"],["impl<'a, F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for MultiFrame<'a, F, C>"],["impl Debug for FoldingMode"],["impl<F: Debug + LurkField, CM: Debug> Debug for CircuitScope<F, CM>"],["impl Debug for PerfConfig"],["impl<'a, F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F>> Debug for NovaProver<'a, F, C>"],["impl Debug for Ctrl"],["impl<'a, F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F> + 'a> Debug for SuperNovaProver<'a, F, C>"],["impl<F: Debug + LurkField, C: Debug> Debug for CircomCoprocessor<F, C>"],["impl Debug for Tag"],["impl<F: Debug> Debug for LookupCoprocessor<F>"],["impl Debug for Var"],["impl<F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F>> Debug for Instance<F, C>"],["impl<F: Debug + LurkField> Debug for ZExpr<F>"],["impl<F: Debug + LurkField> Debug for ParseErrorKind<F>"],["impl<F: Debug, C: Debug> Debug for Lang<F, C>"],["impl Debug for Op"],["impl<F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for FoldingConfig<F, C>"],["impl<F: Debug + LurkField> Debug for Sha256Coproc<F>"],["impl<F: LurkField> Debug for AllocatedContPtr<F>"],["impl<F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for InsertProof<F, ARITY, HEIGHT>"],["impl<F: Debug + LurkField> Debug for Num<F>"],["impl<F: Debug + LurkField> Debug for CircuitTranscript<F>"],["impl<F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for LookupProof<F, ARITY, HEIGHT>"],["impl Debug for Pos"],["impl<F: Debug + LurkField> Debug for Sha256Coprocessor<F>"],["impl Debug for WitnessGeneration"],["impl<F: Debug + LurkField> Debug for ZStore<F>"],["impl Debug for Symbol"],["impl<E: Debug + Tag, F: Debug + LurkField> Debug for ZPtr<E, F>"],["impl<F: CurveCycleEquipped> Debug for PublicParams<F>"],["impl Debug for Ptr"],["impl<'a, F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for Trie<'a, F, ARITY, HEIGHT>"],["impl<F: Debug, C: Debug> Debug for Binding<F, C>"],["impl Debug for RawPtr"],["impl<F: Debug> Debug for NewCoprocessor<F>"],["impl<F: Debug> Debug for InsertCoprocessor<F>"],["impl<Q: Debug, M: Debug> Debug for Scope<Q, M>"],["impl<F: Debug> Debug for DummyCoprocessor<F>"],["impl Debug for LitBase"],["impl<F: Debug> Debug for Transcript<F>"],["impl<F: Debug + LurkField> Debug for LogMemoCircuit<F>"],["impl<I: Debug + AsBytes, F: Debug + LurkField> Debug for ParseError<I, F>"],["impl Debug for Settings"],["impl<F: Debug> Debug for FWrap<F>"],["impl Debug for ParallelConfig"],["impl Debug for UInt"],["impl<F: Debug + LurkField> Debug for TrieCoproc<F>"],["impl<F: Debug> Debug for Error<F>"],["impl<F: Debug + LurkField> Debug for ZCont<F>"],["impl Debug for Flow"],["impl Debug for LanguageField"]],
    +"lurk":[["impl<F: Debug> Debug for NewCoprocessor<F>"],["impl Debug for Settings"],["impl<F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for FoldingConfig<F, C>"],["impl<F: Debug> Debug for DummyCoprocessor<F>"],["impl<F: Debug + LurkField> Debug for TrieCoproc<F>"],["impl<E: Debug + Tag, F: Debug + LurkField> Debug for ZPtr<E, F>"],["impl Debug for FoldingMode"],["impl<F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F>> Debug for Instance<F, C>"],["impl Debug for RawPtr"],["impl<F: Debug + LurkField> Debug for Sha256Coprocessor<F>"],["impl<F: Debug> Debug for LookupCoprocessor<F>"],["impl Debug for MemoSetError"],["impl Debug for PerfConfig"],["impl<F: Debug + LurkField> Debug for LogMemo<F>"],["impl<F: Debug + LurkField> Debug for Coproc<F>"],["impl<F: LurkField> Debug for AllocatedContPtr<F>"],["impl<F: LurkField> Debug for AllocatedPtr<F>"],["impl<'a, F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F> + 'a> Debug for SuperNovaProver<'a, F, C>"],["impl<F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for LookupProof<F, ARITY, HEIGHT>"],["impl<'a, F: Debug + CurveCycleEquipped, C: Debug + Coprocessor<F>> Debug for NovaProver<'a, F, C>"],["impl<F: Debug + LurkField> Debug for ParseErrorKind<F>"],["impl<F: Debug + LurkField> Debug for ZStore<F>"],["impl<F: Debug, C: Debug> Debug for Lang<F, C>"],["impl<F: Debug + LurkField> Debug for Num<F>"],["impl<'a, F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for Trie<'a, F, ARITY, HEIGHT>"],["impl<T: Debug + Copy, W: Debug + Copy, F: Debug, C: Debug> Debug for Frame<T, W, F, C>"],["impl Debug for LitBase"],["impl Debug for ProofError"],["impl<Q: Debug, M: Debug, F: Debug + LurkField> Debug for Scope<Q, M, F>"],["impl Debug for State"],["impl Debug for Func"],["impl Debug for Metadata"],["impl Debug for WitnessGeneration"],["impl<'a, F: LurkField> Debug for WithStore<'a, F, Provenance>"],["impl Debug for UInt"],["impl<F: Debug, C: Debug> Debug for Binding<F, C>"],["impl Debug for Var"],["impl<F: Debug> Debug for Error<F>"],["impl Debug for Symbol"],["impl<F: Debug> Debug for FWrap<F>"],["impl Debug for Flow"],["impl Debug for ReductionError"],["impl Debug for Block"],["impl<I: Debug + AsBytes, F: Debug + LurkField> Debug for ParseError<I, F>"],["impl<F: Debug> Debug for InsertCoprocessor<F>"],["impl Debug for Kind"],["impl Debug for Error"],["impl Debug for Tag"],["impl Debug for ZData"],["impl<'a, F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for MultiFrame<'a, F, C>"],["impl<F: Debug + LurkField> Debug for Store<F>"],["impl Debug for Pos"],["impl<F: Debug> Debug for Transcript<F>"],["impl Debug for Provenance"],["impl<F: Debug + LurkField> Debug for CircuitTranscript<F>"],["impl Debug for ParallelConfig"],["impl<F: Debug + LurkField> Debug for ZExpr<F>"],["impl<F: Debug + LurkField> Debug for AllocatedProvenance<F>"],["impl<F: Debug + LurkField> Debug for ZCont<F>"],["impl Debug for LanguageField"],["impl Debug for Ptr"],["impl<F: Debug + LurkField> Debug for Sha256Coproc<F>"],["impl Debug for Ctrl"],["impl<'a> Debug for StringFragment<'a>"],["impl<F: Debug + LurkField> Debug for LogMemoCircuit<F>"],["impl Debug for Lit"],["impl Debug for Op"],["impl<F: Debug + LurkField, const ARITY: usize, const HEIGHT: usize> Debug for InsertProof<F, ARITY, HEIGHT>"],["impl<F: CurveCycleEquipped> Debug for PublicParams<F>"],["impl<F: Debug + LurkField, C: Debug> Debug for CircomCoprocessor<F, C>"],["impl<F: Debug + LurkField, CM: Debug> Debug for CircuitScope<F, CM>"]],
     "lurk_metrics":[["impl Debug for MetricsSinkHandle"],["impl Debug for MetricsSink"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/fmt/trait.Display.js b/docs/trait.impl/core/fmt/trait.Display.js
    index ba912c74fb..bd2739aa37 100644
    --- a/docs/trait.impl/core/fmt/trait.Display.js
    +++ b/docs/trait.impl/core/fmt/trait.Display.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl Display for Tag"],["impl<F: LurkField> Display for ParseErrorKind<F>"],["impl<F: LurkField> Display for ZExpr<F>"],["impl Display for ZData"],["impl<F: LurkField> Display for Num<F>"],["impl Display for ReductionError"],["impl Display for Var"],["impl Display for LanguageField"],["impl<E: Tag + Display, F: LurkField> Display for ZPtr<E, F>"],["impl Display for UInt"],["impl Display for Error"],["impl<'a, F: LurkField> Display for ParseError<Span<'a>, F>"],["impl Display for ProofError"],["impl Display for Symbol"]]
    +"lurk":[["impl Display for ProofError"],["impl Display for ZData"],["impl Display for ReductionError"],["impl Display for Symbol"],["impl Display for Var"],["impl<F: LurkField> Display for Num<F>"],["impl<F: LurkField> Display for ParseErrorKind<F>"],["impl<E: Tag + Display, F: LurkField> Display for ZPtr<E, F>"],["impl<F: LurkField> Display for ZExpr<F>"],["impl Display for Tag"],["impl Display for Error"],["impl Display for LanguageField"],["impl Display for UInt"],["impl<'a, F: LurkField> Display for ParseError<Span<'a>, F>"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/hash/trait.Hash.js b/docs/trait.impl/core/hash/trait.Hash.js
    index 6b36a7fa12..a5f2506284 100644
    --- a/docs/trait.impl/core/hash/trait.Hash.js
    +++ b/docs/trait.impl/core/hash/trait.Hash.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl Hash for Lit"],["impl Hash for Symbol"],["impl Hash for Var"],["impl<E: Tag, F: LurkField> Hash for ZPtr<E, F>"],["impl<F: LurkField> Hash for FWrap<F>"],["impl<F: LurkField> Hash for Num<F>"],["impl Hash for Ptr"],["impl Hash for Tag"],["impl Hash for RawPtr"]]
    +"lurk":[["impl<E: Tag, F: LurkField> Hash for ZPtr<E, F>"],["impl Hash for RawPtr"],["impl<F: LurkField> Hash for FWrap<F>"],["impl<F: LurkField> Hash for Num<F>"],["impl Hash for Var"],["impl Hash for Tag"],["impl Hash for Lit"],["impl Hash for Symbol"],["impl Hash for Ptr"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/marker/trait.Copy.js b/docs/trait.impl/core/marker/trait.Copy.js
    index 3d15a44707..9446729d80 100644
    --- a/docs/trait.impl/core/marker/trait.Copy.js
    +++ b/docs/trait.impl/core/marker/trait.Copy.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"lurk":[["impl<T: Copy + Copy, W: Copy + Copy, F: Copy, C: Copy> Copy for Frame<T, W, F, C>"],["impl<F: LurkField> Copy for FWrap<F>"],["impl<'a> Copy for StringFragment<'a>"],["impl Copy for Ptr"],["impl Copy for UInt"],["impl<E: Copy + Tag, F: Copy + LurkField> Copy for ZPtr<E, F>"],["impl Copy for Pos"],["impl<F: LurkField> Copy for Num<F>"],["impl Copy for LitBase"],["impl Copy for LanguageField"],["impl Copy for Tag"],["impl Copy for RawPtr"]]
    +"lurk":[["impl Copy for LanguageField"],["impl Copy for Pos"],["impl<F: LurkField> Copy for FWrap<F>"],["impl<E: Copy + Tag, F: Copy + LurkField> Copy for ZPtr<E, F>"],["impl Copy for LitBase"],["impl<F: LurkField> Copy for Num<F>"],["impl Copy for UInt"],["impl Copy for RawPtr"],["impl<T: Copy + Copy, W: Copy + Copy, F: Copy, C: Copy> Copy for Frame<T, W, F, C>"],["impl Copy for Ptr"],["impl<'a> Copy for StringFragment<'a>"],["impl Copy for Tag"]]
     };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
    \ No newline at end of file
    diff --git a/docs/trait.impl/core/marker/trait.Freeze.js b/docs/trait.impl/core/marker/trait.Freeze.js
    index 915ea39c21..2fd8c42972 100644
    --- a/docs/trait.impl/core/marker/trait.Freeze.js
    +++ b/docs/trait.impl/core/marker/trait.Freeze.js
    @@ -1,4 +1,4 @@
     (function() {var implementors = {
    -"lurk":[["impl<F> Freeze for AllocatedPtr<F>
    where\n F: Freeze,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Freeze for AllocatedContPtr<F>
    where\n F: Freeze,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Freeze for Settings",1,["lurk::config::Settings"]],["impl Freeze for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Freeze for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Freeze for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Freeze for Flow",1,["lurk::config::Flow"]],["impl<F, C> !Freeze for CircomCoprocessor<F, C>",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Freeze for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Freeze for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Freeze for Error<F>
    where\n F: Freeze,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Freeze for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Freeze for NewCoprocessor<F>",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Freeze for LookupCoprocessor<F>",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Freeze for InsertCoprocessor<F>",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Freeze for Trie<'a, F, ARITY, HEIGHT>
    where\n F: Freeze,
    ",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Freeze for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Freeze for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> Freeze for Transcript<F>",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Freeze for CircuitTranscript<F>
    where\n F: Freeze,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> Freeze for Scope<Q, M>
    where\n M: Freeze,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Freeze for CircuitScope<F, CM>
    where\n CM: Freeze,\n F: Freeze,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Freeze for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Freeze,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> !Freeze for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Freeze for LogMemoCircuit<F>
    where\n F: Freeze,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Freeze for ProofError",1,["lurk::error::ProofError"]],["impl Freeze for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Freeze for DummyCoprocessor<F>",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Freeze for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Freeze for Lang<F, C>",1,["lurk::eval::lang::Lang"]],["impl<F, C> Freeze for Binding<F, C>
    where\n C: Freeze,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Freeze for Frame<T, W, F, C>
    where\n T: Freeze,\n W: Freeze,
    ",1,["lurk::eval::Frame"]],["impl Freeze for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Freeze for FWrap<F>
    where\n F: Freeze,
    ",1,["lurk::field::FWrap"]],["impl<F> Freeze for AllocatedVal<F>
    where\n F: Freeze,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Freeze for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Freeze for SlotWitness<F>
    where\n F: Freeze,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> !Freeze for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Freeze for EvalConfig<'a, F, C>",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> !Freeze for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Freeze for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Freeze for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> !Freeze for Store<F>",1,["lurk::lem::store::Store"]],["impl Freeze for Tag",1,["lurk::lem::tag::Tag"]],["impl Freeze for Func",1,["lurk::lem::Func"]],["impl Freeze for Var",1,["lurk::lem::Var"]],["impl Freeze for Lit",1,["lurk::lem::Lit"]],["impl Freeze for Block",1,["lurk::lem::Block"]],["impl Freeze for Ctrl",1,["lurk::lem::Ctrl"]],["impl Freeze for Op",1,["lurk::lem::Op"]],["impl<F> Freeze for Num<F>
    where\n F: Freeze,
    ",1,["lurk::num::Num"]],["impl Freeze for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Freeze for ParseErrorKind<F>
    where\n F: Freeze,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Freeze for ParseError<I, F>
    where\n I: Freeze,
    ",1,["lurk::parser::error::ParseError"]],["impl Freeze for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Freeze for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Freeze for Error",1,["lurk::parser::Error"]],["impl<F> !Freeze for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Freeze for Proof<F, S>",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Freeze for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> !Freeze for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Freeze for Proof<F, S>",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Freeze for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Freeze for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Freeze for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Freeze for Instance<F, C>
    where\n F: Freeze,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl Freeze for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Freeze for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Freeze for State",1,["lurk::state::State"]],["impl Freeze for Symbol",1,["lurk::symbol::Symbol"]],["impl Freeze for UInt",1,["lurk::uint::UInt"]],["impl<F> Freeze for ZCont<F>
    where\n F: Freeze,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Freeze for ZExpr<F>
    where\n F: Freeze,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Freeze for ZPtr<E, F>
    where\n E: Freeze,\n F: Freeze,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Freeze for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Freeze for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> Freeze for AllocatedPtr<F>
    where\n F: Freeze,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Freeze for AllocatedContPtr<F>
    where\n F: Freeze,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Freeze for Settings",1,["lurk::config::Settings"]],["impl Freeze for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Freeze for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Freeze for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Freeze for Flow",1,["lurk::config::Flow"]],["impl<F, C> !Freeze for CircomCoprocessor<F, C>",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Freeze for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Freeze for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Freeze for Error<F>
    where\n F: Freeze,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Freeze for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Freeze for NewCoprocessor<F>",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Freeze for LookupCoprocessor<F>",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Freeze for InsertCoprocessor<F>",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Freeze for Trie<'a, F, ARITY, HEIGHT>
    where\n F: Freeze,
    ",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Freeze for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Freeze for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl Freeze for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> Freeze for Transcript<F>",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Freeze for CircuitTranscript<F>
    where\n F: Freeze,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl !Freeze for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> !Freeze for AllocatedProvenance<F>",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> !Freeze for Scope<Q, M, F>",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Freeze for CircuitScope<F, CM>
    where\n CM: Freeze,\n F: Freeze,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Freeze for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Freeze,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> !Freeze for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Freeze for LogMemoCircuit<F>
    where\n F: Freeze,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Freeze for ProofError",1,["lurk::error::ProofError"]],["impl Freeze for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Freeze for DummyCoprocessor<F>",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Freeze for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Freeze for Lang<F, C>",1,["lurk::eval::lang::Lang"]],["impl<F, C> Freeze for Binding<F, C>
    where\n C: Freeze,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Freeze for Frame<T, W, F, C>
    where\n T: Freeze,\n W: Freeze,
    ",1,["lurk::eval::Frame"]],["impl Freeze for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Freeze for FWrap<F>
    where\n F: Freeze,
    ",1,["lurk::field::FWrap"]],["impl<F> Freeze for AllocatedVal<F>
    where\n F: Freeze,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Freeze for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Freeze for SlotWitness<F>
    where\n F: Freeze,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> !Freeze for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Freeze for EvalConfig<'a, F, C>",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> !Freeze for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Freeze for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Freeze for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> !Freeze for Store<F>",1,["lurk::lem::store::Store"]],["impl<'a, F, T> Freeze for WithStore<'a, F, T>
    where\n T: Freeze,
    ",1,["lurk::lem::store::WithStore"]],["impl Freeze for Tag",1,["lurk::lem::tag::Tag"]],["impl Freeze for Func",1,["lurk::lem::Func"]],["impl Freeze for Var",1,["lurk::lem::Var"]],["impl Freeze for Lit",1,["lurk::lem::Lit"]],["impl Freeze for Block",1,["lurk::lem::Block"]],["impl Freeze for Ctrl",1,["lurk::lem::Ctrl"]],["impl Freeze for Op",1,["lurk::lem::Op"]],["impl<F> Freeze for Num<F>
    where\n F: Freeze,
    ",1,["lurk::num::Num"]],["impl Freeze for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Freeze for ParseErrorKind<F>
    where\n F: Freeze,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Freeze for ParseError<I, F>
    where\n I: Freeze,
    ",1,["lurk::parser::error::ParseError"]],["impl Freeze for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Freeze for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Freeze for Error",1,["lurk::parser::Error"]],["impl<F> !Freeze for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Freeze for Proof<F, S>",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Freeze for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> !Freeze for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Freeze for Proof<F, S>",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Freeze for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Freeze for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Freeze for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Freeze for Instance<F, C>
    where\n F: Freeze,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl Freeze for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Freeze for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Freeze for State",1,["lurk::state::State"]],["impl Freeze for Symbol",1,["lurk::symbol::Symbol"]],["impl Freeze for UInt",1,["lurk::uint::UInt"]],["impl<F> Freeze for ZCont<F>
    where\n F: Freeze,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Freeze for ZExpr<F>
    where\n F: Freeze,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Freeze for ZPtr<E, F>
    where\n E: Freeze,\n F: Freeze,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Freeze for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Freeze for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl Freeze for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl Freeze for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Send.js b/docs/trait.impl/core/marker/trait.Send.js index 6ab741f210..707dd371e1 100644 --- a/docs/trait.impl/core/marker/trait.Send.js +++ b/docs/trait.impl/core/marker/trait.Send.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"lurk":[["impl<F> Send for AllocatedPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Send for AllocatedContPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Send for Settings",1,["lurk::config::Settings"]],["impl Send for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Send for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Send for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Send for Flow",1,["lurk::config::Flow"]],["impl<F, C> Send for CircomCoprocessor<F, C>
    where\n C: Send,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Send for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Send for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Send for Error<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Send for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Send for NewCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Send for LookupCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Send for InsertCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Send for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Send for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Send for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> Send for Transcript<F>
    where\n F: Send,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Send for CircuitTranscript<F>",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> Send for Scope<Q, M>
    where\n M: Send,\n Q: Send,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Send for CircuitScope<F, CM>
    where\n CM: Send,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Send for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Send,\n Q: Send,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Send for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Send for LogMemoCircuit<F>",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Send for ProofError",1,["lurk::error::ProofError"]],["impl Send for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Send for DummyCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Send for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Send for Lang<F, C>
    where\n C: Send,\n F: Send,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Send for Binding<F, C>
    where\n C: Send,\n F: Send,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Send for Frame<T, W, F, C>
    where\n C: Send,\n F: Send,\n T: Send,\n W: Send,
    ",1,["lurk::eval::Frame"]],["impl Send for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Send for FWrap<F>
    where\n F: Send,
    ",1,["lurk::field::FWrap"]],["impl<F> Send for AllocatedVal<F>",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Send for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Send for SlotWitness<F>",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Send for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Send for EvalConfig<'a, F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Send for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Send for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Send for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Send for Store<F>",1,["lurk::lem::store::Store"]],["impl Send for Tag",1,["lurk::lem::tag::Tag"]],["impl Send for Func",1,["lurk::lem::Func"]],["impl Send for Var",1,["lurk::lem::Var"]],["impl Send for Lit",1,["lurk::lem::Lit"]],["impl Send for Block",1,["lurk::lem::Block"]],["impl Send for Ctrl",1,["lurk::lem::Ctrl"]],["impl Send for Op",1,["lurk::lem::Op"]],["impl<F> Send for Num<F>",1,["lurk::num::Num"]],["impl Send for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Send for ParseErrorKind<F>",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Send for ParseError<I, F>
    where\n I: Send,
    ",1,["lurk::parser::error::ParseError"]],["impl Send for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Send for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Send for Error",1,["lurk::parser::Error"]],["impl<F> Send for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Send for Proof<F, S>
    where\n S: Send,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Send for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Send for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Send for Proof<F, S>
    where\n S: Send,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Send for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Send for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Send for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Send for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl Send for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Send for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Send for State",1,["lurk::state::State"]],["impl Send for Symbol",1,["lurk::symbol::Symbol"]],["impl Send for UInt",1,["lurk::uint::UInt"]],["impl<F> Send for ZCont<F>",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Send for ZExpr<F>",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Send for ZPtr<E, F>
    where\n E: Send,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Send for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Send for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> Send for AllocatedPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Send for AllocatedContPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Send for Settings",1,["lurk::config::Settings"]],["impl Send for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Send for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Send for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Send for Flow",1,["lurk::config::Flow"]],["impl<F, C> Send for CircomCoprocessor<F, C>
    where\n C: Send,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Send for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Send for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Send for Error<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Send for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Send for NewCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Send for LookupCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Send for InsertCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Send for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Send for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Send for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl Send for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> Send for Transcript<F>
    where\n F: Send,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Send for CircuitTranscript<F>",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl Send for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> Send for AllocatedProvenance<F>",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> Send for Scope<Q, M, F>
    where\n M: Send,\n Q: Send,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Send for CircuitScope<F, CM>
    where\n CM: Send,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Send for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Send,\n Q: Send,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Send for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Send for LogMemoCircuit<F>",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Send for ProofError",1,["lurk::error::ProofError"]],["impl Send for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Send for DummyCoprocessor<F>
    where\n F: Send,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Send for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Send for Lang<F, C>
    where\n C: Send,\n F: Send,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Send for Binding<F, C>
    where\n C: Send,\n F: Send,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Send for Frame<T, W, F, C>
    where\n C: Send,\n F: Send,\n T: Send,\n W: Send,
    ",1,["lurk::eval::Frame"]],["impl Send for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Send for FWrap<F>
    where\n F: Send,
    ",1,["lurk::field::FWrap"]],["impl<F> Send for AllocatedVal<F>",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Send for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Send for SlotWitness<F>",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Send for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Send for EvalConfig<'a, F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Send for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Send for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Send for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Send for Store<F>",1,["lurk::lem::store::Store"]],["impl<'a, F, T> Send for WithStore<'a, F, T>
    where\n T: Send,
    ",1,["lurk::lem::store::WithStore"]],["impl Send for Tag",1,["lurk::lem::tag::Tag"]],["impl Send for Func",1,["lurk::lem::Func"]],["impl Send for Var",1,["lurk::lem::Var"]],["impl Send for Lit",1,["lurk::lem::Lit"]],["impl Send for Block",1,["lurk::lem::Block"]],["impl Send for Ctrl",1,["lurk::lem::Ctrl"]],["impl Send for Op",1,["lurk::lem::Op"]],["impl<F> Send for Num<F>",1,["lurk::num::Num"]],["impl Send for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Send for ParseErrorKind<F>",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Send for ParseError<I, F>
    where\n I: Send,
    ",1,["lurk::parser::error::ParseError"]],["impl Send for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Send for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Send for Error",1,["lurk::parser::Error"]],["impl<F> Send for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Send for Proof<F, S>
    where\n S: Send,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Send for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Send for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Send for Proof<F, S>
    where\n S: Send,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Send for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Send for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Send for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Send for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl Send for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Send for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Send for State",1,["lurk::state::State"]],["impl Send for Symbol",1,["lurk::symbol::Symbol"]],["impl Send for UInt",1,["lurk::uint::UInt"]],["impl<F> Send for ZCont<F>",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Send for ZExpr<F>",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Send for ZPtr<E, F>
    where\n E: Send,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Send for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Send for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl Send for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl Send for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralEq.js b/docs/trait.impl/core/marker/trait.StructuralEq.js index be6dc59850..183920a848 100644 --- a/docs/trait.impl/core/marker/trait.StructuralEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"lurk":[["impl StructuralEq for UInt"],["impl StructuralEq for Symbol"],["impl StructuralEq for PerfConfig"],["impl<F: LurkField> StructuralEq for ZExpr<F>"],["impl StructuralEq for Flow"],["impl StructuralEq for WitnessGeneration"],["impl StructuralEq for Block"],["impl StructuralEq for Var"],["impl<T: Copy, W: Copy, F, C> StructuralEq for Frame<T, W, F, C>"],["impl StructuralEq for Ptr"],["impl StructuralEq for Op"],["impl StructuralEq for Kind"],["impl StructuralEq for Ctrl"],["impl StructuralEq for RawPtr"],["impl StructuralEq for LitBase"],["impl StructuralEq for ZData"],["impl<I: AsBytes, F: LurkField> StructuralEq for ParseError<I, F>"],["impl<E: Tag, F: LurkField> StructuralEq for ZPtr<E, F>"],["impl StructuralEq for LanguageField"],["impl<F: LurkField> StructuralEq for ZStore<F>"],["impl<'a> StructuralEq for StringFragment<'a>"],["impl StructuralEq for Lit"],["impl<F: LurkField> StructuralEq for ZCont<F>"],["impl<F: LurkField> StructuralEq for ParseErrorKind<F>"],["impl StructuralEq for Settings"],["impl StructuralEq for Tag"],["impl StructuralEq for Func"],["impl<F> StructuralEq for FWrap<F>"],["impl StructuralEq for ParallelConfig"],["impl<F: LurkField> StructuralEq for Num<F>"],["impl StructuralEq for Metadata"]] +"lurk":[["impl StructuralEq for Lit"],["impl StructuralEq for PerfConfig"],["impl StructuralEq for Block"],["impl StructuralEq for UInt"],["impl<'a> StructuralEq for StringFragment<'a>"],["impl StructuralEq for Metadata"],["impl StructuralEq for WitnessGeneration"],["impl StructuralEq for Tag"],["impl StructuralEq for ParallelConfig"],["impl<T: Copy, W: Copy, F, C> StructuralEq for Frame<T, W, F, C>"],["impl StructuralEq for Settings"],["impl StructuralEq for Var"],["impl StructuralEq for LitBase"],["impl<F: LurkField> StructuralEq for ZCont<F>"],["impl<E: Tag, F: LurkField> StructuralEq for ZPtr<E, F>"],["impl StructuralEq for ZData"],["impl<F: LurkField> StructuralEq for ZExpr<F>"],["impl StructuralEq for Ctrl"],["impl StructuralEq for Op"],["impl StructuralEq for Ptr"],["impl<F: LurkField> StructuralEq for Num<F>"],["impl<F: LurkField> StructuralEq for ZStore<F>"],["impl StructuralEq for Kind"],["impl<F: LurkField> StructuralEq for ParseErrorKind<F>"],["impl StructuralEq for LanguageField"],["impl StructuralEq for Func"],["impl<I: AsBytes, F: LurkField> StructuralEq for ParseError<I, F>"],["impl StructuralEq for RawPtr"],["impl StructuralEq for Flow"],["impl StructuralEq for Symbol"],["impl<F> StructuralEq for FWrap<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js index bc589ae436..365f597010 100644 --- a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"lurk":[["impl StructuralPartialEq for Symbol"],["impl StructuralPartialEq for WitnessGeneration"],["impl StructuralPartialEq for LitBase"],["impl StructuralPartialEq for Metadata"],["impl StructuralPartialEq for Func"],["impl StructuralPartialEq for PerfConfig"],["impl<E: Tag, F: LurkField> StructuralPartialEq for ZPtr<E, F>"],["impl StructuralPartialEq for UInt"],["impl StructuralPartialEq for Var"],["impl StructuralPartialEq for LanguageField"],["impl<F> StructuralPartialEq for FWrap<F>"],["impl StructuralPartialEq for ZData"],["impl<T: Copy, W: Copy, F, C> StructuralPartialEq for Frame<T, W, F, C>"],["impl StructuralPartialEq for Settings"],["impl StructuralPartialEq for Block"],["impl StructuralPartialEq for ParallelConfig"],["impl StructuralPartialEq for RawPtr"],["impl StructuralPartialEq for Ctrl"],["impl StructuralPartialEq for Lit"],["impl StructuralPartialEq for Flow"],["impl<F: LurkField> StructuralPartialEq for ZStore<F>"],["impl StructuralPartialEq for Tag"],["impl<F: LurkField> StructuralPartialEq for Num<F>"],["impl StructuralPartialEq for Kind"],["impl<F: LurkField> StructuralPartialEq for ParseErrorKind<F>"],["impl StructuralPartialEq for Ptr"],["impl<F: LurkField> StructuralPartialEq for ZExpr<F>"],["impl<F: LurkField> StructuralPartialEq for ZCont<F>"],["impl<'a> StructuralPartialEq for StringFragment<'a>"],["impl<I: AsBytes, F: LurkField> StructuralPartialEq for ParseError<I, F>"],["impl StructuralPartialEq for Op"]] +"lurk":[["impl<T: Copy, W: Copy, F, C> StructuralPartialEq for Frame<T, W, F, C>"],["impl StructuralPartialEq for Func"],["impl StructuralPartialEq for Ctrl"],["impl<E: Tag, F: LurkField> StructuralPartialEq for ZPtr<E, F>"],["impl StructuralPartialEq for RawPtr"],["impl StructuralPartialEq for Op"],["impl<'a> StructuralPartialEq for StringFragment<'a>"],["impl<F> StructuralPartialEq for FWrap<F>"],["impl StructuralPartialEq for Symbol"],["impl StructuralPartialEq for PerfConfig"],["impl StructuralPartialEq for Var"],["impl StructuralPartialEq for ParallelConfig"],["impl<F: LurkField> StructuralPartialEq for ParseErrorKind<F>"],["impl StructuralPartialEq for Block"],["impl StructuralPartialEq for UInt"],["impl<F: LurkField> StructuralPartialEq for ZStore<F>"],["impl StructuralPartialEq for WitnessGeneration"],["impl StructuralPartialEq for Lit"],["impl<F: LurkField> StructuralPartialEq for ZExpr<F>"],["impl StructuralPartialEq for Kind"],["impl<F: LurkField> StructuralPartialEq for Num<F>"],["impl StructuralPartialEq for Metadata"],["impl StructuralPartialEq for LitBase"],["impl<F: LurkField> StructuralPartialEq for ZCont<F>"],["impl StructuralPartialEq for LanguageField"],["impl StructuralPartialEq for Tag"],["impl StructuralPartialEq for Settings"],["impl<I: AsBytes, F: LurkField> StructuralPartialEq for ParseError<I, F>"],["impl StructuralPartialEq for Ptr"],["impl StructuralPartialEq for ZData"],["impl StructuralPartialEq for Flow"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Sync.js b/docs/trait.impl/core/marker/trait.Sync.js index 166737ff74..a97236b5d8 100644 --- a/docs/trait.impl/core/marker/trait.Sync.js +++ b/docs/trait.impl/core/marker/trait.Sync.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"lurk":[["impl<F> Sync for AllocatedPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Sync for AllocatedContPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Sync for Settings",1,["lurk::config::Settings"]],["impl Sync for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Sync for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Sync for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Sync for Flow",1,["lurk::config::Flow"]],["impl<F, C> Sync for CircomCoprocessor<F, C>
    where\n C: Sync,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Sync for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Sync for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Sync for Error<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Sync for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Sync for NewCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Sync for LookupCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Sync for InsertCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Sync for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Sync for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Sync for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> Sync for Transcript<F>
    where\n F: Sync,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Sync for CircuitTranscript<F>",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> Sync for Scope<Q, M>
    where\n M: Sync,\n Q: Sync,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Sync for CircuitScope<F, CM>
    where\n CM: Sync,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Sync for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Sync,\n Q: Sync,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Sync for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Sync for LogMemoCircuit<F>",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Sync for ProofError",1,["lurk::error::ProofError"]],["impl Sync for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Sync for DummyCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Sync for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Sync for Lang<F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Sync for Binding<F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Sync for Frame<T, W, F, C>
    where\n C: Sync,\n F: Sync,\n T: Sync,\n W: Sync,
    ",1,["lurk::eval::Frame"]],["impl Sync for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Sync for FWrap<F>
    where\n F: Sync,
    ",1,["lurk::field::FWrap"]],["impl<F> Sync for AllocatedVal<F>",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Sync for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Sync for SlotWitness<F>",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Sync for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Sync for EvalConfig<'a, F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Sync for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Sync for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Sync for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Sync for Store<F>",1,["lurk::lem::store::Store"]],["impl Sync for Tag",1,["lurk::lem::tag::Tag"]],["impl Sync for Func",1,["lurk::lem::Func"]],["impl Sync for Var",1,["lurk::lem::Var"]],["impl Sync for Lit",1,["lurk::lem::Lit"]],["impl Sync for Block",1,["lurk::lem::Block"]],["impl Sync for Ctrl",1,["lurk::lem::Ctrl"]],["impl Sync for Op",1,["lurk::lem::Op"]],["impl<F> Sync for Num<F>",1,["lurk::num::Num"]],["impl Sync for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Sync for ParseErrorKind<F>",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Sync for ParseError<I, F>
    where\n I: Sync,
    ",1,["lurk::parser::error::ParseError"]],["impl Sync for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Sync for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Sync for Error",1,["lurk::parser::Error"]],["impl<F> Sync for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Sync for Proof<F, S>
    where\n S: Sync,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Sync for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Sync for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Sync for Proof<F, S>
    where\n S: Sync,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Sync for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Sync for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Sync for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Sync for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl Sync for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Sync for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Sync for State",1,["lurk::state::State"]],["impl Sync for Symbol",1,["lurk::symbol::Symbol"]],["impl Sync for UInt",1,["lurk::uint::UInt"]],["impl<F> Sync for ZCont<F>",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Sync for ZExpr<F>",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Sync for ZPtr<E, F>
    where\n E: Sync,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Sync for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Sync for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> Sync for AllocatedPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Sync for AllocatedContPtr<F>",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Sync for Settings",1,["lurk::config::Settings"]],["impl Sync for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Sync for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Sync for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Sync for Flow",1,["lurk::config::Flow"]],["impl<F, C> Sync for CircomCoprocessor<F, C>
    where\n C: Sync,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Sync for Sha256Coprocessor<F>",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Sync for Sha256Coproc<F>",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Sync for Error<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Sync for TrieCoproc<F>",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Sync for NewCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Sync for LookupCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Sync for InsertCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Sync for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Sync for LookupProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Sync for InsertProof<F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::InsertProof"]],["impl Sync for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> Sync for Transcript<F>
    where\n F: Sync,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Sync for CircuitTranscript<F>",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl Sync for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> Sync for AllocatedProvenance<F>",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> Sync for Scope<Q, M, F>
    where\n M: Sync,\n Q: Sync,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Sync for CircuitScope<F, CM>
    where\n CM: Sync,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Sync for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Sync,\n Q: Sync,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Sync for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Sync for LogMemoCircuit<F>",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Sync for ProofError",1,["lurk::error::ProofError"]],["impl Sync for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Sync for DummyCoprocessor<F>
    where\n F: Sync,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Sync for Coproc<F>",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Sync for Lang<F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Sync for Binding<F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Sync for Frame<T, W, F, C>
    where\n C: Sync,\n F: Sync,\n T: Sync,\n W: Sync,
    ",1,["lurk::eval::Frame"]],["impl Sync for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Sync for FWrap<F>
    where\n F: Sync,
    ",1,["lurk::field::FWrap"]],["impl<F> Sync for AllocatedVal<F>",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Sync for SlotsAllocations<F>",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Sync for SlotWitness<F>",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Sync for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Sync for EvalConfig<'a, F, C>
    where\n C: Sync,\n F: Sync,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Sync for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl Sync for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Sync for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Sync for Store<F>",1,["lurk::lem::store::Store"]],["impl<'a, F, T> Sync for WithStore<'a, F, T>
    where\n T: Sync,
    ",1,["lurk::lem::store::WithStore"]],["impl Sync for Tag",1,["lurk::lem::tag::Tag"]],["impl Sync for Func",1,["lurk::lem::Func"]],["impl Sync for Var",1,["lurk::lem::Var"]],["impl Sync for Lit",1,["lurk::lem::Lit"]],["impl Sync for Block",1,["lurk::lem::Block"]],["impl Sync for Ctrl",1,["lurk::lem::Ctrl"]],["impl Sync for Op",1,["lurk::lem::Op"]],["impl<F> Sync for Num<F>",1,["lurk::num::Num"]],["impl Sync for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Sync for ParseErrorKind<F>",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Sync for ParseError<I, F>
    where\n I: Sync,
    ",1,["lurk::parser::error::ParseError"]],["impl Sync for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Sync for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Sync for Error",1,["lurk::parser::Error"]],["impl<F> Sync for PublicParams<F>",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Sync for Proof<F, S>
    where\n S: Sync,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Sync for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Sync for PublicParams<F>",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Sync for Proof<F, S>
    where\n S: Sync,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Sync for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Sync for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Sync for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Sync for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl Sync for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Sync for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Sync for State",1,["lurk::state::State"]],["impl Sync for Symbol",1,["lurk::symbol::Symbol"]],["impl Sync for UInt",1,["lurk::uint::UInt"]],["impl<F> Sync for ZCont<F>",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Sync for ZExpr<F>",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Sync for ZPtr<E, F>
    where\n E: Sync,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Sync for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Sync for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl Sync for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl Sync for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Unpin.js b/docs/trait.impl/core/marker/trait.Unpin.js index b37ed8fdfa..5f109e730e 100644 --- a/docs/trait.impl/core/marker/trait.Unpin.js +++ b/docs/trait.impl/core/marker/trait.Unpin.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"lurk":[["impl<F> Unpin for AllocatedPtr<F>
    where\n F: Unpin,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Unpin for AllocatedContPtr<F>
    where\n F: Unpin,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Unpin for Settings",1,["lurk::config::Settings"]],["impl Unpin for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Unpin for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Unpin for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Unpin for Flow",1,["lurk::config::Flow"]],["impl<F, C> Unpin for CircomCoprocessor<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Unpin for Sha256Coprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Unpin for Sha256Coproc<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Unpin for Error<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Unpin for TrieCoproc<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Unpin for NewCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Unpin for LookupCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Unpin for InsertCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Unpin for Trie<'a, F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Unpin for LookupProof<F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Unpin for InsertProof<F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> Unpin for Transcript<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Unpin for CircuitTranscript<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> Unpin for Scope<Q, M>
    where\n M: Unpin,\n Q: Unpin,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Unpin for CircuitScope<F, CM>
    where\n CM: Unpin,\n F: Unpin,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Unpin for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Unpin,\n Q: Unpin,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Unpin for LogMemo<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Unpin for LogMemoCircuit<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Unpin for ProofError",1,["lurk::error::ProofError"]],["impl Unpin for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Unpin for DummyCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Unpin for Coproc<F>
    where\n F: Unpin,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Unpin for Lang<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Unpin for Binding<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Unpin for Frame<T, W, F, C>
    where\n C: Unpin,\n F: Unpin,\n T: Unpin,\n W: Unpin,
    ",1,["lurk::eval::Frame"]],["impl Unpin for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Unpin for FWrap<F>
    where\n F: Unpin,
    ",1,["lurk::field::FWrap"]],["impl<F> Unpin for AllocatedVal<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Unpin for SlotsAllocations<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Unpin for SlotWitness<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Unpin for GlobalAllocator<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Unpin for EvalConfig<'a, F, C>",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Unpin for MultiFrame<'a, F, C>
    where\n F: Unpin,
    ",1,["lurk::lem::multiframe::MultiFrame"]],["impl Unpin for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Unpin for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Unpin for Store<F>
    where\n F: Unpin,
    ",1,["lurk::lem::store::Store"]],["impl Unpin for Tag",1,["lurk::lem::tag::Tag"]],["impl Unpin for Func",1,["lurk::lem::Func"]],["impl Unpin for Var",1,["lurk::lem::Var"]],["impl Unpin for Lit",1,["lurk::lem::Lit"]],["impl Unpin for Block",1,["lurk::lem::Block"]],["impl Unpin for Ctrl",1,["lurk::lem::Ctrl"]],["impl Unpin for Op",1,["lurk::lem::Op"]],["impl<F> Unpin for Num<F>
    where\n F: Unpin,
    ",1,["lurk::num::Num"]],["impl Unpin for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Unpin for ParseErrorKind<F>
    where\n F: Unpin,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Unpin for ParseError<I, F>
    where\n F: Unpin,\n I: Unpin,
    ",1,["lurk::parser::error::ParseError"]],["impl Unpin for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Unpin for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Unpin for Error",1,["lurk::parser::Error"]],["impl<F> Unpin for PublicParams<F>
    where\n F: Unpin,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: Unpin,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Unpin for Proof<F, S>
    where\n S: Unpin,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Unpin for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Unpin for PublicParams<F>
    where\n F: Unpin,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: Unpin,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Unpin for Proof<F, S>
    where\n S: Unpin,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Unpin for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Unpin for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Unpin for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Unpin for Instance<F, C>
    where\n F: Unpin,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl Unpin for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Unpin for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Unpin for State",1,["lurk::state::State"]],["impl Unpin for Symbol",1,["lurk::symbol::Symbol"]],["impl Unpin for UInt",1,["lurk::uint::UInt"]],["impl<F> Unpin for ZCont<F>
    where\n F: Unpin,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Unpin for ZExpr<F>
    where\n F: Unpin,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Unpin for ZPtr<E, F>
    where\n E: Unpin,\n F: Unpin,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Unpin for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Unpin for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> Unpin for AllocatedPtr<F>
    where\n F: Unpin,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> Unpin for AllocatedContPtr<F>
    where\n F: Unpin,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl Unpin for Settings",1,["lurk::config::Settings"]],["impl Unpin for PerfConfig",1,["lurk::config::PerfConfig"]],["impl Unpin for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl Unpin for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl Unpin for Flow",1,["lurk::config::Flow"]],["impl<F, C> Unpin for CircomCoprocessor<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> Unpin for Sha256Coprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> Unpin for Sha256Coproc<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> Unpin for Error<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> Unpin for TrieCoproc<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> Unpin for NewCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> Unpin for LookupCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> Unpin for InsertCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> Unpin for Trie<'a, F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Unpin for LookupProof<F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> Unpin for InsertProof<F, ARITY, HEIGHT>
    where\n F: Unpin,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl Unpin for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> Unpin for Transcript<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> Unpin for CircuitTranscript<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl Unpin for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> Unpin for AllocatedProvenance<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> Unpin for Scope<Q, M, F>
    where\n F: Unpin,\n M: Unpin,\n Q: Unpin,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> Unpin for CircuitScope<F, CM>
    where\n CM: Unpin,\n F: Unpin,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> Unpin for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: Unpin,\n F: Unpin,\n Q: Unpin,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> Unpin for LogMemo<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> Unpin for LogMemoCircuit<F>
    where\n F: Unpin,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl Unpin for ProofError",1,["lurk::error::ProofError"]],["impl Unpin for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> Unpin for DummyCoprocessor<F>
    where\n F: Unpin,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> Unpin for Coproc<F>
    where\n F: Unpin,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> Unpin for Lang<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> Unpin for Binding<F, C>
    where\n C: Unpin,\n F: Unpin,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> Unpin for Frame<T, W, F, C>
    where\n C: Unpin,\n F: Unpin,\n T: Unpin,\n W: Unpin,
    ",1,["lurk::eval::Frame"]],["impl Unpin for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> Unpin for FWrap<F>
    where\n F: Unpin,
    ",1,["lurk::field::FWrap"]],["impl<F> Unpin for AllocatedVal<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> Unpin for SlotsAllocations<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> Unpin for SlotWitness<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> Unpin for GlobalAllocator<F>
    where\n F: Unpin,
    ",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> Unpin for EvalConfig<'a, F, C>",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> Unpin for MultiFrame<'a, F, C>
    where\n F: Unpin,
    ",1,["lurk::lem::multiframe::MultiFrame"]],["impl Unpin for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl Unpin for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> Unpin for Store<F>
    where\n F: Unpin,
    ",1,["lurk::lem::store::Store"]],["impl<'a, F, T> Unpin for WithStore<'a, F, T>
    where\n T: Unpin,
    ",1,["lurk::lem::store::WithStore"]],["impl Unpin for Tag",1,["lurk::lem::tag::Tag"]],["impl Unpin for Func",1,["lurk::lem::Func"]],["impl Unpin for Var",1,["lurk::lem::Var"]],["impl Unpin for Lit",1,["lurk::lem::Lit"]],["impl Unpin for Block",1,["lurk::lem::Block"]],["impl Unpin for Ctrl",1,["lurk::lem::Ctrl"]],["impl Unpin for Op",1,["lurk::lem::Op"]],["impl<F> Unpin for Num<F>
    where\n F: Unpin,
    ",1,["lurk::num::Num"]],["impl Unpin for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> Unpin for ParseErrorKind<F>
    where\n F: Unpin,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> Unpin for ParseError<I, F>
    where\n F: Unpin,\n I: Unpin,
    ",1,["lurk::parser::error::ParseError"]],["impl Unpin for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> Unpin for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl Unpin for Error",1,["lurk::parser::Error"]],["impl<F> Unpin for PublicParams<F>
    where\n F: Unpin,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: Unpin,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> Unpin for Proof<F, S>
    where\n S: Unpin,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> Unpin for NovaProver<'a, F, C>",1,["lurk::proof::nova::NovaProver"]],["impl<F> Unpin for PublicParams<F>
    where\n F: Unpin,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: Unpin,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: Unpin,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: Unpin,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: Unpin,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> Unpin for Proof<F, S>
    where\n S: Unpin,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> Unpin for SuperNovaProver<'a, F, C>",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> Unpin for FoldingConfig<F, C>",1,["lurk::proof::supernova::FoldingConfig"]],["impl Unpin for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> Unpin for Instance<F, C>
    where\n F: Unpin,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl Unpin for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl Unpin for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl Unpin for State",1,["lurk::state::State"]],["impl Unpin for Symbol",1,["lurk::symbol::Symbol"]],["impl Unpin for UInt",1,["lurk::uint::UInt"]],["impl<F> Unpin for ZCont<F>
    where\n F: Unpin,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> Unpin for ZExpr<F>
    where\n F: Unpin,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> Unpin for ZPtr<E, F>
    where\n E: Unpin,\n F: Unpin,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> Unpin for ZStore<F>",1,["lurk::z_data::z_store::ZStore"]],["impl Unpin for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl Unpin for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl Unpin for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 400c58c601..70f1e352f1 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"lurk":[["impl<F> RefUnwindSafe for AllocatedPtr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> RefUnwindSafe for AllocatedContPtr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl RefUnwindSafe for Settings",1,["lurk::config::Settings"]],["impl RefUnwindSafe for PerfConfig",1,["lurk::config::PerfConfig"]],["impl RefUnwindSafe for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl RefUnwindSafe for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl RefUnwindSafe for Flow",1,["lurk::config::Flow"]],["impl<F, C> RefUnwindSafe for CircomCoprocessor<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> RefUnwindSafe for Sha256Coprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> RefUnwindSafe for Sha256Coproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> RefUnwindSafe for Error<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> RefUnwindSafe for TrieCoproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> RefUnwindSafe for NewCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> RefUnwindSafe for LookupCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> RefUnwindSafe for InsertCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for LookupProof<F, ARITY, HEIGHT>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for InsertProof<F, ARITY, HEIGHT>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> RefUnwindSafe for Transcript<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> RefUnwindSafe for CircuitTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> RefUnwindSafe for Scope<Q, M>
    where\n M: RefUnwindSafe,\n Q: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> RefUnwindSafe for CircuitScope<F, CM>
    where\n CM: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> RefUnwindSafe for CoroutineCircuit<'a, F, CM, Q>",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> RefUnwindSafe for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> RefUnwindSafe for LogMemoCircuit<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl !RefUnwindSafe for ProofError",1,["lurk::error::ProofError"]],["impl RefUnwindSafe for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> RefUnwindSafe for DummyCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> RefUnwindSafe for Coproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> RefUnwindSafe for Lang<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> RefUnwindSafe for Binding<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> RefUnwindSafe for Frame<T, W, F, C>",1,["lurk::eval::Frame"]],["impl RefUnwindSafe for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> RefUnwindSafe for FWrap<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::field::FWrap"]],["impl<F> RefUnwindSafe for AllocatedVal<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> RefUnwindSafe for SlotsAllocations<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> RefUnwindSafe for SlotWitness<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> RefUnwindSafe for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> RefUnwindSafe for EvalConfig<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> RefUnwindSafe for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl RefUnwindSafe for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl RefUnwindSafe for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> RefUnwindSafe for Store<F>",1,["lurk::lem::store::Store"]],["impl RefUnwindSafe for Tag",1,["lurk::lem::tag::Tag"]],["impl RefUnwindSafe for Func",1,["lurk::lem::Func"]],["impl RefUnwindSafe for Var",1,["lurk::lem::Var"]],["impl RefUnwindSafe for Lit",1,["lurk::lem::Lit"]],["impl RefUnwindSafe for Block",1,["lurk::lem::Block"]],["impl RefUnwindSafe for Ctrl",1,["lurk::lem::Ctrl"]],["impl RefUnwindSafe for Op",1,["lurk::lem::Op"]],["impl<F> RefUnwindSafe for Num<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::num::Num"]],["impl RefUnwindSafe for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> RefUnwindSafe for ParseErrorKind<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> RefUnwindSafe for ParseError<I, F>
    where\n F: RefUnwindSafe,\n I: RefUnwindSafe,
    ",1,["lurk::parser::error::ParseError"]],["impl RefUnwindSafe for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> RefUnwindSafe for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl RefUnwindSafe for Error",1,["lurk::parser::Error"]],["impl<F> RefUnwindSafe for PublicParams<F>
    where\n F: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe + RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe + RefUnwindSafe,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> RefUnwindSafe for Proof<F, S>
    where\n F: RefUnwindSafe,\n S: RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: RefUnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: RefUnwindSafe,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> RefUnwindSafe for NovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::nova::NovaProver"]],["impl<F> RefUnwindSafe for PublicParams<F>
    where\n F: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe + RefUnwindSafe,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> RefUnwindSafe for Proof<F, S>
    where\n F: RefUnwindSafe,\n S: RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: RefUnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: RefUnwindSafe,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> RefUnwindSafe for SuperNovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> RefUnwindSafe for FoldingConfig<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::FoldingConfig"]],["impl RefUnwindSafe for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> RefUnwindSafe for Instance<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl RefUnwindSafe for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl RefUnwindSafe for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl RefUnwindSafe for State",1,["lurk::state::State"]],["impl RefUnwindSafe for Symbol",1,["lurk::symbol::Symbol"]],["impl RefUnwindSafe for UInt",1,["lurk::uint::UInt"]],["impl<F> RefUnwindSafe for ZCont<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> RefUnwindSafe for ZExpr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> RefUnwindSafe for ZPtr<E, F>
    where\n E: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> RefUnwindSafe for ZStore<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_store::ZStore"]],["impl RefUnwindSafe for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> RefUnwindSafe for AllocatedPtr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> RefUnwindSafe for AllocatedContPtr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl RefUnwindSafe for Settings",1,["lurk::config::Settings"]],["impl RefUnwindSafe for PerfConfig",1,["lurk::config::PerfConfig"]],["impl RefUnwindSafe for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl RefUnwindSafe for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl RefUnwindSafe for Flow",1,["lurk::config::Flow"]],["impl<F, C> RefUnwindSafe for CircomCoprocessor<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> RefUnwindSafe for Sha256Coprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> RefUnwindSafe for Sha256Coproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> RefUnwindSafe for Error<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> RefUnwindSafe for TrieCoproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> RefUnwindSafe for NewCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> RefUnwindSafe for LookupCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> RefUnwindSafe for InsertCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for LookupProof<F, ARITY, HEIGHT>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> RefUnwindSafe for InsertProof<F, ARITY, HEIGHT>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl RefUnwindSafe for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> RefUnwindSafe for Transcript<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> RefUnwindSafe for CircuitTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl RefUnwindSafe for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> RefUnwindSafe for AllocatedProvenance<F>",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> RefUnwindSafe for Scope<Q, M, F>",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> RefUnwindSafe for CircuitScope<F, CM>
    where\n CM: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> RefUnwindSafe for CoroutineCircuit<'a, F, CM, Q>",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> RefUnwindSafe for LogMemo<F>",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> RefUnwindSafe for LogMemoCircuit<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl !RefUnwindSafe for ProofError",1,["lurk::error::ProofError"]],["impl RefUnwindSafe for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> RefUnwindSafe for DummyCoprocessor<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> RefUnwindSafe for Coproc<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> RefUnwindSafe for Lang<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> RefUnwindSafe for Binding<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> RefUnwindSafe for Frame<T, W, F, C>",1,["lurk::eval::Frame"]],["impl RefUnwindSafe for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> RefUnwindSafe for FWrap<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::field::FWrap"]],["impl<F> RefUnwindSafe for AllocatedVal<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> RefUnwindSafe for SlotsAllocations<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> RefUnwindSafe for SlotWitness<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> RefUnwindSafe for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> RefUnwindSafe for EvalConfig<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> RefUnwindSafe for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl RefUnwindSafe for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl RefUnwindSafe for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> RefUnwindSafe for Store<F>",1,["lurk::lem::store::Store"]],["impl<'a, F, T> RefUnwindSafe for WithStore<'a, F, T>",1,["lurk::lem::store::WithStore"]],["impl RefUnwindSafe for Tag",1,["lurk::lem::tag::Tag"]],["impl RefUnwindSafe for Func",1,["lurk::lem::Func"]],["impl RefUnwindSafe for Var",1,["lurk::lem::Var"]],["impl RefUnwindSafe for Lit",1,["lurk::lem::Lit"]],["impl RefUnwindSafe for Block",1,["lurk::lem::Block"]],["impl RefUnwindSafe for Ctrl",1,["lurk::lem::Ctrl"]],["impl RefUnwindSafe for Op",1,["lurk::lem::Op"]],["impl<F> RefUnwindSafe for Num<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::num::Num"]],["impl RefUnwindSafe for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> RefUnwindSafe for ParseErrorKind<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> RefUnwindSafe for ParseError<I, F>
    where\n F: RefUnwindSafe,\n I: RefUnwindSafe,
    ",1,["lurk::parser::error::ParseError"]],["impl RefUnwindSafe for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> RefUnwindSafe for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl RefUnwindSafe for Error",1,["lurk::parser::Error"]],["impl<F> RefUnwindSafe for PublicParams<F>
    where\n F: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe + RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe + RefUnwindSafe,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> RefUnwindSafe for Proof<F, S>
    where\n F: RefUnwindSafe,\n S: RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: RefUnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: RefUnwindSafe,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> RefUnwindSafe for NovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::nova::NovaProver"]],["impl<F> RefUnwindSafe for PublicParams<F>
    where\n F: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe + RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe + RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe + RefUnwindSafe,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> RefUnwindSafe for Proof<F, S>
    where\n F: RefUnwindSafe,\n S: RefUnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: RefUnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: RefUnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: RefUnwindSafe,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> RefUnwindSafe for SuperNovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> RefUnwindSafe for FoldingConfig<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::FoldingConfig"]],["impl RefUnwindSafe for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> RefUnwindSafe for Instance<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::public_parameters::instance::Instance"]],["impl RefUnwindSafe for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl RefUnwindSafe for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl RefUnwindSafe for State",1,["lurk::state::State"]],["impl RefUnwindSafe for Symbol",1,["lurk::symbol::Symbol"]],["impl RefUnwindSafe for UInt",1,["lurk::uint::UInt"]],["impl<F> RefUnwindSafe for ZCont<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> RefUnwindSafe for ZExpr<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> RefUnwindSafe for ZPtr<E, F>
    where\n E: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> RefUnwindSafe for ZStore<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_store::ZStore"]],["impl RefUnwindSafe for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl RefUnwindSafe for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl !RefUnwindSafe for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 37e71b88ee..857eee6ff9 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"lurk":[["impl<F> UnwindSafe for AllocatedPtr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> UnwindSafe for AllocatedContPtr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl UnwindSafe for Settings",1,["lurk::config::Settings"]],["impl UnwindSafe for PerfConfig",1,["lurk::config::PerfConfig"]],["impl UnwindSafe for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl UnwindSafe for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl UnwindSafe for Flow",1,["lurk::config::Flow"]],["impl<F, C> UnwindSafe for CircomCoprocessor<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> UnwindSafe for Sha256Coprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> UnwindSafe for Sha256Coproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> UnwindSafe for Error<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> UnwindSafe for TrieCoproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> UnwindSafe for NewCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> UnwindSafe for LookupCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> UnwindSafe for InsertCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for LookupProof<F, ARITY, HEIGHT>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for InsertProof<F, ARITY, HEIGHT>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl<F> UnwindSafe for Transcript<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> UnwindSafe for CircuitTranscript<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl<Q, M> UnwindSafe for Scope<Q, M>
    where\n M: UnwindSafe,\n Q: UnwindSafe,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> UnwindSafe for CircuitScope<F, CM>
    where\n CM: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> UnwindSafe for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: UnwindSafe,\n F: UnwindSafe + RefUnwindSafe,\n Q: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> UnwindSafe for LogMemo<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> UnwindSafe for LogMemoCircuit<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl !UnwindSafe for ProofError",1,["lurk::error::ProofError"]],["impl UnwindSafe for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> UnwindSafe for DummyCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> UnwindSafe for Coproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> UnwindSafe for Lang<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> UnwindSafe for Binding<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> UnwindSafe for Frame<T, W, F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,\n T: UnwindSafe,\n W: UnwindSafe,
    ",1,["lurk::eval::Frame"]],["impl UnwindSafe for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> UnwindSafe for FWrap<F>
    where\n F: UnwindSafe,
    ",1,["lurk::field::FWrap"]],["impl<F> UnwindSafe for AllocatedVal<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> UnwindSafe for SlotsAllocations<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> UnwindSafe for SlotWitness<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> UnwindSafe for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> UnwindSafe for EvalConfig<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> UnwindSafe for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl UnwindSafe for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl UnwindSafe for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> UnwindSafe for Store<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::store::Store"]],["impl UnwindSafe for Tag",1,["lurk::lem::tag::Tag"]],["impl UnwindSafe for Func",1,["lurk::lem::Func"]],["impl UnwindSafe for Var",1,["lurk::lem::Var"]],["impl UnwindSafe for Lit",1,["lurk::lem::Lit"]],["impl UnwindSafe for Block",1,["lurk::lem::Block"]],["impl UnwindSafe for Ctrl",1,["lurk::lem::Ctrl"]],["impl UnwindSafe for Op",1,["lurk::lem::Op"]],["impl<F> UnwindSafe for Num<F>
    where\n F: UnwindSafe,
    ",1,["lurk::num::Num"]],["impl UnwindSafe for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> UnwindSafe for ParseErrorKind<F>
    where\n F: UnwindSafe,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> UnwindSafe for ParseError<I, F>
    where\n F: UnwindSafe,\n I: UnwindSafe,
    ",1,["lurk::parser::error::ParseError"]],["impl UnwindSafe for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> UnwindSafe for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl UnwindSafe for Error",1,["lurk::parser::Error"]],["impl<F> UnwindSafe for PublicParams<F>
    where\n F: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> UnwindSafe for Proof<F, S>
    where\n F: UnwindSafe,\n S: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: UnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: UnwindSafe,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> UnwindSafe for NovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::nova::NovaProver"]],["impl<F> UnwindSafe for PublicParams<F>
    where\n F: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> UnwindSafe for Proof<F, S>
    where\n F: UnwindSafe,\n S: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: UnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: UnwindSafe,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> UnwindSafe for SuperNovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> UnwindSafe for FoldingConfig<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::FoldingConfig"]],["impl UnwindSafe for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> UnwindSafe for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl UnwindSafe for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl UnwindSafe for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl UnwindSafe for State",1,["lurk::state::State"]],["impl UnwindSafe for Symbol",1,["lurk::symbol::Symbol"]],["impl UnwindSafe for UInt",1,["lurk::uint::UInt"]],["impl<F> UnwindSafe for ZCont<F>
    where\n F: UnwindSafe,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> UnwindSafe for ZExpr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> UnwindSafe for ZPtr<E, F>
    where\n E: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> UnwindSafe for ZStore<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_store::ZStore"]],["impl UnwindSafe for ZData",1,["lurk::z_data::ZData"]]], +"lurk":[["impl<F> UnwindSafe for AllocatedPtr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedPtr"]],["impl<F> UnwindSafe for AllocatedContPtr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::circuit::gadgets::pointer::AllocatedContPtr"]],["impl UnwindSafe for Settings",1,["lurk::config::Settings"]],["impl UnwindSafe for PerfConfig",1,["lurk::config::PerfConfig"]],["impl UnwindSafe for ParallelConfig",1,["lurk::config::ParallelConfig"]],["impl UnwindSafe for WitnessGeneration",1,["lurk::config::WitnessGeneration"]],["impl UnwindSafe for Flow",1,["lurk::config::Flow"]],["impl<F, C> UnwindSafe for CircomCoprocessor<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::coprocessor::circom::non_wasm::CircomCoprocessor"]],["impl<F> UnwindSafe for Sha256Coprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coprocessor"]],["impl<F> UnwindSafe for Sha256Coproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::sha256::Sha256Coproc"]],["impl<F> UnwindSafe for Error<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::Error"]],["impl<F> UnwindSafe for TrieCoproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::TrieCoproc"]],["impl<F> UnwindSafe for NewCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::NewCoprocessor"]],["impl<F> UnwindSafe for LookupCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupCoprocessor"]],["impl<F> UnwindSafe for InsertCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertCoprocessor"]],["impl<'a, F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for Trie<'a, F, ARITY, HEIGHT>",1,["lurk::coprocessor::trie::Trie"]],["impl<F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for LookupProof<F, ARITY, HEIGHT>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::LookupProof"]],["impl<F, const ARITY: usize, const HEIGHT: usize> UnwindSafe for InsertProof<F, ARITY, HEIGHT>
    where\n F: UnwindSafe,
    ",1,["lurk::coprocessor::trie::InsertProof"]],["impl UnwindSafe for MemoSetError",1,["lurk::coroutine::memoset::MemoSetError"]],["impl<F> UnwindSafe for Transcript<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::Transcript"]],["impl<F> UnwindSafe for CircuitTranscript<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitTranscript"]],["impl UnwindSafe for Provenance",1,["lurk::coroutine::memoset::Provenance"]],["impl<F> UnwindSafe for AllocatedProvenance<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::AllocatedProvenance"]],["impl<Q, M, F> UnwindSafe for Scope<Q, M, F>
    where\n F: UnwindSafe,\n M: UnwindSafe,\n Q: UnwindSafe,
    ",1,["lurk::coroutine::memoset::Scope"]],["impl<F, CM> UnwindSafe for CircuitScope<F, CM>
    where\n CM: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CircuitScope"]],["impl<'a, F, CM, Q> UnwindSafe for CoroutineCircuit<'a, F, CM, Q>
    where\n CM: UnwindSafe,\n F: UnwindSafe + RefUnwindSafe,\n Q: UnwindSafe,
    ",1,["lurk::coroutine::memoset::CoroutineCircuit"]],["impl<F> UnwindSafe for LogMemo<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemo"]],["impl<F> UnwindSafe for LogMemoCircuit<F>
    where\n F: UnwindSafe,
    ",1,["lurk::coroutine::memoset::LogMemoCircuit"]],["impl !UnwindSafe for ProofError",1,["lurk::error::ProofError"]],["impl UnwindSafe for ReductionError",1,["lurk::error::ReductionError"]],["impl<F> UnwindSafe for DummyCoprocessor<F>
    where\n F: UnwindSafe,
    ",1,["lurk::eval::lang::DummyCoprocessor"]],["impl<F> UnwindSafe for Coproc<F>
    where\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Coproc"]],["impl<F, C> UnwindSafe for Lang<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Lang"]],["impl<F, C> UnwindSafe for Binding<F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::eval::lang::Binding"]],["impl<T, W, F, C> UnwindSafe for Frame<T, W, F, C>
    where\n C: UnwindSafe,\n F: UnwindSafe,\n T: UnwindSafe,\n W: UnwindSafe,
    ",1,["lurk::eval::Frame"]],["impl UnwindSafe for LanguageField",1,["lurk::field::LanguageField"]],["impl<F> UnwindSafe for FWrap<F>
    where\n F: UnwindSafe,
    ",1,["lurk::field::FWrap"]],["impl<F> UnwindSafe for AllocatedVal<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::AllocatedVal"]],["impl<F> UnwindSafe for SlotsAllocations<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::SlotsAllocations"]],["impl<F> UnwindSafe for SlotWitness<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::circuit::SlotWitness"]],["impl<F> UnwindSafe for GlobalAllocator<F>",1,["lurk::lem::circuit::GlobalAllocator"]],["impl<'a, F, C> UnwindSafe for EvalConfig<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::lem::eval::EvalConfig"]],["impl<'a, F, C> UnwindSafe for MultiFrame<'a, F, C>",1,["lurk::lem::multiframe::MultiFrame"]],["impl UnwindSafe for RawPtr",1,["lurk::lem::pointers::RawPtr"]],["impl UnwindSafe for Ptr",1,["lurk::lem::pointers::Ptr"]],["impl<F> UnwindSafe for Store<F>
    where\n F: UnwindSafe,
    ",1,["lurk::lem::store::Store"]],["impl<'a, F, T> UnwindSafe for WithStore<'a, F, T>
    where\n F: UnwindSafe + RefUnwindSafe,\n T: UnwindSafe,
    ",1,["lurk::lem::store::WithStore"]],["impl UnwindSafe for Tag",1,["lurk::lem::tag::Tag"]],["impl UnwindSafe for Func",1,["lurk::lem::Func"]],["impl UnwindSafe for Var",1,["lurk::lem::Var"]],["impl UnwindSafe for Lit",1,["lurk::lem::Lit"]],["impl UnwindSafe for Block",1,["lurk::lem::Block"]],["impl UnwindSafe for Ctrl",1,["lurk::lem::Ctrl"]],["impl UnwindSafe for Op",1,["lurk::lem::Op"]],["impl<F> UnwindSafe for Num<F>
    where\n F: UnwindSafe,
    ",1,["lurk::num::Num"]],["impl UnwindSafe for LitBase",1,["lurk::parser::base::LitBase"]],["impl<F> UnwindSafe for ParseErrorKind<F>
    where\n F: UnwindSafe,
    ",1,["lurk::parser::error::ParseErrorKind"]],["impl<I, F> UnwindSafe for ParseError<I, F>
    where\n F: UnwindSafe,\n I: UnwindSafe,
    ",1,["lurk::parser::error::ParseError"]],["impl UnwindSafe for Pos",1,["lurk::parser::position::Pos"]],["impl<'a> UnwindSafe for StringFragment<'a>",1,["lurk::parser::string::StringFragment"]],["impl UnwindSafe for Error",1,["lurk::parser::Error"]],["impl<F> UnwindSafe for PublicParams<F>
    where\n F: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe,
    ",1,["lurk::proof::nova::PublicParams"]],["impl<F, S> UnwindSafe for Proof<F, S>
    where\n F: UnwindSafe,\n S: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: UnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: UnwindSafe,
    ",1,["lurk::proof::nova::Proof"]],["impl<'a, F, C> UnwindSafe for NovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::nova::NovaProver"]],["impl<F> UnwindSafe for PublicParams<F>
    where\n F: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::CommitmentKey: RefUnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CommitmentKey: RefUnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::RO as ROTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base, F>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::RO as ROTrait<F, <<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::ROCircuit as ROCircuitTrait<<<F as CurveCycleEquipped>::E1 as Engine>::Base>>::Constants: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::ROCircuit as ROCircuitTrait<F>>::Constants: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::ProverKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::VerifierKey: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::VerifierKey: UnwindSafe,
    ",1,["lurk::proof::supernova::PublicParams"]],["impl<F, S> UnwindSafe for Proof<F, S>
    where\n F: UnwindSafe,\n S: UnwindSafe,\n <<F as CurveCycleEquipped>::E1 as Engine>::Base: UnwindSafe,\n <<<F as CurveCycleEquipped>::E1 as Engine>::CE as CommitmentEngineTrait<<F as CurveCycleEquipped>::E1>>::Commitment: UnwindSafe,\n <<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment: UnwindSafe,\n <<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::CE as CommitmentEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::Commitment as CommitmentTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::CompressedCommitment: UnwindSafe,\n <<F as CurveCycleEquipped>::EE1 as EvaluationEngineTrait<<F as CurveCycleEquipped>::E1>>::EvaluationArgument: UnwindSafe,\n <<F as CurveCycleEquipped>::EE2 as EvaluationEngineTrait<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary>>::EvaluationArgument: UnwindSafe,
    ",1,["lurk::proof::supernova::Proof"]],["impl<'a, F, C> UnwindSafe for SuperNovaProver<'a, F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::SuperNovaProver"]],["impl<F, C> UnwindSafe for FoldingConfig<F, C>
    where\n C: RefUnwindSafe,\n F: RefUnwindSafe,
    ",1,["lurk::proof::supernova::FoldingConfig"]],["impl UnwindSafe for FoldingMode",1,["lurk::proof::FoldingMode"]],["impl<F, C> UnwindSafe for Instance<F, C>",1,["lurk::public_parameters::instance::Instance"]],["impl UnwindSafe for Kind",1,["lurk::public_parameters::instance::Kind"]],["impl UnwindSafe for Metadata",1,["lurk::public_parameters::instance::Metadata"]],["impl UnwindSafe for State",1,["lurk::state::State"]],["impl UnwindSafe for Symbol",1,["lurk::symbol::Symbol"]],["impl UnwindSafe for UInt",1,["lurk::uint::UInt"]],["impl<F> UnwindSafe for ZCont<F>
    where\n F: UnwindSafe,
    ",1,["lurk::z_data::z_cont::ZCont"]],["impl<F> UnwindSafe for ZExpr<F>
    where\n F: UnwindSafe,
    ",1,["lurk::z_data::z_expr::ZExpr"]],["impl<E, F> UnwindSafe for ZPtr<E, F>
    where\n E: UnwindSafe,\n F: UnwindSafe,
    ",1,["lurk::z_data::z_ptr::ZPtr"]],["impl<F> UnwindSafe for ZStore<F>
    where\n F: RefUnwindSafe,
    ",1,["lurk::z_data::z_store::ZStore"]],["impl UnwindSafe for ZData",1,["lurk::z_data::ZData"]]], "lurk_metrics":[["impl UnwindSafe for MetricsSink",1,["lurk_metrics::MetricsSink"]],["impl !UnwindSafe for MetricsSinkHandle",1,["lurk_metrics::MetricsSinkHandle"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js b/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js index 6bac3a9d82..a7f05c8617 100644 --- a/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js +++ b/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"lurk":[["impl Arbitrary for LanguageField"],["impl<F: LurkField> Arbitrary for ZExpr<F>"],["impl<F: LurkField> Arbitrary for ZCont<F>"],["impl<Fr: LurkField> Arbitrary for Num<Fr>"],["impl<F: LurkField + Debug> Arbitrary for ZStore<F>"],["impl<F: LurkField> Arbitrary for FWrap<F>"],["impl Arbitrary for Symbol"],["impl Arbitrary for Pos"],["impl Arbitrary for ZData"],["impl Arbitrary for UInt"],["impl<E: Tag + Arbitrary, F: LurkField + Debug> Arbitrary for ZPtr<E, F>"]] +"lurk":[["impl Arbitrary for Pos"],["impl<F: LurkField> Arbitrary for ZCont<F>"],["impl<E: Tag + Arbitrary, F: LurkField + Debug> Arbitrary for ZPtr<E, F>"],["impl<F: LurkField> Arbitrary for ZExpr<F>"],["impl<Fr: LurkField> Arbitrary for Num<Fr>"],["impl Arbitrary for UInt"],["impl Arbitrary for ZData"],["impl Arbitrary for LanguageField"],["impl<F: LurkField> Arbitrary for FWrap<F>"],["impl<F: LurkField + Debug> Arbitrary for ZStore<F>"],["impl Arbitrary for Symbol"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/de/trait.Deserialize.js b/docs/trait.impl/serde/de/trait.Deserialize.js index 640406375e..cdfc7cca87 100644 --- a/docs/trait.impl/serde/de/trait.Deserialize.js +++ b/docs/trait.impl/serde/de/trait.Deserialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"lurk":[["impl<'de, F, C> Deserialize<'de> for Lang<F, C>
    where\n C: Deserialize<'de>,
    "],["impl<'de, F> Deserialize<'de> for ZCont<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F> Deserialize<'de> for NewCoprocessor<F>"],["impl<'de, F> Deserialize<'de> for Sha256Coproc<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F: LurkField> Deserialize<'de> for Sha256Coprocessor<F>"],["impl<'de, F> Deserialize<'de> for Coproc<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F> Deserialize<'de> for DummyCoprocessor<F>"],["impl<'de> Deserialize<'de> for Kind"],["impl<'de, F> Deserialize<'de> for ZExpr<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de> Deserialize<'de> for Metadata"],["impl<'de> Deserialize<'de> for Ptr"],["impl<'de, F> Deserialize<'de> for ZStore<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de> Deserialize<'de> for Tag"],["impl<'de, E, F> Deserialize<'de> for ZPtr<E, F>
    where\n E: Deserialize<'de> + Tag,\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F: CurveCycleEquipped, S> Deserialize<'de> for Proof<F, S>"],["impl<'de> Deserialize<'de> for Symbol"],["impl<'de, F: LurkField> Deserialize<'de> for Num<F>"],["impl<'de, F: LurkField> Deserialize<'de> for FWrap<F>"],["impl<'de> Deserialize<'de> for Settings"],["impl<'de, F: CurveCycleEquipped, S> Deserialize<'de> for Proof<F, S>"],["impl<'de> Deserialize<'de> for LanguageField"],["impl<'de, F> Deserialize<'de> for InsertCoprocessor<F>"],["impl<'de, F> Deserialize<'de> for PublicParams<F>
    where\n F: CurveCycleEquipped,
    "],["impl<'de> Deserialize<'de> for PerfConfig"],["impl<'de, F> Deserialize<'de> for LookupCoprocessor<F>"],["impl<'de> Deserialize<'de> for UInt"],["impl<'de> Deserialize<'de> for RawPtr"]] +"lurk":[["impl<'de, F> Deserialize<'de> for Coproc<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, E, F> Deserialize<'de> for ZPtr<E, F>
    where\n E: Deserialize<'de> + Tag,\n F: Deserialize<'de> + LurkField,
    "],["impl<'de> Deserialize<'de> for UInt"],["impl<'de> Deserialize<'de> for Metadata"],["impl<'de, F> Deserialize<'de> for InsertCoprocessor<F>"],["impl<'de, F> Deserialize<'de> for ZCont<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F> Deserialize<'de> for NewCoprocessor<F>"],["impl<'de, F> Deserialize<'de> for Sha256Coproc<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F, C> Deserialize<'de> for Lang<F, C>
    where\n C: Deserialize<'de>,
    "],["impl<'de> Deserialize<'de> for PerfConfig"],["impl<'de, F: LurkField> Deserialize<'de> for Num<F>"],["impl<'de> Deserialize<'de> for Settings"],["impl<'de> Deserialize<'de> for Tag"],["impl<'de, F: CurveCycleEquipped, S> Deserialize<'de> for Proof<F, S>"],["impl<'de, F> Deserialize<'de> for PublicParams<F>
    where\n F: CurveCycleEquipped,
    "],["impl<'de> Deserialize<'de> for Kind"],["impl<'de, F: CurveCycleEquipped, S> Deserialize<'de> for Proof<F, S>"],["impl<'de, F> Deserialize<'de> for ZStore<F>
    where\n F: Deserialize<'de> + LurkField,
    "],["impl<'de, F: LurkField> Deserialize<'de> for Sha256Coprocessor<F>"],["impl<'de> Deserialize<'de> for RawPtr"],["impl<'de> Deserialize<'de> for Symbol"],["impl<'de> Deserialize<'de> for LanguageField"],["impl<'de, F> Deserialize<'de> for LookupCoprocessor<F>"],["impl<'de, F> Deserialize<'de> for DummyCoprocessor<F>"],["impl<'de> Deserialize<'de> for Ptr"],["impl<'de, F: LurkField> Deserialize<'de> for FWrap<F>"],["impl<'de, F> Deserialize<'de> for ZExpr<F>
    where\n F: Deserialize<'de> + LurkField,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/ser/trait.Serialize.js b/docs/trait.impl/serde/ser/trait.Serialize.js index e83e1406ef..6489cd3099 100644 --- a/docs/trait.impl/serde/ser/trait.Serialize.js +++ b/docs/trait.impl/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"lurk":[["impl Serialize for Kind"],["impl<F> Serialize for ZExpr<F>
    where\n F: Serialize + LurkField,
    "],["impl<F: CurveCycleEquipped, S> Serialize for Proof<F, S>"],["impl<F: CurveCycleEquipped, S> Serialize for Proof<F, S>"],["impl Serialize for Symbol"],["impl<F> Serialize for PublicParams<F>
    where\n F: CurveCycleEquipped,
    "],["impl<F> Serialize for ZStore<F>
    where\n F: Serialize + LurkField,
    "],["impl<F, C> Serialize for Lang<F, C>
    where\n C: Serialize,
    "],["impl Serialize for LanguageField"],["impl Serialize for Ptr"],["impl Serialize for RawPtr"],["impl<F> Serialize for DummyCoprocessor<F>"],["impl<F> Serialize for NewCoprocessor<F>"],["impl<F> Serialize for InsertCoprocessor<F>"],["impl<F> Serialize for ZCont<F>
    where\n F: Serialize + LurkField,
    "],["impl<F> Serialize for Sha256Coproc<F>
    where\n F: Serialize + LurkField,
    "],["impl<F> Serialize for Coproc<F>
    where\n F: Serialize + LurkField,
    "],["impl<F: LurkField> Serialize for Sha256Coprocessor<F>"],["impl<F: LurkField> Serialize for FWrap<F>"],["impl Serialize for UInt"],["impl<F> Serialize for LookupCoprocessor<F>"],["impl Serialize for Metadata"],["impl<E, F> Serialize for ZPtr<E, F>
    where\n E: Serialize + Tag,\n F: Serialize + LurkField,
    "],["impl<F: LurkField> Serialize for Num<F>"],["impl Serialize for Tag"]] +"lurk":[["impl<F> Serialize for NewCoprocessor<F>"],["impl<F: CurveCycleEquipped, S> Serialize for Proof<F, S>"],["impl<F: LurkField> Serialize for Sha256Coprocessor<F>"],["impl<F> Serialize for Coproc<F>
    where\n F: Serialize + LurkField,
    "],["impl<F: LurkField> Serialize for Num<F>"],["impl<F> Serialize for PublicParams<F>
    where\n F: CurveCycleEquipped,
    "],["impl Serialize for Metadata"],["impl<F: LurkField> Serialize for FWrap<F>"],["impl Serialize for LanguageField"],["impl Serialize for Symbol"],["impl Serialize for RawPtr"],["impl<F> Serialize for DummyCoprocessor<F>"],["impl<F> Serialize for ZCont<F>
    where\n F: Serialize + LurkField,
    "],["impl<F> Serialize for ZStore<F>
    where\n F: Serialize + LurkField,
    "],["impl<F> Serialize for Sha256Coproc<F>
    where\n F: Serialize + LurkField,
    "],["impl Serialize for Tag"],["impl<E, F> Serialize for ZPtr<E, F>
    where\n E: Serialize + Tag,\n F: Serialize + LurkField,
    "],["impl Serialize for UInt"],["impl<F> Serialize for InsertCoprocessor<F>"],["impl<F, C> Serialize for Lang<F, C>
    where\n C: Serialize,
    "],["impl<F> Serialize for ZExpr<F>
    where\n F: Serialize + LurkField,
    "],["impl<F: CurveCycleEquipped, S> Serialize for Proof<F, S>"],["impl Serialize for Kind"],["impl<F> Serialize for LookupCoprocessor<F>"],["impl Serialize for Ptr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/type.impl/lurk/lem/multiframe/struct.MultiFrame.js b/docs/type.impl/lurk/lem/multiframe/struct.MultiFrame.js index bd7ea1311a..8e43b78bc2 100644 --- a/docs/type.impl/lurk/lem/multiframe/struct.MultiFrame.js +++ b/docs/type.impl/lurk/lem/multiframe/struct.MultiFrame.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"lurk":[["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> MultiFrame<'a, F, C>

    source

    pub fn frames(&self) -> Option<&Vec<Frame>>

    source

    pub fn emitted(_store: &Store<F>, eval_frame: &Frame) -> Vec<Ptr>

    source

    pub fn cache_witness(&mut self, s: &Store<F>) -> Result<(), SynthesisError>

    source

    pub fn clear_cached_witness(&mut self)

    source

    pub fn precedes(&self, maybe_next: &Self) -> bool

    source

    pub fn synthesize_frames<CS: ConstraintSystem<F>>(\n &self,\n cs: &mut CS,\n store: &Store<F>,\n input: Vec<AllocatedPtr<F>>,\n frames: &[Frame],\n g: &GlobalAllocator<F>\n) -> Result<Vec<AllocatedPtr<F>>, SynthesisError>

    source

    pub fn blank(folding_config: Arc<FoldingConfig<F, C>>, pc: usize) -> Self

    source

    pub fn from_frames(\n frames: &[Frame],\n store: &'a Store<F>,\n folding_config: &Arc<FoldingConfig<F, C>>\n) -> Vec<Self>

    source

    pub fn build_frames(\n expr: Ptr,\n env: Ptr,\n store: &Store<F>,\n limit: usize,\n ec: &EvalConfig<'_, F, C>\n) -> Result<Vec<Frame>, ProofError>

    source

    pub fn significant_frame_count(frames: &[Frame]) -> usize

    source

    pub fn program_counter(&self) -> usize

    ",0,"lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> FrameLike<Ptr> for MultiFrame<'a, F, C>

    §

    type FrameIO = Vec<Ptr>

    the type for the Frame’s IO
    source§

    fn input(&self) -> &Vec<Ptr>

    the input of the frame
    source§

    fn output(&self) -> &Vec<Ptr>

    the output of the frame
    ","FrameLike","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for MultiFrame<'a, F, C>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Provable<F> for MultiFrame<'a, F, C>

    source§

    fn public_inputs(&self) -> Vec<F>

    Returns the public inputs of the provable structure.
    source§

    fn public_input_size(&self) -> usize

    Returns the size of the public inputs.
    source§

    fn num_frames(&self) -> usize

    Returns the number of reduction frames in the provable structure.
    ","Provable","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the the number of inputs or outputs of each step\n(this method is called only at circuit synthesis time)\nsynthesize and output methods are expected to take as\ninput a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS: ConstraintSystem<F>>(\n &self,\n cs: &mut CS,\n _pc: Option<&AllocatedNum<F>>,\n z: &[AllocatedNum<F>]\n) -> Result<(Option<AllocatedNum<F>>, Vec<AllocatedNum<F>>), SynthesisError>

    Synthesize the circuit for a computation step and return variable\nthat corresponds to the output of the step pc_{i+1} and z_{i+1}
    source§

    fn circuit_index(&self) -> usize

    Return this StepCircuit’s assigned index, for use when enforcing the program counter.
    ","StepCircuit","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for MultiFrame<'a, F, C>

    source§

    fn clone(&self) -> MultiFrame<'a, F, C>

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

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

    Performs copy-assignment from source. Read more
    ","Clone","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the number of inputs or outputs of each step\n(this method is called only at circuit synthesis time)\nsynthesize and output methods are expected to take as\ninput a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS>(\n &self,\n cs: &mut CS,\n z: &[AllocatedNum<F>]\n) -> Result<Vec<AllocatedNum<F>>, SynthesisError>
    where\n CS: ConstraintSystem<F>,

    Sythesize the circuit for a computation step and return variable\nthat corresponds to the output of the step z_{i+1}
    ","StepCircuit","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F, C> NonUniformCircuit<<F as CurveCycleEquipped>::E1> for MultiFrame<'a, F, C>
    where\n F: CurveCycleEquipped + LurkField,\n C: Coprocessor<F> + 'a,

    §

    type C1 = MultiFrame<'a, F, C>

    The type of the step-circuits on the primary
    §

    type C2 = TrivialSecondaryCircuit<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::Scalar>

    The type of the step-circuits on the secondary
    source§

    fn num_circuits(&self) -> usize

    How many circuits are provided?
    source§

    fn primary_circuit(&self, circuit_index: usize) -> MultiFrame<'a, F, C>

    Return a new instance of the primary circuit at index.
    source§

    fn secondary_circuit(&self) -> C2<F>

    Return a new instance of the secondary circuit.
    §

    fn initial_circuit_index(&self) -> usize

    Initial circuit index, defaults to zero.
    ","NonUniformCircuit<::E1>","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Circuit<F> for MultiFrame<'a, F, C>

    source§

    fn synthesize<CS: ConstraintSystem<F>>(\n self,\n cs: &mut CS\n) -> Result<(), SynthesisError>

    Synthesize the circuit into a rank-1 quadratic constraint system.
    ","Circuit","lurk::proof::nova::C1LEM"]] +"lurk":[["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> MultiFrame<'a, F, C>

    source

    pub fn frames(&self) -> Option<&Vec<Frame>>

    source

    pub fn emitted(_store: &Store<F>, eval_frame: &Frame) -> Vec<Ptr>

    source

    pub fn cache_witness(&mut self, s: &Store<F>) -> Result<(), SynthesisError>

    source

    pub fn clear_cached_witness(&mut self)

    source

    pub fn precedes(&self, maybe_next: &Self) -> bool

    source

    pub fn synthesize_frames<CS: ConstraintSystem<F>>(\n &self,\n cs: &mut CS,\n store: &Store<F>,\n input: Vec<AllocatedPtr<F>>,\n frames: &[Frame],\n g: &GlobalAllocator<F>\n) -> Result<Vec<AllocatedPtr<F>>, SynthesisError>

    source

    pub fn blank(folding_config: Arc<FoldingConfig<F, C>>, pc: usize) -> Self

    source

    pub fn from_frames(\n frames: &[Frame],\n store: &'a Store<F>,\n folding_config: &Arc<FoldingConfig<F, C>>\n) -> Vec<Self>

    source

    pub fn build_frames(\n expr: Ptr,\n env: Ptr,\n store: &Store<F>,\n limit: usize,\n ec: &EvalConfig<'_, F, C>\n) -> Result<Vec<Frame>, ProofError>

    source

    pub fn significant_frame_count(frames: &[Frame]) -> usize

    source

    pub fn program_counter(&self) -> usize

    ",0,"lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the number of inputs or outputs of each step\n(this method is called only at circuit synthesis time)\nsynthesize and output methods are expected to take as\ninput a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS>(\n &self,\n cs: &mut CS,\n z: &[AllocatedNum<F>]\n) -> Result<Vec<AllocatedNum<F>>, SynthesisError>
    where\n CS: ConstraintSystem<F>,

    Sythesize the circuit for a computation step and return variable\nthat corresponds to the output of the step z_{i+1}
    ","StepCircuit","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F, C> NonUniformCircuit<<F as CurveCycleEquipped>::E1> for MultiFrame<'a, F, C>
    where\n F: CurveCycleEquipped + LurkField,\n C: Coprocessor<F> + 'a,

    §

    type C1 = MultiFrame<'a, F, C>

    The type of the step-circuits on the primary
    §

    type C2 = TrivialSecondaryCircuit<<<<F as CurveCycleEquipped>::E1 as CurveCycleEquipped>::Secondary as Engine>::Scalar>

    The type of the step-circuits on the secondary
    source§

    fn num_circuits(&self) -> usize

    How many circuits are provided?
    source§

    fn primary_circuit(&self, circuit_index: usize) -> MultiFrame<'a, F, C>

    Return a new instance of the primary circuit at index.
    source§

    fn secondary_circuit(&self) -> C2<F>

    Return a new instance of the secondary circuit.
    §

    fn initial_circuit_index(&self) -> usize

    Initial circuit index, defaults to zero.
    ","NonUniformCircuit<::E1>","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> FrameLike<Ptr> for MultiFrame<'a, F, C>

    §

    type FrameIO = Vec<Ptr>

    the type for the Frame’s IO
    source§

    fn input(&self) -> &Vec<Ptr>

    the input of the frame
    source§

    fn output(&self) -> &Vec<Ptr>

    the output of the frame
    ","FrameLike","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> StepCircuit<F> for MultiFrame<'a, F, C>

    source§

    fn arity(&self) -> usize

    Return the the number of inputs or outputs of each step\n(this method is called only at circuit synthesis time)\nsynthesize and output methods are expected to take as\ninput a vector of size equal to arity and output a vector of size equal to arity
    source§

    fn synthesize<CS: ConstraintSystem<F>>(\n &self,\n cs: &mut CS,\n _pc: Option<&AllocatedNum<F>>,\n z: &[AllocatedNum<F>]\n) -> Result<(Option<AllocatedNum<F>>, Vec<AllocatedNum<F>>), SynthesisError>

    Synthesize the circuit for a computation step and return variable\nthat corresponds to the output of the step pc_{i+1} and z_{i+1}
    source§

    fn circuit_index(&self) -> usize

    Return this StepCircuit’s assigned index, for use when enforcing the program counter.
    ","StepCircuit","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: Debug + LurkField, C: Debug + Coprocessor<F>> Debug for MultiFrame<'a, F, C>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Provable<F> for MultiFrame<'a, F, C>

    source§

    fn public_inputs(&self) -> Vec<F>

    Returns the public inputs of the provable structure.
    source§

    fn public_input_size(&self) -> usize

    Returns the size of the public inputs.
    source§

    fn num_frames(&self) -> usize

    Returns the number of reduction frames in the provable structure.
    ","Provable","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: LurkField, C: Coprocessor<F>> Circuit<F> for MultiFrame<'a, F, C>

    source§

    fn synthesize<CS: ConstraintSystem<F>>(\n self,\n cs: &mut CS\n) -> Result<(), SynthesisError>

    Synthesize the circuit into a rank-1 quadratic constraint system.
    ","Circuit","lurk::proof::nova::C1LEM"],["
    source§

    impl<'a, F: Clone + LurkField, C: Clone + Coprocessor<F>> Clone for MultiFrame<'a, F, C>

    source§

    fn clone(&self) -> MultiFrame<'a, F, C>

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

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

    Performs copy-assignment from source. Read more
    ","Clone","lurk::proof::nova::C1LEM"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/docs/type.impl/lurk/z_data/z_ptr/struct.ZPtr.js b/docs/type.impl/lurk/z_data/z_ptr/struct.ZPtr.js index 46a456f406..543d3e3235 100644 --- a/docs/type.impl/lurk/z_data/z_ptr/struct.ZPtr.js +++ b/docs/type.impl/lurk/z_data/z_ptr/struct.ZPtr.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"lurk":[["
    source§

    impl<E: Tag, F: LurkField> ZPtr<E, F>

    source

    pub fn from_parts(tag: E, value: F) -> Self

    Creates a ZPtr from a tag and a value

    \n
    source

    pub fn tag(&self) -> &E

    Returns the tag

    \n
    source

    pub fn tag_field(&self) -> F

    Returns the tag in field representation

    \n
    source

    pub fn value(&self) -> &F

    Returns the value

    \n
    source

    pub fn parts(&self) -> (F, F)

    source

    pub fn to_base32(&self) -> String

    Converts the ZPtr to a base32-encoded string

    \n
    source

    pub fn from_base32(zptr: &str) -> Result<Self, Error>

    Converts a base32-encoded string to a ZPtr

    \n
    ",0,"lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> StructuralPartialEq for ZPtr<E, F>

    ","StructuralPartialEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Clone + Tag, F: Clone + LurkField> Clone for ZPtr<E, F>

    source§

    fn clone(&self) -> ZPtr<E, F>

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

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

    Performs copy-assignment from source. Read more
    ","Clone","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> Hash for ZPtr<E, F>

    source§

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

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> StructuralEq for ZPtr<E, F>

    ","StructuralEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Copy + Tag, F: Copy + LurkField> Copy for ZPtr<E, F>

    ","Copy","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Debug + Tag, F: Debug + LurkField> Debug for ZPtr<E, F>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<'de, E, F> Deserialize<'de> for ZPtr<E, F>
    where\n E: Deserialize<'de> + Tag,\n F: Deserialize<'de> + LurkField,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: PartialEq + Tag, F: PartialEq + LurkField> PartialEq for ZPtr<E, F>

    source§

    fn eq(&self, other: &ZPtr<E, F>) -> bool

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

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag + Display, F: LurkField> Display for ZPtr<E, F>

    source§

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

    Formats the value using the given formatter. Read more
    ","Display","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> PartialOrd for ZPtr<E, F>

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

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

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

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

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

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

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

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

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> Ord for ZPtr<E, F>

    source§

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

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

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

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

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

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

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

    Restrict a value to a certain interval. Read more
    ","Ord","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E, F> Serialize for ZPtr<E, F>
    where\n E: Serialize + Tag,\n F: Serialize + LurkField,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag + Arbitrary, F: LurkField + Debug> Arbitrary for ZPtr<E, F>

    §

    type Parameters = <E as Arbitrary>::Parameters

    The type of parameters that arbitrary_with accepts for configuration\nof the generated Strategy. Parameters must implement Default.
    §

    type Strategy = Map<(<E as Arbitrary>::Strategy, BoxedStrategy<F>), fn(_: (E, F)) -> ZPtr<E, F>>

    The type of Strategy used to generate values of type Self.
    source§

    fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the\nimplementing type (Self). The strategy is passed the arguments given\nin args. Read more
    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values\nof type the implementing type (Self). Read more
    ","Arbitrary","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Eq + Tag, F: Eq + LurkField> Eq for ZPtr<E, F>

    ","Eq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"]] +"lurk":[["
    source§

    impl<E: Tag, F: LurkField> ZPtr<E, F>

    source

    pub fn from_parts(tag: E, value: F) -> Self

    Creates a ZPtr from a tag and a value

    \n
    source

    pub fn tag(&self) -> &E

    Returns the tag

    \n
    source

    pub fn tag_field(&self) -> F

    Returns the tag in field representation

    \n
    source

    pub fn value(&self) -> &F

    Returns the value

    \n
    source

    pub fn parts(&self) -> (F, F)

    source

    pub fn to_base32(&self) -> String

    Converts the ZPtr to a base32-encoded string

    \n
    source

    pub fn from_base32(zptr: &str) -> Result<Self, Error>

    Converts a base32-encoded string to a ZPtr

    \n
    ",0,"lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> Hash for ZPtr<E, F>

    source§

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

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: PartialEq + Tag, F: PartialEq + LurkField> PartialEq for ZPtr<E, F>

    source§

    fn eq(&self, other: &ZPtr<E, F>) -> bool

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

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> PartialOrd for ZPtr<E, F>

    source§

    fn partial_cmp(&self, other: &Self) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

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

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

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

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

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

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

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

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<'de, E, F> Deserialize<'de> for ZPtr<E, F>
    where\n E: Deserialize<'de> + Tag,\n F: Deserialize<'de> + LurkField,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> StructuralPartialEq for ZPtr<E, F>

    ","StructuralPartialEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Debug + Tag, F: Debug + LurkField> Debug for ZPtr<E, F>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Copy + Tag, F: Copy + LurkField> Copy for ZPtr<E, F>

    ","Copy","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag + Display, F: LurkField> Display for ZPtr<E, F>

    source§

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

    Formats the value using the given formatter. Read more
    ","Display","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Clone + Tag, F: Clone + LurkField> Clone for ZPtr<E, F>

    source§

    fn clone(&self) -> ZPtr<E, F>

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

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

    Performs copy-assignment from source. Read more
    ","Clone","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> Ord for ZPtr<E, F>

    source§

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

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

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

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

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

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

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

    Restrict a value to a certain interval. Read more
    ","Ord","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag + Arbitrary, F: LurkField + Debug> Arbitrary for ZPtr<E, F>

    §

    type Parameters = <E as Arbitrary>::Parameters

    The type of parameters that arbitrary_with accepts for configuration\nof the generated Strategy. Parameters must implement Default.
    §

    type Strategy = Map<(<E as Arbitrary>::Strategy, BoxedStrategy<F>), fn(_: (E, F)) -> ZPtr<E, F>>

    The type of Strategy used to generate values of type Self.
    source§

    fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy

    Generates a Strategy for producing arbitrary values of type the\nimplementing type (Self). The strategy is passed the arguments given\nin args. Read more
    §

    fn arbitrary() -> Self::Strategy

    Generates a Strategy for producing arbitrary values\nof type the implementing type (Self). Read more
    ","Arbitrary","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Tag, F: LurkField> StructuralEq for ZPtr<E, F>

    ","StructuralEq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E, F> Serialize for ZPtr<E, F>
    where\n E: Serialize + Tag,\n F: Serialize + LurkField,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"],["
    source§

    impl<E: Eq + Tag, F: Eq + LurkField> Eq for ZPtr<E, F>

    ","Eq","lurk::lem::pointers::ZPtr","lurk::z_data::z_ptr::ZExprPtr","lurk::z_data::z_ptr::ZContPtr"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file