From e0bdc75f0b321d87092ad0d02f36f740a2e5932d Mon Sep 17 00:00:00 2001 From: mikebenfield Date: Wed, 29 Jan 2025 20:03:13 +0000 Subject: [PATCH] deploy: 4faaaaea4450c8980a9fdc96e0abb620ad9445e2 --- .../common/identifier/struct.Identifier.html | 4 +- leo_ast/common/node/trait.Node.html | 2 +- leo_ast/expressions/enum.Expression.html | 6 +- leo_ast/expressions/enum.UnaryOperation.html | 10 +- .../expressions/err/struct.ErrExpression.html | 4 +- leo_ast/expressions/index.html | 2 +- leo_ast/expressions/struct.ErrExpression.html | 4 +- .../expressions/struct.UnaryExpression.html | 10 +- .../unary/enum.UnaryOperation.html | 10 +- leo_ast/expressions/unary/index.html | 2 +- .../unary/struct.UnaryExpression.html | 10 +- leo_ast/functions/struct.Function.html | 4 +- leo_ast/functions/variant/enum.Variant.html | 12 +- leo_ast/functions/variant/index.html | 2 +- leo_ast/program/program_scope/index.html | 2 +- .../program_scope/struct.ProgramScope.html | 2 +- leo_ast/statement/const_/index.html | 2 +- .../const_/struct.ConstDeclaration.html | 6 +- leo_ast/statement/definition/index.html | 2 +- .../struct.DefinitionStatement.html | 2 +- leo_compiler/compiler/index.html | 2 +- leo_compiler/compiler/struct.Compiler.html | 42 +- leo_compiler/struct.Compiler.html | 42 +- .../common/backtraced/struct.Backtraced.html | 2 +- .../common/formatted/struct.Formatted.html | 2 +- .../common/traits/trait.LeoMessageCode.html | 8 +- .../compiler_errors/enum.CompilerError.html | 16 +- .../compiler/compiler_errors/index.html | 2 +- leo_errors/errors/index.html | 3 +- leo_errors/errors/loop_unroller/index.html | 5 +- .../enum.LoopUnrollerError.html | 6 +- .../loop_unroller_errors/index.html | 3 +- .../enum.StaticAnalyzerError.html | 25 +- .../static_analyzer_error/index.html | 2 +- .../enum.TypeCheckerError.html | 104 +- .../type_checker_error/index.html | 2 +- leo_interpreter/all.html | 2 +- leo_interpreter/constant.HELP.html | 2 +- leo_interpreter/constant.INTRO.html | 2 +- .../fn.evaluate_core_function.html | 6 + leo_interpreter/core_functions/index.html | 1 + .../core_functions/sidebar-items.js | 1 + .../trait.CoreFunctionHelper.html | 34 + leo_interpreter/cursor/enum.AleoContext.html | 4 +- leo_interpreter/cursor/enum.Element.html | 4 +- .../cursor/enum.FunctionVariant.html | 4 +- .../cursor/fn.evaluate_binary.html | 6 +- leo_interpreter/cursor/fn.evaluate_unary.html | 4 +- .../cursor/fn.literal_to_value.html | 1 + leo_interpreter/cursor/index.html | 4 +- leo_interpreter/cursor/sidebar-items.js | 2 +- .../cursor/struct.ContextStack.html | 8 +- leo_interpreter/cursor/struct.Cursor.html | 37 +- leo_interpreter/cursor/struct.Frame.html | 4 +- .../cursor/struct.FunctionContext.html | 4 +- leo_interpreter/cursor/struct.GlobalId.html | 8 +- leo_interpreter/cursor/struct.StepResult.html | 4 +- leo_interpreter/cursor/type.Closure.html | 2 +- leo_interpreter/cursor/type.Finalize.html | 2 +- leo_interpreter/cursor/type.SvmFunction.html | 2 +- leo_interpreter/enum.Value.html | 72 + leo_interpreter/fn.evaluate_binary.html | 7 + .../fn.evaluate_core_function.html | 6 + leo_interpreter/fn.evaluate_unary.html | 6 + leo_interpreter/fn.interpret.html | 2 +- leo_interpreter/fn.literal_to_value.html | 1 + leo_interpreter/fn.parse_breakpoint.html | 2 +- leo_interpreter/fn.tokenize_user_input.html | 2 +- leo_interpreter/index.html | 4 +- leo_interpreter/sidebar-items.js | 2 +- leo_interpreter/trait.CoreFunctionHelper.html | 34 + leo_interpreter/value/enum.Value.html | 2 +- .../outputs/ast_snapshot/enum.Snapshot.html | 12 +- leo_package/package/struct.Package.html | 4 +- leo_package/root/env/struct.Env.html | 12 +- leo_passes/all.html | 2 +- .../symbol_table/enum.VariableType.html | 12 +- .../common/symbol_table/fn.eq_struct.html | 2 +- leo_passes/common/symbol_table/index.html | 2 +- .../symbol_table/struct.LocalTable.html | 4 +- .../symbol_table/struct.SymbolTable.html | 42 +- .../symbol_table/struct.VariableSymbol.html | 12 +- .../symbols/enum.VariableType.html | 12 +- .../symbols/struct.VariableSymbol.html | 12 +- .../const_propagate_expression/index.html | 1 + .../sidebar-items.js | 0 .../const_propagate_program/index.html | 1 + .../const_propagate_program/sidebar-items.js | 1 + .../fn.empty_statement.html | 1 + .../fn.is_empty_statement.html | 1 + .../const_propagate_statement/index.html | 1 + .../sidebar-items.js | 1 + .../fn.value_to_expression.html | 5 + .../const_propagator/index.html | 1 + .../const_propagator/sidebar-items.js | 1 + .../struct.ConstPropagator.html | 156 + leo_passes/const_propagation/index.html | 1 + leo_passes/const_propagation/sidebar-items.js | 1 + .../struct.ConstPropagatorOutput.html | 31 + leo_passes/index.html | 6 +- .../duplicate/fn.duplicate.html | 7 + .../loop_unrolling/duplicate/index.html | 2 + .../loop_unrolling/duplicate/sidebar-items.js | 1 + .../duplicate/struct.Duplicator.html | 122 + leo_passes/loop_unrolling/index.html | 2 +- leo_passes/loop_unrolling/sidebar-items.js | 2 +- .../loop_unrolling/struct.UnrollerOutput.html | 29 + .../unroll_expression/index.html | 1 - .../loop_unrolling/unroll_program/index.html | 2 +- .../unroll_statement/index.html | 2 +- leo_passes/loop_unrolling/unroller/index.html | 2 +- .../unroller/struct.Unroller.html | 44 +- leo_passes/pass/trait.Pass.html | 2 +- leo_passes/sidebar-items.js | 2 +- .../rename_statement/index.html | 2 +- .../struct.StaticSingleAssigner.html | 10 +- leo_passes/struct.ConstPropagator.html | 156 + leo_passes/struct.ConstPropagatorOutput.html | 31 + .../type_checking/check_statements/index.html | 2 +- .../checker/struct.TypeChecker.html | 10 +- .../network_name/enum.NetworkName.html | 12 +- leo_span/symbol/enum.InternedStr.html | 8 +- .../fn.create_session_if_not_set_then.html | 2 +- leo_span/symbol/fn.with_session_globals.html | 2 +- leo_span/symbol/index.html | 2 +- leo_span/symbol/static.SESSION_GLOBALS.html | 2 +- leo_span/symbol/struct.InnerInterner.html | 2 +- leo_span/symbol/struct.Interner.html | 10 +- leo_span/symbol/struct.SessionGlobals.html | 4 +- leo_span/symbol/struct.Symbol.html | 18 +- search-index.js | 4 +- search.desc/leo_ast/leo_ast-desc-0-.js | 2 +- .../leo_compiler/leo_compiler-desc-0-.js | 2 +- search.desc/leo_errors/leo_errors-desc-0-.js | 2 +- .../leo_interpreter-desc-0-.js | 2 +- search.desc/leo_passes/leo_passes-desc-0-.js | 2 +- src-files.js | 4 +- src/leo_ast/common/identifier.rs.html | 2 +- src/leo_ast/expressions/err.rs.html | 2 +- src/leo_ast/expressions/mod.rs.html | 14 +- src/leo_ast/expressions/unary.rs.html | 18 +- src/leo_ast/functions/mod.rs.html | 2 +- src/leo_ast/functions/variant.rs.html | 8 +- src/leo_ast/program/program_scope.rs.html | 8 +- src/leo_ast/statement/assign.rs.html | 2 +- src/leo_ast/statement/block.rs.html | 2 +- src/leo_ast/statement/const_.rs.html | 10 +- src/leo_ast/statement/definition/mod.rs.html | 10 +- src/leo_compiler/compiler.rs.html | 124 +- .../errors/compiler/compiler_errors.rs.html | 58 +- .../loop_unroller_errors.rs.html | 6 +- .../errors/loop_unroller/mod.rs.html | 6 +- .../static_analyzer_error.rs.html | 72 +- .../type_checker/type_checker_error.rs.html | 10 +- src/leo_errors/lib.rs.html | 2 +- src/leo_interpreter/core_functions.rs.html | 2325 +++++++++++++++ src/leo_interpreter/cursor.rs.html | 2608 ++--------------- src/leo_interpreter/cursor_aleo.rs.html | 12 +- src/leo_interpreter/lib.rs.html | 12 +- src/leo_interpreter/value.rs.html | 28 +- .../common/symbol_table/mod.rs.html | 40 +- .../const_propagate_expression.rs.html | 671 +++++ .../const_propagate_program.rs.html | 91 + .../const_propagate_statement.rs.html | 339 +++ .../const_propagator.rs.html | 261 ++ src/leo_passes/const_propagation/mod.rs.html | 115 + src/leo_passes/lib.rs.html | 8 +- .../loop_unrolling/duplicate.rs.html | 171 ++ src/leo_passes/loop_unrolling/mod.rs.html | 36 +- .../loop_unrolling/unroll_expression.rs.html | 103 - .../loop_unrolling/unroll_program.rs.html | 52 +- .../loop_unrolling/unroll_statement.rs.html | 268 +- .../loop_unrolling/unroller.rs.html | 70 +- .../rename_statement.rs.html | 8 +- .../type_checking/check_statements.rs.html | 112 +- src/leo_passes/type_checking/checker.rs.html | 4 +- src/leo_passes/type_checking/mod.rs.html | 6 +- src/leo_span/symbol.rs.html | 14 +- trait.impl/core/default/trait.Default.js | 4 +- trait.impl/core/fmt/trait.Display.js | 4 +- trait.impl/core/marker/trait.Freeze.js | 4 +- trait.impl/core/marker/trait.Send.js | 4 +- trait.impl/core/marker/trait.Sync.js | 4 +- trait.impl/core/marker/trait.Unpin.js | 4 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 4 +- .../panic/unwind_safe/trait.UnwindSafe.js | 4 +- .../trait.ExpressionReconstructor.js | 4 +- .../trait.ProgramReconstructor.js | 4 +- .../trait.StatementReconstructor.js | 4 +- .../trait.CoreFunctionHelper.js | 9 + 190 files changed, 5931 insertions(+), 3332 deletions(-) create mode 100644 leo_interpreter/core_functions/fn.evaluate_core_function.html create mode 100644 leo_interpreter/core_functions/index.html create mode 100644 leo_interpreter/core_functions/sidebar-items.js create mode 100644 leo_interpreter/core_functions/trait.CoreFunctionHelper.html create mode 100644 leo_interpreter/cursor/fn.literal_to_value.html create mode 100644 leo_interpreter/enum.Value.html create mode 100644 leo_interpreter/fn.evaluate_binary.html create mode 100644 leo_interpreter/fn.evaluate_core_function.html create mode 100644 leo_interpreter/fn.evaluate_unary.html create mode 100644 leo_interpreter/fn.literal_to_value.html create mode 100644 leo_interpreter/trait.CoreFunctionHelper.html create mode 100644 leo_passes/const_propagation/const_propagate_expression/index.html rename leo_passes/{loop_unrolling/unroll_expression => const_propagation/const_propagate_expression}/sidebar-items.js (100%) create mode 100644 leo_passes/const_propagation/const_propagate_program/index.html create mode 100644 leo_passes/const_propagation/const_propagate_program/sidebar-items.js create mode 100644 leo_passes/const_propagation/const_propagate_statement/fn.empty_statement.html create mode 100644 leo_passes/const_propagation/const_propagate_statement/fn.is_empty_statement.html create mode 100644 leo_passes/const_propagation/const_propagate_statement/index.html create mode 100644 leo_passes/const_propagation/const_propagate_statement/sidebar-items.js create mode 100644 leo_passes/const_propagation/const_propagator/fn.value_to_expression.html create mode 100644 leo_passes/const_propagation/const_propagator/index.html create mode 100644 leo_passes/const_propagation/const_propagator/sidebar-items.js create mode 100644 leo_passes/const_propagation/const_propagator/struct.ConstPropagator.html create mode 100644 leo_passes/const_propagation/index.html create mode 100644 leo_passes/const_propagation/sidebar-items.js create mode 100644 leo_passes/const_propagation/struct.ConstPropagatorOutput.html create mode 100644 leo_passes/loop_unrolling/duplicate/fn.duplicate.html create mode 100644 leo_passes/loop_unrolling/duplicate/index.html create mode 100644 leo_passes/loop_unrolling/duplicate/sidebar-items.js create mode 100644 leo_passes/loop_unrolling/duplicate/struct.Duplicator.html create mode 100644 leo_passes/loop_unrolling/struct.UnrollerOutput.html delete mode 100644 leo_passes/loop_unrolling/unroll_expression/index.html create mode 100644 leo_passes/struct.ConstPropagator.html create mode 100644 leo_passes/struct.ConstPropagatorOutput.html create mode 100644 src/leo_interpreter/core_functions.rs.html create mode 100644 src/leo_passes/const_propagation/const_propagate_expression.rs.html create mode 100644 src/leo_passes/const_propagation/const_propagate_program.rs.html create mode 100644 src/leo_passes/const_propagation/const_propagate_statement.rs.html create mode 100644 src/leo_passes/const_propagation/const_propagator.rs.html create mode 100644 src/leo_passes/const_propagation/mod.rs.html create mode 100644 src/leo_passes/loop_unrolling/duplicate.rs.html delete mode 100644 src/leo_passes/loop_unrolling/unroll_expression.rs.html create mode 100644 trait.impl/leo_interpreter/core_functions/trait.CoreFunctionHelper.js diff --git a/leo_ast/common/identifier/struct.Identifier.html b/leo_ast/common/identifier/struct.Identifier.html index 5fea5c449d..0bd3638433 100644 --- a/leo_ast/common/identifier/struct.Identifier.html +++ b/leo_ast/common/identifier/struct.Identifier.html @@ -1,4 +1,4 @@ -Identifier in leo_ast::common::identifier - Rust
leo_ast::common::identifier

Struct Identifier

Source
pub struct Identifier {
+Identifier in leo_ast::common::identifier - Rust
leo_ast::common::identifier

Struct Identifier

Source
pub struct Identifier {
     pub name: Symbol,
     pub span: Span,
     pub id: NodeID,
@@ -11,7 +11,7 @@
 
§id: NodeID

The ID of the node.

Implementations§

Source§

impl Identifier

Source

pub fn new(name: Symbol, id: NodeID) -> Self

Constructs a new identifier with name and id and a default span.

Source

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

Check if the Identifier name matches the other name.

-

Trait Implementations§

Source§

impl Clone for Identifier

Source§

fn clone(&self) -> Identifier

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 Identifier

Source§

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

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

impl<'de> Deserialize<'de> for Identifier

Source§

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

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

impl Display for Identifier

Source§

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

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

impl<N: Network> From<&Identifier<N>> for Identifier

Source§

fn from(id: &IdentifierCore<N>) -> Self

Converts to this type from the input type.
Source§

impl From<Identifier> for ProgramId

Source§

fn from(name: Identifier) -> Self

Converts to this type from the input type.
Source§

impl Hash for Identifier

Source§

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

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

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

Trait Implementations§

Source§

impl Clone for Identifier

Source§

fn clone(&self) -> Identifier

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 Identifier

Source§

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

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

impl Default for Identifier

Source§

fn default() -> Identifier

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

impl<'de> Deserialize<'de> for Identifier

Source§

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

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

impl Display for Identifier

Source§

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

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

impl<N: Network> From<&Identifier<N>> for Identifier

Source§

fn from(id: &IdentifierCore<N>) -> Self

Converts to this type from the input type.
Source§

impl From<Identifier> for ProgramId

Source§

fn from(name: Identifier) -> Self

Converts to this type from the input type.
Source§

impl Hash for Identifier

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 Node for Identifier

Source§

fn span(&self) -> Span

Returns the span of the node.
Source§

fn set_span(&mut self, span: Span)

Sets the span of the node.
Source§

fn id(&self) -> NodeID

Returns the ID of the node.
Source§

fn set_id(&mut self, id: NodeID)

Sets the ID of the node.
Source§

impl PartialEq for Identifier

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Identifier

Source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for Identifier

Source§

impl Eq for Identifier

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where diff --git a/leo_ast/common/node/trait.Node.html b/leo_ast/common/node/trait.Node.html index e91a88ad1f..68e6d97e18 100644 --- a/leo_ast/common/node/trait.Node.html +++ b/leo_ast/common/node/trait.Node.html @@ -16,4 +16,4 @@

Source

fn set_span(&mut self, span: Span)

Sets the span of the node.

Source

fn id(&self) -> NodeID

Returns the ID of the node.

Source

fn set_id(&mut self, id: NodeID)

Sets the ID of the node.

-

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

\ No newline at end of file +

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/leo_ast/expressions/enum.Expression.html b/leo_ast/expressions/enum.Expression.html index f21166e834..57c48348d2 100644 --- a/leo_ast/expressions/enum.Expression.html +++ b/leo_ast/expressions/enum.Expression.html @@ -1,4 +1,4 @@ -Expression in leo_ast::expressions - Rust
leo_ast::expressions

Enum Expression

Source
pub enum Expression {
+Expression in leo_ast::expressions - Rust
leo_ast::expressions

Enum Expression

Source
pub enum Expression {
 
Show 14 variants Access(AccessExpression), Array(ArrayExpression), Binary(BinaryExpression), @@ -29,8 +29,8 @@
§

Tuple(TupleExpression)

A tuple expression e.g., (foo, 42, true).

§

Unary(UnaryExpression)

An unary expression.

§

Unit(UnitExpression)

A unit expression e.g. ()

-

Trait Implementations§

Source§

impl Clone for Expression

Source§

fn clone(&self) -> Expression

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 Expression

Source§

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

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

impl<'de> Deserialize<'de> for Expression

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 Expression

Source§

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

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

impl Node for Expression

Source§

fn span(&self) -> Span

Returns the span of the node.
Source§

fn set_span(&mut self, span: Span)

Sets the span of the node.
Source§

fn id(&self) -> NodeID

Returns the ID of the node.
Source§

fn set_id(&mut self, id: NodeID)

Sets the ID of the node.
Source§

impl PartialEq for Expression

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +

Trait Implementations§

Source§

impl Clone for Expression

Source§

fn clone(&self) -> Expression

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 Expression

Source§

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

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

impl Default for Expression

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for Expression

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 Expression

Source§

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

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

impl Node for Expression

Source§

fn span(&self) -> Span

Returns the span of the node.
Source§

fn set_span(&mut self, span: Span)

Sets the span of the node.
Source§

fn id(&self) -> NodeID

Returns the ID of the node.
Source§

fn set_id(&mut self, id: NodeID)

Sets the ID of the node.
Source§

impl PartialEq for Expression

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Expression

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 Eq for Expression

Source§

impl StructuralPartialEq for Expression

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_ast/expressions/enum.UnaryOperation.html b/leo_ast/expressions/enum.UnaryOperation.html index b1abab8284..7f57b4c8a0 100644 --- a/leo_ast/expressions/enum.UnaryOperation.html +++ b/leo_ast/expressions/enum.UnaryOperation.html @@ -1,4 +1,4 @@ -UnaryOperation in leo_ast::expressions - Rust
leo_ast::expressions

Enum UnaryOperation

Source
pub enum UnaryOperation {
+UnaryOperation in leo_ast::expressions - Rust
leo_ast::expressions

Enum UnaryOperation

Source
pub enum UnaryOperation {
     Abs,
     AbsWrapped,
     Double,
@@ -21,9 +21,9 @@
 
§

ToXCoordinate

Converts a group element to its x-coordinate, i.e. .to_x_coordinate().

§

ToYCoordinate

Converts a group element to its y-coordinate, i.e. .to_y_coordinate().

Implementations§

Source§

impl UnaryOperation

Source

pub fn from_symbol(symbol: Symbol) -> Option<Self>

Returns a UnaryOperation from the given Symbol.

-
Source

fn as_str(self) -> &'static str

Represents the opera.tor as a string.

+
Source

fn as_str(self) -> &'static str

Represents the operator as a string.

Trait Implementations§

Source§

impl Clone for UnaryOperation

Source§

fn clone(&self) -> UnaryOperation

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 UnaryOperation

Source§

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

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

impl<'de> Deserialize<'de> for UnaryOperation

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

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, + __D: Deserializer<'de>,

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

impl Display for UnaryOperation

Source§

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

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

impl PartialEq for UnaryOperation

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for UnaryOperation

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 Copy for UnaryOperation

Source§

impl Eq for UnaryOperation

Source§

impl StructuralPartialEq for UnaryOperation

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where @@ -55,7 +55,9 @@ if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_ast/expressions/err/struct.ErrExpression.html b/leo_ast/expressions/err/struct.ErrExpression.html index 995754b0b2..2087db98d0 100644 --- a/leo_ast/expressions/err/struct.ErrExpression.html +++ b/leo_ast/expressions/err/struct.ErrExpression.html @@ -1,10 +1,10 @@ -ErrExpression in leo_ast::expressions::err - Rust
leo_ast::expressions::err

Struct ErrExpression

Source
pub struct ErrExpression {
+ErrExpression in leo_ast::expressions::err - Rust
leo_ast::expressions::err

Struct ErrExpression

Source
pub struct ErrExpression {
     pub span: Span,
     pub id: NodeID,
 }
Expand description

Represents a syntactically invalid expression.

Fields§

§span: Span

The span of the invalid expression.

§id: NodeID

The ID of the node.

-

Trait Implementations§

Source§

impl Clone for ErrExpression

Source§

fn clone(&self) -> ErrExpression

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 ErrExpression

Source§

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

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

impl<'de> Deserialize<'de> for ErrExpression

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +

Trait Implementations§

Source§

impl Clone for ErrExpression

Source§

fn clone(&self) -> ErrExpression

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 ErrExpression

Source§

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

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

impl Default for ErrExpression

Source§

fn default() -> ErrExpression

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

impl<'de> Deserialize<'de> for ErrExpression

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 ErrExpression

Source§

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

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

impl Node for ErrExpression

Source§

fn span(&self) -> Span

Returns the span of the node.
Source§

fn set_span(&mut self, span: Span)

Sets the span of the node.
Source§

fn id(&self) -> NodeID

Returns the ID of the node.
Source§

fn set_id(&mut self, id: NodeID)

Sets the ID of the node.
Source§

impl PartialEq for ErrExpression

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ErrExpression

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 Eq for ErrExpression

Source§

impl StructuralPartialEq for ErrExpression

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where diff --git a/leo_ast/expressions/index.html b/leo_ast/expressions/index.html index 63f242a7a8..5f1a57b266 100644 --- a/leo_ast/expressions/index.html +++ b/leo_ast/expressions/index.html @@ -1,3 +1,3 @@ -leo_ast::expressions - Rust
leo_ast

Module expressions

Source

Re-exports§

Modules§

Structs§

Trait Implementations§

Source§

impl<'a, N: Clone + Network> Clone for Compiler<'a, N>

Source§

fn clone(&self) -> Compiler<'a, N>

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

Auto Trait Implementations§

§

impl<'a, N> !Freeze for Compiler<'a, N>

§

impl<'a, N> !RefUnwindSafe for Compiler<'a, N>

§

impl<'a, N> !Send for Compiler<'a, N>

§

impl<'a, N> !Sync for Compiler<'a, N>

§

impl<'a, N> Unpin for Compiler<'a, N>
where N: Unpin,

§

impl<'a, N> !UnwindSafe for Compiler<'a, N>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_compiler/struct.Compiler.html b/leo_compiler/struct.Compiler.html index 42ccf6e4a3..2d98c6a358 100644 --- a/leo_compiler/struct.Compiler.html +++ b/leo_compiler/struct.Compiler.html @@ -1,4 +1,4 @@ -Compiler in leo_compiler - Rust
leo_compiler

Struct Compiler

Source
pub struct Compiler<'a, N: Network> {
+Compiler in leo_compiler - Rust
leo_compiler

Struct Compiler

Source
pub struct Compiler<'a, N: Network> {
     handler: &'a Handler,
     main_file_path: PathBuf,
     output_directory: PathBuf,
@@ -23,7 +23,7 @@
 
§assigner: Assigner

The Assigner is used to construct (unique) assignment statements.

§type_table: TypeTable

The type table.

§import_stubs: IndexMap<Symbol, Stub>

The stubs for imported programs. Produced by Retriever module.

-
§phantom: PhantomData<N>

Implementations§

Source§

impl<'a, N: Network> Compiler<'a, N>

Source

pub fn new( +

§phantom: PhantomData<N>

Implementations§

Source§

impl<'a, N: Network> Compiler<'a, N>

Source

pub fn new( program_name: String, network: String, handler: &'a Handler, @@ -42,33 +42,41 @@

Source

pub fn symbol_table_pass(&self) -> Result<SymbolTable>

Runs the symbol table pass.

Source

pub fn type_checker_pass( &'a self, - symbol_table: SymbolTable, -) -> Result<(SymbolTable, StructGraph, CallGraph)>

Runs the type checker pass.

+ symbol_table: &mut SymbolTable, +) -> Result<(StructGraph, CallGraph)>

Runs the type checker pass.

Source

pub fn static_analysis_pass(&mut self, symbol_table: &SymbolTable) -> Result<()>

Runs the static analysis pass.

-
Source

pub fn loop_unrolling_pass( +

Source

pub fn const_propagation_and_unroll_loop( &mut self, - symbol_table: SymbolTable, -) -> Result<SymbolTable>

Runs the loop unrolling pass.

-
Source

pub fn static_single_assignment_pass( + symbol_table: &mut SymbolTable, +) -> Result<()>

Run const propagation and loop unrolling until we hit a fixed point or find an error.

+
Source

pub fn const_propagation_pass( + &mut self, + symbol_table: &mut SymbolTable, +) -> Result<ConstPropagatorOutput>

Runs the const propagation pass.

+
Source

pub fn loop_unrolling_pass( + &mut self, + symbol_table: &mut SymbolTable, +) -> Result<UnrollerOutput>

Runs the loop unrolling pass.

+
Source

pub fn static_single_assignment_pass( &mut self, symbol_table: &SymbolTable, ) -> Result<()>

Runs the static single assignment pass.

-
Source

pub fn flattening_pass(&mut self, symbol_table: &SymbolTable) -> Result<()>

Runs the flattening pass.

-
Source

pub fn destructuring_pass(&mut self) -> Result<()>

Runs the destructuring pass.

-
Source

pub fn function_inlining_pass(&mut self, call_graph: &CallGraph) -> Result<()>

Runs the function inlining pass.

-
Source

pub fn dead_code_elimination_pass(&mut self) -> Result<()>

Runs the dead code elimination pass.

-
Source

pub fn code_generation_pass( +

Source

pub fn flattening_pass(&mut self, symbol_table: &SymbolTable) -> Result<()>

Runs the flattening pass.

+
Source

pub fn destructuring_pass(&mut self) -> Result<()>

Runs the destructuring pass.

+
Source

pub fn function_inlining_pass(&mut self, call_graph: &CallGraph) -> Result<()>

Runs the function inlining pass.

+
Source

pub fn dead_code_elimination_pass(&mut self) -> Result<()>

Runs the dead code elimination pass.

+
Source

pub fn code_generation_pass( &mut self, symbol_table: &SymbolTable, struct_graph: &StructGraph, call_graph: &CallGraph, ) -> Result<String>

Runs the code generation pass.

-
Source

pub fn compiler_stages( +

Source

pub fn compiler_stages( &mut self, ) -> Result<(SymbolTable, StructGraph, CallGraph)>

Runs the compiler stages.

-
Source

pub fn compile(&mut self) -> Result<String>

Returns a compiled Leo program.

-
Source

fn write_ast_to_json(&self, file_suffix: &str) -> Result<()>

Writes the AST to a JSON file.

-
Source

pub fn add_import_stubs(&mut self) -> Result<()>

Merges the dependencies defined in program.json with the dependencies imported in .leo file

+
Source

pub fn compile(&mut self) -> Result<String>

Returns a compiled Leo program.

+
Source

fn write_ast_to_json(&self, file_suffix: &str) -> Result<()>

Writes the AST to a JSON file.

+
Source

pub fn add_import_stubs(&mut self) -> Result<()>

Merges the dependencies defined in program.json with the dependencies imported in .leo file

Trait Implementations§

Source§

impl<'a, N: Clone + Network> Clone for Compiler<'a, N>

Source§

fn clone(&self) -> Compiler<'a, N>

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

Auto Trait Implementations§

§

impl<'a, N> !Freeze for Compiler<'a, N>

§

impl<'a, N> !RefUnwindSafe for Compiler<'a, N>

§

impl<'a, N> !Send for Compiler<'a, N>

§

impl<'a, N> !Sync for Compiler<'a, N>

§

impl<'a, N> Unpin for Compiler<'a, N>
where N: Unpin,

§

impl<'a, N> !UnwindSafe for Compiler<'a, N>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_errors/common/backtraced/struct.Backtraced.html b/leo_errors/common/backtraced/struct.Backtraced.html index ab2a7e3a58..82b3cc87f5 100644 --- a/leo_errors/common/backtraced/struct.Backtraced.html +++ b/leo_errors/common/backtraced/struct.Backtraced.html @@ -30,7 +30,7 @@

Source

pub fn exit_code(&self) -> i32

Gets the backtraced error exit code.

Source

pub fn error_code(&self) -> String

Gets a unique error identifier.

Source

pub fn warning_code(&self) -> String

Gets a unique warning identifier.

-

Trait Implementations§

Source§

impl Clone for Backtraced

Source§

fn clone(&self) -> Self

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 Backtraced

Source§

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

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

impl Default for Backtraced

Source§

fn default() -> Self

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

impl Display for Backtraced

Source§

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

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

impl Error for Backtraced

Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.30.0 · Source§

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

Returns the lower-level source of this error, if any. Read more
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<Backtraced> for AstError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for CliError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for CompilerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for FlattenError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for LoopUnrollerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for PackageError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for ParserError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for ParserWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for StaticAnalyzerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for StaticAnalyzerWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for TypeCheckerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for TypeCheckerWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for UtilError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl Hash for Backtraced

Source§

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

Trait Implementations§

Source§

impl Clone for Backtraced

Source§

fn clone(&self) -> Self

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 Backtraced

Source§

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

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

impl Default for Backtraced

Source§

fn default() -> Self

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

impl Display for Backtraced

Source§

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

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

impl Error for Backtraced

Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.30.0 · Source§

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

Returns the lower-level source of this error, if any. Read more
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<Backtraced> for AstError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for CliError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for CompilerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for FlattenError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for LoopUnrollerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for PackageError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for ParserError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for ParserWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for StaticAnalyzerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for StaticAnalyzerWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for TypeCheckerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for TypeCheckerWarning

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Backtraced> for UtilError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl Hash for Backtraced

Source§

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

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

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

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

impl PartialEq for Backtraced

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, diff --git a/leo_errors/common/formatted/struct.Formatted.html b/leo_errors/common/formatted/struct.Formatted.html index e437d9782f..5ccca5a04c 100644 --- a/leo_errors/common/formatted/struct.Formatted.html +++ b/leo_errors/common/formatted/struct.Formatted.html @@ -26,7 +26,7 @@
Source

pub fn exit_code(&self) -> i32

Calls the backtraces error exit code.

Source

pub fn error_code(&self) -> String

Returns an error identifier.

Source

pub fn warning_code(&self) -> String

Returns an warning identifier.

-

Trait Implementations§

Source§

impl Clone for Formatted

Source§

fn clone(&self) -> Formatted

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 Formatted

Source§

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

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

impl Default for Formatted

Source§

fn default() -> Formatted

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

impl Display for Formatted

Source§

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

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

impl Error for Formatted

Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.30.0 · Source§

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

Returns the lower-level source of this error, if any. Read more
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<Formatted> for AstError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CliError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CompilerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for FlattenError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for LoopUnrollerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for PackageError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for ParserError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for ParserWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for UtilError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl Hash for Formatted

Source§

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

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

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

Trait Implementations§

Source§

impl Clone for Formatted

Source§

fn clone(&self) -> Formatted

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 Formatted

Source§

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

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

impl Default for Formatted

Source§

fn default() -> Formatted

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

impl Display for Formatted

Source§

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

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

impl Error for Formatted

Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.30.0 · Source§

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

Returns the lower-level source of this error, if any. Read more
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<Formatted> for AstError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CliError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CompilerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for FlattenError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for LoopUnrollerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for PackageError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for ParserError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for ParserWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerWarning

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for UtilError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl Hash for Formatted

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 Formatted

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Formatted

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where diff --git a/leo_errors/common/traits/trait.LeoMessageCode.html b/leo_errors/common/traits/trait.LeoMessageCode.html index ef064eb55c..9e10c5c63d 100644 --- a/leo_errors/common/traits/trait.LeoMessageCode.html +++ b/leo_errors/common/traits/trait.LeoMessageCode.html @@ -21,15 +21,15 @@ unique to Leo itself.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl LeoMessageCode for AstError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for CliError

Implements the trait for LeoError Codes.

-
Source§

impl LeoMessageCode for CompilerError

Implements the trait for LeoError Codes.

+
Source§

impl LeoMessageCode for CompilerError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for FlattenError

Implements the trait for LeoError Codes.

-
Source§

impl LeoMessageCode for LoopUnrollerError

Implements the trait for LeoError Codes.

+
Source§

impl LeoMessageCode for LoopUnrollerError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for PackageError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for ParserError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for ParserWarning

Implements the trait for LeoError Codes.

-
Source§

impl LeoMessageCode for StaticAnalyzerError

Implements the trait for LeoError Codes.

+
Source§

impl LeoMessageCode for StaticAnalyzerError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for StaticAnalyzerWarning

Implements the trait for LeoError Codes.

-
Source§

impl LeoMessageCode for TypeCheckerError

Implements the trait for LeoError Codes.

+
Source§

impl LeoMessageCode for TypeCheckerError

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for TypeCheckerWarning

Implements the trait for LeoError Codes.

Source§

impl LeoMessageCode for UtilError

Implements the trait for LeoError Codes.

\ No newline at end of file diff --git a/leo_errors/errors/compiler/compiler_errors/enum.CompilerError.html b/leo_errors/errors/compiler/compiler_errors/enum.CompilerError.html index bf1b58accb..d9c121eb6f 100644 --- a/leo_errors/errors/compiler/compiler_errors/enum.CompilerError.html +++ b/leo_errors/errors/compiler/compiler_errors/enum.CompilerError.html @@ -1,26 +1,26 @@ -CompilerError in leo_errors::errors::compiler::compiler_errors - Rust
leo_errors::errors::compiler::compiler_errors

Enum CompilerError

Source
pub enum CompilerError {
+CompilerError in leo_errors::errors::compiler::compiler_errors - Rust
leo_errors::errors::compiler::compiler_errors

Enum CompilerError

Source
pub enum CompilerError {
     Formatted(Formatted),
     Backtraced(Backtraced),
 }
Expand description

CompilerError enum that represents all the errors for the leo-compiler crate.

-

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl CompilerError

Source

pub fn file_read_error(path: impl Debug, error: impl ErrorArg) -> Self

For when the compiler can’t read a file from the provided path.

-
Source

pub fn illegal_static_member_assignment( +

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl CompilerError

Source

pub fn file_read_error(path: impl Debug, error: impl ErrorArg) -> Self

For when the compiler can’t read a file from the provided path.

+
Source

pub fn illegal_static_member_assignment( member: impl Display, span: Span, ) -> Self

For when a user tries to assign to a struct static member.

-
Source

pub fn import_not_found(file_path: impl Display, span: Span) -> Self

Source

pub fn cannot_open_cwd(err: impl ErrorArg, span: Span) -> Self

Source

pub fn program_name_should_match_file_name( +

Source

pub fn import_not_found(file_path: impl Display, span: Span) -> Self

Source

pub fn cannot_open_cwd(err: impl ErrorArg, span: Span) -> Self

Source

pub fn program_name_should_match_file_name( program_name: impl Display, file_name: impl Display, span: Span, -) -> Self

Source

pub fn program_scope_name_does_not_match( +) -> Self

Source

pub fn program_scope_name_does_not_match( program_scope_name: impl Display, file_name: impl Display, span: Span, -) -> Self

Source

pub fn imported_program_not_found( +) -> Self

Source

pub fn imported_program_not_found( main_program_name: impl Display, dependency_name: impl Display, span: Span, -) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for CompilerError

Source§

fn clone(&self) -> CompilerError

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 CompilerError

Source§

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

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

impl Display for CompilerError

Source§

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

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

impl Error for CompilerError

Source§

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

Returns 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<Backtraced> for CompilerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<CompilerError> for LeoError

Source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CompilerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for CompilerError

Implements the trait for LeoError Codes.

-
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 +) -> Self
Source

pub fn const_not_evaluated(span: Span) -> Self

Source

pub fn loop_bounds_not_evaluated(span: Span) -> Self

Source

pub fn array_index_not_evaluated(span: Span) -> Self

Source

pub fn const_prop_unroll_many_loops(bound: usize, span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for CompilerError

Source§

fn clone(&self) -> CompilerError

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 CompilerError

Source§

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

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

impl Display for CompilerError

Source§

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

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

impl Error for CompilerError

Source§

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

Returns 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<Backtraced> for CompilerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<CompilerError> for LeoError

Source§

fn from(source: CompilerError) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for CompilerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for CompilerError

Implements the trait for LeoError Codes.

+
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 (Leo upsidedown and backwards). This is to make the exit codes unique to Leo itself.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_errors/errors/compiler/compiler_errors/index.html b/leo_errors/errors/compiler/compiler_errors/index.html index c5111d29f5..3e5b16c9e1 100644 --- a/leo_errors/errors/compiler/compiler_errors/index.html +++ b/leo_errors/errors/compiler/compiler_errors/index.html @@ -1,2 +1,2 @@ -leo_errors::errors::compiler::compiler_errors - Rust
leo_errors::errors::compiler

Module compiler_errors

Source
Expand description

This module contains the Compiler error definitions.

+leo_errors::errors::compiler::compiler_errors - Rust
leo_errors::errors::compiler

Module compiler_errors

Source
Expand description

This module contains the Compiler error definitions.

Enums§

  • CompilerError enum that represents all the errors for the leo-compiler crate.
\ No newline at end of file diff --git a/leo_errors/errors/index.html b/leo_errors/errors/index.html index be65d46bce..30af00a1f3 100644 --- a/leo_errors/errors/index.html +++ b/leo_errors/errors/index.html @@ -1,4 +1,5 @@ leo_errors::errors - Rust
leo_errors

Module errors

Source
Expand description

Contains the errors and warnings for the Leo language.

-

Re-exports§

Modules§

  • Contains the AST error definitions.
  • Contains the CLI error definitions.
  • Contains the Compiler error definitions.
  • Contains the Flattener error definitions.
  • Contains the Loop Unroller error definitions.
  • Contains the Package error definitions.
  • Contains the Parser error definitions.
  • Contains the Static Analyzer error definitions.
  • Contains the Type Checker error definitions.
  • Contains the Utils error definitions.

Enums§

  • The LeoError type that contains all sub error types. +

Re-exports§

Modules§

  • Contains the AST error definitions.
  • Contains the CLI error definitions.
  • Contains the Compiler error definitions.
  • Contains the Flattener error definitions.
  • Contains the Loop Unroller error definitions. +This module contains the loop unroller error definitions.
  • Contains the Package error definitions.
  • Contains the Parser error definitions.
  • Contains the Static Analyzer error definitions.
  • Contains the Type Checker error definitions.
  • Contains the Utils error definitions.

Enums§

  • The LeoError type that contains all sub error types. This allows a unified error type throughout the Leo crates.
  • The LeoWarning type that contains all sub warning types. This allows a unified warning type throughout the Leo crates.

Type Aliases§

  • A global result type for all Leo crates, that defaults the errors to be a LeoError.
\ No newline at end of file diff --git a/leo_errors/errors/loop_unroller/index.html b/leo_errors/errors/loop_unroller/index.html index dccd572c20..bc06985510 100644 --- a/leo_errors/errors/loop_unroller/index.html +++ b/leo_errors/errors/loop_unroller/index.html @@ -1,2 +1,3 @@ -leo_errors::errors::loop_unroller - Rust
leo_errors::errors

Module loop_unroller

Source
Expand description

Contains the Loop Unroller error definitions.

-

Re-exports§

Modules§

\ No newline at end of file +leo_errors::errors::loop_unroller - Rust
leo_errors::errors

Module loop_unroller

Source
Expand description

Contains the Loop Unroller error definitions. +This module contains the loop unroller error definitions.

+

Re-exports§

Modules§

\ No newline at end of file diff --git a/leo_errors/errors/loop_unroller/loop_unroller_errors/enum.LoopUnrollerError.html b/leo_errors/errors/loop_unroller/loop_unroller_errors/enum.LoopUnrollerError.html index f3fd14b7b4..a4a3698264 100644 --- a/leo_errors/errors/loop_unroller/loop_unroller_errors/enum.LoopUnrollerError.html +++ b/leo_errors/errors/loop_unroller/loop_unroller_errors/enum.LoopUnrollerError.html @@ -1,9 +1,9 @@ -LoopUnrollerError in leo_errors::errors::loop_unroller::loop_unroller_errors - Rust
leo_errors::errors::loop_unroller::loop_unroller_errors

Enum LoopUnrollerError

Source
pub enum LoopUnrollerError {
+LoopUnrollerError in leo_errors::errors::loop_unroller::loop_unroller_errors - Rust
leo_errors::errors::loop_unroller::loop_unroller_errors

Enum LoopUnrollerError

Source
pub enum LoopUnrollerError {
     Formatted(Formatted),
     Backtraced(Backtraced),
 }
Expand description

LoopUnrollerError enum that represents all the errors for the loop unrolling errors in the leo-loop_unroller crate.

-

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl LoopUnrollerError

Source

pub fn loop_range_decreasing(span: Span) -> Self

Source

pub fn variable_array_access(span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for LoopUnrollerError

Source§

fn clone(&self) -> LoopUnrollerError

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 LoopUnrollerError

Source§

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

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

impl Display for LoopUnrollerError

Source§

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

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

impl Error for LoopUnrollerError

Source§

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

Returns 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<Backtraced> for LoopUnrollerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for LoopUnrollerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<LoopUnrollerError> for LeoError

Source§

fn from(source: LoopUnrollerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for LoopUnrollerError

Implements the trait for LeoError Codes.

-
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 +

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl LoopUnrollerError

Source

pub fn loop_range_decreasing(span: Span) -> Self

Source

pub fn variable_array_access(span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for LoopUnrollerError

Source§

fn clone(&self) -> LoopUnrollerError

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 LoopUnrollerError

Source§

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

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

impl Display for LoopUnrollerError

Source§

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

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

impl Error for LoopUnrollerError

Source§

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

Returns 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<Backtraced> for LoopUnrollerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for LoopUnrollerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<LoopUnrollerError> for LeoError

Source§

fn from(source: LoopUnrollerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for LoopUnrollerError

Implements the trait for LeoError Codes.

+
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 (Leo upsidedown and backwards). This is to make the exit codes unique to Leo itself.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_errors/errors/loop_unroller/loop_unroller_errors/index.html b/leo_errors/errors/loop_unroller/loop_unroller_errors/index.html index 1f9f1efdf9..c7835e95d0 100644 --- a/leo_errors/errors/loop_unroller/loop_unroller_errors/index.html +++ b/leo_errors/errors/loop_unroller/loop_unroller_errors/index.html @@ -1,2 +1 @@ -leo_errors::errors::loop_unroller::loop_unroller_errors - Rust
leo_errors::errors::loop_unroller

Module loop_unroller_errors

Source
Expand description

This module contains the Input error definitions.

-

Enums§

  • LoopUnrollerError enum that represents all the errors for the loop unrolling errors in the leo-loop_unroller crate.
\ No newline at end of file +leo_errors::errors::loop_unroller::loop_unroller_errors - Rust
leo_errors::errors::loop_unroller

Module loop_unroller_errors

Source

Enums§

  • LoopUnrollerError enum that represents all the errors for the loop unrolling errors in the leo-loop_unroller crate.
\ No newline at end of file diff --git a/leo_errors/errors/static_analyzer/static_analyzer_error/enum.StaticAnalyzerError.html b/leo_errors/errors/static_analyzer/static_analyzer_error/enum.StaticAnalyzerError.html index 00f7515ea9..28332ac2ac 100644 --- a/leo_errors/errors/static_analyzer/static_analyzer_error/enum.StaticAnalyzerError.html +++ b/leo_errors/errors/static_analyzer/static_analyzer_error/enum.StaticAnalyzerError.html @@ -1,15 +1,30 @@ -StaticAnalyzerError in leo_errors::errors::static_analyzer::static_analyzer_error - Rust
leo_errors::errors::static_analyzer::static_analyzer_error

Enum StaticAnalyzerError

Source
pub enum StaticAnalyzerError {
+StaticAnalyzerError in leo_errors::errors::static_analyzer::static_analyzer_error - Rust
leo_errors::errors::static_analyzer::static_analyzer_error

Enum StaticAnalyzerError

Source
pub enum StaticAnalyzerError {
     Formatted(Formatted),
     Backtraced(Backtraced),
 }
Expand description

StaticAnalyzer enum that represents all the errors for static analysis.

-

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl StaticAnalyzerError

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl StaticAnalyzerError

Source

pub fn no_path_awaits_all_futures_exactly_once( num_total_paths: impl Display, span: Span, -) -> Self

Source

pub fn future_awaits_missing(unawaited: impl Display, span: Span) -> Self

Source

pub fn invalid_await_call(span: Span) -> Self

Source

pub fn expected_future(type_: impl Display, span: Span) -> Self

Source

pub fn async_transition_call_with_future_argument( +) -> Self

Source

pub fn future_awaits_missing(unawaited: impl Display, span: Span) -> Self

Source

pub fn invalid_await_call(span: Span) -> Self

Source

pub fn expected_future(type_: impl Display, span: Span) -> Self

Source

pub fn async_transition_call_with_future_argument( function_name: impl Display, span: Span, -) -> Self

Source

pub fn misplaced_future(span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for StaticAnalyzerError

Source§

fn clone(&self) -> StaticAnalyzerError

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 StaticAnalyzerError

Source§

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

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

impl Display for StaticAnalyzerError

Source§

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

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

impl Error for StaticAnalyzerError

Source§

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

Returns 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<Backtraced> for StaticAnalyzerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<StaticAnalyzerError> for LeoError

Source§

fn from(source: StaticAnalyzerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for StaticAnalyzerError

Implements the trait for LeoError Codes.

-
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 +) -> Self

Source

pub fn misplaced_future(span: Span) -> Self

Source

pub fn compile_time_unary_op( + value: impl Display, + op: impl Display, + err: impl Display, + span: Span, +) -> Self

Source

pub fn compile_time_binary_op( + value_lhs: impl Display, + value_rhs: impl Display, + op: impl Display, + err: impl Display, + span: Span, +) -> Self

Source

pub fn compile_time_cast( + value: impl Display, + type_: impl Display, + span: Span, +) -> Self

Source

pub fn compile_core_function(err: impl Display, span: Span) -> Self

Source

pub fn array_bounds(index: impl Display, len: impl Display, span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for StaticAnalyzerError

Source§

fn clone(&self) -> StaticAnalyzerError

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 StaticAnalyzerError

Source§

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

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

impl Display for StaticAnalyzerError

Source§

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

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

impl Error for StaticAnalyzerError

Source§

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

Returns 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<Backtraced> for StaticAnalyzerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for StaticAnalyzerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<StaticAnalyzerError> for LeoError

Source§

fn from(source: StaticAnalyzerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for StaticAnalyzerError

Implements the trait for LeoError Codes.

+
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 (Leo upsidedown and backwards). This is to make the exit codes unique to Leo itself.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_errors/errors/static_analyzer/static_analyzer_error/index.html b/leo_errors/errors/static_analyzer/static_analyzer_error/index.html index 486d03db7e..fedf4f554d 100644 --- a/leo_errors/errors/static_analyzer/static_analyzer_error/index.html +++ b/leo_errors/errors/static_analyzer/static_analyzer_error/index.html @@ -1,2 +1,2 @@ -leo_errors::errors::static_analyzer::static_analyzer_error - Rust
leo_errors::errors::static_analyzer

Module static_analyzer_error

Source
Expand description

This module contains the static analysis error definitions.

+leo_errors::errors::static_analyzer::static_analyzer_error - Rust
leo_errors::errors::static_analyzer

Module static_analyzer_error

Source
Expand description

This module contains the static analysis error definitions.

Enums§

\ No newline at end of file diff --git a/leo_errors/errors/type_checker/type_checker_error/enum.TypeCheckerError.html b/leo_errors/errors/type_checker/type_checker_error/enum.TypeCheckerError.html index 796247c8fc..1a7f17c3a5 100644 --- a/leo_errors/errors/type_checker/type_checker_error/enum.TypeCheckerError.html +++ b/leo_errors/errors/type_checker/type_checker_error/enum.TypeCheckerError.html @@ -1,169 +1,169 @@ -TypeCheckerError in leo_errors::errors::type_checker::type_checker_error - Rust
leo_errors::errors::type_checker::type_checker_error

Enum TypeCheckerError

Source
pub enum TypeCheckerError {
+TypeCheckerError in leo_errors::errors::type_checker::type_checker_error - Rust
leo_errors::errors::type_checker::type_checker_error

Enum TypeCheckerError

Source
pub enum TypeCheckerError {
     Formatted(Formatted),
     Backtraced(Backtraced),
 }
Expand description

InputError enum that represents all the errors for the inputs part of leo-ast crate.

-

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl TypeCheckerError

Source

pub fn invalid_assignment_target(span: Span) -> Self

For when the parser encountered an invalid assignment target.

-
Source

pub fn cannot_assign_to_const_input(input: impl Display, span: Span) -> Self

For when the user tries to assign to a const input.

-
Source

pub fn cannot_assign_to_const_var(var: impl Display, span: Span) -> Self

For when the user tries to assign to a const input.

-
Source

pub fn type_should_be( +

Variants§

§

Formatted(Formatted)

§

Backtraced(Backtraced)

Implementations§

Source§

impl TypeCheckerError

Source

pub fn invalid_assignment_target(span: Span) -> Self

For when the parser encountered an invalid assignment target.

+
Source

pub fn cannot_assign_to_const_input(input: impl Display, span: Span) -> Self

For when the user tries to assign to a const input.

+
Source

pub fn cannot_assign_to_const_var(var: impl Display, span: Span) -> Self

For when the user tries to assign to a const input.

+
Source

pub fn type_should_be( type_: impl Display, expected: impl Display, span: Span, ) -> Self

For when the user tries to assign to a const input.

-
Source

pub fn could_not_determine_type(expr: impl Display, span: Span) -> Self

For when the type checker cannot determine the type of an expression.

-
Source

pub fn unknown_sym(kind: impl Display, sym: impl Display, span: Span) -> Self

For when the user tries to return a unknown variable.

-
Source

pub fn incorrect_num_args_to_call( +

Source

pub fn could_not_determine_type(expr: impl Display, span: Span) -> Self

For when the type checker cannot determine the type of an expression.

+
Source

pub fn unknown_sym(kind: impl Display, sym: impl Display, span: Span) -> Self

For when the user tries to return a unknown variable.

+
Source

pub fn incorrect_num_args_to_call( expected: impl Display, received: impl Display, span: Span, ) -> Self

For when the user tries calls a function with the incorrect number of args.

-
Source

pub fn expected_one_type_of( +

Source

pub fn expected_one_type_of( expected: impl Display, received: impl Display, span: Span, ) -> Self

For when one of the following types was expected.

-
Source

pub fn invalid_int_value( +

Source

pub fn invalid_int_value( value: impl Display, type_: impl Display, span: Span, ) -> Self

For when an integer is not in a valid range.

-
Source

pub fn invalid_core_function( +

Source

pub fn invalid_core_function( struct_: impl Display, function: impl Display, span: Span, ) -> Self

For when an invalid core function is used.

-
Source

pub fn core_type_name_conflict(type_: impl Display, span: Span) -> Self

For when a struct is created with the same name as a core type.

-
Source

pub fn function_has_no_return(func: impl Display, span: Span) -> Self

For when a function doesn’t have a return statement.

-
Source

pub fn incorrect_num_struct_members( +

Source

pub fn core_type_name_conflict(type_: impl Display, span: Span) -> Self

For when a struct is created with the same name as a core type.

+
Source

pub fn function_has_no_return(func: impl Display, span: Span) -> Self

For when a function doesn’t have a return statement.

+
Source

pub fn incorrect_num_struct_members( expected: impl Display, received: impl Display, span: Span, ) -> Self

For when the user tries initialize a struct with the incorrect number of args.

-
Source

pub fn missing_struct_member( +

Source

pub fn missing_struct_member( struct_: impl Display, member: impl Display, span: Span, ) -> Self

For when the user is missing a struct member during initialization.

-
Source

pub fn invalid_core_function_call(expr: impl Display, span: Span) -> Self

An invalid access call is made e.g., `SHA256::hash()

-
Source

pub fn duplicate_struct_member(struct_: impl Display, span: Span) -> Self

Attempted to define more that one struct member with the same name.

-
Source

pub fn duplicate_record_variable(record: impl Display, span: Span) -> Self

Attempted to define more that one record variable with the same name.

-
Source

pub fn undefined_type(type_: impl Display, span: Span) -> Self

Attempted to access an invalid struct.

-
Source

pub fn invalid_struct_variable( +

Source

pub fn invalid_core_function_call(expr: impl Display, span: Span) -> Self

An invalid access call is made e.g., `SHA256::hash()

+
Source

pub fn duplicate_struct_member(struct_: impl Display, span: Span) -> Self

Attempted to define more that one struct member with the same name.

+
Source

pub fn duplicate_record_variable(record: impl Display, span: Span) -> Self

Attempted to define more that one record variable with the same name.

+
Source

pub fn undefined_type(type_: impl Display, span: Span) -> Self

Attempted to access an invalid struct.

+
Source

pub fn invalid_struct_variable( variable: impl Display, struct_: impl Display, span: Span, ) -> Self

Attempted to access an invalid struct variable.

-
Source

pub fn required_record_variable( +
Source

pub fn required_record_variable( name: impl Display, type_: impl Display, span: Span, -) -> Self

Source

pub fn record_var_wrong_type( +) -> Self

Source

pub fn record_var_wrong_type( name: impl Display, type_: impl Display, span: Span, -) -> Self

Source

pub fn compare_address(operator: impl Display, span: Span) -> Self

Source

pub fn incorrect_tuple_length( +) -> Self

Source

pub fn compare_address(operator: impl Display, span: Span) -> Self

Source

pub fn incorrect_tuple_length( expected: impl Display, actual: impl Display, span: Span, -) -> Self

Source

pub fn invalid_tuple(span: Span) -> Self

Source

pub fn tuple_out_of_range( +) -> Self

Source

pub fn invalid_tuple(span: Span) -> Self

Source

pub fn tuple_out_of_range( index: impl Display, length: impl Display, span: Span, -) -> Self

Source

pub fn unreachable_code_after_return(span: Span) -> Self

Source

pub fn loop_body_contains_return(span: Span) -> Self

Source

pub fn unknown_annotation(annotation: impl Display, span: Span) -> Self

Source

pub fn regular_function_inputs_cannot_have_modes(span: Span) -> Self

Source

pub fn async_function_input_cannot_be_private(span: Span) -> Self

Source

pub fn struct_or_record_cannot_contain_record( +) -> Self

Source

pub fn unreachable_code_after_return(span: Span) -> Self

Source

pub fn loop_body_contains_return(span: Span) -> Self

Source

pub fn unknown_annotation(annotation: impl Display, span: Span) -> Self

Source

pub fn regular_function_inputs_cannot_have_modes(span: Span) -> Self

Source

pub fn async_function_input_cannot_be_private(span: Span) -> Self

Source

pub fn struct_or_record_cannot_contain_record( parent: impl Display, child: impl Display, span: Span, -) -> Self

Source

pub fn invalid_mapping_type( +) -> Self

Source

pub fn invalid_mapping_type( component: impl Display, type_: impl Display, span: Span, -) -> Self

Source

pub fn async_function_input_must_be_public(span: Span) -> Self

Source

pub fn finalize_output_mode_must_be_public(span: Span) -> Self

Source

pub fn invalid_operation_outside_finalize( +) -> Self

Source

pub fn async_function_input_must_be_public(span: Span) -> Self

Source

pub fn finalize_output_mode_must_be_public(span: Span) -> Self

Source

pub fn invalid_operation_outside_finalize( operation: impl Display, span: Span, -) -> Self

Source

pub fn loop_body_contains_finalize(span: Span) -> Self

Source

pub fn missing_return(span: Span) -> Self

Source

pub fn finalize_block_must_not_be_empty(span: Span) -> Self

Source

pub fn cannot_have_constant_output_mode(span: Span) -> Self

Source

pub fn transition_function_inputs_cannot_be_const(span: Span) -> Self

Source

pub fn invalid_self_access(span: Span) -> Self

Source

pub fn invalid_type(type_: impl Display, span: Span) -> Self

Source

pub fn can_only_call_inline_function(span: Span) -> Self

Source

pub fn cannot_invoke_call_to_local_transition_function(span: Span) -> Self

Source

pub fn loop_bound_must_be_a_literal(span: Span) -> Self

Source

pub fn strings_are_not_supported(span: Span) -> Self

Source

pub fn imported_program_cannot_import_program(span: Span) -> Self

Source

pub fn too_many_transitions(max: impl Display, span: Span) -> Self

Source

pub fn assign_unit_expression_to_variable(span: Span) -> Self

Source

pub fn nested_tuple_type(span: Span) -> Self

Source

pub fn composite_data_type_cannot_contain_tuple( +) -> Self

Source

pub fn loop_body_contains_finalize(span: Span) -> Self

Source

pub fn missing_return(span: Span) -> Self

Source

pub fn finalize_block_must_not_be_empty(span: Span) -> Self

Source

pub fn cannot_have_constant_output_mode(span: Span) -> Self

Source

pub fn transition_function_inputs_cannot_be_const(span: Span) -> Self

Source

pub fn invalid_self_access(span: Span) -> Self

Source

pub fn invalid_type(type_: impl Display, span: Span) -> Self

Source

pub fn can_only_call_inline_function(span: Span) -> Self

Source

pub fn cannot_invoke_call_to_local_transition_function(span: Span) -> Self

Source

pub fn loop_bound_must_be_a_literal(span: Span) -> Self

Source

pub fn strings_are_not_supported(span: Span) -> Self

Source

pub fn imported_program_cannot_import_program(span: Span) -> Self

Source

pub fn too_many_transitions(max: impl Display, span: Span) -> Self

Source

pub fn assign_unit_expression_to_variable(span: Span) -> Self

Source

pub fn nested_tuple_type(span: Span) -> Self

Source

pub fn composite_data_type_cannot_contain_tuple( data_type: impl Display, span: Span, -) -> Self

Source

pub fn function_cannot_take_tuple_as_input(span: Span) -> Self

Source

pub fn nested_tuple_expression(span: Span) -> Self

Source

pub fn expression_statement_must_be_function_call(span: Span) -> Self

Source

pub fn lhs_tuple_element_must_be_an_identifier(span: Span) -> Self

Source

pub fn lhs_must_be_identifier_or_tuple(span: Span) -> Self

Source

pub fn unit_expression_only_in_return_statements(span: Span) -> Self

Source

pub fn function_cannot_input_or_output_a_record(span: Span) -> Self

Source

pub fn cyclic_struct_dependency(path: Vec<impl Display>) -> Self

Source

pub fn cyclic_function_dependency(path: Vec<impl Display>) -> Self

Source

pub fn struct_cannot_have_member_mode(span: Span) -> Self

Source

pub fn cannot_call_external_inline_function(span: Span) -> Self

Source

pub fn too_many_mappings(max: impl Display, span: Span) -> Self

Source

pub fn invalid_associated_constant(expr: impl Display, span: Span) -> Self

A call to an invalid associated constant is made e.g., bool::MAX

-
Source

pub fn invalid_core_constant( +) -> Self

Source

pub fn function_cannot_take_tuple_as_input(span: Span) -> Self

Source

pub fn nested_tuple_expression(span: Span) -> Self

Source

pub fn expression_statement_must_be_function_call(span: Span) -> Self

Source

pub fn lhs_tuple_element_must_be_an_identifier(span: Span) -> Self

Source

pub fn lhs_must_be_identifier_or_tuple(span: Span) -> Self

Source

pub fn unit_expression_only_in_return_statements(span: Span) -> Self

Source

pub fn function_cannot_input_or_output_a_record(span: Span) -> Self

Source

pub fn cyclic_struct_dependency(path: Vec<impl Display>) -> Self

Source

pub fn cyclic_function_dependency(path: Vec<impl Display>) -> Self

Source

pub fn struct_cannot_have_member_mode(span: Span) -> Self

Source

pub fn cannot_call_external_inline_function(span: Span) -> Self

Source

pub fn too_many_mappings(max: impl Display, span: Span) -> Self

Source

pub fn invalid_associated_constant(expr: impl Display, span: Span) -> Self

A call to an invalid associated constant is made e.g., bool::MAX

+
Source

pub fn invalid_core_constant( type_: impl Display, constant: impl Display, span: Span, ) -> Self

For when an invalid core constant is called.

-
Source

pub fn invalid_block_access(span: Span) -> Self

For when an invalid field of block is called.

-
Source

pub fn invalid_operation_inside_finalize( +

Source

pub fn invalid_block_access(span: Span) -> Self

For when an invalid field of block is called.

+
Source

pub fn invalid_operation_inside_finalize( operation: impl Display, span: Span, -) -> Self

Source

pub fn operation_must_be_in_finalize_block(span: Span) -> Self

Source

pub fn loop_range_decreasing(span: Span) -> Self

Source

pub fn loop_bound_type_mismatch(span: Span) -> Self

Source

pub fn const_declaration_must_be_literal_or_tuple_of_literals( +) -> Self

Source

pub fn operation_must_be_in_finalize_block(span: Span) -> Self

Source

pub fn loop_range_decreasing(span: Span) -> Self

Source

pub fn loop_bound_type_mismatch(span: Span) -> Self

Source

pub fn const_declaration_must_be_literal_or_tuple_of_literals( span: Span, -) -> Self

Source

pub fn loop_bound_must_be_literal_or_const(span: Span) -> Self

Source

pub fn incorrect_num_tuple_elements( +) -> Self

Source

pub fn loop_bound_must_be_literal_or_const(span: Span) -> Self

Source

pub fn incorrect_num_tuple_elements( identifiers: impl Display, types: impl Display, span: Span, -) -> Self

Source

pub fn const_declaration_can_only_have_one_binding(span: Span) -> Self

Source

pub fn stub_functions_must_not_be_inlines(span: Span) -> Self

Source

pub fn stub_functions_must_be_empty(span: Span) -> Self

Source

pub fn array_empty(span: Span) -> Self

Source

pub fn array_too_large( +) -> Self

Source

pub fn const_declaration_can_only_have_one_binding(span: Span) -> Self

Source

pub fn stub_functions_must_not_be_inlines(span: Span) -> Self

Source

pub fn stub_functions_must_be_empty(span: Span) -> Self

Source

pub fn array_empty(span: Span) -> Self

Source

pub fn array_too_large( size: impl Display, max: impl Display, span: Span, -) -> Self

Source

pub fn array_element_cannot_be_tuple(span: Span) -> Self

Source

pub fn array_element_cannot_be_record(span: Span) -> Self

Source

pub fn stubs_cannot_have_non_record_structs(span: Span) -> Self

Source

pub fn stubs_cannot_have_const_declarations(span: Span) -> Self

Source

pub fn stub_name_mismatch( +) -> Self

Source

pub fn array_element_cannot_be_tuple(span: Span) -> Self

Source

pub fn array_element_cannot_be_record(span: Span) -> Self

Source

pub fn stubs_cannot_have_non_record_structs(span: Span) -> Self

Source

pub fn stubs_cannot_have_const_declarations(span: Span) -> Self

Source

pub fn stub_name_mismatch( stub_name: impl Display, program_name: impl Display, span: Span, -) -> Self

Source

pub fn no_transitions(span: Span) -> Self

Source

pub fn cannot_define_external_struct(struct_: impl Display, span: Span) -> Self

Source

pub fn struct_definitions_dont_match( +) -> Self

Source

pub fn no_transitions(span: Span) -> Self

Source

pub fn cannot_define_external_struct(struct_: impl Display, span: Span) -> Self

Source

pub fn struct_definitions_dont_match( struct_: impl Display, program_1: impl Display, program_2: impl Display, span: Span, -) -> Self

Source

pub fn async_transition_invalid_output(span: Span) -> Self

Source

pub fn must_propagate_all_futures( +) -> Self

Source

pub fn async_transition_invalid_output(span: Span) -> Self

Source

pub fn must_propagate_all_futures( never_propagated: impl Display, span: Span, -) -> Self

Source

pub fn async_transition_must_call_async_function(span: Span) -> Self

Source

pub fn async_function_input_length_mismatch( +) -> Self

Source

pub fn async_transition_must_call_async_function(span: Span) -> Self

Source

pub fn async_function_input_length_mismatch( expected: impl Display, received: impl Display, span: Span, -) -> Self

Source

pub fn invalid_future_access( +) -> Self

Source

pub fn invalid_future_access( num: impl Display, len: impl Display, span: Span, -) -> Self

Source

pub fn future_access_must_be_number(name: impl Display, span: Span) -> Self

Source

pub fn no_path_awaits_all_futures_exactly_once( +) -> Self

Source

pub fn future_access_must_be_number(name: impl Display, span: Span) -> Self

Source

pub fn no_path_awaits_all_futures_exactly_once( num_total_paths: impl Display, span: Span, -) -> Self

Source

pub fn future_awaits_missing(unawaited: impl Display, span: Span) -> Self

Source

pub fn cannot_reassign_future_variable(var: impl Display, span: Span) -> Self

Source

pub fn invalid_await_call(span: Span) -> Self

Source

pub fn can_only_await_one_future_at_a_time(span: Span) -> Self

Source

pub fn expected_future(type_: impl Display, span: Span) -> Self

Source

pub fn invalid_method_call(span: Span) -> Self

Source

pub fn async_call_in_conditional(span: Span) -> Self

Source

pub fn must_call_async_function_once(span: Span) -> Self

Source

pub fn async_call_can_only_be_done_from_async_transition(span: Span) -> Self

Source

pub fn external_transition_call_must_be_before_finalize(span: Span) -> Self

Source

pub fn unknown_future_consumed(future: impl Display, span: Span) -> Self

Source

pub fn not_all_futures_consumed(unconsumed: impl Display, span: Span) -> Self

Source

pub fn async_transition_missing_future_to_return(span: Span) -> Self

Source

pub fn async_function_cannot_return_value(span: Span) -> Self

Source

pub fn return_type_of_finalize_function_is_future(span: Span) -> Self

Source

pub fn cannot_modify_external_mapping( +) -> Self

Source

pub fn future_awaits_missing(unawaited: impl Display, span: Span) -> Self

Source

pub fn cannot_reassign_future_variable(var: impl Display, span: Span) -> Self

Source

pub fn invalid_await_call(span: Span) -> Self

Source

pub fn can_only_await_one_future_at_a_time(span: Span) -> Self

Source

pub fn expected_future(type_: impl Display, span: Span) -> Self

Source

pub fn invalid_method_call(span: Span) -> Self

Source

pub fn async_call_in_conditional(span: Span) -> Self

Source

pub fn must_call_async_function_once(span: Span) -> Self

Source

pub fn async_call_can_only_be_done_from_async_transition(span: Span) -> Self

Source

pub fn external_transition_call_must_be_before_finalize(span: Span) -> Self

Source

pub fn unknown_future_consumed(future: impl Display, span: Span) -> Self

Source

pub fn not_all_futures_consumed(unconsumed: impl Display, span: Span) -> Self

Source

pub fn async_transition_missing_future_to_return(span: Span) -> Self

Source

pub fn async_function_cannot_return_value(span: Span) -> Self

Source

pub fn return_type_of_finalize_function_is_future(span: Span) -> Self

Source

pub fn cannot_modify_external_mapping( operation: impl Display, span: Span, -) -> Self

Source

pub fn async_cannot_assign_outside_conditional( +) -> Self

Source

pub fn async_cannot_assign_outside_conditional( variable: impl Display, span: Span, -) -> Self

Source

pub fn only_async_transition_can_return_future(span: Span) -> Self

Source

pub fn async_function_not_found(name: impl Display, span: Span) -> Self

Source

pub fn empty_struct(span: Span) -> Self

Source

pub fn empty_function_arglist(span: Span) -> Self

Source

pub fn composite_data_type_cannot_contain_future( +) -> Self

Source

pub fn only_async_transition_can_return_future(span: Span) -> Self

Source

pub fn async_function_not_found(name: impl Display, span: Span) -> Self

Source

pub fn empty_struct(span: Span) -> Self

Source

pub fn empty_function_arglist(span: Span) -> Self

Source

pub fn composite_data_type_cannot_contain_future( data_type: impl Display, span: Span, -) -> Self

Source

pub fn array_element_cannot_be_future(span: Span) -> Self

Source

pub fn no_future_parameters(span: Span) -> Self

Source

pub fn type_should_be2( +) -> Self

Source

pub fn array_element_cannot_be_future(span: Span) -> Self

Source

pub fn no_future_parameters(span: Span) -> Self

Source

pub fn type_should_be2( type_: impl Display, expected: impl Display, span: Span, ) -> Self

For when the user tries to assign to a const input.

This is a replacement for type_should_be with a slightly better message.

-
Source

pub fn ternary_branch_mismatch( +

Source

pub fn ternary_branch_mismatch( type1: impl Display, type2: impl Display, span: Span, -) -> Self

Source

pub fn operation_types_mismatch( +) -> Self

Source

pub fn operation_types_mismatch( operation: impl Display, type1: impl Display, type2: impl Display, span: Span, -) -> Self

Source

pub fn mul_types_mismatch( +) -> Self

Source

pub fn mul_types_mismatch( type1: impl Display, type2: impl Display, span: Span, -) -> Self

Source

pub fn pow_types_mismatch( +) -> Self

Source

pub fn pow_types_mismatch( type1: impl Display, type2: impl Display, span: Span, -) -> Self

Source

pub fn shift_type_magnitude( +) -> Self

Source

pub fn shift_type_magnitude( operation: impl Display, rhs_type: impl Display, span: Span, -) -> Self

Source

pub fn unit_type_only_return(span: Span) -> Self

Source

pub fn future_error_member(num: impl Display, span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for TypeCheckerError

Source§

fn clone(&self) -> TypeCheckerError

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 TypeCheckerError

Source§

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

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

impl Display for TypeCheckerError

Source§

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

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

impl Error for TypeCheckerError

Source§

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

Returns 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<Backtraced> for TypeCheckerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<TypeCheckerError> for LeoError

Source§

fn from(source: TypeCheckerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for TypeCheckerError

Implements the trait for LeoError Codes.

-
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 +) -> Self
Source

pub fn unit_type_only_return(span: Span) -> Self

Source

pub fn future_error_member(num: impl Display, span: Span) -> Self

Source

pub fn num_exit_codes() -> i32

Trait Implementations§

Source§

impl Clone for TypeCheckerError

Source§

fn clone(&self) -> TypeCheckerError

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 TypeCheckerError

Source§

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

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

impl Display for TypeCheckerError

Source§

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

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

impl Error for TypeCheckerError

Source§

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

Returns 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<Backtraced> for TypeCheckerError

Source§

fn from(source: Backtraced) -> Self

Converts to this type from the input type.
Source§

impl From<Formatted> for TypeCheckerError

Source§

fn from(source: Formatted) -> Self

Converts to this type from the input type.
Source§

impl From<TypeCheckerError> for LeoError

Source§

fn from(source: TypeCheckerError) -> Self

Converts to this type from the input type.
Source§

impl LeoMessageCode for TypeCheckerError

Implements the trait for LeoError Codes.

+
Source§

fn exit_code(&self) -> i32

Returns the error’s exit code for the program.
Source§

fn error_code(&self) -> String

Returns the prefixed error identifier.
Source§

fn warning_code(&self) -> String

Returns the prefixed warning identifier.
Source§

fn code_mask() -> i32

Returns the messages’s exit code mask, as to avoid conflicts.
Source§

fn message_type() -> String

Returns the message’s code type for the program.
Source§

fn is_error() -> bool

Returns if the message is an error or warning.
Source§

fn code_identifier() -> i8

The LeoErrorCode which has a default code identifier of 037 (Leo upsidedown and backwards). This is to make the exit codes unique to Leo itself.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where diff --git a/leo_errors/errors/type_checker/type_checker_error/index.html b/leo_errors/errors/type_checker/type_checker_error/index.html index 557c48e953..1b7c159988 100644 --- a/leo_errors/errors/type_checker/type_checker_error/index.html +++ b/leo_errors/errors/type_checker/type_checker_error/index.html @@ -1,2 +1,2 @@ -leo_errors::errors::type_checker::type_checker_error - Rust
leo_errors::errors::type_checker

Module type_checker_error

Source
Expand description

This module contains the Input error definitions.

+leo_errors::errors::type_checker::type_checker_error - Rust
leo_errors::errors::type_checker

Module type_checker_error

Source
Expand description

This module contains the Input error definitions.

Enums§

  • InputError enum that represents all the errors for the inputs part of leo-ast crate.
\ No newline at end of file diff --git a/leo_interpreter/all.html b/leo_interpreter/all.html index 0da7b46be0..2cf5301d0b 100644 --- a/leo_interpreter/all.html +++ b/leo_interpreter/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/leo_interpreter/constant.HELP.html b/leo_interpreter/constant.HELP.html index c5d0115042..077d33e91c 100644 --- a/leo_interpreter/constant.HELP.html +++ b/leo_interpreter/constant.HELP.html @@ -1,4 +1,4 @@ -HELP in leo_interpreter - Rust
leo_interpreter

Constant HELP

Source
pub(crate) const HELP: &str = "
+HELP in leo_interpreter - Rust
leo_interpreter

Constant HELP

Source
pub(crate) const HELP: &str = "
 You probably want to start by running a function or transition.
 For instance
 #into program.aleo/main()
diff --git a/leo_interpreter/constant.INTRO.html b/leo_interpreter/constant.INTRO.html
index 4b2cd4ed8a..82c87faa1d 100644
--- a/leo_interpreter/constant.INTRO.html
+++ b/leo_interpreter/constant.INTRO.html
@@ -1 +1 @@
-INTRO in leo_interpreter - Rust
leo_interpreter

Constant INTRO

Source
pub(crate) const INTRO: &str = "This is the Leo Interpreter. Try the command `#help`.";
\ No newline at end of file +INTRO in leo_interpreter - Rust
leo_interpreter

Constant INTRO

Source
pub(crate) const INTRO: &str = "This is the Leo Interpreter. Try the command `#help`.";
\ No newline at end of file diff --git a/leo_interpreter/core_functions/fn.evaluate_core_function.html b/leo_interpreter/core_functions/fn.evaluate_core_function.html new file mode 100644 index 0000000000..9c82f2245c --- /dev/null +++ b/leo_interpreter/core_functions/fn.evaluate_core_function.html @@ -0,0 +1,6 @@ +evaluate_core_function in leo_interpreter::core_functions - Rust
leo_interpreter::core_functions

Function evaluate_core_function

Source
pub fn evaluate_core_function(
+    helper: &mut dyn CoreFunctionHelper,
+    core_function: CoreFunction,
+    arguments: &[Expression],
+    span: Span,
+) -> Result<Option<Value>>
\ No newline at end of file diff --git a/leo_interpreter/core_functions/index.html b/leo_interpreter/core_functions/index.html new file mode 100644 index 0000000000..b24b1e2c1b --- /dev/null +++ b/leo_interpreter/core_functions/index.html @@ -0,0 +1 @@ +leo_interpreter::core_functions - Rust
leo_interpreter

Module core_functions

Source

Traits§

Functions§

\ No newline at end of file diff --git a/leo_interpreter/core_functions/sidebar-items.js b/leo_interpreter/core_functions/sidebar-items.js new file mode 100644 index 0000000000..a07594ef64 --- /dev/null +++ b/leo_interpreter/core_functions/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["evaluate_core_function"],"trait":["CoreFunctionHelper"]}; \ No newline at end of file diff --git a/leo_interpreter/core_functions/trait.CoreFunctionHelper.html b/leo_interpreter/core_functions/trait.CoreFunctionHelper.html new file mode 100644 index 0000000000..a9b183a6e2 --- /dev/null +++ b/leo_interpreter/core_functions/trait.CoreFunctionHelper.html @@ -0,0 +1,34 @@ +CoreFunctionHelper in leo_interpreter::core_functions - Rust
leo_interpreter::core_functions

Trait CoreFunctionHelper

Source
pub trait CoreFunctionHelper {
+    // Required method
+    fn pop_value_impl(&mut self) -> Option<Value>;
+
+    // Provided methods
+    fn pop_value(&mut self) -> Result<Value> { ... }
+    fn set_block_height(&mut self, _height: u32) { ... }
+    fn lookup_mapping(
+        &self,
+        _program: Option<Symbol>,
+        _name: Symbol,
+    ) -> Option<&HashMap<Value, Value>> { ... }
+    fn lookup_mapping_mut(
+        &mut self,
+        _program: Option<Symbol>,
+        _name: Symbol,
+    ) -> Option<&mut HashMap<Value, Value>> { ... }
+    fn rng(&mut self) -> Option<&mut ChaCha20Rng> { ... }
+}
Expand description

A context in which we can evaluate core functions.

+

This is intended to be implemented by Cursor, which will be used during +execution of the interpreter, and by Vec<Value>, which will be used +during compile time evaluation for constant folding.

+

The default implementations for rng, set_block_height, and mapping lookup +do nothing, as those features will not be available during compile time +evaluation.

+

Required Methods§

Provided Methods§

Source

fn pop_value(&mut self) -> Result<Value>

Source

fn set_block_height(&mut self, _height: u32)

Source

fn lookup_mapping( + &self, + _program: Option<Symbol>, + _name: Symbol, +) -> Option<&HashMap<Value, Value>>

Source

fn lookup_mapping_mut( + &mut self, + _program: Option<Symbol>, + _name: Symbol, +) -> Option<&mut HashMap<Value, Value>>

Source

fn rng(&mut self) -> Option<&mut ChaCha20Rng>

Implementations on Foreign Types§

Source§

impl CoreFunctionHelper for Vec<Value>

Implementors§

\ No newline at end of file diff --git a/leo_interpreter/cursor/enum.AleoContext.html b/leo_interpreter/cursor/enum.AleoContext.html index b1f3b50237..bbb8d1c9ea 100644 --- a/leo_interpreter/cursor/enum.AleoContext.html +++ b/leo_interpreter/cursor/enum.AleoContext.html @@ -1,8 +1,8 @@ -AleoContext in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum AleoContext

Source
pub enum AleoContext<'a> {
+AleoContext in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum AleoContext

Source
pub enum AleoContext<'a> {
     Closure(&'a Closure<TestnetV0>),
     Function(&'a Function<TestnetV0>),
     Finalize(&'a Finalize<TestnetV0>),
-}

Variants§

§

Closure(&'a Closure<TestnetV0>)

§

Function(&'a Function<TestnetV0>)

§

Finalize(&'a Finalize<TestnetV0>)

Trait Implementations§

Source§

impl<'a> Clone for AleoContext<'a>

Source§

fn clone(&self) -> AleoContext<'a>

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> Debug for AleoContext<'a>

Source§

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

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

impl<'a> Copy for AleoContext<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for AleoContext<'a>

§

impl<'a> RefUnwindSafe for AleoContext<'a>

§

impl<'a> Send for AleoContext<'a>

§

impl<'a> Sync for AleoContext<'a>

§

impl<'a> Unpin for AleoContext<'a>

§

impl<'a> UnwindSafe for AleoContext<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +}

Variants§

§

Closure(&'a Closure<TestnetV0>)

§

Function(&'a Function<TestnetV0>)

§

Finalize(&'a Finalize<TestnetV0>)

Trait Implementations§

Source§

impl<'a> Clone for AleoContext<'a>

Source§

fn clone(&self) -> AleoContext<'a>

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> Debug for AleoContext<'a>

Source§

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

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

impl<'a> Copy for AleoContext<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for AleoContext<'a>

§

impl<'a> RefUnwindSafe for AleoContext<'a>

§

impl<'a> Send for AleoContext<'a>

§

impl<'a> Sync for AleoContext<'a>

§

impl<'a> Unpin for AleoContext<'a>

§

impl<'a> UnwindSafe for AleoContext<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/enum.Element.html b/leo_interpreter/cursor/enum.Element.html index 179353c5d0..dba6b271d6 100644 --- a/leo_interpreter/cursor/enum.Element.html +++ b/leo_interpreter/cursor/enum.Element.html @@ -1,4 +1,4 @@ -Element in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum Element

Source
pub enum Element<'a> {
+Element in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum Element

Source
pub enum Element<'a> {
     Statement(&'a Statement),
     Expression(&'a Expression),
     Block {
@@ -23,7 +23,7 @@
 so that if such a block ends, we know to push a Unit to
 the values stack.
 
-

Fields

§block: &'a Block
§function_body: bool
§

AleoExecution

Fields

§context: AleoContext<'a>
§registers: IndexMap<u64, Value>
§instruction_index: usize
§

DelayedCall(GlobalId)

Implementations§

Source§

impl Element<'_>

Source

pub fn span(&self) -> Span

Trait Implementations§

Source§

impl<'a> Clone for Element<'a>

Source§

fn clone(&self) -> Element<'a>

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> Debug for Element<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Element<'a>

§

impl<'a> !RefUnwindSafe for Element<'a>

§

impl<'a> !Send for Element<'a>

§

impl<'a> !Sync for Element<'a>

§

impl<'a> Unpin for Element<'a>

§

impl<'a> !UnwindSafe for Element<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +

Fields

§block: &'a Block
§function_body: bool
§

AleoExecution

Fields

§context: AleoContext<'a>
§registers: IndexMap<u64, Value>
§instruction_index: usize
§

DelayedCall(GlobalId)

Implementations§

Source§

impl Element<'_>

Source

pub fn span(&self) -> Span

Trait Implementations§

Source§

impl<'a> Clone for Element<'a>

Source§

fn clone(&self) -> Element<'a>

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> Debug for Element<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Element<'a>

§

impl<'a> !RefUnwindSafe for Element<'a>

§

impl<'a> !Send for Element<'a>

§

impl<'a> !Sync for Element<'a>

§

impl<'a> Unpin for Element<'a>

§

impl<'a> !UnwindSafe for Element<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/enum.FunctionVariant.html b/leo_interpreter/cursor/enum.FunctionVariant.html index ee8a70e9b3..3a0acf1640 100644 --- a/leo_interpreter/cursor/enum.FunctionVariant.html +++ b/leo_interpreter/cursor/enum.FunctionVariant.html @@ -1,8 +1,8 @@ -FunctionVariant in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum FunctionVariant

Source
pub enum FunctionVariant<'a> {
+FunctionVariant in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Enum FunctionVariant

Source
pub enum FunctionVariant<'a> {
     Leo(&'a Function),
     AleoClosure(&'a Closure<TestnetV0>),
     AleoFunction(&'a Function<TestnetV0>),
-}

Variants§

§

Leo(&'a Function)

§

AleoClosure(&'a Closure<TestnetV0>)

§

AleoFunction(&'a Function<TestnetV0>)

Trait Implementations§

Source§

impl<'a> Clone for FunctionVariant<'a>

Source§

fn clone(&self) -> FunctionVariant<'a>

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> Debug for FunctionVariant<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FunctionVariant<'a>

§

impl<'a> !RefUnwindSafe for FunctionVariant<'a>

§

impl<'a> !Send for FunctionVariant<'a>

§

impl<'a> !Sync for FunctionVariant<'a>

§

impl<'a> Unpin for FunctionVariant<'a>

§

impl<'a> !UnwindSafe for FunctionVariant<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +}

Variants§

§

Leo(&'a Function)

§

AleoClosure(&'a Closure<TestnetV0>)

§

AleoFunction(&'a Function<TestnetV0>)

Trait Implementations§

Source§

impl<'a> Clone for FunctionVariant<'a>

Source§

fn clone(&self) -> FunctionVariant<'a>

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> Debug for FunctionVariant<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FunctionVariant<'a>

§

impl<'a> !RefUnwindSafe for FunctionVariant<'a>

§

impl<'a> !Send for FunctionVariant<'a>

§

impl<'a> !Sync for FunctionVariant<'a>

§

impl<'a> Unpin for FunctionVariant<'a>

§

impl<'a> !UnwindSafe for FunctionVariant<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/fn.evaluate_binary.html b/leo_interpreter/cursor/fn.evaluate_binary.html index 4d9609671f..4e741ceb41 100644 --- a/leo_interpreter/cursor/fn.evaluate_binary.html +++ b/leo_interpreter/cursor/fn.evaluate_binary.html @@ -1,7 +1,7 @@ -evaluate_binary in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Function evaluate_binary

Source
pub fn evaluate_binary(
+evaluate_binary in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Function evaluate_binary

Source
pub fn evaluate_binary(
     span: Span,
     op: BinaryOperation,
-    lhs: Value,
-    rhs: Value,
+    lhs: &Value,
+    rhs: &Value,
 ) -> Result<Value>
Expand description

Evaluate a binary operation.

\ No newline at end of file diff --git a/leo_interpreter/cursor/fn.evaluate_unary.html b/leo_interpreter/cursor/fn.evaluate_unary.html index 851ca87086..0c09622e6b 100644 --- a/leo_interpreter/cursor/fn.evaluate_unary.html +++ b/leo_interpreter/cursor/fn.evaluate_unary.html @@ -1,6 +1,6 @@ -evaluate_unary in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Function evaluate_unary

Source
pub fn evaluate_unary(
+evaluate_unary in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Function evaluate_unary

Source
pub fn evaluate_unary(
     span: Span,
     op: UnaryOperation,
-    value: Value,
+    value: &Value,
 ) -> Result<Value>
Expand description

Evaluate a unary operation.

\ No newline at end of file diff --git a/leo_interpreter/cursor/fn.literal_to_value.html b/leo_interpreter/cursor/fn.literal_to_value.html new file mode 100644 index 0000000000..977bd6b183 --- /dev/null +++ b/leo_interpreter/cursor/fn.literal_to_value.html @@ -0,0 +1 @@ +literal_to_value in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Function literal_to_value

Source
pub fn literal_to_value(literal: &Literal) -> Result<Value>
\ No newline at end of file diff --git a/leo_interpreter/cursor/index.html b/leo_interpreter/cursor/index.html index e826d94005..7445e88bfc 100644 --- a/leo_interpreter/cursor/index.html +++ b/leo_interpreter/cursor/index.html @@ -1,3 +1,3 @@ -leo_interpreter::cursor - Rust
leo_interpreter

Module cursor

Source

Structs§

  • A stack of contexts, building with the function call stack.
  • Tracks the current execution state - a cursor into the running program.
  • A frame of execution, keeping track of the Element next to +leo_interpreter::cursor - Rust
    leo_interpreter

    Module cursor

    Source

    Structs§

    • A stack of contexts, building with the function call stack.
    • Tracks the current execution state - a cursor into the running program.
    • A frame of execution, keeping track of the Element next to be executed and the number of steps we’ve done so far.
    • Names associated to values in a function being executed.
    • Global values - such as mappings, functions, etc - -are identified by program and name.

    Enums§

    Functions§

    Type Aliases§

    \ No newline at end of file +are identified by program and name.

Enums§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/leo_interpreter/cursor/sidebar-items.js b/leo_interpreter/cursor/sidebar-items.js index 628896fa3e..ee97950afb 100644 --- a/leo_interpreter/cursor/sidebar-items.js +++ b/leo_interpreter/cursor/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["AleoContext","Element","FunctionVariant"],"fn":["evaluate_binary","evaluate_unary"],"struct":["ContextStack","Cursor","Frame","FunctionContext","GlobalId","StepResult"],"type":["Closure","Finalize","SvmFunction"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["AleoContext","Element","FunctionVariant"],"fn":["evaluate_binary","evaluate_unary","literal_to_value"],"struct":["ContextStack","Cursor","Frame","FunctionContext","GlobalId","StepResult"],"type":["Closure","Finalize","SvmFunction"]}; \ No newline at end of file diff --git a/leo_interpreter/cursor/struct.ContextStack.html b/leo_interpreter/cursor/struct.ContextStack.html index 02413f4bab..c51d99ca0d 100644 --- a/leo_interpreter/cursor/struct.ContextStack.html +++ b/leo_interpreter/cursor/struct.ContextStack.html @@ -1,12 +1,12 @@ -ContextStack in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct ContextStack

Source
pub struct ContextStack {
+ContextStack in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct ContextStack

Source
pub struct ContextStack {
     contexts: Vec<FunctionContext>,
     current_len: usize,
 }
Expand description

A stack of contexts, building with the function call stack.

-

Fields§

§contexts: Vec<FunctionContext>§current_len: usize

Implementations§

Source§

impl ContextStack

Source

fn len(&self) -> usize

Source

fn push(&mut self, program: Symbol, caller: Address<TestnetV0>, is_async: bool)

Source

pub fn pop(&mut self)

Source

fn get_future(&mut self) -> Future

Get the future accumulated by awaiting futures in the current function call.

+

Fields§

§contexts: Vec<FunctionContext>§current_len: usize

Implementations§

Source§

impl ContextStack

Source

fn len(&self) -> usize

Source

fn push(&mut self, program: Symbol, caller: Address<TestnetV0>, is_async: bool)

Source

pub fn pop(&mut self)

Source

fn get_future(&mut self) -> Future

Get the future accumulated by awaiting futures in the current function call.

If the current code being interpreted is not in an async function, this will of course be empty.

-
Source

fn set(&mut self, symbol: Symbol, value: Value)

Source

pub fn add_future(&mut self, future: Future)

Source

fn is_async(&self) -> bool

Are we currently in an async function?

-
Source

pub fn current_program(&self) -> Option<Symbol>

Source

pub fn last(&self) -> Option<&FunctionContext>

Source

fn last_mut(&mut self) -> Option<&mut FunctionContext>

Trait Implementations§

Source§

impl Clone for ContextStack

Source§

fn clone(&self) -> ContextStack

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 ContextStack

Source§

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

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

impl Default for ContextStack

Source§

fn default() -> ContextStack

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

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +

Source

fn set(&mut self, symbol: Symbol, value: Value)

Source

pub fn add_future(&mut self, future: Future)

Source

fn is_async(&self) -> bool

Are we currently in an async function?

+
Source

pub fn current_program(&self) -> Option<Symbol>

Source

pub fn last(&self) -> Option<&FunctionContext>

Source

fn last_mut(&mut self) -> Option<&mut FunctionContext>

Trait Implementations§

Source§

impl Clone for ContextStack

Source§

fn clone(&self) -> ContextStack

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 ContextStack

Source§

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

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

impl Default for ContextStack

Source§

fn default() -> ContextStack

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/struct.Cursor.html b/leo_interpreter/cursor/struct.Cursor.html index abbc954c49..eb9e61284d 100644 --- a/leo_interpreter/cursor/struct.Cursor.html +++ b/leo_interpreter/cursor/struct.Cursor.html @@ -1,4 +1,4 @@ -Cursor in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct Cursor

Source
pub struct Cursor<'a> {
Show 14 fields +Cursor in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct Cursor

Source
pub struct Cursor<'a> {
Show 14 fields pub frames: Vec<Frame<'a>>, pub values: Vec<Value>, pub functions: HashMap<GlobalId, FunctionVariant<'a>>, @@ -20,38 +20,38 @@
§functions: HashMap<GlobalId, FunctionVariant<'a>>

All functions (or transitions or inlines) in any program being interpreted.

§globals: HashMap<GlobalId, Value>

Consts are stored here.

§user_values: HashMap<Symbol, Value>§mappings: HashMap<GlobalId, HashMap<Value, Value>>§structs: HashMap<GlobalId, IndexSet<Symbol>>

For each struct type, we only need to remember the names of its members, in order.

-
§futures: Vec<Future>§contexts: ContextStack§signer: Address<TestnetV0>§rng: ChaCha20Rng§block_height: u32§really_async: bool§program: Option<Symbol>

Implementations§

Source§

impl<'a> Cursor<'a>

Source

pub fn new( +

§futures: Vec<Future>§contexts: ContextStack§signer: Address<TestnetV0>§rng: ChaCha20Rng§block_height: u32§really_async: bool§program: Option<Symbol>

Implementations§

Source§

impl<'a> Cursor<'a>

Source

pub fn new( really_async: bool, signer: Address<TestnetV0>, block_height: u32, ) -> Self

really_async indicates we should really delay execution of async function calls until the user runs them.

-
Source

pub fn set_program(&mut self, program: &str)

Source

pub fn current_program(&self) -> Option<Symbol>

Source

pub fn increment_step(&mut self)

Source

fn new_caller(&self) -> Address<TestnetV0>

Source

fn pop_value(&mut self) -> Result<Value>

Source

fn lookup(&self, name: Symbol) -> Option<Value>

Source

pub fn lookup_mapping( +

Source

pub fn set_program(&mut self, program: &str)

Source

pub fn current_program(&self) -> Option<Symbol>

Source

pub fn increment_step(&mut self)

Source

fn new_caller(&self) -> Address<TestnetV0>

Source

fn pop_value(&mut self) -> Result<Value>

Source

fn lookup(&self, name: Symbol) -> Option<Value>

Source

pub fn lookup_mapping( &self, program: Option<Symbol>, name: Symbol, -) -> Option<&HashMap<Value, Value>>

Source

pub fn lookup_mapping_mut( +) -> Option<&HashMap<Value, Value>>

Source

pub fn lookup_mapping_mut( &mut self, program: Option<Symbol>, name: Symbol, -) -> Option<&mut HashMap<Value, Value>>

Source

fn lookup_function( +) -> Option<&mut HashMap<Value, Value>>

Source

fn lookup_function( &self, program: Symbol, name: Symbol, -) -> Option<FunctionVariant<'a>>

Source

fn set_variable(&mut self, symbol: Symbol, value: Value)

Source

fn set_block_height(&mut self, block_height: u32)

Source

pub fn whole_step(&mut self) -> Result<StepResult>

Execute the whole step of the current Element.

+) -> Option<FunctionVariant<'a>>

Source

fn set_variable(&mut self, symbol: Symbol, value: Value)

Source

pub fn whole_step(&mut self) -> Result<StepResult>

Execute the whole step of the current Element.

That is, perform a step, and then finish all statements and expressions that have been pushed, until we’re ready for the next step of the current Element (if there is one).

-
Source

pub fn over(&mut self) -> Result<StepResult>

Step over the current Element.

+
Source

pub fn over(&mut self) -> Result<StepResult>

Step over the current Element.

That is, continue executing until the current Element is finished.

-
Source

pub fn step_block( +

Source

pub fn step_block( &mut self, block: &'a Block, function_body: bool, step: usize, -) -> bool

Source

fn step_statement( +) -> bool

Source

fn step_statement( &mut self, statement: &'a Statement, step: usize, -) -> Result<bool>

Source

fn step_expression( +) -> Result<bool>

Source

fn step_expression( &mut self, expression: &'a Expression, step: usize, @@ -68,18 +68,21 @@ arguments: impl Iterator<Item = Value>, finalize: bool, span: Span, -) -> Result<()>

Source

pub fn evaluate_core_function( - &mut self, - core_function: CoreFunction, - arguments: &[Expression], - span: Span, -) -> Result<Value>

Source§

impl Cursor<'_>

Source§

impl Cursor<'_>

Source

fn mapping_by_call_operator( &self, operator: &CallOperator<TestnetV0>, ) -> Option<&HashMap<Value, Value>>

Source

fn get_register(&self, reg: &Register<TestnetV0>) -> &Value

Source

fn set_register(&mut self, reg: Register<TestnetV0>, value: Value)

Source

fn instructions_len(&self) -> usize

Source

fn increment_instruction_index(&mut self)

Source

fn execution_complete(&self) -> bool

Source

fn next_instruction(&self) -> Option<&Instruction<TestnetV0>>

Source

fn next_command(&self) -> Option<&Command<TestnetV0>>

Source

fn operand_value(&self, operand: &Operand<TestnetV0>) -> Value

Source

fn step_aleo_instruction( &mut self, instruction: Instruction<TestnetV0>, -) -> Result<()>

Source

fn outputs(&self) -> Vec<Value>

Source

fn step_aleo_command(&mut self, command: Command<TestnetV0>) -> Result<()>

Source

fn branch(&mut self, label: &Identifier<TestnetV0>)

Source

pub fn step_aleo(&mut self) -> Result<()>

Trait Implementations§

Source§

impl<'a> Clone for Cursor<'a>

Source§

fn clone(&self) -> Cursor<'a>

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> Debug for Cursor<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Cursor<'a>

§

impl<'a> !RefUnwindSafe for Cursor<'a>

§

impl<'a> !Send for Cursor<'a>

§

impl<'a> !Sync for Cursor<'a>

§

impl<'a> Unpin for Cursor<'a>

§

impl<'a> !UnwindSafe for Cursor<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +) -> Result<()>

Source

fn outputs(&self) -> Vec<Value>

Source

fn step_aleo_command(&mut self, command: Command<TestnetV0>) -> Result<()>

Source

fn branch(&mut self, label: &Identifier<TestnetV0>)

Source

pub fn step_aleo(&mut self) -> Result<()>

Trait Implementations§

Source§

impl<'a> Clone for Cursor<'a>

Source§

fn clone(&self) -> Cursor<'a>

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 CoreFunctionHelper for Cursor<'_>

Source§

fn pop_value_impl(&mut self) -> Option<Value>

Source§

fn set_block_height(&mut self, height: u32)

Source§

fn lookup_mapping( + &self, + program: Option<Symbol>, + name: Symbol, +) -> Option<&HashMap<Value, Value>>

Source§

fn lookup_mapping_mut( + &mut self, + program: Option<Symbol>, + name: Symbol, +) -> Option<&mut HashMap<Value, Value>>

Source§

fn rng(&mut self) -> Option<&mut ChaCha20Rng>

Source§

fn pop_value(&mut self) -> Result<Value>

Source§

impl<'a> Debug for Cursor<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Cursor<'a>

§

impl<'a> !RefUnwindSafe for Cursor<'a>

§

impl<'a> !Send for Cursor<'a>

§

impl<'a> !Sync for Cursor<'a>

§

impl<'a> Unpin for Cursor<'a>

§

impl<'a> !UnwindSafe for Cursor<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/struct.Frame.html b/leo_interpreter/cursor/struct.Frame.html index 0fa6c2a81c..ecd794f803 100644 --- a/leo_interpreter/cursor/struct.Frame.html +++ b/leo_interpreter/cursor/struct.Frame.html @@ -1,10 +1,10 @@ -Frame in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct Frame

Source
pub struct Frame<'a> {
+Frame in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct Frame

Source
pub struct Frame<'a> {
     pub step: usize,
     pub element: Element<'a>,
     pub user_initiated: bool,
 }
Expand description

A frame of execution, keeping track of the Element next to be executed and the number of steps we’ve done so far.

-

Fields§

§step: usize§element: Element<'a>§user_initiated: bool

Trait Implementations§

Source§

impl<'a> Clone for Frame<'a>

Source§

fn clone(&self) -> Frame<'a>

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> Debug for Frame<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Frame<'a>

§

impl<'a> !RefUnwindSafe for Frame<'a>

§

impl<'a> !Send for Frame<'a>

§

impl<'a> !Sync for Frame<'a>

§

impl<'a> Unpin for Frame<'a>

§

impl<'a> !UnwindSafe for Frame<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +

Fields§

§step: usize§element: Element<'a>§user_initiated: bool

Trait Implementations§

Source§

impl<'a> Clone for Frame<'a>

Source§

fn clone(&self) -> Frame<'a>

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> Debug for Frame<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Frame<'a>

§

impl<'a> !RefUnwindSafe for Frame<'a>

§

impl<'a> !Send for Frame<'a>

§

impl<'a> !Sync for Frame<'a>

§

impl<'a> Unpin for Frame<'a>

§

impl<'a> !UnwindSafe for Frame<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/struct.FunctionContext.html b/leo_interpreter/cursor/struct.FunctionContext.html index 5d9e688b8e..1d8589c48e 100644 --- a/leo_interpreter/cursor/struct.FunctionContext.html +++ b/leo_interpreter/cursor/struct.FunctionContext.html @@ -1,11 +1,11 @@ -FunctionContext in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct FunctionContext

Source
pub struct FunctionContext {
+FunctionContext in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct FunctionContext

Source
pub struct FunctionContext {
     program: Symbol,
     pub caller: Address<TestnetV0>,
     names: HashMap<Symbol, Value>,
     accumulated_futures: Future,
     is_async: bool,
 }
Expand description

Names associated to values in a function being executed.

-

Fields§

§program: Symbol§caller: Address<TestnetV0>§names: HashMap<Symbol, Value>§accumulated_futures: Future§is_async: bool

Trait Implementations§

Source§

impl Clone for FunctionContext

Source§

fn clone(&self) -> FunctionContext

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 FunctionContext

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 +

Fields§

§program: Symbol§caller: Address<TestnetV0>§names: HashMap<Symbol, Value>§accumulated_futures: Future§is_async: bool

Trait Implementations§

Source§

impl Clone for FunctionContext

Source§

fn clone(&self) -> FunctionContext

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 FunctionContext

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/struct.GlobalId.html b/leo_interpreter/cursor/struct.GlobalId.html index 37c2adb50b..fb363e33b4 100644 --- a/leo_interpreter/cursor/struct.GlobalId.html +++ b/leo_interpreter/cursor/struct.GlobalId.html @@ -1,12 +1,12 @@ -GlobalId in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct GlobalId

Source
pub struct GlobalId {
+GlobalId in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct GlobalId

Source
pub struct GlobalId {
     pub program: Symbol,
     pub name: Symbol,
 }
Expand description

Global values - such as mappings, functions, etc - are identified by program and name.

-

Fields§

§program: Symbol§name: Symbol

Trait Implementations§

Source§

impl Clone for GlobalId

Source§

fn clone(&self) -> GlobalId

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 GlobalId

Source§

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

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

impl Display for GlobalId

Source§

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

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

impl Hash for GlobalId

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 +

Fields§

§program: Symbol§name: Symbol

Trait Implementations§

Source§

impl Clone for GlobalId

Source§

fn clone(&self) -> GlobalId

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 GlobalId

Source§

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

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

impl Display for GlobalId

Source§

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

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

impl Hash for GlobalId

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 GlobalId

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl Copy for GlobalId

Source§

impl Eq for GlobalId

Source§

impl StructuralPartialEq for GlobalId

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where + Self: Sized,

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

impl PartialEq for GlobalId

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl Copy for GlobalId

Source§

impl Eq for GlobalId

Source§

impl StructuralPartialEq for GlobalId

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/struct.StepResult.html b/leo_interpreter/cursor/struct.StepResult.html index c6b2c60a79..7fb28b5004 100644 --- a/leo_interpreter/cursor/struct.StepResult.html +++ b/leo_interpreter/cursor/struct.StepResult.html @@ -1,9 +1,9 @@ -StepResult in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct StepResult

Source
pub struct StepResult {
+StepResult in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Struct StepResult

Source
pub struct StepResult {
     pub finished: bool,
     pub value: Option<Value>,
 }

Fields§

§finished: bool

Has this element completely finished running?

§value: Option<Value>

If the element was an expression, here’s its value.

-

Trait Implementations§

Source§

impl Clone for StepResult

Source§

fn clone(&self) -> StepResult

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 StepResult

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 +

Trait Implementations§

Source§

impl Clone for StepResult

Source§

fn clone(&self) -> StepResult

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 StepResult

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_interpreter/cursor/type.Closure.html b/leo_interpreter/cursor/type.Closure.html index 621742d0c3..bd728d42a7 100644 --- a/leo_interpreter/cursor/type.Closure.html +++ b/leo_interpreter/cursor/type.Closure.html @@ -1 +1 @@ -Closure in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias Closure

Source
pub type Closure = Closure<TestnetV0>;

Aliased Type§

struct Closure { /* private fields */ }
\ No newline at end of file +Closure in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias Closure

Source
pub type Closure = Closure<TestnetV0>;

Aliased Type§

struct Closure { /* private fields */ }
\ No newline at end of file diff --git a/leo_interpreter/cursor/type.Finalize.html b/leo_interpreter/cursor/type.Finalize.html index 05b67cbf6d..2eb5da5f17 100644 --- a/leo_interpreter/cursor/type.Finalize.html +++ b/leo_interpreter/cursor/type.Finalize.html @@ -1 +1 @@ -Finalize in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias Finalize

Source
pub type Finalize = Finalize<TestnetV0>;

Aliased Type§

struct Finalize { /* private fields */ }
\ No newline at end of file +Finalize in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias Finalize

Source
pub type Finalize = Finalize<TestnetV0>;

Aliased Type§

struct Finalize { /* private fields */ }
\ No newline at end of file diff --git a/leo_interpreter/cursor/type.SvmFunction.html b/leo_interpreter/cursor/type.SvmFunction.html index 6acfcea27c..454365276b 100644 --- a/leo_interpreter/cursor/type.SvmFunction.html +++ b/leo_interpreter/cursor/type.SvmFunction.html @@ -1 +1 @@ -SvmFunction in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias SvmFunction

Source
pub type SvmFunction = Function<TestnetV0>;

Aliased Type§

struct SvmFunction { /* private fields */ }
\ No newline at end of file +SvmFunction in leo_interpreter::cursor - Rust
leo_interpreter::cursor

Type Alias SvmFunction

Source
pub type SvmFunction = Function<TestnetV0>;

Aliased Type§

struct SvmFunction { /* private fields */ }
\ No newline at end of file diff --git a/leo_interpreter/enum.Value.html b/leo_interpreter/enum.Value.html new file mode 100644 index 0000000000..105bfc7a1b --- /dev/null +++ b/leo_interpreter/enum.Value.html @@ -0,0 +1,72 @@ +Value in leo_interpreter - Rust
leo_interpreter

Enum Value

Source
pub enum Value {
+
Show 20 variants Unit, + Bool(bool), + U8(u8), + U16(u16), + U32(u32), + U64(u64), + U128(u128), + I8(i8), + I16(i16), + I32(i32), + I64(i64), + I128(i128), + Group(Group<TestnetV0>), + Field(Field<TestnetV0>), + Scalar(Scalar<TestnetV0>), + Array(Vec<Value>), + Tuple(Vec<Value>), + Address(Address<TestnetV0>), + Future(Future), + Struct(StructContents), +
}
Expand description

A Leo value of any type.

+

Mappings and functions aren’t considered values.

+

Variants§

§

Unit

§

Bool(bool)

§

U8(u8)

§

U16(u16)

§

U32(u32)

§

U64(u64)

§

U128(u128)

§

I8(i8)

§

I16(i16)

§

I32(i32)

§

I64(i64)

§

I128(i128)

§

Group(Group<TestnetV0>)

§

Field(Field<TestnetV0>)

§

Scalar(Scalar<TestnetV0>)

§

Array(Vec<Value>)

§

Tuple(Vec<Value>)

§

Address(Address<TestnetV0>)

§

Future(Future)

§

Struct(StructContents)

Implementations§

Source§

impl Value

Source

pub fn to_fields(&self) -> Vec<Field<TestnetV0>>

Source

pub fn gte(&self, rhs: &Self) -> Result<bool>

Source

pub fn lte(&self, rhs: &Self) -> Result<bool>

Source

pub fn lt(&self, rhs: &Self) -> Result<bool>

Source

pub fn gt(&self, rhs: &Self) -> Result<bool>

Source

pub fn neq(&self, rhs: &Self) -> Result<bool>

Source

pub fn eq(&self, rhs: &Self) -> Result<bool>

Are the values equal, according to SnarkVM?

+

We use this rather than the Eq trait so we can +fail when comparing values of different types, +rather than just returning false.

+
Source

pub fn inc_wrapping(&self) -> Self

Source

pub fn generator() -> Self

Return the group generator.

+
Source

pub fn simple_shl(&self, shift: u32) -> Self

Doesn’t correspond to Aleo’s shl, because it +does not fail when set bits are shifted out.

+
Source

pub fn simple_shr(&self, shift: u32) -> Self

Source

pub fn cast(&self, cast_type: &Type) -> Option<Value>

Convert to the given type if possible under Aleo casting rules.

+

Trait Implementations§

Source§

impl Clone for Value

Source§

fn clone(&self) -> Value

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 Value

Source§

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

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

impl Default for Value

Source§

fn default() -> Value

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

impl Display for Value

Source§

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

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

impl Hash for Value

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 Value

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl ToBits for Value

Source§

fn write_bits_le(&self, vec: &mut Vec<bool>)

Writes self into the given vector as a boolean array in little-endian order.
Source§

fn write_bits_be(&self, _vec: &mut Vec<bool>)

Writes self into the given vector as a boolean array in big-endian order.
§

fn to_bits_le(&self) -> Vec<bool>

Returns self as a boolean array in little-endian order.
§

fn to_bits_be(&self) -> Vec<bool>

Returns self as a boolean array in big-endian order.
§

fn num_bits() -> Option<usize>

An optional indication of how many bits an object can be represented with.
Source§

impl Eq for Value

Source§

impl StructuralPartialEq for Value

Auto Trait Implementations§

§

impl Freeze for Value

§

impl RefUnwindSafe for Value

§

impl Send for Value

§

impl Sync for Value

§

impl Unpin for Value

§

impl UnwindSafe for Value

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

Source§

fn into(self) -> U

Calls U::from(self).

+

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

+
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/leo_interpreter/fn.evaluate_binary.html b/leo_interpreter/fn.evaluate_binary.html new file mode 100644 index 0000000000..20f51f50ec --- /dev/null +++ b/leo_interpreter/fn.evaluate_binary.html @@ -0,0 +1,7 @@ +evaluate_binary in leo_interpreter - Rust
leo_interpreter

Function evaluate_binary

Source
pub fn evaluate_binary(
+    span: Span,
+    op: BinaryOperation,
+    lhs: &Value,
+    rhs: &Value,
+) -> Result<Value>
Expand description

Evaluate a binary operation.

+
\ No newline at end of file diff --git a/leo_interpreter/fn.evaluate_core_function.html b/leo_interpreter/fn.evaluate_core_function.html new file mode 100644 index 0000000000..9462e4014b --- /dev/null +++ b/leo_interpreter/fn.evaluate_core_function.html @@ -0,0 +1,6 @@ +evaluate_core_function in leo_interpreter - Rust
leo_interpreter

Function evaluate_core_function

Source
pub fn evaluate_core_function(
+    helper: &mut dyn CoreFunctionHelper,
+    core_function: CoreFunction,
+    arguments: &[Expression],
+    span: Span,
+) -> Result<Option<Value>>
\ No newline at end of file diff --git a/leo_interpreter/fn.evaluate_unary.html b/leo_interpreter/fn.evaluate_unary.html new file mode 100644 index 0000000000..3b644e6bb2 --- /dev/null +++ b/leo_interpreter/fn.evaluate_unary.html @@ -0,0 +1,6 @@ +evaluate_unary in leo_interpreter - Rust
leo_interpreter

Function evaluate_unary

Source
pub fn evaluate_unary(
+    span: Span,
+    op: UnaryOperation,
+    value: &Value,
+) -> Result<Value>
Expand description

Evaluate a unary operation.

+
\ No newline at end of file diff --git a/leo_interpreter/fn.interpret.html b/leo_interpreter/fn.interpret.html index 8d8abc89b5..d51f0e5390 100644 --- a/leo_interpreter/fn.interpret.html +++ b/leo_interpreter/fn.interpret.html @@ -1,4 +1,4 @@ -interpret in leo_interpreter - Rust
leo_interpreter

Function interpret

Source
pub fn interpret(
+interpret in leo_interpreter - Rust
leo_interpreter

Function interpret

Source
pub fn interpret(
     leo_filenames: &[PathBuf],
     aleo_filenames: &[PathBuf],
     signer: Address<TestnetV0>,
diff --git a/leo_interpreter/fn.literal_to_value.html b/leo_interpreter/fn.literal_to_value.html
new file mode 100644
index 0000000000..6995954e34
--- /dev/null
+++ b/leo_interpreter/fn.literal_to_value.html
@@ -0,0 +1 @@
+literal_to_value in leo_interpreter - Rust
leo_interpreter

Function literal_to_value

Source
pub fn literal_to_value(literal: &Literal) -> Result<Value>
\ No newline at end of file diff --git a/leo_interpreter/fn.parse_breakpoint.html b/leo_interpreter/fn.parse_breakpoint.html index a8ac3a76b5..5a7ab95683 100644 --- a/leo_interpreter/fn.parse_breakpoint.html +++ b/leo_interpreter/fn.parse_breakpoint.html @@ -1 +1 @@ -parse_breakpoint in leo_interpreter - Rust
leo_interpreter

Function parse_breakpoint

Source
pub(crate) fn parse_breakpoint(s: &str) -> Option<Breakpoint>
\ No newline at end of file +parse_breakpoint in leo_interpreter - Rust
leo_interpreter

Function parse_breakpoint

Source
pub(crate) fn parse_breakpoint(s: &str) -> Option<Breakpoint>
\ No newline at end of file diff --git a/leo_interpreter/fn.tokenize_user_input.html b/leo_interpreter/fn.tokenize_user_input.html index 1a7806d46e..9e274d4b61 100644 --- a/leo_interpreter/fn.tokenize_user_input.html +++ b/leo_interpreter/fn.tokenize_user_input.html @@ -1 +1 @@ -tokenize_user_input in leo_interpreter - Rust
leo_interpreter

Function tokenize_user_input

Source
pub(crate) fn tokenize_user_input(input: &str) -> (&str, &str)
\ No newline at end of file +tokenize_user_input in leo_interpreter - Rust
leo_interpreter

Function tokenize_user_input

Source
pub(crate) fn tokenize_user_input(input: &str) -> (&str, &str)
\ No newline at end of file diff --git a/leo_interpreter/index.html b/leo_interpreter/index.html index 50ba251376..7f3a5f2886 100644 --- a/leo_interpreter/index.html +++ b/leo_interpreter/index.html @@ -1,2 +1,2 @@ -leo_interpreter - Rust

Crate leo_interpreter

Source

Modules§

Macros§

Constants§

Functions§

\ No newline at end of file +leo_interpreter - Rust

Crate leo_interpreter

Source

Modules§

Macros§

Enums§

  • A Leo value of any type.

Constants§

Traits§

Functions§

\ No newline at end of file diff --git a/leo_interpreter/sidebar-items.js b/leo_interpreter/sidebar-items.js index 12636da726..d7d5491bb4 100644 --- a/leo_interpreter/sidebar-items.js +++ b/leo_interpreter/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":["HELP","INTRO"],"fn":["interpret","parse_breakpoint","tokenize_user_input"],"macro":["halt","halt_no_span","tc_fail"],"mod":["cursor","cursor_aleo","dialoguer_input","interpreter","ratatui_ui","ui","util","value"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["HELP","INTRO"],"enum":["Value"],"fn":["evaluate_binary","evaluate_core_function","evaluate_unary","interpret","literal_to_value","parse_breakpoint","tokenize_user_input"],"macro":["halt","halt_no_span","tc_fail"],"mod":["core_functions","cursor","cursor_aleo","dialoguer_input","interpreter","ratatui_ui","ui","util","value"],"trait":["CoreFunctionHelper"]}; \ No newline at end of file diff --git a/leo_interpreter/trait.CoreFunctionHelper.html b/leo_interpreter/trait.CoreFunctionHelper.html new file mode 100644 index 0000000000..86ee8d0c43 --- /dev/null +++ b/leo_interpreter/trait.CoreFunctionHelper.html @@ -0,0 +1,34 @@ +CoreFunctionHelper in leo_interpreter - Rust
leo_interpreter

Trait CoreFunctionHelper

Source
pub trait CoreFunctionHelper {
+    // Required method
+    fn pop_value_impl(&mut self) -> Option<Value>;
+
+    // Provided methods
+    fn pop_value(&mut self) -> Result<Value> { ... }
+    fn set_block_height(&mut self, _height: u32) { ... }
+    fn lookup_mapping(
+        &self,
+        _program: Option<Symbol>,
+        _name: Symbol,
+    ) -> Option<&HashMap<Value, Value>> { ... }
+    fn lookup_mapping_mut(
+        &mut self,
+        _program: Option<Symbol>,
+        _name: Symbol,
+    ) -> Option<&mut HashMap<Value, Value>> { ... }
+    fn rng(&mut self) -> Option<&mut ChaCha20Rng> { ... }
+}
Expand description

A context in which we can evaluate core functions.

+

This is intended to be implemented by Cursor, which will be used during +execution of the interpreter, and by Vec<Value>, which will be used +during compile time evaluation for constant folding.

+

The default implementations for rng, set_block_height, and mapping lookup +do nothing, as those features will not be available during compile time +evaluation.

+

Required Methods§

Provided Methods§

Source

fn pop_value(&mut self) -> Result<Value>

Source

fn set_block_height(&mut self, _height: u32)

Source

fn lookup_mapping( + &self, + _program: Option<Symbol>, + _name: Symbol, +) -> Option<&HashMap<Value, Value>>

Source

fn lookup_mapping_mut( + &mut self, + _program: Option<Symbol>, + _name: Symbol, +) -> Option<&mut HashMap<Value, Value>>

Source

fn rng(&mut self) -> Option<&mut ChaCha20Rng>

Implementations on Foreign Types§

Source§

impl CoreFunctionHelper for Vec<Value>

Implementors§

\ No newline at end of file diff --git a/leo_interpreter/value/enum.Value.html b/leo_interpreter/value/enum.Value.html index 8c1e556c7f..27a610cc9b 100644 --- a/leo_interpreter/value/enum.Value.html +++ b/leo_interpreter/value/enum.Value.html @@ -28,7 +28,7 @@

Source

pub fn inc_wrapping(&self) -> Self

Source

pub fn generator() -> Self

Return the group generator.

Source

pub fn simple_shl(&self, shift: u32) -> Self

Doesn’t correspond to Aleo’s shl, because it does not fail when set bits are shifted out.

-
Source

pub fn simple_shr(&self, shift: u32) -> Self

Source

pub fn cast(self, cast_type: &Type) -> Option<Value>

Convert to the given type if possible under Aleo casting rules.

+
Source

pub fn simple_shr(&self, shift: u32) -> Self

Source

pub fn cast(&self, cast_type: &Type) -> Option<Value>

Convert to the given type if possible under Aleo casting rules.

Trait Implementations§

Source§

impl Clone for Value

Source§

fn clone(&self) -> Value

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 Value

Source§

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

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

impl Default for Value

Source§

fn default() -> Value

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

impl Display for Value

Source§

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

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

impl Hash for Value

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 Value

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, diff --git a/leo_package/outputs/ast_snapshot/enum.Snapshot.html b/leo_package/outputs/ast_snapshot/enum.Snapshot.html index efaf59f2ac..ae17e75cd4 100644 --- a/leo_package/outputs/ast_snapshot/enum.Snapshot.html +++ b/leo_package/outputs/ast_snapshot/enum.Snapshot.html @@ -1,4 +1,4 @@ -Snapshot in leo_package::outputs::ast_snapshot - Rust
leo_package::outputs::ast_snapshot

Enum Snapshot

Source
pub enum Snapshot {
+Snapshot in leo_package::outputs::ast_snapshot - Rust
leo_package::outputs::ast_snapshot

Enum Snapshot

Source
pub enum Snapshot {
     Initial,
     ImportsResolved,
     TypeInference,
@@ -27,9 +27,13 @@
     F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_package/package/struct.Package.html b/leo_package/package/struct.Package.html index 4b7dbf9924..885d1f2f45 100644 --- a/leo_package/package/struct.Package.html +++ b/leo_package/package/struct.Package.html @@ -3,8 +3,8 @@ pub version: String, pub description: Option<String>, pub license: Option<String>, - pub network: NetworkName, -}

Fields§

§name: String§version: String§description: Option<String>§license: Option<String>§network: NetworkName

Implementations§

Source§

impl Package

Source

pub fn new(package_name: &str, network: NetworkName) -> Result<Self>

Source

pub fn is_aleo_name_valid(name: &str) -> bool

Returns true if it is a valid Aleo name.

+ pub network: NetworkName, +}

Fields§

§name: String§version: String§description: Option<String>§license: Option<String>§network: NetworkName

Implementations§

Source§

impl Package

Source

pub fn new(package_name: &str, network: NetworkName) -> Result<Self>

Source

pub fn is_aleo_name_valid(name: &str) -> bool

Returns true if it is a valid Aleo name.

Aleo names can only contain ASCII alphanumeric characters and underscores.

Source

pub fn can_initialize(package_name: &str, path: &Path) -> bool

Returns true if a package is can be initialized at a given path.

Source

pub fn is_initialized(package_name: &str, path: &Path) -> bool

Returns true if a package is initialized at the given path

diff --git a/leo_package/root/env/struct.Env.html b/leo_package/root/env/struct.Env.html index 2f69427654..0a284dcbca 100644 --- a/leo_package/root/env/struct.Env.html +++ b/leo_package/root/env/struct.Env.html @@ -1,4 +1,4 @@ -Env in leo_package::root::env - Rust
leo_package::root::env

Struct Env

Source
pub struct Env<N: Network> {
+Env in leo_package::root::env - Rust
leo_package::root::env

Struct Env

Source
pub struct Env<N: Network> {
     private_key: PrivateKey<N>,
     endpoint: String,
 }

Fields§

§private_key: PrivateKey<N>§endpoint: String

Implementations§

Source§

impl<N: Network> Env<N>

Source

pub fn new(private_key: Option<PrivateKey<N>>, endpoint: String) -> Result<Self>

Source

pub fn exists_at(path: &Path) -> bool

Source

pub fn write_to(self, path: &Path) -> Result<()>

Trait Implementations§

Source§

impl<'de, N: Network> Deserialize<'de> for Env<N>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where @@ -32,9 +32,13 @@ F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_passes/all.html b/leo_passes/all.html index 28ec74a29f..e047df78bf 100644 --- a/leo_passes/all.html +++ b/leo_passes/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Constants

\ No newline at end of file diff --git a/leo_passes/common/symbol_table/enum.VariableType.html b/leo_passes/common/symbol_table/enum.VariableType.html index 50bf8422f6..c571a94f77 100644 --- a/leo_passes/common/symbol_table/enum.VariableType.html +++ b/leo_passes/common/symbol_table/enum.VariableType.html @@ -1,4 +1,4 @@ -VariableType in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Enum VariableType

Source
pub enum VariableType {
+VariableType in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Enum VariableType

Source
pub enum VariableType {
     Const,
     Input(Mode),
     Mut,
@@ -35,10 +35,14 @@
     F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_passes/common/symbol_table/fn.eq_struct.html b/leo_passes/common/symbol_table/fn.eq_struct.html index e6e6690069..3cfd434fad 100644 --- a/leo_passes/common/symbol_table/fn.eq_struct.html +++ b/leo_passes/common/symbol_table/fn.eq_struct.html @@ -1 +1 @@ -eq_struct in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Function eq_struct

Source
fn eq_struct(new: &Composite, old: &Composite) -> bool
\ No newline at end of file +eq_struct in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Function eq_struct

Source
fn eq_struct(new: &Composite, old: &Composite) -> bool
\ No newline at end of file diff --git a/leo_passes/common/symbol_table/index.html b/leo_passes/common/symbol_table/index.html index 4831c7d629..146c02e2c0 100644 --- a/leo_passes/common/symbol_table/index.html +++ b/leo_passes/common/symbol_table/index.html @@ -1 +1 @@ -leo_passes::common::symbol_table - Rust
leo_passes::common

Module symbol_table

Source

Modules§

Structs§

Enums§

  • An enumeration of the different types of variable type.

Functions§

\ No newline at end of file +leo_passes::common::symbol_table - Rust
leo_passes::common

Module symbol_table

Source

Modules§

Structs§

Enums§

  • An enumeration of the different types of variable type.

Functions§

\ No newline at end of file diff --git a/leo_passes/common/symbol_table/struct.LocalTable.html b/leo_passes/common/symbol_table/struct.LocalTable.html index 9dcdbfac7a..261d63a888 100644 --- a/leo_passes/common/symbol_table/struct.LocalTable.html +++ b/leo_passes/common/symbol_table/struct.LocalTable.html @@ -1,6 +1,6 @@ -LocalTable in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct LocalTable

Source
struct LocalTable {
+LocalTable in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct LocalTable

Source
struct LocalTable {
     inner: Rc<RefCell<LocalTableInner>>,
-}

Fields§

§inner: Rc<RefCell<LocalTableInner>>

Implementations§

Source§

impl LocalTable

Source

fn new(id: NodeID, parent: Option<NodeID>) -> Self

Trait Implementations§

Source§

impl Clone for LocalTable

Source§

fn clone(&self) -> LocalTable

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 LocalTable

Source§

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

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

impl Default for LocalTable

Source§

fn default() -> LocalTable

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

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +}

Fields§

§inner: Rc<RefCell<LocalTableInner>>

Implementations§

Source§

impl LocalTable

Source

fn new(id: NodeID, parent: Option<NodeID>) -> Self

Source

fn dup(&self, new_id: NodeID) -> Self

Trait Implementations§

Source§

impl Clone for LocalTable

Source§

fn clone(&self) -> LocalTable

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 LocalTable

Source§

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

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

impl Default for LocalTable

Source§

fn default() -> LocalTable

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where diff --git a/leo_passes/common/symbol_table/struct.SymbolTable.html b/leo_passes/common/symbol_table/struct.SymbolTable.html index 21b57b993d..8067c04cdc 100644 --- a/leo_passes/common/symbol_table/struct.SymbolTable.html +++ b/leo_passes/common/symbol_table/struct.SymbolTable.html @@ -1,4 +1,4 @@ -SymbolTable in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct SymbolTable

Source
pub struct SymbolTable {
+SymbolTable in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct SymbolTable

Source
pub struct SymbolTable {
     functions: IndexMap<Location, FunctionSymbol>,
     records: IndexMap<Location, Composite>,
     structs: IndexMap<Symbol, Composite>,
@@ -15,59 +15,61 @@
 
§globals: IndexMap<Location, VariableSymbol>

Global variables indexed by location.

§all_locals: HashMap<NodeID, LocalTable>

Local tables index by the NodeID of the function, iteration, or block they’re contained in.

§local: Option<LocalTable>

The current LocalTable we’re looking at.

-

Implementations§

Source§

impl SymbolTable

Source

pub fn iter_structs(&self) -> impl Iterator<Item = (Symbol, &Composite)>

Iterator over all the structs (not records) in this program.

-
Source

pub fn iter_records(&self) -> impl Iterator<Item = (Location, &Composite)>

Iterator over all the records in this program.

-
Source

pub fn iter_functions( +

Implementations§

Source§

impl SymbolTable

Source

pub fn iter_structs(&self) -> impl Iterator<Item = (Symbol, &Composite)>

Iterator over all the structs (not records) in this program.

+
Source

pub fn iter_records(&self) -> impl Iterator<Item = (Location, &Composite)>

Iterator over all the records in this program.

+
Source

pub fn iter_functions( &self, ) -> impl Iterator<Item = (Location, &FunctionSymbol)>

Iterator over all the functions in this program.

-
Source

pub fn lookup_struct(&self, name: Symbol) -> Option<&Composite>

Access the struct by this name if it exists.

-
Source

pub fn lookup_record(&self, location: Location) -> Option<&Composite>

Access the record at this location if it exists.

-
Source

pub fn lookup_function(&self, location: Location) -> Option<&FunctionSymbol>

Access the function at this location if it exists.

-
Source

pub fn lookup_variable( +

Source

pub fn lookup_struct(&self, name: Symbol) -> Option<&Composite>

Access the struct by this name if it exists.

+
Source

pub fn lookup_record(&self, location: Location) -> Option<&Composite>

Access the record at this location if it exists.

+
Source

pub fn lookup_function(&self, location: Location) -> Option<&FunctionSymbol>

Access the function at this location if it exists.

+
Source

pub fn lookup_variable( &self, program: Symbol, name: Symbol, ) -> Option<VariableSymbol>

Access the variable accessible by this name in the current scope.

-
Source

pub fn enter_scope(&mut self, id: Option<NodeID>)

Enter the scope of this NodeID, creating a table if it doesn’t exist yet.

+
Source

pub fn enter_scope(&mut self, id: Option<NodeID>)

Enter the scope of this NodeID, creating a table if it doesn’t exist yet.

Passing None means to enter the global scope.

-
Source

pub fn enter_parent(&mut self)

Enther the parent scope of the current scope (or the global scope if there is no local parent scope).

-
Source

pub fn insert_const(&mut self, program: Symbol, name: Symbol, value: Expression)

Insert an evaluated const into the current scope.

-
Source

pub fn lookup_const(&self, program: Symbol, name: Symbol) -> Option<Expression>

Find the evaluated const accessible by the given name in the current scope.

-
Source

pub fn insert_struct( +

Source

pub fn enter_scope_duped(&mut self, new_id: NodeID, old_id: NodeID)

Enter the new scope with id new_id, duplicating its local symbol table from the scope at old_id.

+

This is useful for a pass like loop unrolling, in which the loop body must be duplicated multiple times.

+
Source

pub fn enter_parent(&mut self)

Enther the parent scope of the current scope (or the global scope if there is no local parent scope).

+
Source

pub fn insert_const(&mut self, program: Symbol, name: Symbol, value: Expression)

Insert an evaluated const into the current scope.

+
Source

pub fn lookup_const(&self, program: Symbol, name: Symbol) -> Option<Expression>

Find the evaluated const accessible by the given name in the current scope.

+
Source

pub fn insert_struct( &mut self, program: Symbol, name: Symbol, composite: Composite, ) -> Result<()>

Insert a struct at this name.

Since structs are indexed only by name, the program is used only to check shadowing.

-
Source

pub fn insert_record( +

Source

pub fn insert_record( &mut self, location: Location, composite: Composite, ) -> Result<()>

Insert a record at this location.

-
Source

pub fn insert_function( +

Source

pub fn insert_function( &mut self, location: Location, function: Function, ) -> Result<()>

Insert a function at this location.

-
Source

pub fn insert_global( +

Source

pub fn insert_global( &mut self, location: Location, var: VariableSymbol, ) -> Result<()>

Insert a global at this location.

-
Source

pub fn lookup_global(&self, location: Location) -> Option<&VariableSymbol>

Access the global at this location if it exists.

-
Source

fn check_shadow_global(&self, location: Location, span: Span) -> Result<()>

Source

fn check_shadow_variable( +

Source

pub fn lookup_global(&self, location: Location) -> Option<&VariableSymbol>

Access the global at this location if it exists.

+
Source

fn check_shadow_global(&self, location: Location, span: Span) -> Result<()>

Source

fn check_shadow_variable( &self, program: Symbol, name: Symbol, span: Span, -) -> Result<()>

Source

pub fn insert_variable( +) -> Result<()>

Source

pub fn insert_variable( &mut self, program: Symbol, name: Symbol, var: VariableSymbol, ) -> Result<()>

Insert a variable into the current scope.

-
Source

pub fn attach_finalizer( +

Source

pub fn attach_finalizer( &mut self, caller: Location, callee: Location, diff --git a/leo_passes/common/symbol_table/struct.VariableSymbol.html b/leo_passes/common/symbol_table/struct.VariableSymbol.html index 09b0609faf..b8193d32b2 100644 --- a/leo_passes/common/symbol_table/struct.VariableSymbol.html +++ b/leo_passes/common/symbol_table/struct.VariableSymbol.html @@ -1,4 +1,4 @@ -VariableSymbol in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct VariableSymbol

Source
pub struct VariableSymbol {
+VariableSymbol in leo_passes::common::symbol_table - Rust
leo_passes::common::symbol_table

Struct VariableSymbol

Source
pub struct VariableSymbol {
     pub type_: Type,
     pub span: Span,
     pub declaration: VariableType,
@@ -38,10 +38,14 @@
     F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_passes/common/symbol_table/symbols/enum.VariableType.html b/leo_passes/common/symbol_table/symbols/enum.VariableType.html index e96c94ad1a..4f494871ed 100644 --- a/leo_passes/common/symbol_table/symbols/enum.VariableType.html +++ b/leo_passes/common/symbol_table/symbols/enum.VariableType.html @@ -1,4 +1,4 @@ -VariableType in leo_passes::common::symbol_table::symbols - Rust
leo_passes::common::symbol_table::symbols

Enum VariableType

Source
pub enum VariableType {
+VariableType in leo_passes::common::symbol_table::symbols - Rust
leo_passes::common::symbol_table::symbols

Enum VariableType

Source
pub enum VariableType {
     Const,
     Input(Mode),
     Mut,
@@ -35,10 +35,14 @@
     F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_passes/common/symbol_table/symbols/struct.VariableSymbol.html b/leo_passes/common/symbol_table/symbols/struct.VariableSymbol.html index d6f7f60648..55a9a4bb6f 100644 --- a/leo_passes/common/symbol_table/symbols/struct.VariableSymbol.html +++ b/leo_passes/common/symbol_table/symbols/struct.VariableSymbol.html @@ -1,4 +1,4 @@ -VariableSymbol in leo_passes::common::symbol_table::symbols - Rust
leo_passes::common::symbol_table::symbols

Struct VariableSymbol

Source
pub struct VariableSymbol {
+VariableSymbol in leo_passes::common::symbol_table::symbols - Rust
leo_passes::common::symbol_table::symbols

Struct VariableSymbol

Source
pub struct VariableSymbol {
     pub type_: Type,
     pub span: Span,
     pub declaration: VariableType,
@@ -38,10 +38,14 @@
     F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCompactString for T
where + T: Display,

§

fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

Fallible version of [ToCompactString::to_compact_string()] Read more
§

fn to_compact_string(&self) -> CompactString

Converts the given value to a [CompactString]. Read more
§

impl<T> ToLine for T
where + T: Display,

§

fn to_line(&self) -> Line<'_>

Converts the value to a [Line].
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

§

fn to_smolstr(&self) -> SmolStr

Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

§

fn to_smolstr(&self) -> SmolStr

§

impl<T> ToSpan for T
where + T: Display,

§

fn to_span(&self) -> Span<'_>

Converts the value to a [Span].
Source§

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

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToText for T
where + T: Display,

§

fn to_text(&self) -> Text<'_>

Converts the value to a [Text].
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where diff --git a/leo_passes/const_propagation/const_propagate_expression/index.html b/leo_passes/const_propagation/const_propagate_expression/index.html new file mode 100644 index 0000000000..c41592096c --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_expression/index.html @@ -0,0 +1 @@ +leo_passes::const_propagation::const_propagate_expression - Rust
leo_passes::const_propagation

Module const_propagate_expression

Source
\ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroll_expression/sidebar-items.js b/leo_passes/const_propagation/const_propagate_expression/sidebar-items.js similarity index 100% rename from leo_passes/loop_unrolling/unroll_expression/sidebar-items.js rename to leo_passes/const_propagation/const_propagate_expression/sidebar-items.js diff --git a/leo_passes/const_propagation/const_propagate_program/index.html b/leo_passes/const_propagation/const_propagate_program/index.html new file mode 100644 index 0000000000..50bca4f6bc --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_program/index.html @@ -0,0 +1 @@ +leo_passes::const_propagation::const_propagate_program - Rust
leo_passes::const_propagation

Module const_propagate_program

Source
\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagate_program/sidebar-items.js b/leo_passes/const_propagation/const_propagate_program/sidebar-items.js new file mode 100644 index 0000000000..5244ce01cc --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_program/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {}; \ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagate_statement/fn.empty_statement.html b/leo_passes/const_propagation/const_propagate_statement/fn.empty_statement.html new file mode 100644 index 0000000000..79a2eec53d --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_statement/fn.empty_statement.html @@ -0,0 +1 @@ +empty_statement in leo_passes::const_propagation::const_propagate_statement - Rust
leo_passes::const_propagation::const_propagate_statement

Function empty_statement

Source
fn empty_statement() -> Statement
\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagate_statement/fn.is_empty_statement.html b/leo_passes/const_propagation/const_propagate_statement/fn.is_empty_statement.html new file mode 100644 index 0000000000..8de2d9ec79 --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_statement/fn.is_empty_statement.html @@ -0,0 +1 @@ +is_empty_statement in leo_passes::const_propagation::const_propagate_statement - Rust
leo_passes::const_propagation::const_propagate_statement

Function is_empty_statement

Source
fn is_empty_statement(stmt: &Statement) -> bool
\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagate_statement/index.html b/leo_passes/const_propagation/const_propagate_statement/index.html new file mode 100644 index 0000000000..8ee8f09955 --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_statement/index.html @@ -0,0 +1 @@ +leo_passes::const_propagation::const_propagate_statement - Rust
leo_passes::const_propagation

Module const_propagate_statement

Source

Functions§

\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagate_statement/sidebar-items.js b/leo_passes/const_propagation/const_propagate_statement/sidebar-items.js new file mode 100644 index 0000000000..5309a10e1a --- /dev/null +++ b/leo_passes/const_propagation/const_propagate_statement/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["empty_statement","is_empty_statement"]}; \ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagator/fn.value_to_expression.html b/leo_passes/const_propagation/const_propagator/fn.value_to_expression.html new file mode 100644 index 0000000000..e7f83478a7 --- /dev/null +++ b/leo_passes/const_propagation/const_propagator/fn.value_to_expression.html @@ -0,0 +1,5 @@ +value_to_expression in leo_passes::const_propagation::const_propagator - Rust
leo_passes::const_propagation::const_propagator

Function value_to_expression

Source
pub(crate) fn value_to_expression(
+    value: &Value,
+    span: Span,
+    node_builder: &NodeBuilder,
+) -> Expression
\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagator/index.html b/leo_passes/const_propagation/const_propagator/index.html new file mode 100644 index 0000000000..0d122bddb5 --- /dev/null +++ b/leo_passes/const_propagation/const_propagator/index.html @@ -0,0 +1 @@ +leo_passes::const_propagation::const_propagator - Rust
leo_passes::const_propagation

Module const_propagator

Source

Structs§

Functions§

\ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagator/sidebar-items.js b/leo_passes/const_propagation/const_propagator/sidebar-items.js new file mode 100644 index 0000000000..c393243fbf --- /dev/null +++ b/leo_passes/const_propagation/const_propagator/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["value_to_expression"],"struct":["ConstPropagator"]}; \ No newline at end of file diff --git a/leo_passes/const_propagation/const_propagator/struct.ConstPropagator.html b/leo_passes/const_propagation/const_propagator/struct.ConstPropagator.html new file mode 100644 index 0000000000..1ed01c912c --- /dev/null +++ b/leo_passes/const_propagation/const_propagator/struct.ConstPropagator.html @@ -0,0 +1,156 @@ +ConstPropagator in leo_passes::const_propagation::const_propagator - Rust
leo_passes::const_propagation::const_propagator

Struct ConstPropagator

Source
pub struct ConstPropagator<'a> {
+    pub(crate) symbol_table: &'a mut SymbolTable,
+    pub(crate) type_table: &'a TypeTable,
+    pub(crate) node_builder: &'a NodeBuilder,
+    pub(crate) handler: &'a Handler,
+    pub(crate) program: Symbol,
+    pub(crate) changed: bool,
+    pub(crate) const_not_evaluated: Option<Span>,
+    pub(crate) array_index_not_evaluated: Option<Span>,
+}
Expand description

A pass to perform const propagation and folding.

+

This pass should be used in conjunction with the Unroller so that +loop bounds and consts in loop bodies can be evaluated.

+

Any of these expressions:

+
    +
  1. unary operation,
  2. +
  3. binary operation,
  4. +
  5. core function other than cheat codes, mapping ops, or rand functions,
  6. +
+

whose arguments are consts or literals will be subject to constant folding. +The ternary conditional operator will also be folded if its condition is +a constant or literal.

+

Fields§

§symbol_table: &'a mut SymbolTable

The symbol table associated with the program.

+
§type_table: &'a TypeTable

A mapping between node IDs and their types.

+
§node_builder: &'a NodeBuilder

A counter used to generate unique node IDs.

+
§handler: &'a Handler

The error handler.

+
§program: Symbol

The program name.

+
§changed: bool

Have we actually modified the progam at all?

+
§const_not_evaluated: Option<Span>

The RHS of a const declaration we were not able to evaluate.

+
§array_index_not_evaluated: Option<Span>

An array index which was not able to be evaluated.

+

Implementations§

Source§

impl<'a> ConstPropagator<'a>

Source

pub(crate) fn new( + handler: &'a Handler, + symbol_table: &'a mut SymbolTable, + type_table: &'a TypeTable, + node_builder: &'a NodeBuilder, +) -> Self

Source

pub(crate) fn in_scope<T>( + &mut self, + id: NodeID, + func: impl FnOnce(&mut Self) -> T, +) -> T

Enter the symbol table’s scope id, execute func, and then return to the parent scope.

+
Source

pub(crate) fn emit_err(&self, err: StaticAnalyzerError)

Emit a StaticAnalyzerError.

+

Trait Implementations§

Source§

impl ExpressionReconstructor for ConstPropagator<'_>

Source§

type AdditionalOutput = Option<Value>

Source§

fn reconstruct_expression( + &mut self, + input: Expression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_struct_init( + &mut self, + input: StructExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_ternary( + &mut self, + input: TernaryExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_access( + &mut self, + input: AccessExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_array_access( + &mut self, + input: ArrayAccess, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_associated_constant( + &mut self, + input: AssociatedConstant, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_associated_function( + &mut self, + input: AssociatedFunction, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_member_access( + &mut self, + input: MemberAccess, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_tuple_access( + &mut self, + input: TupleAccess, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_array( + &mut self, + input: ArrayExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_binary( + &mut self, + input: BinaryExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_call( + &mut self, + input: CallExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_cast( + &mut self, + input: CastExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_err( + &mut self, + _input: ErrExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_identifier( + &mut self, + input: Identifier, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_literal( + &mut self, + input: Literal, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_locator( + &mut self, + input: LocatorExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_tuple( + &mut self, + input: TupleExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_unary( + &mut self, + input: UnaryExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

fn reconstruct_unit( + &mut self, + input: UnitExpression, +) -> (Expression, Self::AdditionalOutput)

Source§

impl<'a> Pass for ConstPropagator<'a>

Source§

type Input = (Ast, &'a Handler, &'a mut SymbolTable, &'a TypeTable, &'a NodeBuilder)

Source§

type Output = Result<(Ast, ConstPropagatorOutput), LeoError>

Source§

fn do_pass( + (ast, handler, symbol_table, type_table, node_builder): Self::Input, +) -> Self::Output

Runs the compiler pass.
Source§

impl ProgramReconstructor for ConstPropagator<'_>

Source§

impl StatementReconstructor for ConstPropagator<'_>

Auto Trait Implementations§

§

impl<'a> Freeze for ConstPropagator<'a>

§

impl<'a> !RefUnwindSafe for ConstPropagator<'a>

§

impl<'a> !Send for ConstPropagator<'a>

§

impl<'a> !Sync for ConstPropagator<'a>

§

impl<'a> Unpin for ConstPropagator<'a>

§

impl<'a> !UnwindSafe for ConstPropagator<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

Source§

fn into(self) -> U

Calls U::from(self).

+

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

+
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/leo_passes/const_propagation/index.html b/leo_passes/const_propagation/index.html new file mode 100644 index 0000000000..7b0311e548 --- /dev/null +++ b/leo_passes/const_propagation/index.html @@ -0,0 +1 @@ +leo_passes::const_propagation - Rust
leo_passes

Module const_propagation

Source

Re-exports§

Modules§

Structs§

\ No newline at end of file diff --git a/leo_passes/const_propagation/sidebar-items.js b/leo_passes/const_propagation/sidebar-items.js new file mode 100644 index 0000000000..fbf53a1b93 --- /dev/null +++ b/leo_passes/const_propagation/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"mod":["const_propagate_expression","const_propagate_program","const_propagate_statement","const_propagator"],"struct":["ConstPropagatorOutput"]}; \ No newline at end of file diff --git a/leo_passes/const_propagation/struct.ConstPropagatorOutput.html b/leo_passes/const_propagation/struct.ConstPropagatorOutput.html new file mode 100644 index 0000000000..e9b6863033 --- /dev/null +++ b/leo_passes/const_propagation/struct.ConstPropagatorOutput.html @@ -0,0 +1,31 @@ +ConstPropagatorOutput in leo_passes::const_propagation - Rust
leo_passes::const_propagation

Struct ConstPropagatorOutput

Source
pub struct ConstPropagatorOutput {
+    pub changed: bool,
+    pub const_not_evaluated: Option<Span>,
+    pub array_index_not_evaluated: Option<Span>,
+}

Fields§

§changed: bool

Something about the program was actually changed during the pass.

+
§const_not_evaluated: Option<Span>

A const declaration whose RHS was not able to be evaluated.

+
§array_index_not_evaluated: Option<Span>

An array index which was not able to be evaluated.

+

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

Source§

fn into(self) -> U

Calls U::from(self).

+

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

+
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/leo_passes/index.html b/leo_passes/index.html index f7b56e00bb..dbd8f848fe 100644 --- a/leo_passes/index.html +++ b/leo_passes/index.html @@ -1,8 +1,8 @@ -leo_passes - Rust

Crate leo_passes

Source
Expand description

§leo-passes

+leo_passes - Rust

Crate leo_passes

Source
Expand description

§leo-passes

Crates.io Authors License

-

Re-exports§

Modules§

Re-exports§

Modules§

  • The Dead Code Elimination pass traverses the AST and eliminates unused code, specifically assignment statements, within the boundary of transitions and functions. The pass is run after the Function Inlining pass.
  • The destructuring pass traverses the AST and destructures tuples into individual variables. This pass assumes that tuples have a depth of 1, which is ensured by the type checking pass.
  • The flattening pass traverses the AST after the SSA pass and converts into a sequential code. @@ -15,4 +15,4 @@ In other words, a callee function will appear before a caller function in the order.
  • The Static Single Assignment pass traverses the AST and converts it into SSA form. See https://en.wikipedia.org/wiki/Static_single-assignment_form for more information. The pass also replaces DefinitionStatements with AssignmentStatements. -The pass also simplifies complex expressions into a sequence of AssignStatements. For example, (a + b) * c is rewritten into $var$1 = a + b; $var$2 = $var$1 * c.

Structs§

\ No newline at end of file +The pass also simplifies complex expressions into a sequence of AssignStatements. For example, (a + b) * c is rewritten into $var$1 = a + b; $var$2 = $var$1 * c.
  • Structs§

    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/duplicate/fn.duplicate.html b/leo_passes/loop_unrolling/duplicate/fn.duplicate.html new file mode 100644 index 0000000000..17d2045be2 --- /dev/null +++ b/leo_passes/loop_unrolling/duplicate/fn.duplicate.html @@ -0,0 +1,7 @@ +duplicate in leo_passes::loop_unrolling::duplicate - Rust
    leo_passes::loop_unrolling::duplicate

    Function duplicate

    Source
    pub fn duplicate(
    +    block: Block,
    +    symbol_table: &mut SymbolTable,
    +    node_builder: &NodeBuilder,
    +) -> Block
    Expand description

    Duplicate this block, recursively giving new NodeIDs into scopes, and duplicating the new scopes +in the SymbolTable.

    +
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/duplicate/index.html b/leo_passes/loop_unrolling/duplicate/index.html new file mode 100644 index 0000000000..e3d1749a1f --- /dev/null +++ b/leo_passes/loop_unrolling/duplicate/index.html @@ -0,0 +1,2 @@ +leo_passes::loop_unrolling::duplicate - Rust
    leo_passes::loop_unrolling

    Module duplicate

    Source

    Structs§

    Functions§

    • Duplicate this block, recursively giving new NodeIDs into scopes, and duplicating the new scopes +in the SymbolTable.
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/duplicate/sidebar-items.js b/leo_passes/loop_unrolling/duplicate/sidebar-items.js new file mode 100644 index 0000000000..23c8ebb708 --- /dev/null +++ b/leo_passes/loop_unrolling/duplicate/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["duplicate"],"struct":["Duplicator"]}; \ No newline at end of file diff --git a/leo_passes/loop_unrolling/duplicate/struct.Duplicator.html b/leo_passes/loop_unrolling/duplicate/struct.Duplicator.html new file mode 100644 index 0000000000..ff4b7f2761 --- /dev/null +++ b/leo_passes/loop_unrolling/duplicate/struct.Duplicator.html @@ -0,0 +1,122 @@ +Duplicator in leo_passes::loop_unrolling::duplicate - Rust
    leo_passes::loop_unrolling::duplicate

    Struct Duplicator

    Source
    struct Duplicator<'a> {
    +    symbol_table: &'a mut SymbolTable,
    +    node_builder: &'a NodeBuilder,
    +}

    Fields§

    §symbol_table: &'a mut SymbolTable§node_builder: &'a NodeBuilder

    Implementations§

    Source§

    impl Duplicator<'_>

    Source

    fn in_scope_duped<T>( + &mut self, + new_id: NodeID, + old_id: NodeID, + func: impl FnOnce(&mut Self) -> T, +) -> T

    Trait Implementations§

    Source§

    impl ExpressionReconstructor for Duplicator<'_>

    Source§

    type AdditionalOutput = ()

    Source§

    fn reconstruct_expression( + &mut self, + input: Expression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_access( + &mut self, + input: AccessExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_array_access( + &mut self, + input: ArrayAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_associated_constant( + &mut self, + input: AssociatedConstant, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_associated_function( + &mut self, + input: AssociatedFunction, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_member_access( + &mut self, + input: MemberAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_tuple_access( + &mut self, + input: TupleAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_array( + &mut self, + input: ArrayExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_binary( + &mut self, + input: BinaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_call( + &mut self, + input: CallExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_cast( + &mut self, + input: CastExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_struct_init( + &mut self, + input: StructExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_err( + &mut self, + _input: ErrExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_identifier( + &mut self, + input: Identifier, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_literal( + &mut self, + input: Literal, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_locator( + &mut self, + input: LocatorExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_ternary( + &mut self, + input: TernaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_tuple( + &mut self, + input: TupleExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_unary( + &mut self, + input: UnaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_unit( + &mut self, + input: UnitExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    impl StatementReconstructor for Duplicator<'_>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for Duplicator<'a>

    §

    impl<'a> !RefUnwindSafe for Duplicator<'a>

    §

    impl<'a> !Send for Duplicator<'a>

    §

    impl<'a> !Sync for Duplicator<'a>

    §

    impl<'a> Unpin for Duplicator<'a>

    §

    impl<'a> !UnwindSafe for Duplicator<'a>

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

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

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

    fn in_current_span(self) -> Instrumented<Self>

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

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

    Source§

    fn into(self) -> U

    Calls U::from(self).

    +

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

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

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

    Source§

    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>,

    Source§

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

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

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

    Performs the conversion.
    §

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

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

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

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/index.html b/leo_passes/loop_unrolling/index.html index cb2715972c..55d4b62062 100644 --- a/leo_passes/loop_unrolling/index.html +++ b/leo_passes/loop_unrolling/index.html @@ -1 +1 @@ -leo_passes::loop_unrolling - Rust
    leo_passes

    Module loop_unrolling

    Source

    Re-exports§

    Modules§

    \ No newline at end of file +leo_passes::loop_unrolling - Rust
    leo_passes

    Module loop_unrolling

    Source

    Re-exports§

    Modules§

    Structs§

    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/sidebar-items.js b/leo_passes/loop_unrolling/sidebar-items.js index 95947cfec8..8b7d746034 100644 --- a/leo_passes/loop_unrolling/sidebar-items.js +++ b/leo_passes/loop_unrolling/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["range_iterator","unroll_expression","unroll_program","unroll_statement","unroller"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["duplicate","range_iterator","unroll_program","unroll_statement","unroller"],"struct":["UnrollerOutput"]}; \ No newline at end of file diff --git a/leo_passes/loop_unrolling/struct.UnrollerOutput.html b/leo_passes/loop_unrolling/struct.UnrollerOutput.html new file mode 100644 index 0000000000..d7ac2b4378 --- /dev/null +++ b/leo_passes/loop_unrolling/struct.UnrollerOutput.html @@ -0,0 +1,29 @@ +UnrollerOutput in leo_passes::loop_unrolling - Rust
    leo_passes::loop_unrolling

    Struct UnrollerOutput

    Source
    pub struct UnrollerOutput {
    +    pub loop_not_unrolled: Option<Span>,
    +    pub loop_unrolled: bool,
    +}

    Fields§

    §loop_not_unrolled: Option<Span>

    If we encountered a loop that was not unrolled, here’s it’s spanned.

    +
    §loop_unrolled: bool

    Did we unroll any loop?

    +

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

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

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

    fn in_current_span(self) -> Instrumented<Self>

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

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

    Source§

    fn into(self) -> U

    Calls U::from(self).

    +

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

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

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

    Source§

    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>,

    Source§

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

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

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

    Performs the conversion.
    §

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

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

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

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroll_expression/index.html b/leo_passes/loop_unrolling/unroll_expression/index.html deleted file mode 100644 index 5d48873f45..0000000000 --- a/leo_passes/loop_unrolling/unroll_expression/index.html +++ /dev/null @@ -1 +0,0 @@ -leo_passes::loop_unrolling::unroll_expression - Rust
    leo_passes::loop_unrolling

    Module unroll_expression

    Source
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroll_program/index.html b/leo_passes/loop_unrolling/unroll_program/index.html index c61a30263e..0c1ed6f893 100644 --- a/leo_passes/loop_unrolling/unroll_program/index.html +++ b/leo_passes/loop_unrolling/unroll_program/index.html @@ -1 +1 @@ -leo_passes::loop_unrolling::unroll_program - Rust
    leo_passes::loop_unrolling

    Module unroll_program

    Source
    \ No newline at end of file +leo_passes::loop_unrolling::unroll_program - Rust
    leo_passes::loop_unrolling

    Module unroll_program

    Source
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroll_statement/index.html b/leo_passes/loop_unrolling/unroll_statement/index.html index 68592cefb3..3f39102a0a 100644 --- a/leo_passes/loop_unrolling/unroll_statement/index.html +++ b/leo_passes/loop_unrolling/unroll_statement/index.html @@ -1 +1 @@ -leo_passes::loop_unrolling::unroll_statement - Rust
    leo_passes::loop_unrolling

    Module unroll_statement

    Source
    \ No newline at end of file +leo_passes::loop_unrolling::unroll_statement - Rust
    leo_passes::loop_unrolling

    Module unroll_statement

    Source
    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroller/index.html b/leo_passes/loop_unrolling/unroller/index.html index 6d37e79f96..2211c968bf 100644 --- a/leo_passes/loop_unrolling/unroller/index.html +++ b/leo_passes/loop_unrolling/unroller/index.html @@ -1 +1 @@ -leo_passes::loop_unrolling::unroller - Rust
    leo_passes::loop_unrolling

    Module unroller

    Source

    Structs§

    \ No newline at end of file +leo_passes::loop_unrolling::unroller - Rust
    leo_passes::loop_unrolling

    Module unroller

    Source

    Structs§

    \ No newline at end of file diff --git a/leo_passes/loop_unrolling/unroller/struct.Unroller.html b/leo_passes/loop_unrolling/unroller/struct.Unroller.html index 0dc63dbd72..497c7c5375 100644 --- a/leo_passes/loop_unrolling/unroller/struct.Unroller.html +++ b/leo_passes/loop_unrolling/unroller/struct.Unroller.html @@ -1,47 +1,48 @@ -Unroller in leo_passes::loop_unrolling::unroller - Rust
    leo_passes::loop_unrolling::unroller

    Struct Unroller

    Source
    pub struct Unroller<'a> {
    -    pub(crate) symbol_table: SymbolTable,
    +Unroller in leo_passes::loop_unrolling::unroller - Rust
    leo_passes::loop_unrolling::unroller

    Struct Unroller

    Source
    pub struct Unroller<'a> {
    +    pub(crate) symbol_table: &'a mut SymbolTable,
         pub(crate) type_table: &'a TypeTable,
         pub(crate) handler: &'a Handler,
         pub(crate) node_builder: &'a NodeBuilder,
         pub(crate) is_unrolling: bool,
         pub(crate) current_program: Option<Symbol>,
    -}

    Fields§

    §symbol_table: SymbolTable

    The symbol table for the function being processed.

    + pub(crate) loop_not_unrolled: Option<Span>, + pub(crate) loop_unrolled: bool, +}

    Fields§

    §symbol_table: &'a mut SymbolTable

    The symbol table for the function being processed.

    §type_table: &'a TypeTable

    A mapping from node IDs to their types.

    §handler: &'a Handler

    An error handler used for any errors found during unrolling.

    §node_builder: &'a NodeBuilder

    A counter used to generate unique node IDs.

    §is_unrolling: bool

    Are we in the midst of unrolling a loop?

    §current_program: Option<Symbol>

    The current program name.

    -

    Implementations§

    Source§

    impl<'a> Unroller<'a>

    Source

    pub(crate) fn new( - symbol_table: SymbolTable, +

    §loop_not_unrolled: Option<Span>

    If we’ve encountered a loop that was not unrolled, here’s it’s spanned.

    +
    §loop_unrolled: bool

    Have we unrolled any loop?

    +

    Implementations§

    Source§

    impl<'a> Unroller<'a>

    Source

    pub(crate) fn new( + symbol_table: &'a mut SymbolTable, type_table: &'a TypeTable, handler: &'a Handler, node_builder: &'a NodeBuilder, -) -> Self

    Source

    pub(crate) fn in_scope<T>( +) -> Self

    Source

    pub(crate) fn in_scope<T>( &mut self, id: NodeID, func: impl FnOnce(&mut Self) -> T, -) -> T

    Source

    pub(crate) fn emit_err(&self, err: LoopUnrollerError)

    Emits a Loop Unrolling Error

    -
    Source

    pub(crate) fn unroll_iteration_statement<I: LoopBound>( +) -> T

    Source

    pub(crate) fn emit_err(&self, err: LoopUnrollerError)

    Emits a Loop Unrolling Error

    +
    Source

    pub(crate) fn unroll_iteration_statement<I: LoopBound>( &mut self, input: IterationStatement, ) -> Statement

    Unrolls an IterationStatement.

    -
    Source

    fn unroll_single_iteration<I: LoopBound>( +

    Source

    fn unroll_single_iteration<I: LoopBound>( &mut self, input: &IterationStatement, iteration_count: I, ) -> Statement

    A helper function to unroll a single iteration an IterationStatement.

    -

    Trait Implementations§

    Trait Implementations§

    Source§

    impl ExpressionReconstructor for Unroller<'_>

    Source§

    type AdditionalOutput = ()

    Source§

    fn reconstruct_expression( &mut self, input: Expression, ) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_access( &mut self, input: AccessExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_array_access( + &mut self, + input: ArrayAccess, ) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_associated_constant( &mut self, input: AssociatedConstant, @@ -72,6 +73,9 @@ ) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_err( &mut self, _input: ErrExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_identifier( + &mut self, + input: Identifier, ) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_literal( &mut self, input: Literal, @@ -90,15 +94,15 @@ ) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_unit( &mut self, input: UnitExpression, -) -> (Expression, Self::AdditionalOutput)

    Source§

    impl<'a> Pass for Unroller<'a>

    Source§

    impl<'a> Pass for Unroller<'a>

    Source§

    type Input = (Ast, &'a Handler, &'a NodeBuilder, &'a mut SymbolTable, &'a TypeTable)

    Source§

    type Output = Result<(Ast, UnrollerOutput), LeoError>

    Source§

    fn do_pass( (ast, handler, node_builder, symbol_table, tt): Self::Input, -) -> Self::Output

    Runs the compiler pass.
    Source§

    impl ProgramReconstructor for Unroller<'_>

    Source§

    impl StatementReconstructor for Unroller<'_>

    Source§

    fn reconstruct_block(&mut self, input: Block) -> (Block, Self::AdditionalOutput)

    Source§

    fn reconstruct_const( +) -> Self::Output

    Runs the compiler pass.
    Source§

    impl ProgramReconstructor for Unroller<'_>

    Source§

    impl StatementReconstructor for Unroller<'_>

    Source§

    fn reconstruct_block(&mut self, input: Block) -> (Block, Self::AdditionalOutput)

    Source§

    fn reconstruct_const( &mut self, input: ConstDeclaration, -) -> (Statement, Self::AdditionalOutput)

    Source§

    fn reconstruct_definition( +) -> (Statement, Self::AdditionalOutput)

    Source§

    fn reconstruct_definition( &mut self, input: DefinitionStatement, -) -> (Statement, Self::AdditionalOutput)

    Source§

    fn reconstruct_iteration( +) -> (Statement, Self::AdditionalOutput)

    Source§

    fn reconstruct_iteration( &mut self, input: IterationStatement, ) -> (Statement, Self::AdditionalOutput)

    Source§

    fn reconstruct_statement( diff --git a/leo_passes/pass/trait.Pass.html b/leo_passes/pass/trait.Pass.html index e68a070430..affa9dc054 100644 --- a/leo_passes/pass/trait.Pass.html +++ b/leo_passes/pass/trait.Pass.html @@ -6,4 +6,4 @@ fn do_pass(input: Self::Input) -> Self::Output; }
    Expand description

    A compiler pass consuming Self::Input and returning Self::Output.

    Required Associated Types§

    Required Methods§

    Source

    fn do_pass(input: Self::Input) -> Self::Output

    Runs the compiler pass.

    -

    Dyn Compatibility§

    This trait is not dyn compatible.

    In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

    Implementors§

    Source§

    impl<'a> Pass for CodeGenerator<'a>

    Source§

    impl<'a> Pass for DeadCodeEliminator<'a>

    Source§

    impl<'a> Pass for Destructurer<'a>

    Source§

    impl<'a> Pass for Flattener<'a>

    Source§

    impl<'a> Pass for FunctionInliner<'a>

    Source§

    impl<'a> Pass for Unroller<'a>

    Source§

    impl<'a> Pass for StaticSingleAssigner<'a>

    Source§

    impl<'a> Pass for SymbolTableCreator<'a>

    Source§

    impl<'a> Pass for TypeChecker<'a>

    Source§

    impl<'a, N: Network> Pass for StaticAnalyzer<'a, N>

    \ No newline at end of file +

    Dyn Compatibility§

    This trait is not dyn compatible.

    In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

    Implementors§

    Source§

    impl<'a> Pass for CodeGenerator<'a>

    Source§

    impl<'a> Pass for ConstPropagator<'a>

    Source§

    impl<'a> Pass for DeadCodeEliminator<'a>

    Source§

    impl<'a> Pass for Destructurer<'a>

    Source§

    impl<'a> Pass for Flattener<'a>

    Source§

    impl<'a> Pass for FunctionInliner<'a>

    Source§

    impl<'a> Pass for Unroller<'a>

    Source§

    impl<'a> Pass for StaticSingleAssigner<'a>

    Source§

    impl<'a> Pass for SymbolTableCreator<'a>

    Source§

    impl<'a> Pass for TypeChecker<'a>

    Source§

    impl<'a, N: Network> Pass for StaticAnalyzer<'a, N>

    \ No newline at end of file diff --git a/leo_passes/sidebar-items.js b/leo_passes/sidebar-items.js index 9dbf34d3b0..0412688554 100644 --- a/leo_passes/sidebar-items.js +++ b/leo_passes/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["code_generation","common","dead_code_elimination","destructuring","flattening","function_inlining","loop_unrolling","pass","static_analysis","static_single_assignment","symbol_table_creation","type_checking"],"struct":["SymbolTableCreator"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["code_generation","common","const_propagation","dead_code_elimination","destructuring","flattening","function_inlining","loop_unrolling","pass","static_analysis","static_single_assignment","symbol_table_creation","type_checking"],"struct":["ConstPropagator","ConstPropagatorOutput","SymbolTableCreator"]}; \ No newline at end of file diff --git a/leo_passes/static_single_assignment/rename_statement/index.html b/leo_passes/static_single_assignment/rename_statement/index.html index 4d87036a48..9faed38dde 100644 --- a/leo_passes/static_single_assignment/rename_statement/index.html +++ b/leo_passes/static_single_assignment/rename_statement/index.html @@ -1 +1 @@ -leo_passes::static_single_assignment::rename_statement - Rust
    leo_passes::static_single_assignment

    Module rename_statement

    Source
    \ No newline at end of file +leo_passes::static_single_assignment::rename_statement - Rust
    leo_passes::static_single_assignment

    Module rename_statement

    Source
    \ No newline at end of file diff --git a/leo_passes/static_single_assignment/static_single_assigner/struct.StaticSingleAssigner.html b/leo_passes/static_single_assignment/static_single_assigner/struct.StaticSingleAssigner.html index 0971c6408a..35d97afc22 100644 --- a/leo_passes/static_single_assignment/static_single_assigner/struct.StaticSingleAssigner.html +++ b/leo_passes/static_single_assignment/static_single_assigner/struct.StaticSingleAssigner.html @@ -46,7 +46,7 @@
    Source§

    type Output = (Expression, Vec<Statement>)

    Source§

    fn consume_unit(&mut self, input: UnitExpression) -> Self::Output

    Source§

    fn consume_expression(&mut self, input: Expression) -> Self::Output

    Source§

    fn consume_err(&mut self, _input: ErrExpression) -> Self::Output

    Source§

    impl FunctionConsumer for StaticSingleAssigner<'_>

    Source§

    fn consume_function(&mut self, function: Function) -> Self::Output

    Reconstructs the Functions in the Program, while allocating the appropriate RenameTables.

    Source§

    type Output = Function

    Source§

    impl<'a> Pass for StaticSingleAssigner<'a>

    Source§

    type Input = (Ast, &'a NodeBuilder, &'a Assigner, &'a SymbolTable, &'a TypeTable)

    Source§

    type Output = Result<Ast, LeoError>

    Source§

    fn do_pass( (ast, node_builder, assigner, symbol_table, type_table): Self::Input, -) -> Self::Output

    Runs the compiler pass.
    Source§

    impl ProgramConsumer for StaticSingleAssigner<'_>

    Source§

    type Output = Program

    Source§

    fn consume_program(&mut self, input: Program) -> Self::Output

    Source§

    impl ProgramScopeConsumer for StaticSingleAssigner<'_>

    Source§

    impl StatementConsumer for StaticSingleAssigner<'_>

    Source§

    fn consume_assert(&mut self, input: AssertStatement) -> Self::Output

    Consumes the expressions in an AssertStatement, returning the list of simplified statements.

    +) -> Self::Output
    Runs the compiler pass.
    Source§

    impl ProgramConsumer for StaticSingleAssigner<'_>

    Source§

    type Output = Program

    Source§

    fn consume_program(&mut self, input: Program) -> Self::Output

    Source§

    impl ProgramScopeConsumer for StaticSingleAssigner<'_>

    Source§

    impl StatementConsumer for StaticSingleAssigner<'_>

    Source§

    fn consume_assert(&mut self, input: AssertStatement) -> Self::Output

    Consumes the expressions in an AssertStatement, returning the list of simplified statements.

    Source§

    fn consume_assign(&mut self, assign: AssignStatement) -> Self::Output

    Consume all AssignStatements, renaming as necessary.

    Source§

    fn consume_block(&mut self, block: Block) -> Self::Output

    Consumes a Block, flattening its constituent ConditionalStatements.

    Source§

    fn consume_conditional( @@ -62,17 +62,17 @@
  • if b { x = x + 1 } remains the same.
  • Source§

    fn consume_console(&mut self, _: ConsoleStatement) -> Self::Output

    Parsing guarantees that console statements are not present in the program.

    -
    Source§

    fn consume_definition( +

    Source§

    fn consume_definition( &mut self, definition: DefinitionStatement, ) -> Self::Output

    Consumes the DefinitionStatement into an AssignStatement, renaming the left-hand-side as appropriate.

    -
    Source§

    fn consume_expression_statement( +

    Source§

    fn consume_expression_statement( &mut self, input: ExpressionStatement, ) -> Self::Output

    Consumes the expressions associated with ExpressionStatement, returning the simplified ExpressionStatement.

    -
    Source§

    fn consume_return(&mut self, input: ReturnStatement) -> Self::Output

    Reconstructs the expression associated with the return statement, returning a simplified ReturnStatement. +

    Source§

    fn consume_return(&mut self, input: ReturnStatement) -> Self::Output

    Reconstructs the expression associated with the return statement, returning a simplified ReturnStatement. Note that type checking guarantees that there is at most one ReturnStatement in a block.

    -
    Source§

    type Output = Vec<Statement>

    Source§

    fn consume_const(&mut self, _: ConstDeclaration) -> Self::Output

    Source§

    fn consume_iteration(&mut self, _input: IterationStatement) -> Self::Output

    Source§

    fn consume_statement(&mut self, input: Statement) -> Self::Output

    Source§

    impl StructConsumer for StaticSingleAssigner<'_>

    Source§

    fn consume_struct(&mut self, struct_: Composite) -> Self::Output

    Reconstructs records in the program, ordering its fields such that owner and is the first field.

    +
    Source§

    type Output = Vec<Statement>

    Source§

    fn consume_const(&mut self, _: ConstDeclaration) -> Self::Output

    Source§

    fn consume_iteration(&mut self, _input: IterationStatement) -> Self::Output

    Source§

    fn consume_statement(&mut self, input: Statement) -> Self::Output

    Source§

    impl StructConsumer for StaticSingleAssigner<'_>

    Source§

    fn consume_struct(&mut self, struct_: Composite) -> Self::Output

    Reconstructs records in the program, ordering its fields such that owner and is the first field.

    Source§

    type Output = Composite

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

    impl<T> BorrowMut<T> for T
    where diff --git a/leo_passes/struct.ConstPropagator.html b/leo_passes/struct.ConstPropagator.html new file mode 100644 index 0000000000..5f2f662d9b --- /dev/null +++ b/leo_passes/struct.ConstPropagator.html @@ -0,0 +1,156 @@ +ConstPropagator in leo_passes - Rust
    leo_passes

    Struct ConstPropagator

    Source
    pub struct ConstPropagator<'a> {
    +    pub(crate) symbol_table: &'a mut SymbolTable,
    +    pub(crate) type_table: &'a TypeTable,
    +    pub(crate) node_builder: &'a NodeBuilder,
    +    pub(crate) handler: &'a Handler,
    +    pub(crate) program: Symbol,
    +    pub(crate) changed: bool,
    +    pub(crate) const_not_evaluated: Option<Span>,
    +    pub(crate) array_index_not_evaluated: Option<Span>,
    +}
    Expand description

    A pass to perform const propagation and folding.

    +

    This pass should be used in conjunction with the Unroller so that +loop bounds and consts in loop bodies can be evaluated.

    +

    Any of these expressions:

    +
      +
    1. unary operation,
    2. +
    3. binary operation,
    4. +
    5. core function other than cheat codes, mapping ops, or rand functions,
    6. +
    +

    whose arguments are consts or literals will be subject to constant folding. +The ternary conditional operator will also be folded if its condition is +a constant or literal.

    +

    Fields§

    §symbol_table: &'a mut SymbolTable

    The symbol table associated with the program.

    +
    §type_table: &'a TypeTable

    A mapping between node IDs and their types.

    +
    §node_builder: &'a NodeBuilder

    A counter used to generate unique node IDs.

    +
    §handler: &'a Handler

    The error handler.

    +
    §program: Symbol

    The program name.

    +
    §changed: bool

    Have we actually modified the progam at all?

    +
    §const_not_evaluated: Option<Span>

    The RHS of a const declaration we were not able to evaluate.

    +
    §array_index_not_evaluated: Option<Span>

    An array index which was not able to be evaluated.

    +

    Implementations§

    Source§

    impl<'a> ConstPropagator<'a>

    Source

    pub(crate) fn new( + handler: &'a Handler, + symbol_table: &'a mut SymbolTable, + type_table: &'a TypeTable, + node_builder: &'a NodeBuilder, +) -> Self

    Source

    pub(crate) fn in_scope<T>( + &mut self, + id: NodeID, + func: impl FnOnce(&mut Self) -> T, +) -> T

    Enter the symbol table’s scope id, execute func, and then return to the parent scope.

    +
    Source

    pub(crate) fn emit_err(&self, err: StaticAnalyzerError)

    Emit a StaticAnalyzerError.

    +

    Trait Implementations§

    Source§

    impl ExpressionReconstructor for ConstPropagator<'_>

    Source§

    type AdditionalOutput = Option<Value>

    Source§

    fn reconstruct_expression( + &mut self, + input: Expression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_struct_init( + &mut self, + input: StructExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_ternary( + &mut self, + input: TernaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_access( + &mut self, + input: AccessExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_array_access( + &mut self, + input: ArrayAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_associated_constant( + &mut self, + input: AssociatedConstant, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_associated_function( + &mut self, + input: AssociatedFunction, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_member_access( + &mut self, + input: MemberAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_tuple_access( + &mut self, + input: TupleAccess, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_array( + &mut self, + input: ArrayExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_binary( + &mut self, + input: BinaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_call( + &mut self, + input: CallExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_cast( + &mut self, + input: CastExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_err( + &mut self, + _input: ErrExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_identifier( + &mut self, + input: Identifier, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_literal( + &mut self, + input: Literal, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_locator( + &mut self, + input: LocatorExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_tuple( + &mut self, + input: TupleExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_unary( + &mut self, + input: UnaryExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    fn reconstruct_unit( + &mut self, + input: UnitExpression, +) -> (Expression, Self::AdditionalOutput)

    Source§

    impl<'a> Pass for ConstPropagator<'a>

    Source§

    type Input = (Ast, &'a Handler, &'a mut SymbolTable, &'a TypeTable, &'a NodeBuilder)

    Source§

    type Output = Result<(Ast, ConstPropagatorOutput), LeoError>

    Source§

    fn do_pass( + (ast, handler, symbol_table, type_table, node_builder): Self::Input, +) -> Self::Output

    Runs the compiler pass.
    Source§

    impl ProgramReconstructor for ConstPropagator<'_>

    Source§

    impl StatementReconstructor for ConstPropagator<'_>

    Auto Trait Implementations§

    §

    impl<'a> Freeze for ConstPropagator<'a>

    §

    impl<'a> !RefUnwindSafe for ConstPropagator<'a>

    §

    impl<'a> !Send for ConstPropagator<'a>

    §

    impl<'a> !Sync for ConstPropagator<'a>

    §

    impl<'a> Unpin for ConstPropagator<'a>

    §

    impl<'a> !UnwindSafe for ConstPropagator<'a>

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

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

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

    fn in_current_span(self) -> Instrumented<Self>

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

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

    Source§

    fn into(self) -> U

    Calls U::from(self).

    +

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

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

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

    Source§

    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>,

    Source§

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

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

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

    Performs the conversion.
    §

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

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

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

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/leo_passes/struct.ConstPropagatorOutput.html b/leo_passes/struct.ConstPropagatorOutput.html new file mode 100644 index 0000000000..bd34d3dd1e --- /dev/null +++ b/leo_passes/struct.ConstPropagatorOutput.html @@ -0,0 +1,31 @@ +ConstPropagatorOutput in leo_passes - Rust
    leo_passes

    Struct ConstPropagatorOutput

    Source
    pub struct ConstPropagatorOutput {
    +    pub changed: bool,
    +    pub const_not_evaluated: Option<Span>,
    +    pub array_index_not_evaluated: Option<Span>,
    +}

    Fields§

    §changed: bool

    Something about the program was actually changed during the pass.

    +
    §const_not_evaluated: Option<Span>

    A const declaration whose RHS was not able to be evaluated.

    +
    §array_index_not_evaluated: Option<Span>

    An array index which was not able to be evaluated.

    +

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

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

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

    fn in_current_span(self) -> Instrumented<Self>

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

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

    Source§

    fn into(self) -> U

    Calls U::from(self).

    +

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

    +
    Source§

    impl<T> IntoEither for T

    Source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    Source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

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

    Source§

    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>,

    Source§

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

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

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

    Performs the conversion.
    §

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

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

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

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    \ No newline at end of file diff --git a/leo_passes/type_checking/check_statements/index.html b/leo_passes/type_checking/check_statements/index.html index debd85de23..ebc208c5f1 100644 --- a/leo_passes/type_checking/check_statements/index.html +++ b/leo_passes/type_checking/check_statements/index.html @@ -1 +1 @@ -leo_passes::type_checking::check_statements - Rust
    leo_passes::type_checking

    Module check_statements

    Source
    \ No newline at end of file +leo_passes::type_checking::check_statements - Rust
    leo_passes::type_checking

    Module check_statements

    Source
    \ No newline at end of file diff --git a/leo_passes/type_checking/checker/struct.TypeChecker.html b/leo_passes/type_checking/checker/struct.TypeChecker.html index 28509c795e..1a66a6b03a 100644 --- a/leo_passes/type_checking/checker/struct.TypeChecker.html +++ b/leo_passes/type_checking/checker/struct.TypeChecker.html @@ -1,5 +1,5 @@ TypeChecker in leo_passes::type_checking::checker - Rust
    leo_passes::type_checking::checker

    Struct TypeChecker

    Source
    pub struct TypeChecker<'a> {
    -    pub(crate) symbol_table: SymbolTable,
    +    pub(crate) symbol_table: &'a mut SymbolTable,
         pub(crate) type_table: &'a TypeTable,
         pub(crate) struct_graph: StructGraph,
         pub(crate) call_graph: CallGraph,
    @@ -10,7 +10,7 @@
         pub(crate) used_structs: IndexSet<Symbol>,
         pub(crate) limits: NetworkLimits,
         conditional_scopes: Vec<IndexSet<Symbol>>,
    -}

    Fields§

    §symbol_table: SymbolTable

    The symbol table for the program.

    +}

    Fields§

    §symbol_table: &'a mut SymbolTable

    The symbol table for the program.

    §type_table: &'a TypeTable

    A mapping from node IDs to their types.

    §struct_graph: StructGraph

    A dependency graph of the structs in program.

    §call_graph: CallGraph

    The call graph for the program.

    @@ -22,7 +22,7 @@
    §limits: NetworkLimits

    So we can check if we exceed limits on array size, number of mappings, or number of functions.

    §conditional_scopes: Vec<IndexSet<Symbol>>

    For detecting the error TypeCheckerError::async_cannot_assign_outside_conditional.

    Implementations§

    Source§

    impl<'a> TypeChecker<'a>

    Source

    pub fn new( - symbol_table: SymbolTable, + symbol_table: &'a mut SymbolTable, type_table: &'a TypeTable, handler: &'a Handler, limits: NetworkLimits, @@ -171,9 +171,9 @@ &mut self, _input: &'a UnitExpression, _additional: &Self::AdditionalInput, -) -> Self::Output

    Source§

    impl<'a> Pass for TypeChecker<'a>

    Source§

    impl<'a> Pass for TypeChecker<'a>

    Source§

    type Input = (&'a Ast, &'a Handler, &'a mut SymbolTable, &'a TypeTable, NetworkLimits)

    Source§

    type Output = Result<(DiGraph<Symbol>, DiGraph<Symbol>), LeoError>

    Source§

    fn do_pass( (ast, handler, symbol_table, type_table, limits): Self::Input, -) -> Self::Output

    Runs the compiler pass.
    Source§

    impl<'a> ProgramVisitor<'a> for TypeChecker<'a>

    Source§

    fn visit_program(&mut self, input: &'a Program)

    Source§

    fn visit_program_scope(&mut self, input: &'a ProgramScope)

    Source§

    fn visit_stub(&mut self, input: &'a Stub)

    Source§

    fn visit_struct(&mut self, input: &'a Composite)

    Source§

    fn visit_mapping(&mut self, input: &'a Mapping)

    Source§

    fn visit_function(&mut self, function: &'a Function)

    Source§

    fn visit_function_stub(&mut self, input: &'a FunctionStub)

    Source§

    fn visit_struct_stub(&mut self, input: &'a Composite)

    Source§

    fn visit_import(&mut self, input: &'a Program)

    Source§

    impl<'a> StatementVisitor<'a> for TypeChecker<'a>

    Source§

    fn visit_statement(&mut self, input: &'a Statement)

    Source§

    fn visit_assert(&mut self, input: &'a AssertStatement)

    Source§

    fn visit_assign(&mut self, input: &'a AssignStatement)

    Source§

    fn visit_block(&mut self, input: &'a Block)

    Source§

    fn visit_conditional(&mut self, input: &'a ConditionalStatement)

    Source§

    fn visit_console(&mut self, _: &'a ConsoleStatement)

    Source§

    fn visit_const(&mut self, input: &'a ConstDeclaration)

    Source§

    fn visit_definition(&mut self, input: &'a DefinitionStatement)

    Source§

    fn visit_expression_statement(&mut self, input: &'a ExpressionStatement)

    Source§

    fn visit_iteration(&mut self, input: &'a IterationStatement)

    Source§

    fn visit_return(&mut self, input: &'a ReturnStatement)

    Auto Trait Implementations§

    §

    impl<'a> Freeze for TypeChecker<'a>

    §

    impl<'a> !RefUnwindSafe for TypeChecker<'a>

    §

    impl<'a> !Send for TypeChecker<'a>

    §

    impl<'a> !Sync for TypeChecker<'a>

    §

    impl<'a> Unpin for TypeChecker<'a>

    §

    impl<'a> !UnwindSafe for TypeChecker<'a>

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where +) -> Self::Output

    Runs the compiler pass.

    Source§

    impl<'a> ProgramVisitor<'a> for TypeChecker<'a>

    Source§

    fn visit_program(&mut self, input: &'a Program)

    Source§

    fn visit_program_scope(&mut self, input: &'a ProgramScope)

    Source§

    fn visit_stub(&mut self, input: &'a Stub)

    Source§

    fn visit_struct(&mut self, input: &'a Composite)

    Source§

    fn visit_mapping(&mut self, input: &'a Mapping)

    Source§

    fn visit_function(&mut self, function: &'a Function)

    Source§

    fn visit_function_stub(&mut self, input: &'a FunctionStub)

    Source§

    fn visit_struct_stub(&mut self, input: &'a Composite)

    Source§

    fn visit_import(&mut self, input: &'a Program)

    Source§

    impl<'a> StatementVisitor<'a> for TypeChecker<'a>

    Source§

    fn visit_statement(&mut self, input: &'a Statement)

    Source§

    fn visit_assert(&mut self, input: &'a AssertStatement)

    Source§

    fn visit_assign(&mut self, input: &'a AssignStatement)

    Source§

    fn visit_block(&mut self, input: &'a Block)

    Source§

    fn visit_conditional(&mut self, input: &'a ConditionalStatement)

    Source§

    fn visit_console(&mut self, _: &'a ConsoleStatement)

    Source§

    fn visit_const(&mut self, input: &'a ConstDeclaration)

    Source§

    fn visit_definition(&mut self, input: &'a DefinitionStatement)

    Source§

    fn visit_expression_statement(&mut self, input: &'a ExpressionStatement)

    Source§

    fn visit_iteration(&mut self, input: &'a IterationStatement)

    Source§

    fn visit_return(&mut self, input: &'a ReturnStatement)

    Auto Trait Implementations§

    §

    impl<'a> Freeze for TypeChecker<'a>

    §

    impl<'a> !RefUnwindSafe for TypeChecker<'a>

    §

    impl<'a> !Send for TypeChecker<'a>

    §

    impl<'a> !Sync for TypeChecker<'a>

    §

    impl<'a> Unpin for TypeChecker<'a>

    §

    impl<'a> !UnwindSafe for TypeChecker<'a>

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    Source§

    impl<T> From<T> for T

    Source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/leo_retriever/program_context/network_name/enum.NetworkName.html b/leo_retriever/program_context/network_name/enum.NetworkName.html index f89406c995..b8b8ddbdb6 100644 --- a/leo_retriever/program_context/network_name/enum.NetworkName.html +++ b/leo_retriever/program_context/network_name/enum.NetworkName.html @@ -1,4 +1,4 @@ -NetworkName in leo_retriever::program_context::network_name - Rust
    leo_retriever::program_context::network_name

    Enum NetworkName

    Source
    pub enum NetworkName {
    +NetworkName in leo_retriever::program_context::network_name - Rust
    leo_retriever::program_context::network_name

    Enum NetworkName

    Source
    pub enum NetworkName {
         TestnetV0,
         MainnetV0,
         CanaryV0,
    @@ -36,10 +36,14 @@
         F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    Source§

    impl<T> ToOwned for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same for T

    Source§

    type Output = T

    Should always be Self
    §

    impl<T> ToCompactString for T
    where + T: Display,

    §

    fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>

    Fallible version of [ToCompactString::to_compact_string()] Read more
    §

    fn to_compact_string(&self) -> CompactString

    Converts the given value to a [CompactString]. Read more
    §

    impl<T> ToLine for T
    where + T: Display,

    §

    fn to_line(&self) -> Line<'_>

    Converts the value to a [Line].
    Source§

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

    Source§

    type Owned = T

    The resulting type after obtaining ownership.
    Source§

    fn to_owned(&self) -> T

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

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

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

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

    §

    fn to_smolstr(&self) -> SmolStr

    Source§

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

    Source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    Source§

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

    §

    fn to_smolstr(&self) -> SmolStr

    §

    impl<T> ToSpan for T
    where + T: Display,

    §

    fn to_span(&self) -> Span<'_>

    Converts the value to a [Span].
    Source§

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

    Source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    §

    impl<T> ToText for T
    where + T: Display,

    §

    fn to_text(&self) -> Text<'_>

    Converts the value to a [Text].
    Source§

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

    Source§

    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>,

    Source§

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

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

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

    Performs the conversion.
    §

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

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where diff --git a/leo_span/symbol/enum.InternedStr.html b/leo_span/symbol/enum.InternedStr.html index 9ba52f420d..de368fa597 100644 --- a/leo_span/symbol/enum.InternedStr.html +++ b/leo_span/symbol/enum.InternedStr.html @@ -1,4 +1,4 @@ -InternedStr in leo_span::symbol - Rust
    leo_span::symbol

    Enum InternedStr

    Source
    enum InternedStr {
    +InternedStr in leo_span::symbol - Rust
    leo_span::symbol

    Enum InternedStr

    Source
    enum InternedStr {
         Static(&'static str),
         Owned(Box<str>),
     }
    Expand description

    An interned string, @@ -1250,10 +1250,10 @@

    §Examples
    let s = "Grüße, Jürgen ❤";
     
     assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
    -

    Trait Implementations§

    Source§

    impl Borrow<str> for InternedStr

    Source§

    fn borrow(&self) -> &str

    Immutably borrows from an owned value. Read more
    Source§

    impl Deref for InternedStr

    Source§

    type Target = str

    The resulting type after dereferencing.
    Source§

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

    Dereferences the value.
    Source§

    impl Hash for InternedStr

    Source§

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

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

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

    Trait Implementations§

    Source§

    impl Borrow<str> for InternedStr

    Source§

    fn borrow(&self) -> &str

    Immutably borrows from an owned value. Read more
    Source§

    impl Deref for InternedStr

    Source§

    type Target = str

    The resulting type after dereferencing.
    Source§

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

    Dereferences the value.
    Source§

    impl Hash for InternedStr

    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 InternedStr

    Source§

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

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

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

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    Source§

    impl Eq for InternedStr

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

    impl<T> Any for T
    where + Self: Sized,

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

    impl PartialEq for InternedStr

    Source§

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

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · Source§

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

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    Source§

    impl Eq for InternedStr

    Auto Trait Implementations§

    Blanket Implementations§

    Source§

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

    Source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    Source§

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

    Source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    Source§

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

    Source§

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

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where diff --git a/leo_span/symbol/fn.create_session_if_not_set_then.html b/leo_span/symbol/fn.create_session_if_not_set_then.html index 191243b5c3..e7b13cc5fe 100644 --- a/leo_span/symbol/fn.create_session_if_not_set_then.html +++ b/leo_span/symbol/fn.create_session_if_not_set_then.html @@ -1,4 +1,4 @@ -create_session_if_not_set_then in leo_span::symbol - Rust
    leo_span::symbol

    Function create_session_if_not_set_then

    Source
    pub fn create_session_if_not_set_then<R>(
    +create_session_if_not_set_then in leo_span::symbol - Rust
    leo_span::symbol

    Function create_session_if_not_set_then

    Source
    pub fn create_session_if_not_set_then<R>(
         f: impl FnOnce(&SessionGlobals) -> R,
     ) -> R
    Expand description

    Creates the session globals and then runs the closure f.

    \ No newline at end of file diff --git a/leo_span/symbol/fn.with_session_globals.html b/leo_span/symbol/fn.with_session_globals.html index 012da293ce..52470917c2 100644 --- a/leo_span/symbol/fn.with_session_globals.html +++ b/leo_span/symbol/fn.with_session_globals.html @@ -1,2 +1,2 @@ -with_session_globals in leo_span::symbol - Rust
    leo_span::symbol

    Function with_session_globals

    Source
    pub fn with_session_globals<R>(f: impl FnOnce(&SessionGlobals) -> R) -> R
    Expand description

    Gives access to read or modify the session globals in f.

    +with_session_globals in leo_span::symbol - Rust
    leo_span::symbol

    Function with_session_globals

    Source
    pub fn with_session_globals<R>(f: impl FnOnce(&SessionGlobals) -> R) -> R
    Expand description

    Gives access to read or modify the session globals in f.

    \ No newline at end of file diff --git a/leo_span/symbol/index.html b/leo_span/symbol/index.html index eecbe3496e..8f03b052a4 100644 --- a/leo_span/symbol/index.html +++ b/leo_span/symbol/index.html @@ -1,4 +1,4 @@ -leo_span::symbol - Rust
    leo_span

    Module symbol

    Source

    Modules§

    Macros§

    • consts 🔒
      A helper for symbols defined below. +leo_span::symbol - Rust
      leo_span

      Module symbol

      Source

      Modules§

      Macros§

      • consts 🔒
        A helper for symbols defined below. The macro’s job is to bind conveniently usable const items to the symbol names provided. For example, with symbol { a, b } you’d have sym::a and sym::b.
      • strings 🔒
        A helper for symbols defined below. The macro’s job is to merge all the hard-coded strings into a single array of strings. diff --git a/leo_span/symbol/static.SESSION_GLOBALS.html b/leo_span/symbol/static.SESSION_GLOBALS.html index a791e7962b..cabfffc9b3 100644 --- a/leo_span/symbol/static.SESSION_GLOBALS.html +++ b/leo_span/symbol/static.SESSION_GLOBALS.html @@ -1 +1 @@ -SESSION_GLOBALS in leo_span::symbol - Rust
        leo_span::symbol

        Static SESSION_GLOBALS

        Source
        pub static SESSION_GLOBALS: ScopedKey<SessionGlobals>
        \ No newline at end of file +SESSION_GLOBALS in leo_span::symbol - Rust
        leo_span::symbol

        Static SESSION_GLOBALS

        Source
        pub static SESSION_GLOBALS: ScopedKey<SessionGlobals>
        \ No newline at end of file diff --git a/leo_span/symbol/struct.InnerInterner.html b/leo_span/symbol/struct.InnerInterner.html index 0bcab280c7..f34d015ced 100644 --- a/leo_span/symbol/struct.InnerInterner.html +++ b/leo_span/symbol/struct.InnerInterner.html @@ -1,4 +1,4 @@ -InnerInterner in leo_span::symbol - Rust
        leo_span::symbol

        Struct InnerInterner

        Source
        struct InnerInterner {
        +InnerInterner in leo_span::symbol - Rust
        leo_span::symbol

        Struct InnerInterner

        Source
        struct InnerInterner {
             set: IndexSet<InternedStr, FxBuildHasher>,
         }
        Expand description

        The inner interner. This construction is used to get interior mutability in Interner.

        diff --git a/leo_span/symbol/struct.Interner.html b/leo_span/symbol/struct.Interner.html index c80b21bba0..07614468ea 100644 --- a/leo_span/symbol/struct.Interner.html +++ b/leo_span/symbol/struct.Interner.html @@ -1,10 +1,10 @@ -Interner in leo_span::symbol - Rust
        leo_span::symbol

        Struct Interner

        Source
        struct Interner {
        +Interner in leo_span::symbol - Rust
        leo_span::symbol

        Struct Interner

        Source
        struct Interner {
             inner: RefCell<InnerInterner>,
         }
        Expand description

        A symbol-to-string interner.

        -

        Fields§

        §inner: RefCell<InnerInterner>

        Implementations§

        Source§

        impl Interner

        Source

        fn prefilled() -> Self

        Returns an interner prefilled with commonly used strings in Leo.

        -
        Source

        fn prefill(init: &[&'static str]) -> Self

        Returns an interner prefilled with init.

        -
        Source

        fn intern(&self, string: &str) -> Symbol

        Interns string, returning a Symbol corresponding to it.

        -
        Source

        fn get<R>(&self, symbol: Symbol, with: impl FnOnce(&str) -> R) -> R

        Returns the corresponding string for the given symbol.

        +

        Fields§

        §inner: RefCell<InnerInterner>

        Implementations§

        Source§

        impl Interner

        Source

        fn prefilled() -> Self

        Returns an interner prefilled with commonly used strings in Leo.

        +
        Source

        fn prefill(init: &[&'static str]) -> Self

        Returns an interner prefilled with init.

        +
        Source

        fn intern(&self, string: &str) -> Symbol

        Interns string, returning a Symbol corresponding to it.

        +
        Source

        fn get<R>(&self, symbol: Symbol, with: impl FnOnce(&str) -> R) -> R

        Returns the corresponding string for the given symbol.

        Auto Trait Implementations§

        Blanket Implementations§

        Source§

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

        Source§

        fn type_id(&self) -> TypeId

        Gets the TypeId of self. Read more
        Source§

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

        Source§

        fn borrow(&self) -> &T

        Immutably borrows from an owned value. Read more
        Source§

        impl<T> BorrowMut<T> for T
        where diff --git a/leo_span/symbol/struct.SessionGlobals.html b/leo_span/symbol/struct.SessionGlobals.html index d1324a354f..33060dea06 100644 --- a/leo_span/symbol/struct.SessionGlobals.html +++ b/leo_span/symbol/struct.SessionGlobals.html @@ -1,10 +1,10 @@ -SessionGlobals in leo_span::symbol - Rust
        leo_span::symbol

        Struct SessionGlobals

        Source
        pub struct SessionGlobals {
        +SessionGlobals in leo_span::symbol - Rust
        leo_span::symbol

        Struct SessionGlobals

        Source
        pub struct SessionGlobals {
             symbol_interner: Interner,
             pub source_map: SourceMap,
         }
        Expand description

        All the globals for a compiler sessions.

        Fields§

        §symbol_interner: Interner

        The interner for Symbols used in the compiler.

        §source_map: SourceMap

        The source map used in the compiler.

        -

        Trait Implementations§

        Source§

        impl Default for SessionGlobals

        Source§

        fn default() -> Self

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

        Auto Trait Implementations§

        Blanket Implementations§

        Source§

        impl<T> Any for T
        where +

        Trait Implementations§

        Source§

        impl Default for SessionGlobals

        Source§

        fn default() -> Self

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

        Auto Trait Implementations§

        Blanket Implementations§

        Source§

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

        Source§

        fn type_id(&self) -> TypeId

        Gets the TypeId of self. Read more
        Source§

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

        Source§

        fn borrow(&self) -> &T

        Immutably borrows from an owned value. Read more
        Source§

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

        Source§

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

        Mutably borrows from an owned value. Read more
        Source§

        impl<T> From<T> for T

        Source§

        fn from(t: T) -> T

        Returns the argument unchanged.

        diff --git a/leo_span/symbol/struct.Symbol.html b/leo_span/symbol/struct.Symbol.html index 3781559d41..0264a429fc 100644 --- a/leo_span/symbol/struct.Symbol.html +++ b/leo_span/symbol/struct.Symbol.html @@ -1,17 +1,17 @@ -Symbol in leo_span::symbol - Rust
        leo_span::symbol

        Struct Symbol

        Source
        pub struct Symbol(NonZeroU32);
        Expand description

        An interned string.

        +Symbol in leo_span::symbol - Rust
        leo_span::symbol

        Struct Symbol

        Source
        pub struct Symbol(NonZeroU32);
        Expand description

        An interned string.

        Represented as an index internally, with all operations based on that. A Symbol reserves the value 0, so that Option<Symbol> only takes up 4 bytes.

        -

        Tuple Fields§

        §0: NonZeroU32

        Implementations§

        Source§

        impl Symbol

        Source

        pub const fn new(index: u32) -> Self

        Returns the corresponding Symbol for the given index.

        -
        Source

        pub fn intern(string: &str) -> Self

        Maps a string to its interned representation.

        -
        Source

        pub fn as_str<R>(self, s: &SessionGlobals, with: impl FnOnce(&str) -> R) -> R

        Convert to effectively a &'static str given the SessionGlobals.

        -
        Source

        pub const fn as_u32(self) -> u32

        Converts this symbol to the raw index.

        -
        Source

        fn serde_to_symbol<'de, D: Deserializer<'de>>( +

        Tuple Fields§

        §0: NonZeroU32

        Implementations§

        Source§

        impl Symbol

        Source

        pub const fn new(index: u32) -> Self

        Returns the corresponding Symbol for the given index.

        +
        Source

        pub fn intern(string: &str) -> Self

        Maps a string to its interned representation.

        +
        Source

        pub fn as_str<R>(self, s: &SessionGlobals, with: impl FnOnce(&str) -> R) -> R

        Convert to effectively a &'static str given the SessionGlobals.

        +
        Source

        pub const fn as_u32(self) -> u32

        Converts this symbol to the raw index.

        +
        Source

        fn serde_to_symbol<'de, D: Deserializer<'de>>( de: D, -) -> Result<NonZeroU32, D::Error>

        Source

        fn serde_from_symbol<S: Serializer>( +) -> Result<NonZeroU32, D::Error>

        Source

        fn serde_from_symbol<S: Serializer>( index: &NonZeroU32, ser: S, -) -> Result<S::Ok, S::Error>

        Trait Implementations§

        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 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 +) -> Result<S::Ok, S::Error>

        Trait Implementations§

        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 Default for Symbol

        Source§

        fn default() -> Self

        Returns the “default value” for a type. 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 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 Ord for Symbol

        Source§

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

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

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

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

        fn min(self, other: Self) -> Self
        where diff --git a/search-index.js b/search-index.js index a3b6a95e38..324a6e7f72 100644 --- a/search-index.js +++ b/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["errcov",{"t":"H","n":["main"],"q":[[0,"errcov"]],"i":"`","f":"{{}b}","D":"`","p":[[1,"unit"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAEAEAAAAAAAAQA=","P":[]}],["leo",{"t":"HH","n":["main","set_panic_hook"],"q":[[0,"leo"]],"i":"``","f":"{{}b}0","D":"`","p":[[1,"unit"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAIAEAAAAAAAAQACAA==","P":[]}],["leo_abnf",{"t":"PPPFGNNNNNNNNNNNNNNNNONNOHNOHNOONNNNNNNN","n":["Code","Definition","Free","Processor","Scope","append_str","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","enter_scope","fmt","","from","","grammar","into","","line","main","new","out","parse_abnf_node","process","rules","scope","to_owned","","try_from","","try_into","","type_id",""],"q":[[0,"leo_abnf"],[40,"core::fmt"],[41,"anyhow"],[42,"abnf::types"],[43,"alloc::vec"],[44,"alloc::string"],[45,"core::result"],[46,"core::any"]],"i":"l00``d1010101010010100100`00`00010101010","f":"`````{{{f{bd}}{f{h}}}j}{f{{f{c}}}{}}0{{{f{b}}}{{f{bc}}}{}}0{{{f{l}}}l}{{{f{d}}}d}{{f{f{bc}}}j{}}0{{fn}j}0{{{f{bd}}l}j}{{{f{l}}{f{bA`}}}Ab}{{{f{d}}{f{bA`}}}Ab}{cc{}}0`{{}c{}}0`{{}{{Ad{j}}}}{{{f{h}}{Ah{Af}}}d}`{{{f{Aj}}{f{b{Ah{Al}}}}}j}{{{f{bd}}}j}``{fc{}}0{c{{An{e}}}{}{}}0{{}{{An{c}}}{}}0{fB`}0","D":"Ad","p":[[0,"mut"],[5,"Processor",0],[1,"reference",null,null,1],[1,"str"],[1,"unit"],[6,"Scope",0],[1,"u8"],[5,"Formatter",40],[8,"Result",40],[8,"Result",41],[5,"Rule",42],[5,"Vec",43],[6,"Node",42],[5,"String",44],[6,"Result",45,null,1],[5,"TypeId",46]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAB4ABgAAAAMABwAJABIAAQAWAAAAGQADAB8ACQA=","P":[[6,"T"],[10,""],[12,"T"],[14,""],[19,"T"],[22,"U"],[25,""],[32,"T"],[34,"U,T"],[36,"U"],[38,""]]}],["leo_ast",{"t":"FCNNONNNNNCNNNNNNNNNCNNNNCCNNNCNHCCHQCCCNNNNNNNNCCNFFFFFOOCCCOOOOOOOOCOOOOOOOOOCOOFONNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNONNFONNNNNNNNNNNNNNNNNNONNONNNNONNNNNNNONFNNNNNNNNNNNNNNNNNNONONONNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNONNCCCCCCCFNNNNNNNNNNNNNNNNNNNNONNNONNNNNONNNNNNNNHHFNNNNNNNNNNNNNNNNNNNONONNNNNNNKIMMMMFFNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPPPPPFPPPFGPPPPFPFPPPPPFGPKPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPFFPPPFPPPPFPFGPFPCOCCNNCCNNNONNNNOONNNNNCOONNNMONOOOOOOOOOOOOOONNOCCOOOOOOONNNNOOOOOOOOOOOCNCNNNNNCONCCNGPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNONNNNNNNNNONNNNNNONNNNNNNNPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOOONNNNNONNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNNNONONNONNNNONNNNNNNNFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNONNFNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNPPFPKPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNMNNQNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNONNNONONNNNONNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNOOONNNNOONNNNNNNNOONNNNNNNNNNNNNNNNNFNNNNNONNNNNNNNNNNNNOOONNNNNNONNNNNNNNFNNNNNNNNNONNNNNNNNNONNNNNNONNNNNNNNPPPPPPPPPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOONNNNNONNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNFCOONNNNNCNNNNNNNNNNNNNNNOONCONCNNCOONNNNONNNNNNNCONFNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNONONNNONNNNONNNNNNNONNPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNNONNNNONNNNNNNONNPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNONNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNOONNONNNNONNNNNNNONCCCKKKKRRRRRRRRKKKKMMMMMMMMMMMMNNMMMMMMMMMMMNMMMMMMRKKKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRKRKKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNCCONONNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNFNNNNNONNNNNNNNNNNNNONNOONOONNNNNNNNPPPPPPPPPPGCCCNNNNNCCCCNNNNNNNNNNCNNNNNNCCNNNNNNNNNNNNPPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNONNNNNNNNNNNNONNFNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNNONFNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNFNNNNNONNNNNNNNNNNNNONNONNNNONONNNNNNNCCPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNONONNNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNONONPGFPNNNNNCONNNNNNNNNNNNNONNONNNNONNNNNNONONPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNNNFONNNNNNNNNNNNNNNNNNOONNNNNNOOOOONNNNNNONONFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNNNFNNNNNNNNNNNNNNONNNNNNOONNOCONNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNOONNONNNNNONNNNNNONNFNNNNNONNNNNNNNNNNNNCOONNONOOONNNNNNNNFONNNNNNNNNNNNNNNNNNNNNNNOONONNNNOONNNNONNNNNNNONCCCCCCCCFNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNNNNGPNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNPPPPPGPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNOONNNNNNNNONFNNNNNNNNNNNNNNNNNNONNONNNNNNNNNFNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Ast","access","as_ref","as_repr","ast","borrow","borrow_mut","clone","clone_into","clone_to_uninit","common","default","deref","deref_mut","drop","eq","equivalent","","","","expressions","fmt","from","from_json_file","from_json_string","functions","groups","init","into","into_repr","mapping","new","normalize_json_value","passes","program","remove_key_from_json","simple_node_impl","statement","struct","stub","to_json_file","to_json_file_without_keys","to_json_string","to_json_value","to_owned","try_from","try_into","type_id","types","value","vzip","ArrayAccess","AssociatedConstant","AssociatedFunction","MemberAccess","TupleAccess","arguments","array","array_access","associated_constant_access","associated_function_access","id","","","","","index","","inner","member_access","name","","","span","","","","","tuple","tuple_access","ty","variant","ArrayAccess","array","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","index","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","AssociatedConstant","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","ty","type_id","vzip","AssociatedFunction","arguments","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","vzip","MemberAccess","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","inner","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleAccess","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","index","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","tuple","type_id","vzip","identifier","imported_modules","location","node","node_builder","positive_number","static_string","Identifier","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","hash","id","","init","into","matches","name","new","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","deserialize","serialize","Location","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","name","new","program","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Node","NodeID","id","set_id","set_span","span","NodeBuilder","NodeBuilderInner","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","default","deref","","deref_mut","","drop","","fmt","","from","","init","","inner","into","","new","","next","next_id","","to_owned","","try_from","","try_into","","type_id","","vzip","","NonNegativeNumber","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","","hash","init","into","is_zero","serialize","string","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","","vzip","StaticString","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Abs","AbsWrapped","Access","AccessExpression","Add","AddWrapped","Address","And","Array","","ArrayExpression","AssociatedConstant","AssociatedFunction","Binary","BinaryExpression","BinaryOperation","BitwiseAnd","BitwiseOr","Boolean","Call","CallExpression","Cast","CastExpression","Div","DivWrapped","Double","Eq","Err","ErrExpression","Expression","Field","FromStrRadix","Group","Gt","Gte","Identifier","Integer","Inverse","Literal","","Locator","Lt","Lte","Member","Mod","Mul","MulWrapped","Nand","Negate","Neq","Nor","Not","Or","Pow","PowWrapped","Rem","RemWrapped","Scalar","Shl","ShlWrapped","Shr","ShrWrapped","Square","SquareRoot","String","Struct","StructExpression","StructVariableInitializer","Sub","SubWrapped","Ternary","TernaryExpression","ToXCoordinate","ToYCoordinate","Tuple","","TupleExpression","Unary","UnaryExpression","UnaryOperation","Unit","UnitExpression","Xor","access","arguments","array","binary","borrow","borrow_mut","call","cast","clone","clone_into","clone_to_uninit","condition","deref","deref_mut","deserialize","drop","elements","","eq","equivalent","","","","err","expression","","fmt","","from","from_str_by_radix","function","id","","","","","","","","","","","","identifier","if_false","if_true","init","into","left","literal","locator","members","name","op","","program","receiver","right","serialize","set_id","set_span","span","","","","","","","","","","","","struct_init","take_from_value","ternary","to_owned","to_smolstr","to_string","try_from","try_into","tuple","type_","type_id","unary","unit","vzip","AccessExpression","Array","AssociatedConstant","AssociatedFunction","Member","Tuple","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","init","into","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ArrayExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Add","AddWrapped","And","BinaryExpression","BinaryOperation","BitwiseAnd","BitwiseOr","Div","DivWrapped","Eq","Gt","Gte","Lt","Lte","Mod","Mul","MulWrapped","Nand","Neq","Nor","Or","Pow","PowWrapped","Rem","RemWrapped","Shl","ShlWrapped","Shr","ShrWrapped","Sub","SubWrapped","Xor","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","","from","","from_symbol","id","","init","","into","","left","op","right","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","CallExpression","arguments","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function","id","","init","into","program","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","CastExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","vzip","ErrExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Boolean","DisplayDecimal","Field","FromStrRadix","Group","Integer","Literal","Scalar","String","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","display_decimal","drop","","eq","equivalent","","","","fmt","","","from","","from_str_by_radix","from_value","id","implement_from_str_radix","init","","into","","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","LocatorExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","","init","into","matches","name","new","program","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","StructExpression","StructVariableInitializer","borrow","","borrow_mut","","check_record","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","expression","fmt","","","","from","","id","","","","identifier","init","","into","","members","name","serialize","","set_id","","set_span","","span","","","","take_from_value","","to_owned","","to_record_string","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","TernaryExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","condition","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","if_false","if_true","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Abs","AbsWrapped","Double","Inverse","Negate","Not","Square","SquareRoot","ToXCoordinate","ToYCoordinate","UnaryExpression","UnaryOperation","as_str","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","from","","from_symbol","id","","init","","into","","op","receiver","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip","","UnitExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Function","annotation","annotations","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","core_function","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","","id","","identifier","init","input","","into","mode","name","new","output","","output_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","","vzip","Annotation","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","identifier","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","BHP1024CommitToAddress","BHP1024CommitToField","BHP1024CommitToGroup","BHP1024HashToAddress","BHP1024HashToField","BHP1024HashToGroup","BHP1024HashToI128","BHP1024HashToI16","BHP1024HashToI32","BHP1024HashToI64","BHP1024HashToI8","BHP1024HashToScalar","BHP1024HashToU128","BHP1024HashToU16","BHP1024HashToU32","BHP1024HashToU64","BHP1024HashToU8","BHP256CommitToAddress","BHP256CommitToField","BHP256CommitToGroup","BHP256HashToAddress","BHP256HashToField","BHP256HashToGroup","BHP256HashToI128","BHP256HashToI16","BHP256HashToI32","BHP256HashToI64","BHP256HashToI8","BHP256HashToScalar","BHP256HashToU128","BHP256HashToU16","BHP256HashToU32","BHP256HashToU64","BHP256HashToU8","BHP512CommitToAddress","BHP512CommitToField","BHP512CommitToGroup","BHP512HashToAddress","BHP512HashToField","BHP512HashToGroup","BHP512HashToI128","BHP512HashToI16","BHP512HashToI32","BHP512HashToI64","BHP512HashToI8","BHP512HashToScalar","BHP512HashToU128","BHP512HashToU16","BHP512HashToU32","BHP512HashToU64","BHP512HashToU8","BHP768CommitToAddress","BHP768CommitToField","BHP768CommitToGroup","BHP768HashToAddress","BHP768HashToField","BHP768HashToGroup","BHP768HashToI128","BHP768HashToI16","BHP768HashToI32","BHP768HashToI64","BHP768HashToI8","BHP768HashToScalar","BHP768HashToU128","BHP768HashToU16","BHP768HashToU32","BHP768HashToU64","BHP768HashToU8","ChaChaRandAddress","ChaChaRandBool","ChaChaRandField","ChaChaRandGroup","ChaChaRandI128","ChaChaRandI16","ChaChaRandI32","ChaChaRandI64","ChaChaRandI8","ChaChaRandScalar","ChaChaRandU128","ChaChaRandU16","ChaChaRandU32","ChaChaRandU64","ChaChaRandU8","CheatCodePrintMapping","CheatCodeSetBlockHeight","CoreFunction","FutureAwait","GroupToXCoordinate","GroupToYCoordinate","Keccak256HashToAddress","Keccak256HashToField","Keccak256HashToGroup","Keccak256HashToI128","Keccak256HashToI16","Keccak256HashToI32","Keccak256HashToI64","Keccak256HashToI8","Keccak256HashToScalar","Keccak256HashToU128","Keccak256HashToU16","Keccak256HashToU32","Keccak256HashToU64","Keccak256HashToU8","Keccak384HashToAddress","Keccak384HashToField","Keccak384HashToGroup","Keccak384HashToI128","Keccak384HashToI16","Keccak384HashToI32","Keccak384HashToI64","Keccak384HashToI8","Keccak384HashToScalar","Keccak384HashToU128","Keccak384HashToU16","Keccak384HashToU32","Keccak384HashToU64","Keccak384HashToU8","Keccak512HashToAddress","Keccak512HashToField","Keccak512HashToGroup","Keccak512HashToI128","Keccak512HashToI16","Keccak512HashToI32","Keccak512HashToI64","Keccak512HashToI8","Keccak512HashToScalar","Keccak512HashToU128","Keccak512HashToU16","Keccak512HashToU32","Keccak512HashToU64","Keccak512HashToU8","MappingContains","MappingGet","MappingGetOrUse","MappingRemove","MappingSet","Pedersen128CommitToAddress","Pedersen128CommitToField","Pedersen128CommitToGroup","Pedersen128HashToAddress","Pedersen128HashToField","Pedersen128HashToGroup","Pedersen128HashToI128","Pedersen128HashToI16","Pedersen128HashToI32","Pedersen128HashToI64","Pedersen128HashToI8","Pedersen128HashToScalar","Pedersen128HashToU128","Pedersen128HashToU16","Pedersen128HashToU32","Pedersen128HashToU64","Pedersen128HashToU8","Pedersen64CommitToAddress","Pedersen64CommitToField","Pedersen64CommitToGroup","Pedersen64HashToAddress","Pedersen64HashToField","Pedersen64HashToGroup","Pedersen64HashToI128","Pedersen64HashToI16","Pedersen64HashToI32","Pedersen64HashToI64","Pedersen64HashToI8","Pedersen64HashToScalar","Pedersen64HashToU128","Pedersen64HashToU16","Pedersen64HashToU32","Pedersen64HashToU64","Pedersen64HashToU8","Poseidon2HashToAddress","Poseidon2HashToField","Poseidon2HashToGroup","Poseidon2HashToI128","Poseidon2HashToI16","Poseidon2HashToI32","Poseidon2HashToI64","Poseidon2HashToI8","Poseidon2HashToScalar","Poseidon2HashToU128","Poseidon2HashToU16","Poseidon2HashToU32","Poseidon2HashToU64","Poseidon2HashToU8","Poseidon4HashToAddress","Poseidon4HashToField","Poseidon4HashToGroup","Poseidon4HashToI128","Poseidon4HashToI16","Poseidon4HashToI32","Poseidon4HashToI64","Poseidon4HashToI8","Poseidon4HashToScalar","Poseidon4HashToU128","Poseidon4HashToU16","Poseidon4HashToU32","Poseidon4HashToU64","Poseidon4HashToU8","Poseidon8HashToAddress","Poseidon8HashToField","Poseidon8HashToGroup","Poseidon8HashToI128","Poseidon8HashToI16","Poseidon8HashToI32","Poseidon8HashToI64","Poseidon8HashToI8","Poseidon8HashToScalar","Poseidon8HashToU128","Poseidon8HashToU16","Poseidon8HashToU32","Poseidon8HashToU64","Poseidon8HashToU8","SHA3_256HashToAddress","SHA3_256HashToField","SHA3_256HashToGroup","SHA3_256HashToI128","SHA3_256HashToI16","SHA3_256HashToI32","SHA3_256HashToI64","SHA3_256HashToI8","SHA3_256HashToScalar","SHA3_256HashToU128","SHA3_256HashToU16","SHA3_256HashToU32","SHA3_256HashToU64","SHA3_256HashToU8","SHA3_384HashToAddress","SHA3_384HashToField","SHA3_384HashToGroup","SHA3_384HashToI128","SHA3_384HashToI16","SHA3_384HashToI32","SHA3_384HashToI64","SHA3_384HashToI8","SHA3_384HashToScalar","SHA3_384HashToU128","SHA3_384HashToU16","SHA3_384HashToU32","SHA3_384HashToU64","SHA3_384HashToU8","SHA3_512HashToAddress","SHA3_512HashToField","SHA3_512HashToGroup","SHA3_512HashToI128","SHA3_512HashToI16","SHA3_512HashToI32","SHA3_512HashToI64","SHA3_512HashToI8","SHA3_512HashToScalar","SHA3_512HashToU128","SHA3_512HashToU16","SHA3_512HashToU32","SHA3_512HashToU64","SHA3_512HashToU8","SignatureVerify","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","fmt","from","from_symbols","init","into","is_finalize_command","num_args","to_owned","try_from","try_into","type_id","vzip","Input","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","id","","identifier","","init","into","mode","","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","","type_id","vzip","Constant","Mode","None","Private","Public","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Output","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","mode","","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","","type_id","vzip","AsyncFunction","AsyncTransition","Function","Inline","Transition","Variant","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","init","into","is_async","is_async_function","is_function","is_transition","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","group_coordinate","group_literal","GroupCoordinate","Inferred","Number","SignHigh","SignLow","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","GroupLiteral","GroupTuple","Single","Tuple","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","from","","id","","init","","into","","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip","","x","y","Mapping","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","from_snarkvm","id","","identifier","init","into","key_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value_type","vzip","consumer","reconstructor","visitor","ExpressionConsumer","FunctionConsumer","ImportConsumer","MappingConsumer","Output","","","","","","","","ProgramConsumer","ProgramScopeConsumer","StatementConsumer","StructConsumer","consume_access","consume_array","consume_assert","consume_assign","consume_binary","consume_block","consume_call","consume_cast","consume_conditional","consume_console","consume_const","consume_definition","consume_err","consume_expression","consume_expression_statement","consume_function","consume_identifier","consume_import","consume_iteration","consume_literal","consume_locator","consume_mapping","consume_program","consume_program_scope","consume_return","consume_statement","consume_struct","consume_struct_init","consume_ternary","consume_tuple","consume_unary","consume_unit","AdditionalOutput","ExpressionReconstructor","ProgramReconstructor","StatementReconstructor","reconstruct_access","reconstruct_array","reconstruct_array_access","reconstruct_assert","reconstruct_assign","reconstruct_associated_constant","reconstruct_associated_function","reconstruct_binary","reconstruct_block","reconstruct_call","reconstruct_cast","reconstruct_conditional","reconstruct_console","reconstruct_const","reconstruct_definition","reconstruct_err","reconstruct_expression","reconstruct_expression_statement","reconstruct_function","reconstruct_function_stub","reconstruct_identifier","reconstruct_import","reconstruct_iteration","reconstruct_literal","reconstruct_locator","reconstruct_mapping","reconstruct_member_access","reconstruct_program","reconstruct_program_scope","reconstruct_return","reconstruct_statement","reconstruct_struct","reconstruct_struct_init","reconstruct_stub","reconstruct_ternary","reconstruct_tuple","reconstruct_tuple_access","reconstruct_unary","reconstruct_unit","AdditionalInput","ExpressionVisitor","Output","ProgramVisitor","StatementVisitor","visit_access","visit_array","visit_assert","visit_assign","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_const","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_stub","visit_identifier","visit_import","visit_iteration","visit_literal","visit_locator","visit_mapping","visit_program","visit_program_scope","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_stub","visit_stub","visit_ternary","visit_tuple","visit_unary","visit_unit","Program","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","imports","init","into","program_id","program_scope","program_scopes","serialize","stubs","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ProgramId","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","","hash","init","into","name","network","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ProgramScope","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consts","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","functions","init","into","mappings","program_id","serialize","span","structs","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Assert","Assign","Block","Conditional","Console","Const","Definition","Expression","Iteration","Return","Statement","assert","assign","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","conditional","console","const_","definition","deref","deref_mut","deserialize","drop","dummy","eq","equivalent","","","","expression","fmt","","from","id","init","into","iteration","return_","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Assert","AssertEq","AssertNeq","AssertStatement","AssertVariant","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","from","","id","","init","","into","","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","variant","vzip","","AssignStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","vzip","Block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","statements","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConditionalStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","condition","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","otherwise","serialize","set_id","set_span","span","","take_from_value","then","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","console_function","console_statement","Assert","AssertEq","AssertNeq","ConsoleFunction","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConsoleStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConstDeclaration","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","value","vzip","Const","DeclarationType","DefinitionStatement","Let","borrow","borrow_mut","clone","clone_into","clone_to_uninit","declaration_type","","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","value","vzip","Const","DeclarationType","Let","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ExpressionStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","IterationStatement","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","inclusive","init","into","serialize","set_id","set_span","span","","start","start_value","stop","stop_value","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","variable","vzip","ReturnStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Composite","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","external","fmt","","from","from_external_record","from_snarkvm","id","","identifier","init","into","is_record","member","members","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Member","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","identifier","init","into","mode","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","vzip","Stub","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consts","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function_stub","functions","imports","init","into","mappings","serialize","span","structs","stub_id","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","FunctionStub","annotations","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","","from_closure","from_finalize","from_function_core","id","","identifier","init","input","into","is_main","name","new","output","output_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","vzip","array","core_constant","future","integer_type","mapping","struct_type","tuple","type_","ArrayType","base_element_type","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","element_type","","eq","equivalent","","","","fmt","","from","from_snarkvm","hash","init","into","length","","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","CoreConstant","GroupGenerator","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","from","from_symbols","init","into","to_owned","to_type","try_from","try_into","type_id","vzip","FutureType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","inputs","","into","is_explicit","location","","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","I128","I16","I32","I64","I8","IntegerType","U128","U16","U32","U64","U8","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","into","is_signed","serialize","symbol","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","MappingType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","into","key","program","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","vzip","CompositeType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","init","into","program","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","","eq","equivalent","","","","fmt","","from","hash","init","into","length","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Array","Boolean","Composite","Err","Field","Future","Group","Identifier","Integer","Mapping","Scalar","Signature","String","Tuple","Type","Unit","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","eq_flat_relaxed","equivalent","","","","fmt","","from","","","from_snarkvm","hash","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Boolean","Field","Group","I128","I16","I32","I64","I8","Input","Scalar","String","Struct","U128","U16","U32","U64","U8","Value","abs","abs_wrapped","add","add_wrapped","as_ref","bitand","bitor","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","div","div_wrapped","drop","eq","","equivalent","","","","fmt","","from","ge","gt","implement_const_binary","implement_const_unary","init","into","is_supported_const_fold_type","le","lt","mul","mul_wrapped","neg","not","pow","pow_wrapped","shl","shl_wrapped","shr","shr_wrapped","sub","sub_wrapped","to_owned","to_smolstr","to_string","try_from","","try_into","type_id","vzip","xor"],"q":[[0,"leo_ast"],[51,"leo_ast::access"],[82,"leo_ast::access::array_access"],[119,"leo_ast::access::associated_constant_access"],[156,"leo_ast::access::associated_function_access"],[194,"leo_ast::access::member_access"],[231,"leo_ast::access::tuple_access"],[268,"leo_ast::common"],[275,"leo_ast::common::identifier"],[315,"leo_ast::common::imported_modules"],[317,"leo_ast::common::location"],[347,"leo_ast::common::node"],[353,"leo_ast::common::node_builder"],[396,"leo_ast::common::positive_number"],[433,"leo_ast::common::static_string"],[464,"leo_ast::expressions"],[634,"leo_ast::expressions::access"],[672,"leo_ast::expressions::array"],[708,"leo_ast::expressions::binary"],[806,"leo_ast::expressions::call"],[844,"leo_ast::expressions::cast"],[881,"leo_ast::expressions::err"],[916,"leo_ast::expressions::literal"],[977,"leo_ast::expressions::locator"],[1017,"leo_ast::expressions::struct_init"],[1093,"leo_ast::expressions::ternary"],[1131,"leo_ast::expressions::tuple"],[1167,"leo_ast::expressions::unary"],[1242,"leo_ast::expressions::unit"],[1277,"leo_ast::functions"],[1329,"leo_ast::functions::annotation"],[1365,"leo_ast::functions::core_function"],[1645,"leo_ast::functions::input"],[1687,"leo_ast::functions::mode"],[1720,"leo_ast::functions::output"],[1759,"leo_ast::functions::variant"],[1794,"leo_ast::groups"],[1796,"leo_ast::groups::group_coordinate"],[1829,"leo_ast::groups::group_literal"],[1894,"leo_ast::mapping"],[1933,"leo_ast::passes"],[1936,"leo_ast::passes::consumer"],[1984,"leo_ast::passes::reconstructor"],[2027,"leo_ast::passes::visitor"],[2067,"leo_ast::program"],[2102,"leo_ast::program::program_id"],[2136,"leo_ast::program::program_scope"],[2172,"leo_ast::statement"],[2226,"leo_ast::statement::assert"],[2291,"leo_ast::statement::assign"],[2328,"leo_ast::statement::block"],[2365,"leo_ast::statement::conditional"],[2403,"leo_ast::statement::console"],[2405,"leo_ast::statement::console::console_function"],[2437,"leo_ast::statement::console::console_statement"],[2473,"leo_ast::statement::const_"],[2511,"leo_ast::statement::definition"],[2554,"leo_ast::statement::definition::declaration_type"],[2585,"leo_ast::statement::expression"],[2621,"leo_ast::statement::iteration"],[2664,"leo_ast::statement::return_"],[2700,"leo_ast::struct"],[2743,"leo_ast::struct::member"],[2782,"leo_ast::stub"],[2820,"leo_ast::stub::function_stub"],[2869,"leo_ast::types"],[2877,"leo_ast::types::array"],[2914,"leo_ast::types::core_constant"],[2939,"leo_ast::types::future"],[2976,"leo_ast::types::integer_type"],[3018,"leo_ast::types::mapping"],[3051,"leo_ast::types::struct_type"],[3083,"leo_ast::types::tuple"],[3117,"leo_ast::types::type_"],[3168,"leo_ast::value"],[3243,"core::fmt"],[3244,"std::path"],[3245,"leo_errors::errors"],[3246,"serde_json::value"],[3247,"alloc::string"],[3248,"core::result"],[3249,"core::any"],[3250,"serde::de"],[3251,"serde::ser"],[3252,"leo_span::span"],[3253,"smol_str"],[3254,"snarkvm_console_program::data::identifier"],[3255,"snarkvm_console_network"],[3256,"core::hash"],[3257,"leo_span::symbol"],[3258,"alloc::vec"],[3259,"indexmap::map"],[3260,"core::num::error"],[3261,"core::option"],[3262,"snarkvm_synthesizer_program::mapping"],[3263,"core::default"],[3264,"snarkvm_console_program::id"],[3265,"snarkvm_console_program::data_types::record_type"],[3266,"snarkvm_console_program::data_types::struct_type"],[3267,"snarkvm_synthesizer_program::closure"],[3268,"snarkvm_synthesizer_program::traits::instruction"],[3269,"snarkvm_synthesizer_program::function"],[3270,"snarkvm_synthesizer_program::traits::command"],[3271,"snarkvm_console_program::data_types::array_type"],[3272,"snarkvm_console_program::data_types::plaintext_type"]],"i":"``b0000000`000000000`0000``000`0````````00000000``0`````CdBf```0Cb2CfCh301`241324100`24`333333333333333333333333333333333333`222222222222222222222222222222222222`4444444444444444444444444444444444444`111111111111111111111111111111111111`000000000000000000000000000000000000````````Cj00000000000000000000000000000000000000```Dh0000000000000000000000000000``Dj000``DlDn101010101101010101010110100101010101010`E`00000000000000000000000000000000000`Eb00000000000000000000000000000Gn0Ed`En0Fj1Ej3`003``2213`3`22423``1`122314`332202222422422222122224413``223`4403`3``3`2`Fd``44``444Gj5555ElGl77777`FfGh999Ef6:4F`732GfFh86H`Hb6::??4``3341;14????94;7632:810`?`?????`7?``?`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<`99999999999999999999999999999999999>>>``>>>>>>>>>>>>>>>>>>>>>>>>>>>>4>4>4>4>4>4>4>4>4>4>>>>4444>>44>4>44>4>4444>44444>4>4>4>4>4>4>4>4`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`777777777777777777777777777777777777`2222222222222222222222222222222222==`=`==`==Fn>0>>>>0>0>>>0>>>>>>0>>0>6>>`0>0>>>>>>>0>0>0>0>0>0>`Gb00000000000000000000000000000000000000``85855858585858585858588885555888558585858858555858585858585855858585858585`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<`:::::::::::::::::::::::::::::::::::Gn000000000``004040404040404040404000044440440404404044404444404044404040404`3333333333333333333333333333333333``Hd000000`000000000000000000`00`00`00000000000000`00`Hh0000000000000000000000000000000000Ib000000000000000000000000000000000000000000000000000000000000000000000000000000000000`00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Hl0000000000000000000000000000000000000000Id`0000000000000000000000000000000`Hn0000000000000000000000000000000000000Hj0000`00000000000000000000000000000```Ih0000000000000000000000000000000``Ij00Il10101010101010101011110000110101010101011101010111010101000`In0000000000000000000000000000000000000```````JdJfKfLhKhKlL`Kn````77667677666677657367720166477777Ln```000Md01110110000110Mf02012202001102022222Ml`0``00Mn010110000110N`0201220001102002222`f00000000000000000000``00000000000`Gd00000000000000000000000000000000`Lb0000000000000000000000000000000000Lf000000000````00000````0000000000`000000``000000000000Nd00``0Jh1010101010101010101111000010010001010100000101000101010010`Jj00000000000000000000000000000000000`I`00000000000000000000000000000000000`Jl000000000000000000000000000000000000``Nf00`0000000000000000000000000000`Jn0000000000000000000000000000000000`K`000000000000000000000000000000000000Nh``0Kb0000`0000000000000000000000000000000001`11111111111111111111111111111`Kd0000000000000000000000000000000000`Kj00000000000000000000000000000000000000000`Ld0000000000000000000000000000000000`Lj0000000000000000000000000`000000000000000`Nn0000000000000000000000000000000000000`Mh000000000000000000`00000000000000000`Hf00000000000000000000000000000000000000000000000`````````Oh00000000000000000000000000000000000`Ol00000000000000000000000`On00000000000000000000000000000000000A@`0000`000000000000000000000000000000000000`A@b0000000000000000000000000000000`A@d000000000000000000000000000000`A@f00000000000000000000000000000000If00000000000000`00000000000000000000000000000000000G`00000000000000000`0000000000000000000000000000``00000000000000000000000000","f":"``{{{d{b}}}{{d{f}}}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{b}}}b}{{d{d{hc}}}j{}}{{dl}j}`{{}b}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{b}}{d{b}}}A`}{{d{d{c}}}A`{}}000`{{{d{b}}{d{hAb}}}Ad}{cc{}}{Af{{Ah{b}}}}{{{d{Aj}}}{{Ah{b}}}}``{{}n}{{}c{}}{bf}`{fb}{AlAl}``{{Al{d{Aj}}}Al}````{{{d{b}}Af{d{Aj}}}{{Ah{j}}}}{{{d{b}}Af{d{Aj}}{d{{An{{d{Aj}}}}}}}{{Ah{j}}}}{{{d{b}}}{{Ah{B`}}}}{{{d{b}}}{{Ah{Al}}}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}``{{}c{}}`````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Bf}}}Bf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Bf}}}Bh}{nj}{{{d{Bf}}{d{Bf}}}A`}{{d{d{c}}}A`{}}000{{{d{Bf}}{d{hAb}}}Ad}0{cc{}}{{{d{Bf}}}Bj}``{{}n}{{}c{}}{{{d{Bf}}c}BbBl}{{{d{hBf}}Bj}j}{{{d{hBf}}Bn}j}{{{d{Bf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cb}}}Cb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cb}}}Bh}{nj}{{{d{Cb}}{d{Cb}}}A`}{{d{d{c}}}A`{}}000{{{d{Cb}}{d{hAb}}}Ad}0{cc{}}{{{d{Cb}}}Bj}`{{}n}{{}c{}}`{{{d{Cb}}c}BbBl}{{{d{hCb}}Bj}j}{{{d{hCb}}Bn}j}{{{d{Cb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cd}}}Cd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cd}}}Bh}{nj}{{{d{Cd}}{d{Cd}}}A`}{{d{d{c}}}A`{}}000{{{d{Cd}}{d{hAb}}}Ad}0{cc{}}{{{d{Cd}}}Bj}`{{}n}{{}c{}}`{{{d{Cd}}c}BbBl}{{{d{hCd}}Bj}j}{{{d{hCd}}Bn}j}{{{d{Cd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cf}}}Cf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cf}}}Bh}{nj}{{{d{Cf}}{d{Cf}}}A`}{{d{d{c}}}A`{}}000{{{d{Cf}}{d{hAb}}}Ad}0{cc{}}{{{d{Cf}}}Bj}`{{}n}`{{}c{}}`{{{d{Cf}}c}BbBl}{{{d{hCf}}Bj}j}{{{d{hCf}}Bn}j}{{{d{Cf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ch}}}Ch}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ch}}}Bh}{nj}{{{d{Ch}}{d{Ch}}}A`}{{d{d{c}}}A`{}}000{{{d{Ch}}{d{hAb}}}Ad}0{cc{}}{{{d{Ch}}}Bj}``{{}n}{{}c{}}{{{d{Ch}}c}BbBl}{{{d{hCh}}Bj}j}{{{d{hCh}}Bn}j}{{{d{Ch}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cj}}}Cj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Ah{Cj}}}Bh}{nj}{{{d{Cj}}{d{Cj}}}A`}{{d{d{c}}}A`{}}000{{{d{Cj}}{d{hAb}}}Ad}0{cc{}}{{{d{{Cl{c}}}}}CjCn}{{{d{Cj}}{d{hc}}}jD`}{{{d{Cj}}}Bj}`{{}n}{{}c{}}8`{{DbBj}Cj}{{{d{Cj}}c}AhBl}{{{d{hCj}}Bj}j}{{{d{hCj}}Bn}j}{{{d{Cj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}{c{{Bb{{Df{{Dd{Db}}f}}}}}Bh}{{{d{{Df{{Dd{Db}}f}}}}c}BbBl}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Dh}}}Dh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Dh}}}Bh}{nj}{{{d{Dh}}{d{Dh}}}A`}{{d{d{c}}}A`{}}000{{{d{Dh}}{d{hAb}}}Ad}{cc{}}{{{d{Dh}}{d{hc}}}jD`}{{}n}{{}c{}}`{{DbDb}Dh}`{{{d{Dh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{{{d{Dj}}}Bj}{{{d{hDj}}Bj}j}{{{d{hDj}}Bn}j}{{{d{Dj}}}Bn}``{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Dl}}}Dl}{{{d{Dn}}}Dn}{{d{d{hc}}}j{}}0{{dl}j}0{{}Dl}{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{nj}0{{{d{Dl}}{d{hAb}}}Ad}{{{d{Dn}}{d{hAb}}}Ad}{cc{}}0{{}n}0`{{}c{}}0{BjDl}{BjDn}`{{{d{Dl}}}Bj}{{{d{hDn}}}Bj}{dc{}}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{E`}}}E`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{E`}}}Bh}{nj}{{{d{E`}}{d{E`}}}A`}{{d{d{c}}}A`{}}000{{{d{E`}}{d{hAb}}}Ad}0{cc{}}{B`E`}{nE`}{{{d{E`}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{E`}}}A`}{{{d{E`}}c}BbBl}{{{d{E`}}}{{d{Aj}}}}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{{d{E`}}}n}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Eb}}}Eb}{{d{d{hc}}}j{}}{{dl}j}{{}Eb}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Eb}}}Bh}{nj}{{{d{Eb}}{d{Eb}}}A`}{{d{d{c}}}A`{}}000{{{d{Eb}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{B`Eb}{{{d{Eb}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}``{{{d{Ed}}}Ed}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ed}}}Bh}{nj}``{{{d{Ed}}{d{Ed}}}A`}{{d{d{c}}}A`{}}000```{{{d{Ed}}{d{hAb}}}Ad}0{cc{}}{{{d{Aj}}}{{Bb{EfEh}}}}`{{{d{Ed}}}Bj}``````````````{{}n}{{}c{}}``````````{{{d{Ed}}c}BbBl}{{{d{hEd}}Bj}j}{{{d{hEd}}Bn}j}{{{d{Ed}}}Bn}````````````{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}`{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}``{dBd}``{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ej}}}Ej}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ej}}}Bh}{nj}{{{d{Ej}}{d{Ej}}}A`}{{d{d{c}}}A`{}}000{{{d{Ej}}{d{hAb}}}Ad}0{cc{}}{{{d{Ej}}}Bj}{{}n}{{}c{}}{{{d{Ej}}c}BbBl}{{{d{hEj}}Bj}j}{{{d{hEj}}Bn}j}{{{d{Ej}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{El}}}El}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{El}}}Bh}{nj}`{{{d{El}}{d{El}}}A`}{{d{d{c}}}A`{}}000{{{d{El}}{d{hAb}}}Ad}0{cc{}}{{{d{El}}}Bj}`{{}n}{{}c{}}{{{d{El}}c}BbBl}{{{d{hEl}}Bj}j}{{{d{hEl}}Bn}j}{{{d{El}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````````````````````````````````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{En}}}En}{{{d{F`}}}F`}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{En}}}Bh}{c{{Bb{F`}}}Bh}{nj}0{{{d{En}}{d{En}}}A`}{{{d{F`}}{d{F`}}}A`}{{d{d{c}}}A`{}}0000000{{{d{En}}{d{hAb}}}Ad}0{{{d{F`}}{d{hAb}}}Ad}0{cc{}}0{Db{{Fb{En}}}}{{{d{F`}}}Bj}`{{}n}0{{}c{}}0```{{{d{En}}c}BbBl}{{{d{F`}}c}BbBl}{{{d{hF`}}Bj}j}{{{d{hF`}}Bn}j}{{{d{F`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Fd}}}Fd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Fd}}}Bh}{nj}{{{d{Fd}}{d{Fd}}}A`}{{d{d{c}}}A`{}}000{{{d{Fd}}{d{hAb}}}Ad}0{cc{}}`{{{d{Fd}}}Bj}`{{}n}{{}c{}}`{{{d{Fd}}c}BbBl}{{{d{hFd}}Bj}j}{{{d{hFd}}Bn}j}{{{d{Fd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ff}}}Ff}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ff}}}Bh}{nj}{{{d{Ff}}{d{Ff}}}A`}{{d{d{c}}}A`{}}000`{{{d{Ff}}{d{hAb}}}Ad}0{cc{}}{{{d{Ff}}}Bj}`{{}n}{{}c{}}{{{d{Ff}}c}BbBl}{{{d{hFf}}Bj}j}{{{d{hFf}}Bn}j}{{{d{Ff}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Fh}}}Fh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Fh}}}Bh}{nj}{{{d{Fh}}{d{Fh}}}A`}{{d{d{c}}}A`{}}000{{{d{Fh}}{d{hAb}}}Ad}0{cc{}}{{{d{Fh}}}Bj}`{{}n}{{}c{}}{{{d{Fh}}c}BbBl}{{{d{hFh}}Bj}j}{{{d{hFh}}Bn}j}{{{d{Fh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Fj}}}Fj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Fj}}}Bh}{{{d{Fj}}}{{`{Fl}}}}{nj}0{{{d{Fj}}{d{Fj}}}A`}{{d{d{c}}}A`{}}000{{{d{Fn}}{d{hAb}}}Ad}{{{d{Fj}}{d{hAb}}}Ad}0{cc{}}0{{{d{Aj}}}{{Bb{EfEh}}}}{{G`Bj}Fj}{{{d{Fj}}}Bj}`{{}n}0{{}c{}}0{{{d{Fj}}c}BbBl}{{{d{hFj}}Bj}j}{{{d{hFj}}Bn}j}{{{d{Fj}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gb}}}Gb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gb}}}Bh}{nj}{{{d{Gb}}{d{Gb}}}A`}{{d{d{c}}}A`{}}000{{{d{Gb}}{d{hAb}}}Ad}0{cc{}}{{{d{Gb}}{d{hc}}}jD`}{{{d{Gb}}}Bj}`{{}n}{{}c{}}7`{{GdDbBj}Gb}`{{{d{Gb}}c}BbBl}{{{d{hGb}}Bj}j}{{{d{hGb}}Bn}j}{{{d{Gb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Gf}}}A`}{{{d{Gh}}}Gh}{{{d{Gf}}}Gf}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Gh}}}Bh}{c{{Bb{Gf}}}Bh}{nj}0{{{d{Gh}}{d{Gh}}}A`}{{{d{Gf}}{d{Gf}}}A`}{{d{d{c}}}A`{}}0000000`{{{d{Gh}}{d{hAb}}}Ad}0{{{d{Gf}}{d{hAb}}}Ad}0{cc{}}0{{{d{Gh}}}Bj}{{{d{Gf}}}Bj}```{{}n}0{{}c{}}0``{{{d{Gh}}c}BbBl}{{{d{Gf}}c}BbBl}{{{d{hGh}}Bj}j}{{{d{hGf}}Bj}j}{{{d{hGh}}Bn}j}{{{d{hGf}}Bn}j}{{{d{Gh}}}Bn}{{{d{Gf}}}Bn}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{{{d{Gf}}}B`}{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gj}}}Gj}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gj}}}Bh}{nj}{{{d{Gj}}{d{Gj}}}A`}{{d{d{c}}}A`{}}000{{{d{Gj}}{d{hAb}}}Ad}0{cc{}}{{{d{Gj}}}Bj}```{{}n}{{}c{}}{{{d{Gj}}c}BbBl}{{{d{hGj}}Bj}j}{{{d{hGj}}Bn}j}{{{d{Gj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gl}}}Gl}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gl}}}Bh}{nj}`{{{d{Gl}}{d{Gl}}}A`}{{d{d{c}}}A`{}}000{{{d{Gl}}{d{hAb}}}Ad}0{cc{}}{{{d{Gl}}}Bj}`{{}n}{{}c{}}{{{d{Gl}}c}BbBl}{{{d{hGl}}Bj}j}{{{d{hGl}}Bn}j}{{{d{Gl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````````````{Gn{{d{Aj}}}}{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Gn}}}Gn}{{{d{H`}}}H`}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Gn}}}Bh}{c{{Bb{H`}}}Bh}{nj}0{{{d{Gn}}{d{Gn}}}A`}{{{d{H`}}{d{H`}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Gn}}{d{hAb}}}Ad}{{{d{H`}}{d{hAb}}}Ad}0{cc{}}0{Db{{Fb{Gn}}}}{{{d{H`}}}Bj}`{{}n}0{{}c{}}0``{{{d{Gn}}c}BbBl}{{{d{H`}}c}BbBl}{{{d{hH`}}Bj}j}{{{d{hH`}}Bn}j}{{{d{H`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}{dB`}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hb}}}Hb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hb}}}Bh}{nj}{{{d{Hb}}{d{Hb}}}A`}{{d{d{c}}}A`{}}000{{{d{Hb}}{d{hAb}}}Ad}0{cc{}}{{{d{Hb}}}Bj}`{{}n}{{}c{}}{{{d{Hb}}c}BbBl}{{{d{hHb}}Bj}j}{{{d{hHb}}Bn}j}{{{d{Hb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hd}}}Hd}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hd}}}Bh}{nj}{{{d{Hd}}{d{Hd}}}A`}{{d{d{c}}}A`{}}000{{{d{Hd}}{d{hAb}}}Ad}00{cc{}}{HfHd}{{{d{Hd}}}Bj}``{{}n}``{{}c{}}`{{{d{Hd}}}Db}{{{Dd{Hh}}HjCj{Dd{Hl}}{Dd{Hn}}I`BnBj}Hd}```{{{d{Hd}}c}BbBl}{{{d{hHd}}Bj}j}{{{d{hHd}}Bn}j}{{{d{Hd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}``{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hh}}}Hh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hh}}}Bh}{nj}{{{d{Hh}}{d{Hh}}}A`}{{d{d{c}}}A`{}}000{{{d{Hh}}{d{hAb}}}Ad}0{cc{}}{{{d{Hh}}}Bj}``{{}n}{{}c{}}{{{d{Hh}}c}BbBl}{{{d{hHh}}Bj}j}{{{d{hHh}}Bn}j}{{{d{Hh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ib}}}Ib}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{Ib}}{d{Ib}}}A`}{{d{d{c}}}A`{}}000{{{d{Ib}}{d{hAb}}}Ad}{cc{}}{{DbDb}{{Fb{Ib}}}}{{}n}{{}c{}}{{{d{Ib}}}A`}{{{d{Ib}}}n}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hl}}}Hl}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hl}}}Bh}{nj}{{{d{Hl}}{d{Hl}}}A`}{{d{d{c}}}A`{}}000{{{d{Hl}}{d{hAb}}}Ad}00{cc{}}{{{d{Hl}}}Bj}`{{{d{Hl}}}{{d{Cj}}}}`{{}n}{{}c{}}{{{d{Hl}}}Id}`{{{d{Hl}}c}BbBl}{{{d{hHl}}Bj}j}{{{d{hHl}}Bn}j}{{{d{Hl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{{{d{Hl}}}{{d{If}}}}`{dBd}{{}c{}}`````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Id}}}Id}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Id}}}Bh}{nj}{{{d{Id}}{d{Id}}}A`}{{d{d{c}}}A`{}}000{{{d{Id}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Id}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hn}}}Hn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hn}}}Bh}{nj}{{{d{Hn}}{d{Hn}}}A`}{{d{d{c}}}A`{}}000{{{d{Hn}}{d{hAb}}}Ad}0{cc{}}{{{d{Hn}}}Bj}`{{}n}{{}c{}}{{{d{Hn}}}Id}`{{{d{Hn}}c}BbBl}{{{d{hHn}}Bj}j}{{{d{hHn}}Bn}j}{{{d{Hn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{{{d{Hn}}}{{d{If}}}}`{dBd}{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hj}}}Hj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hj}}}Bh}{nj}{{{d{Hj}}{d{Hj}}}A`}{{d{d{c}}}A`{}}000{{{d{Hj}}{d{hAb}}}Ad}{cc{}}{{}n}{{}c{}}{HjA`}000{{{d{Hj}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ih}}}Ih}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ih}}}Bh}{nj}{{{d{Ih}}{d{Ih}}}A`}{{d{d{c}}}A`{}}000{{{d{Ih}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Ih}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Ij}}}Ij}{{{d{Il}}}Il}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Ij}}}Bh}{c{{Bb{Il}}}Bh}{nj}0{{{d{Ij}}{d{Ij}}}A`}{{{d{Il}}{d{Il}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Ij}}{d{hAb}}}Ad}0{{{d{Il}}{d{hAb}}}Ad}{cc{}}0{{{d{Ij}}}{{d{Bj}}}}`{{}n}0{{}c{}}0{{{d{Ij}}c}BbBl}{{{d{Il}}c}BbBl}{{{d{hIj}}Bj}j}{{{d{hIj}}Bn}j}{{{d{Ij}}}{{d{Bn}}}}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}{dB`}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{In}}}In}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{In}}}Bh}{nj}{{{d{In}}{d{In}}}A`}{{d{d{c}}}A`{}}000{{{d{In}}{d{hAb}}}Ad}0{cc{}}{{{d{{J`{c}}}}}InCn}{{{d{In}}}Bj}``{{}n}{{}c{}}`{{{d{In}}c}BbBl}{{{d{hIn}}Bj}j}{{{d{hIn}}Bn}j}{{{d{In}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}```````````````````{{{d{h{Jd{}{{Jb{c}}}}}}Ej}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}El}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jh}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}F`}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}I`}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fd}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Ff}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jl}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jn}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}K`}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kb}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fh}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Ed}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kd}c{}}{{{d{h{Kf{}{{Jb{c}}}}}}Hd}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Cj}c{}}{{{d{h{Kh{}{{Jb{c}}}}}}f}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gb}c{}}{{{d{h{Kl{}{{Jb{c}}}}}}In}c{}}{{{d{h{Kn{}{{Jb{c}}}}}}f}c{}}{{{d{h{L`{}{{Jb{c}}}}}}Lb}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Ld}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Lf}c{}}{{{d{h{Lh{}{{Jb{c}}}}}}Lj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gf}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gl}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}H`}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Hb}c{}}````{{{d{h{Ln{}{{Ll{c}}}}}}Ej}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}El}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Bf}{{M`{Edc}}}Mb}{{{d{hMd}}Jh}{{M`{Lfc}}}{}}{{{d{hMd}}Jj}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Cb}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Cd}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}F`}{{M`{Edc}}}Mb}{{{d{hMd}}I`}{{M`{I`c}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fd}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ff}{{M`{Edc}}}Mb}{{{d{hMd}}Jl}{{M`{Lfc}}}{}}{{{d{hMd}}Jn}{{M`{Lfc}}}{}}{{{d{hMd}}K`}{{M`{Lfc}}}{}}{{{d{hMd}}Kb}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fh}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ed}{{M`{Edc}}}Mb}{{{d{hMd}}Kd}{{M`{Lfc}}}{}}{{{d{hMf}}Hd}Hd}{{{d{hMf}}Hf}Hf}{{{d{h{Ln{}{{Ll{c}}}}}}Cj}{{M`{Edc}}}Mb}{{{d{hMf}}f}f}{{{d{hMd}}Kj}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fj}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Gb}{{M`{Edc}}}Mb}{{{d{hMf}}In}In}{{{d{h{Ln{}{{Ll{c}}}}}}Cf}{{M`{Edc}}}Mb}5{{{d{hMf}}Lb}Lb}{{{d{hMd}}Ld}{{M`{Lfc}}}{}}{{{d{hMd}}Lf}{{M`{Lfc}}}{}}{{{d{hMf}}Lj}Lj}{{{d{h{Ln{}{{Ll{c}}}}}}Gf}{{M`{Edc}}}Mb}{{{d{hMf}}Mh}Mh}{{{d{h{Ln{}{{Ll{c}}}}}}Gj}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Gl}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ch}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}H`}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Hb}{{M`{Edc}}}Mb}`````{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ej}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{El}}{d{c}}}eMbMb}{{{d{hMn}}{d{Jh}}}j}{{{d{hMn}}{d{Jj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{F`}}{d{c}}}eMbMb}{{{d{hMn}}{d{I`}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fd}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ff}}{d{c}}}eMbMb}{{{d{hMn}}{d{Jl}}}j}{{{d{hMn}}{d{Jn}}}j}{{{d{hMn}}{d{K`}}}j}{{{d{hMn}}{d{Kb}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fh}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ed}}{d{c}}}eMbMb}{{{d{hMn}}{d{Kd}}}j}{{{d{hN`}}{d{Hd}}}j}{{{d{hN`}}{d{Hf}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Cj}}{d{c}}}eMbMb}{{{d{hN`}}{d{f}}}j}{{{d{hMn}}{d{Kj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fj}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gb}}{d{c}}}eMbMb}{{{d{hN`}}{d{In}}}j}4{{{d{hN`}}{d{Lb}}}j}{{{d{hMn}}{d{Ld}}}j}{{{d{hMn}}{d{Lf}}}j}{{{d{hN`}}{d{Lj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gf}}{d{c}}}eMbMb}1{{{d{hN`}}{d{Mh}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gj}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gl}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{H`}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Hb}}{d{c}}}eMbMb}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{f}}}f}{{d{d{hc}}}j{}}{{dl}j}{{}f}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{f}}}Bh}{nj}{{{d{f}}{d{f}}}A`}{{d{d{c}}}A`{}}000{{{d{f}}{d{hAb}}}Ad}0{cc{}}`{{}n}{{}c{}}```{{{d{f}}c}BbBl}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gd}}}Gd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gd}}}Bh}{nj}{{{d{Gd}}{d{Gd}}}A`}{{d{d{c}}}A`{}}000{{{d{Gd}}{d{hAb}}}Ad}0{cc{}}{{{d{{Nb{c}}}}}GdCn}{CjGd}{{{d{Gd}}{d{hc}}}jD`}{{}n}{{}c{}}``{{{d{Gd}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lb}}}Lb}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lb}}}Bh}{nj}{{{d{Lb}}{d{Lb}}}A`}{{d{d{c}}}A`{}}000{{{d{Lb}}{d{hAb}}}Ad}0{MhLb}{cc{}}`{{}n}{{}c{}}``{{{d{Lb}}c}BbBl}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lf}}}Lf}{{d{d{hc}}}j{}}{{dl}j}````{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lf}}}Bh}{nj}{{BnBj}Lf}{{{d{Lf}}{d{Lf}}}A`}{{d{d{c}}}A`{}}000`{{{d{Lf}}{d{hAb}}}Ad}0{cc{}}{{{d{Lf}}}Bj}{{}n}{{}c{}}``{{{d{Lf}}c}BbBl}{{{d{hLf}}Bj}j}{{{d{hLf}}Bn}j}{{{d{Lf}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Nd}}}Nd}{{{d{Jh}}}Jh}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Nd}}}Bh}{c{{Bb{Jh}}}Bh}{nj}0{{{d{Nd}}{d{Nd}}}A`}{{{d{Jh}}{d{Jh}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Nd}}{d{hAb}}}Ad}{{{d{Jh}}{d{hAb}}}Ad}0{cc{}}0{{{d{Jh}}}Bj}`{{}n}0{{}c{}}0{{{d{Nd}}c}BbBl}{{{d{Jh}}c}BbBl}{{{d{hJh}}Bj}j}{{{d{hJh}}Bn}j}{{{d{Jh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}{dB`}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0`{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jj}}}Jj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jj}}}Bh}{nj}{{{d{Jj}}{d{Jj}}}A`}{{d{d{c}}}A`{}}000{{{d{Jj}}{d{hAb}}}Ad}0{cc{}}{{{d{Jj}}}Bj}`{{}n}{{}c{}}`{{{d{Jj}}c}BbBl}{{{d{hJj}}Bj}j}{{{d{hJj}}Bn}j}{{{d{Jj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{I`}}}I`}{{d{d{hc}}}j{}}{{dl}j}{{}I`}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{I`}}}Bh}{nj}{{{d{I`}}{d{I`}}}A`}{{d{d{c}}}A`{}}000{{{d{I`}}{d{hAb}}}Ad}0{cc{}}{{{d{I`}}}Bj}`{{}n}{{}c{}}{{{d{I`}}c}BbBl}{{{d{hI`}}Bj}j}{{{d{hI`}}Bn}j}{{{d{I`}}}Bn}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jl}}}Jl}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jl}}}Bh}{nj}{{{d{Jl}}{d{Jl}}}A`}{{d{d{c}}}A`{}}000{{{d{Jl}}{d{hAb}}}Ad}0{cc{}}{{{d{Jl}}}Bj}`{{}n}{{}c{}}`{{{d{Jl}}c}BbBl}{{{d{hJl}}Bj}j}{{{d{hJl}}Bn}j}{{{d{Jl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}`{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nf}}}Nf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nf}}}Bh}{nj}{{{d{Nf}}{d{Nf}}}A`}{{d{d{c}}}A`{}}000{{{d{Nf}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Nf}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jn}}}Jn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jn}}}Bh}{nj}{{{d{Jn}}{d{Jn}}}A`}{{d{d{c}}}A`{}}000{{{d{Jn}}{d{hAb}}}Ad}0{cc{}}`{{{d{Jn}}}Bj}`{{}n}{{}c{}}{{{d{Jn}}c}BbBl}{{{d{hJn}}Bj}j}{{{d{hJn}}Bn}j}{{{d{Jn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{K`}}}K`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{K`}}}Bh}{nj}{{{d{K`}}{d{K`}}}A`}{{d{d{c}}}A`{}}000{{{d{K`}}{d{hAb}}}Ad}0{cc{}}{{{d{K`}}}Bj}`{{}n}{{}c{}}`{{{d{K`}}c}BbBl}{{{d{hK`}}Bj}j}{{{d{hK`}}Bn}j}{{{d{K`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kb}}}Kb}{{d{d{hc}}}j{}}{{dl}j}``{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kb}}}Bh}{nj}{{{d{Kb}}{d{Kb}}}A`}{{d{d{c}}}A`{}}000{{{d{Kb}}{d{hAb}}}Ad}0{cc{}}{{{d{Kb}}}Bj}`{{}n}{{}c{}}`{{{d{Kb}}c}BbBl}{{{d{hKb}}Bj}j}{{{d{hKb}}Bn}j}{{{d{Kb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nh}}}Nh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nh}}}Bh}{nj}{{{d{Nh}}{d{Nh}}}A`}{{d{d{c}}}A`{}}000{{{d{Nh}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Nh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kd}}}Kd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kd}}}Bh}{nj}{{{d{Kd}}{d{Kd}}}A`}{{d{d{c}}}A`{}}000`{{{d{Kd}}{d{hAb}}}Ad}0{cc{}}{{{d{Kd}}}Bj}`{{}n}{{}c{}}{{{d{Kd}}c}BbBl}{{{d{hKd}}Bj}j}{{{d{hKd}}Bn}j}{{{d{Kd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kj}}}Kj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kj}}}Bh}{nj}{{{d{Kj}}{d{Kj}}}A`}{{d{d{c}}}A`{}}000{{{d{Kj}}{d{hAb}}}Ad}0{cc{}}{{{d{Kj}}}Bj}``{{}n}{{}c{}}{{{d{Kj}}c}BbBl}{{{d{hKj}}Bj}j}{{{d{hKj}}Bn}j}{{{d{Kj}}}Bn}`````{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ld}}}Ld}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ld}}}Bh}{nj}{{{d{Ld}}{d{Ld}}}A`}{{d{d{c}}}A`{}}000`{{{d{Ld}}{d{hAb}}}Ad}0{cc{}}{{{d{Ld}}}Bj}`{{}n}{{}c{}}{{{d{Ld}}c}BbBl}{{{d{hLd}}Bj}j}{{{d{hLd}}Bn}j}{{{d{Ld}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lj}}}Lj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lj}}}Bh}{nj}{{{d{Lj}}{d{Lj}}}A`}{{d{d{c}}}A`{}}000`{{{d{Lj}}{d{hAb}}}Ad}0{cc{}}{{{d{{Nj{c}}}}Db}LjCn}{{{d{{Nl{c}}}}}LjCn}{{{d{Lj}}}Bj}``{{}n}{{}c{}}```{{{d{Lj}}}Db}{{{d{Lj}}c}BbBl}{{{d{hLj}}Bj}j}{{{d{hLj}}Bn}j}{{{d{Lj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nn}}}Nn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nn}}}Bh}{nj}{{{d{Nn}}{d{Nn}}}A`}{{d{d{c}}}A`{}}000{{{d{Nn}}{d{hAb}}}Ad}0{cc{}}{{{d{Nn}}}Bj}``{{}n}{{}c{}}`{{{d{Nn}}}Db}{{{d{Nn}}c}BbBl}{{{d{hNn}}Bj}j}{{{d{hNn}}Bn}j}{{{d{Nn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Mh}}}Mh}{{d{d{hc}}}j{}}{{dl}j}`{{}Mh}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Mh}}}Bh}{nj}{{{d{Mh}}{d{Mh}}}A`}{{d{d{c}}}A`{}}000{{{d{Mh}}{d{hAb}}}Ad}0{cc{}}```{{}n}{{}c{}}`{{{d{Mh}}c}BbBl}```{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hf}}}Hf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hf}}}Bh}{nj}{{{d{Hf}}{d{Hf}}}A`}{{d{d{c}}}A`{}}000{{{d{Hf}}{d{hAb}}}Ad}00{HdHf}{cc{}}{{{d{{O`{ce}}}}Db}HfCn{{Ob{c}}}}{{{d{{Od{ceg}}}}DbDb}HfCn{{Ob{c}}}{{Of{c}}}}{{{d{{Od{ceg}}}}Db}HfCn{{Ob{c}}}{{Of{c}}}}{{{d{Hf}}}Bj}``{{}n}`{{}c{}}{{{d{Hf}}}A`}{{{d{Hf}}}Db}{{{Dd{Hh}}A`HjCj{Dd{Hl}}{Dd{Hn}}BnBj}Hf}``{{{d{Hf}}c}BbBl}{{{d{hHf}}Bj}j}{{{d{hHf}}Bn}j}{{{d{Hf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`````````{{{d{Oh}}}{{d{If}}}}{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Oh}}}Oh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Oh}}}Bh}{nj}9`{{{d{Oh}}{d{Oh}}}A`}{{d{d{c}}}A`{}}000{{{d{Oh}}{d{hAb}}}Ad}0{cc{}}{{{d{{Oj{c}}}}{Fb{Db}}}OhCn}{{{d{Oh}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{Oh}}}n}`{{IfE`}Oh}{{{d{Oh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ol}}}Ol}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{Ol}}{d{Ol}}}A`}{{d{d{c}}}A`{}}000{cc{}}{{DbDb}{{Fb{Ol}}}}{{}n}{{}c{}}{dc{}}{{{d{Ol}}}If}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{On}}}On}{{d{d{hc}}}j{}}{{dl}j}{{}On}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{On}}}Bh}{nj}{{{d{On}}{d{On}}}A`}{{d{d{c}}}A`{}}000{{{d{On}}{d{hAb}}}Ad}0{cc{}}{{{d{On}}{d{hc}}}jD`}{{}n}{{{d{On}}}{{d{{An{If}}}}}}`{{}c{}}`{{{d{On}}}{{d{{Fb{Dh}}}}}}`{{{Dd{If}}{Fb{Dh}}A`}On}{{{d{On}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@`}}}A@`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@`}}}Bh}{nj}{{{d{A@`}}{d{A@`}}}A`}{{d{d{c}}}A`{}}000{{{d{A@`}}{d{hAb}}}Ad}0{cc{}}{{{d{A@`}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{A@`}}}A`}{{{d{A@`}}c}BbBl}{A@`Db}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@b}}}A@b}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@b}}}Bh}{nj}{{{d{A@b}}{d{A@b}}}A`}{{d{d{c}}}A`{}}000{{{d{A@b}}{d{hAb}}}Ad}0{cc{}}{{{d{A@b}}{d{hc}}}jD`}{{}n}{{}c{}}``{{{d{A@b}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@d}}}A@d}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@d}}}Bh}{nj}{{{d{A@d}}{d{A@d}}}A`}{{d{d{c}}}A`{}}000{{{d{A@d}}{d{hAb}}}Ad}0{cc{}}{{{d{A@d}}{d{hc}}}jD`}`{{}n}{{}c{}}`{{{d{A@d}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@f}}}A@f}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@f}}}Bh}{nj}{{{d{A@f}}}{{d{{An{If}}}}}}`{{{d{A@f}}{d{A@f}}}A`}{{d{d{c}}}A`{}}000{{{d{A@f}}{d{hAb}}}Ad}0{cc{}}{{{d{A@f}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{A@f}}}n}{{{Dd{If}}}A@f}{{{d{A@f}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{If}}}If}{{d{d{hc}}}j{}}{{dl}j}{{}If}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{If}}}Bh}{nj}{{{d{If}}{d{If}}}A`}0{{d{d{c}}}A`{}}000{{{d{If}}{d{hAb}}}Ad}0{{{d{G`}}}If}{cc{}}{G`If}{{{d{{A@h{c}}}}{Fb{Db}}}IfCn}{{{d{If}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{If}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````{{G`Bn}{{Ah{G`}}}}0{{G`G`Bn}{{Ah{G`}}}}0{{{d{G`}}}{{d{G`}}}}11{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{G`}}}G`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}88{nj}9{{{d{G`}}{d{G`}}}A`}{{d{d{c}}}A`{}}000{{{d{G`}}{d{hAb}}}Ad}0{cc{}}==``{{}n}{{}c{}}{{{d{G`}}}A`}{{G`G`Bn}{{Ah{G`}}}}000{{G`Bn}{{Ah{G`}}}}011111111{dc{}}{dC`}{dB`}{{{d{Fj}}}{{Ah{G`c}}}{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}9","D":"EKb","p":[[5,"Ast",0],[1,"reference",null,null,1],[5,"Program",2067],[0,"mut"],[1,"unit"],[1,"u8"],[1,"usize"],[1,"bool"],[5,"Formatter",3243],[8,"Result",3243],[5,"PathBuf",3244],[8,"Result",3245],[1,"str"],[6,"Value",3246],[1,"slice"],[5,"String",3247],[6,"Result",3248,null,1],[5,"TypeId",3249],[5,"ArrayAccess",82],[10,"Deserializer",3250],[8,"NodeID",347],[10,"Serializer",3251],[5,"Span",3252],[5,"SmolStr",3253],[5,"AssociatedConstant",119],[5,"AssociatedFunction",156],[5,"MemberAccess",194],[5,"TupleAccess",231],[5,"Identifier",275],[5,"Identifier",3254],[10,"Network",3255],[10,"Hasher",3256],[5,"Symbol",3257],[5,"Vec",3258],[5,"IndexMap",3259],[5,"Location",317],[10,"Node",347],[5,"NodeBuilder",353],[5,"NodeBuilderInner",353],[5,"NonNegativeNumber",396],[5,"StaticString",433],[6,"Expression",464],[10,"FromStrRadix",916],[5,"ParseIntError",3260],[6,"AccessExpression",634],[5,"ArrayExpression",672],[6,"BinaryOperation",708],[5,"BinaryExpression",708],[6,"Option",3261,null,1],[5,"CallExpression",806],[5,"CastExpression",844],[5,"ErrExpression",881],[6,"Literal",916],[10,"Display",3243],[5,"DisplayDecimal",916],[6,"Value",3168],[5,"LocatorExpression",977],[5,"ProgramId",2102],[5,"StructExpression",1017],[5,"StructVariableInitializer",1017],[5,"TernaryExpression",1093],[5,"TupleExpression",1131],[6,"UnaryOperation",1167],[5,"UnaryExpression",1167],[5,"UnitExpression",1242],[5,"Function",1277],[5,"FunctionStub",2820],[5,"Annotation",1329],[6,"Variant",1759],[5,"Input",1645],[5,"Output",1720],[5,"Block",2328],[6,"CoreFunction",1365],[6,"Mode",1687],[6,"Type",3117],[6,"GroupCoordinate",1796],[6,"GroupLiteral",1829],[5,"GroupTuple",1829],[5,"Mapping",1894],[5,"Mapping",3262],[17,"Output"],[10,"ExpressionConsumer",1936],[10,"StatementConsumer",1936],[5,"AssertStatement",2226],[5,"AssignStatement",2291],[5,"ConditionalStatement",2365],[5,"ConsoleStatement",2437],[5,"ConstDeclaration",2473],[5,"DefinitionStatement",2511],[5,"ExpressionStatement",2585],[10,"FunctionConsumer",1936],[10,"ImportConsumer",1936],[5,"IterationStatement",2621],[10,"MappingConsumer",1936],[10,"ProgramConsumer",1936],[10,"ProgramScopeConsumer",1936],[5,"ProgramScope",2136],[5,"ReturnStatement",2664],[6,"Statement",2172],[10,"StructConsumer",1936],[5,"Composite",2700],[17,"AdditionalOutput"],[10,"ExpressionReconstructor",1984],[1,"tuple",null,null,1],[10,"Default",3263],[10,"StatementReconstructor",1984],[10,"ProgramReconstructor",1984],[5,"Stub",2782],[17,"AdditionalInput"],[10,"ExpressionVisitor",2027],[10,"StatementVisitor",2027],[10,"ProgramVisitor",2027],[5,"ProgramID",3264],[6,"AssertVariant",2226],[6,"ConsoleFunction",2405],[6,"DeclarationType",2554],[5,"RecordType",3265],[5,"StructType",3266],[5,"Member",2743],[5,"ClosureCore",3267],[10,"InstructionTrait",3268],[5,"FunctionCore",3269],[10,"CommandTrait",3270],[5,"ArrayType",2877],[5,"ArrayType",3271],[6,"CoreConstant",2914],[5,"FutureType",2939],[6,"IntegerType",2976],[5,"MappingType",3018],[5,"CompositeType",3051],[5,"TupleType",3083],[6,"PlaintextType",3272]],"r":[[51,82],[52,119],[53,156],[54,194],[55,231],[467,634],[474,672],[478,708],[479,708],[484,806],[486,844],[492,881],[495,916],[502,916],[530,1017],[531,1017],[535,1093],[540,1131],[542,1167],[543,1167],[545,1242],[2512,2554]],"b":[[98,"impl-Debug-for-ArrayAccess"],[99,"impl-Display-for-ArrayAccess"],[134,"impl-Display-for-AssociatedConstant"],[135,"impl-Debug-for-AssociatedConstant"],[172,"impl-Debug-for-AssociatedFunction"],[173,"impl-Display-for-AssociatedFunction"],[209,"impl-Debug-for-MemberAccess"],[210,"impl-Display-for-MemberAccess"],[246,"impl-Debug-for-TupleAccess"],[247,"impl-Display-for-TupleAccess"],[290,"impl-Debug-for-Identifier"],[291,"impl-Display-for-Identifier"],[411,"impl-Display-for-NonNegativeNumber"],[412,"impl-Debug-for-NonNegativeNumber"],[414,"impl-From%3CString%3E-for-NonNegativeNumber"],[415,"impl-From%3Cusize%3E-for-NonNegativeNumber"],[449,"impl-Display-for-StaticString"],[450,"impl-Debug-for-StaticString"],[573,"impl-Debug-for-Expression"],[574,"impl-Display-for-Expression"],[654,"impl-Debug-for-AccessExpression"],[655,"impl-Display-for-AccessExpression"],[688,"impl-Debug-for-ArrayExpression"],[689,"impl-Display-for-ArrayExpression"],[768,"impl-Display-for-BinaryOperation"],[769,"impl-Debug-for-BinaryOperation"],[770,"impl-Display-for-BinaryExpression"],[771,"impl-Debug-for-BinaryExpression"],[822,"impl-Debug-for-CallExpression"],[823,"impl-Display-for-CallExpression"],[860,"impl-Display-for-CastExpression"],[861,"impl-Debug-for-CastExpression"],[896,"impl-Debug-for-ErrExpression"],[897,"impl-Display-for-ErrExpression"],[947,"impl-Debug-for-Literal"],[948,"impl-Display-for-Literal"],[992,"impl-Debug-for-LocatorExpression"],[993,"impl-Display-for-LocatorExpression"],[1049,"impl-Display-for-StructVariableInitializer"],[1050,"impl-Debug-for-StructVariableInitializer"],[1051,"impl-Display-for-StructExpression"],[1052,"impl-Debug-for-StructExpression"],[1109,"impl-Display-for-TernaryExpression"],[1110,"impl-Debug-for-TernaryExpression"],[1147,"impl-Display-for-TupleExpression"],[1148,"impl-Debug-for-TupleExpression"],[1209,"impl-Display-for-UnaryExpression"],[1210,"impl-Debug-for-UnaryExpression"],[1257,"impl-Display-for-UnitExpression"],[1258,"impl-Debug-for-UnitExpression"],[1296,"impl-Display-for-Function"],[1297,"impl-Debug-for-Function"],[1344,"impl-Debug-for-Annotation"],[1345,"impl-Display-for-Annotation"],[1660,"impl-Debug-for-Input"],[1661,"impl-Display-for-Input"],[1706,"impl-Debug-for-Mode"],[1707,"impl-Display-for-Mode"],[1735,"impl-Debug-for-Output"],[1736,"impl-Display-for-Output"],[1815,"impl-Debug-for-GroupCoordinate"],[1816,"impl-Display-for-GroupCoordinate"],[1861,"impl-Debug-for-GroupLiteral"],[1862,"impl-Display-for-GroupLiteral"],[1909,"impl-Debug-for-Mapping"],[1910,"impl-Display-for-Mapping"],[2083,"impl-Display-for-Program"],[2084,"impl-Debug-for-Program"],[2117,"impl-Debug-for-ProgramId"],[2118,"impl-Display-for-ProgramId"],[2120,"impl-From%3C%26ProgramID%3CN%3E%3E-for-ProgramId"],[2121,"impl-From%3CIdentifier%3E-for-ProgramId"],[2152,"impl-Display-for-ProgramScope"],[2153,"impl-Debug-for-ProgramScope"],[2206,"impl-Debug-for-Statement"],[2207,"impl-Display-for-Statement"],[2260,"impl-Display-for-AssertStatement"],[2261,"impl-Debug-for-AssertStatement"],[2306,"impl-Display-for-AssignStatement"],[2307,"impl-Debug-for-AssignStatement"],[2344,"impl-Display-for-Block"],[2345,"impl-Debug-for-Block"],[2381,"impl-Debug-for-ConditionalStatement"],[2382,"impl-Display-for-ConditionalStatement"],[2423,"impl-Display-for-ConsoleFunction"],[2424,"impl-Debug-for-ConsoleFunction"],[2452,"impl-Display-for-ConsoleStatement"],[2453,"impl-Debug-for-ConsoleStatement"],[2488,"impl-Display-for-ConstDeclaration"],[2489,"impl-Debug-for-ConstDeclaration"],[2531,"impl-Debug-for-DefinitionStatement"],[2532,"impl-Display-for-DefinitionStatement"],[2571,"impl-Display-for-DeclarationType"],[2572,"impl-Debug-for-DeclarationType"],[2601,"impl-Display-for-ExpressionStatement"],[2602,"impl-Debug-for-ExpressionStatement"],[2637,"impl-Debug-for-IterationStatement"],[2638,"impl-Display-for-IterationStatement"],[2680,"impl-Debug-for-ReturnStatement"],[2681,"impl-Display-for-ReturnStatement"],[2716,"impl-Debug-for-Composite"],[2717,"impl-Display-for-Composite"],[2758,"impl-Debug-for-Member"],[2759,"impl-Display-for-Member"],[2799,"impl-Display-for-Stub"],[2800,"impl-Debug-for-Stub"],[2836,"impl-Debug-for-FunctionStub"],[2837,"impl-Display-for-FunctionStub"],[2895,"impl-Display-for-ArrayType"],[2896,"impl-Debug-for-ArrayType"],[2955,"impl-Debug-for-FutureType"],[2956,"impl-Display-for-FutureType"],[3001,"impl-Debug-for-IntegerType"],[3002,"impl-Display-for-IntegerType"],[3033,"impl-Display-for-MappingType"],[3034,"impl-Debug-for-MappingType"],[3066,"impl-Debug-for-CompositeType"],[3067,"impl-Display-for-CompositeType"],[3100,"impl-Display-for-TupleType"],[3101,"impl-Debug-for-TupleType"],[3150,"impl-Debug-for-Type"],[3151,"impl-Display-for-Type"],[3152,"impl-From%3C%26Value%3E-for-Type"],[3154,"impl-From%3CValue%3E-for-Type"],[3204,"impl-Value"],[3205,"impl-PartialEq-for-Value"],[3210,"impl-Display-for-Value"],[3211,"impl-Debug-for-Value"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANIJWAECAAEABQARABoAAgAeAAEAJQACACwABwA7AAIARgAAAFAAAABVAA8AZgAAAGkAAABrAAMAcAAHAHkADwCKAAAAjAAAAI8AAwCUAAUAmwABAJ8ADwCwAAAAsgAAALUAAwC6AAYAwgAAAMQADwDVAAAA1wAAANsAAwDgAAcA6QAPAPoAAAD9AAAA/wADAAQBBQALAQgAFQEPACYBAgAqAQAALwEDADQBGQBPAQEAUgEJAGQBEgB5AQEAgwEJAI4BDwCfAQMApQEAAKgBBgCxARIAxQEAAMcBCQAkAgAAJgIIADACAwA2AgUAPgIBAEECAABDAgAAUgIAAFUCAQBeAgMAbQIIAHcCAwCBAg8AkgIBAJUCCwCiAggArAIGALQCAAC2AgAAuAIDAL0CBwDlAh8ACAMAAAoDAQARAwQAFwMPACkDDwA7AwAAPQMAAEADAwBFAwcATgMNAF0DAQBgAwAAYgMAAGQDAwBpAwUAcAMBAHMDDwCEAwAAhgMAAIgDAwCNAwcAlwMAAJ8DCwCsAwkAuAMFAMADEQDTAw8A5AMBAOcDAADtAwMA8gMHAPwDAwABBBcAGgQDACAEAQAlBAEAKwQHADUEAwA6BAsARwQEAE0ECgBZBAAAXQQAAF8EAwBkBAcAbQQIAHcEBgB/BAAAgQQAAIMEAwCIBAcAnQQeAL8EAADBBAEAxwQEAM0EDQDcBA8A7QQAAO8EAADxBAMA9gQHAP8EAAACBRAAFQUBABkFAQAdBQAAIAUAACMFAwAoBQcAMQUAADMFDwBEBQAARwUAAEkFAwBOBVwArAW2AGUGAABpBgQAbwYQAIEGAACDBgAAhQYAAIcGAACJBgMAjgYGAJYGAgCaBhIArgYAALAGCAC6Bg8AywYAAM0GAADPBgAA0QYDANYGBgDeBgYA5gYOAPYGAAD8BggACgcPABsHAAAdBwgAKgceAEsHAABNBwEAUQcEAFcHDQBoBw8AeQcBAH0HAACABwMAhQcGAI0HAACVBwcAoQcgAMUHJwDuBwAA8QciABUIBAAbCAoAKAgAACoIAAAtCAAALwgHADgIDwBJCAMAUAgIAFoIBABgCAsAbggAAHIIAAB1CAcAiAgPAJkIBwCiCAEApQgNALgIHgDZCAAA2wgBAN8IBADlCAsA8ggBAPUIDwAGCQAACAkAAAsJAwAQCQYAGAkAABoJEAAsCQAALgkAADAJAwA2CQcAPwkEAEUJCgBRCQAAUwkAAFYJAwBbCQAAXQkIAGoJDwB7CQAAfQkIAIcJDwCZCQAAmwkAAJ0JAwCiCQcAqwkPALwJAAC+CQAAwQkDAMYJBQDNCQAAzwkAANQJBQDbCQoA5wkAAOkJAADsCQMA8QkFAPgJAAD6CQAA/gkPAA8KAAARCggAGwoNACoKAQAtCgAALwoAADEKAwA2CgcAQAoPAFEKAABUCgAAVgoDAF8KBQBmCgAAaAoAAGoKDQB5CgEAfAoAAH4KAACACgMAhQoHAI4KDQCdCgEAoAoCAKUKAACoCgAAqwoDALAKBwC5Cg8AygoAAM0KAADRCgMA1goFAN0KAQDgCgQA5woKAPMKAAD2CgAA+QoAAP0KBwAHCw8AGAsAABoLAQAdCwAAIAsAACgLAwAtCwYANQsIAEALCABKCwcAUwsCAFgLAABaCwgAZAsNAHQLAAB2CwAAeAsDAH0LEACPCwEAkgsAAJQLAACWCwAAmAsNAKcLFAC9CwEAwQsAAMMLBwDMCw8A3QsBAOALCwDtCw8A/gsCAAIMCQANDAgAFwwHACAMAQAlDAgAPwwKAEsMBgBTDAMAWAw0AI4MBACUDBEApwwEAA==","P":[[5,"T"],[7,""],[8,"T"],[9,""],[12,"T"],[14,""],[16,"K"],[21,""],[22,"T"],[23,""],[28,"U"],[29,""],[44,"T"],[45,"U,T"],[46,"U"],[47,""],[50,"V"],[84,"T"],[86,""],[87,"T"],[88,""],[89,"T"],[91,"__D"],[92,""],[94,"K"],[98,""],[100,"T"],[101,""],[105,"U"],[106,"__S"],[107,""],[111,"T"],[113,""],[115,"U,T"],[116,"U"],[117,""],[118,"V"],[120,"T"],[122,""],[123,"T"],[124,""],[125,"T"],[127,"__D"],[128,""],[130,"K"],[134,""],[136,"T"],[137,""],[140,"U"],[142,"__S"],[143,""],[147,"T"],[149,""],[151,"U,T"],[152,"U"],[154,""],[155,"V"],[158,"T"],[160,""],[161,"T"],[162,""],[163,"T"],[165,"__D"],[166,""],[168,"K"],[172,""],[174,"T"],[175,""],[178,"U"],[180,"__S"],[181,""],[185,"T"],[187,""],[189,"U,T"],[190,"U"],[191,""],[193,"V"],[195,"T"],[197,""],[198,"T"],[199,""],[200,"T"],[202,"__D"],[203,""],[205,"K"],[209,""],[211,"T"],[212,""],[216,"U"],[218,"__S"],[219,""],[223,"T"],[225,""],[227,"U,T"],[228,"U"],[229,""],[230,"V"],[232,"T"],[234,""],[235,"T"],[236,""],[237,"T"],[239,"__D"],[240,""],[242,"K"],[246,""],[248,"T"],[249,""],[253,"U"],[254,"__S"],[255,""],[259,"T"],[261,""],[263,"U,T"],[264,"U"],[266,""],[267,"V"],[276,"T"],[278,""],[279,"T"],[280,""],[281,"T"],[283,"D"],[284,""],[286,"K"],[290,""],[292,"T"],[293,"N"],[294,"H"],[295,""],[298,"U"],[299,""],[302,"S"],[303,""],[307,"T"],[309,""],[311,"U,T"],[312,"U"],[313,""],[314,"V"],[315,"D"],[316,"S"],[318,"T"],[320,""],[321,"T"],[322,""],[323,"T"],[325,"__D"],[326,""],[328,"K"],[332,""],[333,"T"],[334,"__H"],[335,""],[336,"U"],[338,""],[340,"__S"],[341,"T"],[343,"U,T"],[344,"U"],[345,""],[346,"V"],[349,""],[355,"T"],[359,""],[361,"T"],[363,""],[366,"T"],[370,""],[374,"T"],[376,""],[379,"U"],[381,""],[386,"T"],[388,"U,T"],[390,"U"],[392,""],[394,"V"],[397,"T"],[399,""],[400,"T"],[401,""],[402,"T"],[404,"__D"],[405,""],[407,"K"],[411,""],[413,"T"],[414,""],[416,"__H"],[417,""],[418,"U"],[419,""],[420,"__S"],[421,""],[423,"T"],[425,""],[427,"U,T"],[428,"U"],[429,""],[432,"V"],[434,"T"],[436,""],[437,"T"],[438,""],[440,"T"],[442,"__D"],[443,""],[445,"K"],[449,""],[451,"T"],[452,""],[453,"U"],[454,""],[455,"__S"],[456,"T"],[458,""],[460,"U,T"],[461,"U"],[462,""],[463,"V"],[551,"T"],[555,""],[556,"T"],[557,""],[559,"T"],[561,"__D"],[562,""],[566,"K"],[573,""],[575,"T"],[576,""],[594,"U"],[605,"__S"],[606,""],[621,"T"],[624,""],[626,"U,T"],[627,"U"],[630,""],[633,"V"],[640,"T"],[642,""],[643,"T"],[644,""],[645,"T"],[647,"__D"],[648,""],[650,"K"],[654,""],[656,"T"],[657,""],[659,"U"],[660,"__S"],[661,""],[664,"T"],[666,""],[668,"U,T"],[669,"U"],[670,""],[671,"V"],[673,"T"],[675,""],[676,"T"],[677,""],[678,"T"],[680,"__D"],[681,""],[684,"K"],[688,""],[690,"T"],[691,""],[694,"U"],[695,"__S"],[696,""],[700,"T"],[702,""],[704,"U,T"],[705,"U"],[706,""],[707,"V"],[740,"T"],[744,""],[746,"T"],[748,""],[750,"T"],[754,"__D"],[756,""],[760,"K"],[768,""],[772,"T"],[774,""],[779,"U"],[784,"__S"],[786,""],[790,"T"],[794,""],[798,"U,T"],[800,"U"],[802,""],[804,"V"],[808,"T"],[810,""],[811,"T"],[812,""],[813,"T"],[815,"__D"],[816,""],[818,"K"],[822,""],[824,"T"],[826,""],[829,"U"],[831,"__S"],[832,""],[836,"T"],[838,""],[840,"U,T"],[841,"U"],[842,""],[843,"V"],[845,"T"],[847,""],[848,"T"],[849,""],[850,"T"],[852,"__D"],[853,""],[855,"K"],[860,""],[862,"T"],[863,""],[866,"U"],[867,"__S"],[868,""],[872,"T"],[874,""],[876,"U,T"],[877,"U"],[879,""],[880,"V"],[882,"T"],[884,""],[885,"T"],[886,""],[887,"T"],[889,"__D"],[890,""],[892,"K"],[896,""],[898,"T"],[899,""],[902,"U"],[903,"__S"],[904,""],[908,"T"],[910,""],[912,"U,T"],[913,"U"],[914,""],[915,"V"],[926,"T"],[930,""],[931,"T"],[932,""],[933,"T"],[937,"__D"],[938,""],[942,"K"],[946,""],[949,"T"],[951,""],[957,"U"],[959,"__S"],[960,""],[963,"T"],[965,""],[969,"U,T"],[971,"U"],[973,""],[975,"V"],[978,"T"],[980,""],[981,"T"],[982,""],[983,"T"],[985,"__D"],[986,""],[988,"K"],[992,""],[994,"T"],[995,"__H"],[996,""],[999,"U"],[1000,""],[1004,"__S"],[1005,""],[1009,"T"],[1011,""],[1013,"U,T"],[1014,"U"],[1015,""],[1016,"V"],[1019,"T"],[1023,""],[1026,"T"],[1028,""],[1030,"T"],[1034,"__D"],[1036,""],[1040,"K"],[1049,""],[1053,"T"],[1055,""],[1062,"U"],[1066,"__S"],[1068,""],[1076,"T"],[1080,""],[1085,"U,T"],[1087,"U"],[1089,""],[1091,"V"],[1094,"T"],[1096,""],[1097,"T"],[1098,""],[1100,"T"],[1102,"__D"],[1103,""],[1105,"K"],[1109,""],[1111,"T"],[1112,""],[1117,"U"],[1118,"__S"],[1119,""],[1123,"T"],[1125,""],[1127,"U,T"],[1128,"U"],[1129,""],[1130,"V"],[1132,"T"],[1134,""],[1135,"T"],[1136,""],[1137,"T"],[1139,"__D"],[1140,""],[1143,"K"],[1147,""],[1149,"T"],[1150,""],[1153,"U"],[1154,"__S"],[1155,""],[1159,"T"],[1161,""],[1163,"U,T"],[1164,"U"],[1165,""],[1166,"V"],[1179,""],[1180,"T"],[1184,""],[1186,"T"],[1188,""],[1190,"T"],[1194,"__D"],[1196,""],[1200,"K"],[1208,""],[1211,"T"],[1213,""],[1218,"U"],[1222,"__S"],[1224,""],[1228,"T"],[1232,""],[1234,"U,T"],[1236,"U"],[1238,""],[1240,"V"],[1243,"T"],[1245,""],[1246,"T"],[1247,""],[1248,"T"],[1250,"__D"],[1251,""],[1253,"K"],[1257,""],[1259,"T"],[1260,""],[1263,"U"],[1264,"__S"],[1265,""],[1269,"T"],[1271,""],[1273,"U,T"],[1274,"U"],[1275,""],[1276,"V"],[1281,"T"],[1283,""],[1284,"T"],[1285,""],[1287,"T"],[1289,"__D"],[1290,""],[1292,"K"],[1296,""],[1299,"T"],[1300,""],[1307,"U"],[1309,""],[1314,"__S"],[1315,""],[1319,"T"],[1321,""],[1323,"U,T"],[1324,"U"],[1325,""],[1328,"V"],[1330,"T"],[1332,""],[1333,"T"],[1334,""],[1335,"T"],[1337,"__D"],[1338,""],[1340,"K"],[1344,""],[1346,"T"],[1347,""],[1351,"U"],[1352,"__S"],[1353,""],[1357,"T"],[1359,""],[1361,"U,T"],[1362,"U"],[1363,""],[1364,"V"],[1620,"T"],[1622,""],[1623,"T"],[1624,""],[1625,"T"],[1627,""],[1629,"K"],[1633,""],[1634,"T"],[1635,""],[1637,"U"],[1638,""],[1640,"T"],[1641,"U,T"],[1642,"U"],[1643,""],[1644,"V"],[1646,"T"],[1648,""],[1649,"T"],[1650,""],[1651,"T"],[1653,"__D"],[1654,""],[1656,"K"],[1660,""],[1663,"T"],[1664,""],[1669,"U"],[1670,""],[1672,"__S"],[1673,""],[1677,"T"],[1679,""],[1681,"U,T"],[1682,"U"],[1683,""],[1686,"V"],[1692,"T"],[1694,""],[1695,"T"],[1696,""],[1697,"T"],[1699,"__D"],[1700,""],[1702,"K"],[1706,""],[1708,"T"],[1709,""],[1710,"U"],[1711,"__S"],[1712,"T"],[1714,""],[1716,"U,T"],[1717,"U"],[1718,""],[1719,"V"],[1721,"T"],[1723,""],[1724,"T"],[1725,""],[1726,"T"],[1728,"__D"],[1729,""],[1731,"K"],[1735,""],[1737,"T"],[1738,""],[1741,"U"],[1742,""],[1744,"__S"],[1745,""],[1749,"T"],[1751,""],[1753,"U,T"],[1754,"U"],[1755,""],[1758,"V"],[1765,"T"],[1767,""],[1768,"T"],[1769,""],[1770,"T"],[1772,"__D"],[1773,""],[1775,"K"],[1779,""],[1780,"T"],[1781,""],[1782,"U"],[1783,""],[1787,"__S"],[1788,"T"],[1790,"U,T"],[1791,"U"],[1792,""],[1793,"V"],[1801,"T"],[1803,""],[1804,"T"],[1805,""],[1806,"T"],[1808,"__D"],[1809,""],[1811,"K"],[1815,""],[1817,"T"],[1818,""],[1819,"U"],[1820,"__S"],[1821,"T"],[1823,""],[1825,"U,T"],[1826,"U"],[1827,""],[1828,"V"],[1833,"T"],[1837,""],[1839,"T"],[1841,""],[1843,"T"],[1847,"__D"],[1849,""],[1853,"K"],[1861,""],[1864,"T"],[1866,""],[1870,"U"],[1872,"__S"],[1874,""],[1878,"T"],[1882,""],[1884,"U,T"],[1886,"U"],[1888,""],[1890,"V"],[1895,"T"],[1897,""],[1898,"T"],[1899,""],[1900,"T"],[1902,"__D"],[1903,""],[1905,"K"],[1909,""],[1911,"T"],[1912,"N"],[1913,""],[1917,"U"],[1919,"__S"],[1920,""],[1924,"T"],[1926,""],[1928,"U,T"],[1929,"U"],[1930,""],[1932,"V"],[1952,"ExpressionConsumer::Output"],[1954,"StatementConsumer::Output"],[1956,"ExpressionConsumer::Output"],[1957,"StatementConsumer::Output"],[1958,"ExpressionConsumer::Output"],[1960,"StatementConsumer::Output"],[1964,"ExpressionConsumer::Output"],[1966,"StatementConsumer::Output"],[1967,"FunctionConsumer::Output"],[1968,"ExpressionConsumer::Output"],[1969,"ImportConsumer::Output"],[1970,"StatementConsumer::Output"],[1971,"ExpressionConsumer::Output"],[1973,"MappingConsumer::Output"],[1974,"ProgramConsumer::Output"],[1975,"ProgramScopeConsumer::Output"],[1976,"StatementConsumer::Output"],[1978,"StructConsumer::Output"],[1979,"ExpressionConsumer::Output"],[1988,"ExpressionReconstructor::AdditionalOutput"],[2006,""],[2008,"ExpressionReconstructor::AdditionalOutput"],[2009,""],[2010,"ExpressionReconstructor::AdditionalOutput"],[2013,""],[2014,"ExpressionReconstructor::AdditionalOutput"],[2015,""],[2017,"ExpressionReconstructor::AdditionalOutput"],[2019,""],[2020,"ExpressionReconstructor::AdditionalOutput"],[2021,""],[2022,"ExpressionReconstructor::AdditionalOutput"],[2032,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2034,""],[2036,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2037,""],[2038,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2040,""],[2044,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2046,""],[2049,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2050,""],[2052,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2054,""],[2060,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2061,""],[2063,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2068,"T"],[2070,""],[2071,"T"],[2072,""],[2074,"T"],[2076,"__D"],[2077,""],[2079,"K"],[2083,""],[2085,"T"],[2087,""],[2088,"U"],[2092,"__S"],[2094,"T"],[2096,""],[2098,"U,T"],[2099,"U"],[2100,""],[2101,"V"],[2103,"T"],[2105,""],[2106,"T"],[2107,""],[2108,"T"],[2110,"D"],[2111,""],[2113,"K"],[2117,""],[2119,"T"],[2120,"N"],[2121,""],[2122,"__H"],[2123,""],[2124,"U"],[2127,"S"],[2128,"T"],[2130,""],[2132,"U,T"],[2133,"U"],[2134,""],[2135,"V"],[2137,"T"],[2139,""],[2140,"T"],[2141,""],[2143,"T"],[2145,"__D"],[2146,""],[2148,"K"],[2152,""],[2155,"T"],[2157,""],[2158,"U"],[2161,"__S"],[2164,"T"],[2166,""],[2168,"U,T"],[2169,"U"],[2170,""],[2171,"V"],[2186,"T"],[2188,""],[2189,"T"],[2190,""],[2195,"T"],[2197,"__D"],[2198,""],[2201,"K"],[2206,""],[2208,"T"],[2209,""],[2211,"U"],[2214,"__S"],[2215,""],[2218,"T"],[2220,""],[2222,"U,T"],[2223,"U"],[2224,""],[2225,"V"],[2231,"T"],[2235,""],[2237,"T"],[2239,""],[2241,"T"],[2245,"__D"],[2247,""],[2251,"K"],[2259,""],[2262,"T"],[2264,""],[2268,"U"],[2270,"__S"],[2272,""],[2276,"T"],[2280,""],[2282,"U,T"],[2284,"U"],[2286,""],[2289,"V"],[2292,"T"],[2294,""],[2295,"T"],[2296,""],[2297,"T"],[2299,"__D"],[2300,""],[2302,"K"],[2306,""],[2308,"T"],[2309,""],[2312,"U"],[2314,"__S"],[2315,""],[2319,"T"],[2321,""],[2323,"U,T"],[2324,"U"],[2325,""],[2327,"V"],[2329,"T"],[2331,""],[2332,"T"],[2333,""],[2335,"T"],[2337,"__D"],[2338,""],[2340,"K"],[2344,""],[2346,"T"],[2347,""],[2350,"U"],[2351,"__S"],[2352,""],[2357,"T"],[2359,""],[2361,"U,T"],[2362,"U"],[2363,""],[2364,"V"],[2366,"T"],[2368,""],[2369,"T"],[2370,""],[2372,"T"],[2374,"__D"],[2375,""],[2377,"K"],[2381,""],[2383,"T"],[2384,""],[2387,"U"],[2389,"__S"],[2390,""],[2394,"T"],[2397,""],[2399,"U,T"],[2400,"U"],[2401,""],[2402,"V"],[2409,"T"],[2411,""],[2412,"T"],[2413,""],[2414,"T"],[2416,"__D"],[2417,""],[2419,"K"],[2423,""],[2425,"T"],[2426,""],[2427,"U"],[2428,"__S"],[2429,"T"],[2431,""],[2433,"U,T"],[2434,"U"],[2435,""],[2436,"V"],[2438,"T"],[2440,""],[2441,"T"],[2442,""],[2443,"T"],[2445,"__D"],[2446,""],[2448,"K"],[2452,""],[2454,"T"],[2456,""],[2459,"U"],[2460,"__S"],[2461,""],[2465,"T"],[2467,""],[2469,"U,T"],[2470,"U"],[2471,""],[2472,"V"],[2474,"T"],[2476,""],[2477,"T"],[2478,""],[2479,"T"],[2481,"__D"],[2482,""],[2484,"K"],[2488,""],[2490,"T"],[2491,""],[2494,"U"],[2496,"__S"],[2497,""],[2501,"T"],[2503,""],[2505,"U,T"],[2506,"U"],[2508,""],[2510,"V"],[2515,"T"],[2517,""],[2518,"T"],[2519,""],[2522,"T"],[2524,"__D"],[2525,""],[2527,"K"],[2531,""],[2533,"T"],[2534,""],[2537,"U"],[2539,"__S"],[2540,""],[2544,"T"],[2546,""],[2548,"U,T"],[2549,"U"],[2551,""],[2553,"V"],[2557,"T"],[2559,""],[2560,"T"],[2561,""],[2562,"T"],[2564,"__D"],[2565,""],[2567,"K"],[2571,""],[2573,"T"],[2574,""],[2575,"U"],[2576,"__S"],[2577,"T"],[2579,""],[2581,"U,T"],[2582,"U"],[2583,""],[2584,"V"],[2586,"T"],[2588,""],[2589,"T"],[2590,""],[2591,"T"],[2593,"__D"],[2594,""],[2596,"K"],[2601,""],[2603,"T"],[2604,""],[2607,"U"],[2608,"__S"],[2609,""],[2613,"T"],[2615,""],[2617,"U,T"],[2618,"U"],[2619,""],[2620,"V"],[2623,"T"],[2625,""],[2626,"T"],[2627,""],[2628,"T"],[2630,"__D"],[2631,""],[2633,"K"],[2637,""],[2639,"T"],[2640,""],[2644,"U"],[2645,"__S"],[2646,""],[2654,"T"],[2656,""],[2658,"U,T"],[2659,"U"],[2661,""],[2663,"V"],[2665,"T"],[2667,""],[2668,"T"],[2669,""],[2670,"T"],[2672,"__D"],[2673,""],[2675,"K"],[2680,""],[2682,"T"],[2683,""],[2686,"U"],[2687,"__S"],[2688,""],[2692,"T"],[2694,""],[2696,"U,T"],[2697,"U"],[2698,""],[2699,"V"],[2701,"T"],[2703,""],[2704,"T"],[2705,""],[2706,"T"],[2708,"__D"],[2709,""],[2711,"K"],[2716,""],[2718,"T"],[2719,"N"],[2721,""],[2725,"U"],[2729,""],[2730,"__S"],[2731,""],[2735,"T"],[2737,""],[2739,"U,T"],[2740,"U"],[2741,""],[2742,"V"],[2744,"T"],[2746,""],[2747,"T"],[2748,""],[2749,"T"],[2751,"__D"],[2752,""],[2754,"K"],[2758,""],[2760,"T"],[2761,""],[2765,"U"],[2767,""],[2768,"__S"],[2769,""],[2773,"T"],[2775,""],[2777,"U,T"],[2778,"U"],[2780,""],[2781,"V"],[2783,"T"],[2785,""],[2786,"T"],[2787,""],[2790,"T"],[2792,"__D"],[2793,""],[2795,"K"],[2799,""],[2801,"T"],[2805,""],[2806,"U"],[2808,"__S"],[2812,"T"],[2814,""],[2816,"U,T"],[2817,"U"],[2818,""],[2819,"V"],[2822,"T"],[2824,""],[2825,"T"],[2826,""],[2827,"T"],[2829,"__D"],[2830,""],[2832,"K"],[2836,""],[2840,"T"],[2841,"N,Instruction"],[2842,"N,Instruction,Command"],[2844,""],[2849,"U"],[2850,""],[2855,"__S"],[2856,""],[2860,"T"],[2862,""],[2864,"U,T"],[2865,"U"],[2866,""],[2868,"V"],[2878,""],[2879,"T"],[2881,""],[2882,"T"],[2883,""],[2884,"T"],[2886,"__D"],[2887,""],[2891,"K"],[2895,""],[2897,"T"],[2898,"N"],[2899,"__H"],[2900,""],[2901,"U"],[2902,""],[2905,"__S"],[2906,"T"],[2908,""],[2910,"U,T"],[2911,"U"],[2912,""],[2913,"V"],[2916,"T"],[2918,""],[2919,"T"],[2920,""],[2921,"T"],[2923,""],[2925,"K"],[2929,"T"],[2930,""],[2932,"U"],[2933,"T"],[2934,""],[2935,"U,T"],[2936,"U"],[2937,""],[2938,"V"],[2940,"T"],[2942,""],[2943,"T"],[2944,""],[2946,"T"],[2948,"__D"],[2949,""],[2951,"K"],[2955,""],[2957,"T"],[2958,"__H"],[2959,""],[2962,"U"],[2964,""],[2967,"__S"],[2968,"T"],[2970,""],[2972,"U,T"],[2973,"U"],[2974,""],[2975,"V"],[2987,"T"],[2989,""],[2990,"T"],[2991,""],[2992,"T"],[2994,"__D"],[2995,""],[2997,"K"],[3001,""],[3003,"T"],[3004,"__H"],[3005,""],[3006,"U"],[3007,""],[3008,"__S"],[3009,""],[3010,"T"],[3012,""],[3014,"U,T"],[3015,"U"],[3016,""],[3017,"V"],[3019,"T"],[3021,""],[3022,"T"],[3023,""],[3024,"T"],[3026,"__D"],[3027,""],[3029,"K"],[3033,""],[3035,"T"],[3036,"__H"],[3037,""],[3038,"U"],[3041,"__S"],[3042,"T"],[3044,""],[3046,"U,T"],[3047,"U"],[3048,""],[3050,"V"],[3052,"T"],[3054,""],[3055,"T"],[3056,""],[3057,"T"],[3059,"__D"],[3060,""],[3062,"K"],[3066,""],[3068,"T"],[3069,"__H"],[3071,""],[3072,"U"],[3074,"__S"],[3075,"T"],[3077,""],[3079,"U,T"],[3080,"U"],[3081,""],[3082,"V"],[3084,"T"],[3086,""],[3087,"T"],[3088,""],[3089,"T"],[3091,"__D"],[3092,""],[3096,"K"],[3100,""],[3102,"T"],[3103,"__H"],[3104,""],[3105,"U"],[3106,""],[3108,"__S"],[3109,"T"],[3111,""],[3113,"U,T"],[3114,"U"],[3115,""],[3116,"V"],[3134,"T"],[3136,""],[3137,"T"],[3138,""],[3140,"T"],[3142,"__D"],[3143,""],[3146,"K"],[3150,""],[3153,"T"],[3154,""],[3155,"N"],[3156,"__H"],[3157,""],[3158,"U"],[3159,"__S"],[3160,"T"],[3162,""],[3164,"U,T"],[3165,"U"],[3166,""],[3167,"V"],[3187,""],[3194,"T"],[3196,""],[3197,"T"],[3198,""],[3199,"T"],[3201,""],[3206,"K"],[3210,""],[3212,"T"],[3213,""],[3218,"U"],[3219,""],[3234,"T"],[3235,""],[3237,"TryFrom::Error"],[3238,"U,T"],[3239,"U"],[3240,""],[3241,"V"],[3242,""]]}],["leo_compiler",{"t":"FFFFFNNOOOONNONNNCOOOONNNOONNNNNNONNNNOONOONNOONOCOOOOONNNNNNNNOONFFNOOONNNNNNNNONNNNNNNNNOONNNOONOONNOONNNNNNNNONNFFFONNNNNNONNNNNNNNNOOONNNNNNNNNOONNNONNNNNNOONNNOONNNNNNNNNNNNONNN","n":["Ast","BuildOptions","Compiler","CompilerOptions","OutputOptions","as_ref","as_repr","assigner","ast","","ast_spans_enabled","borrow","borrow_mut","build","clone","clone_into","clone_to_uninit","compiler","compiler_options","conditional_block_max_depth","dce_ast","dce_enabled","default","deref","deref_mut","destructured_ast","disable_conditional_branch_type_checking","drop","eq","equivalent","","","","flattened_ast","fmt","from","from_json_file","from_json_string","handler","import_stubs","init","initial_ast","inlined_ast","into","into_repr","main_file_path","network","new","node_builder","options","output","output_directory","phantom","program_name","ssa_ast","to_json_file","to_json_file_without_keys","to_json_string","to_json_value","to_owned","try_from","try_into","type_id","type_table","unrolled_ast","vzip","Ast","Compiler","add_import_stubs","assigner","ast","","borrow","borrow_mut","checksum","clone","clone_into","clone_to_uninit","code_generation_pass","compile","compiler_options","compiler_stages","dead_code_elimination_pass","deref","deref_mut","destructuring_pass","drop","flattening_pass","from","function_inlining_pass","handler","import_stubs","init","into","loop_unrolling_pass","main_file_path","network","new","node_builder","output_directory","parse_program","parse_program_from_string","phantom","program_name","static_analysis_pass","static_single_assignment_pass","symbol_table_pass","to_owned","try_from","try_into","type_checker_pass","type_id","type_table","vzip","write_ast_to_json","BuildOptions","CompilerOptions","OutputOptions","ast_spans_enabled","borrow","","","borrow_mut","","","build","clone","","","clone_into","","","clone_to_uninit","","","conditional_block_max_depth","dce_ast","dce_enabled","default","","","deref","","","deref_mut","","","destructured_ast","disable_conditional_branch_type_checking","drop","","","flattened_ast","from","","","init","","","initial_ast","inlined_ast","into","","","output","ssa_ast","to_owned","","","try_from","","","try_into","","","type_id","","","unrolled_ast","vzip","",""],"q":[[0,"leo_compiler"],[66,"leo_compiler::compiler"],[115,"leo_compiler::options"],[182,"leo_ast"],[183,"leo_ast::program"],[184,"core::fmt"],[185,"core::result"],[186,"std::path"],[187,"leo_errors::errors"],[188,"alloc::string"],[189,"serde_json::value"],[190,"core::any"],[191,"snarkvm_console_network"],[192,"core::clone"],[193,"leo_passes::common::symbol_table"],[194,"leo_passes::common::graph"],[195,"leo_errors::emitter"],[196,"core::option"],[197,"leo_span::symbol"],[198,"leo_ast::stub"],[199,"indexmap::map"],[200,"leo_span::source_map"]],"i":"`````b0Bf01Df22Ch333`2Dd20444204444442444433422443343`1333244444444324``33343333333333333333333333333333333333333333333```2102102110210210202010210210220102210210222102121021021021022102","f":"`````{{{d{b}}}{{d{f}}}}0````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}`{{{d{b}}}b}{{d{d{hc}}}j{}}{{dl}j}`````{{}b}{n{{d{c}}}{}}{n{{d{hc}}}{}}``{nj}{{{d{b}}{d{b}}}A`}{{d{d{c}}}A`{}}000`{{{d{b}}{d{hAb}}}{{Af{jAd}}}}{cc{}}{Ah{{Af{bAj}}}}{{{d{Al}}}{{Af{bAj}}}}``{{}n}``{{}c{}}{bf}``{fb}```````{{{d{b}}Ah{d{Al}}}{{Af{jAj}}}}{{{d{b}}Ah{d{Al}}{d{{An{{d{Al}}}}}}}{{Af{jAj}}}}{{{d{b}}}{{Af{B`Aj}}}}{{{d{b}}}{{Af{BbAj}}}}{dc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{dBd}``{{}c{}}``{{{d{h{Bf{c}}}}}{{Bh{j}}}Bj}```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{{Bf{c}}}}}{{Bh{B`}}}Bj}{{{d{{Bf{c}}}}}{{Bf{c}}}{BlBj}}{{d{d{hc}}}j{}}{{dl}j}{{{d{h{Bf{c}}}}{d{Bn}}{d{C`}}{d{Cb}}}{{Bh{B`}}}Bj}{{{d{h{Bf{c}}}}}{{Bh{B`}}}Bj}`{{{d{h{Bf{c}}}}}{{Bh{{Cd{BnC`Cb}}}}}Bj}9{n{{d{c}}}{}}{n{{d{hc}}}{}};{nj}{{{d{h{Bf{c}}}}{d{Bn}}}{{Bh{j}}}Bj}{cc{}}{{{d{h{Bf{c}}}}{d{Cb}}}{{Bh{j}}}Bj}``{{}n}{{}c{}}{{{d{h{Bf{c}}}}Bn}{{Bh{Bn}}}Bj}``{{B`B`{d{Cf}}AhAh{Cj{Ch}}{D`{ClCn}}}{{Bf{c}}}Bj}``{{{d{h{Bf{c}}}}}{{Bh{j}}}Bj}{{{d{h{Bf{c}}}}{d{Al}}Db}{{Bh{j}}}Bj}``88{{{d{{Bf{c}}}}}{{Bh{Bn}}}Bj}{dc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{{{d{{Bf{c}}}}Bn}{{Bh{{Cd{BnC`Cb}}}}}Bj}{dBd}`{{}c{}}{{{d{{Bf{c}}}}{d{Al}}}{{Bh{j}}}Bj}````{d{{d{c}}}{}}00{{{d{h}}}{{d{hc}}}{}}00`{{{d{Ch}}}Ch}{{{d{Dd}}}Dd}{{{d{Df}}}Df}{{d{d{hc}}}j{}}00{{dl}j}00```{{}Ch}{{}Dd}{{}Df}{n{{d{c}}}{}}00{n{{d{hc}}}{}}00``{nj}00`{cc{}}00{{}n}00``{{}c{}}00``{dc{}}00{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00{dBd}00`{{}c{}}00","D":"Kb","p":[[5,"Ast",0,182],[1,"reference",null,null,1],[5,"Program",183],[0,"mut"],[1,"unit"],[1,"u8"],[1,"usize"],[1,"bool"],[5,"Formatter",184],[5,"Error",184],[6,"Result",185,null,1],[5,"PathBuf",186],[6,"LeoError",187],[1,"str"],[1,"slice"],[5,"String",188],[6,"Value",189],[5,"TypeId",190],[5,"Compiler",66],[8,"Result",187],[10,"Network",191],[10,"Clone",192],[5,"SymbolTable",193],[8,"StructGraph",194],[8,"CallGraph",194],[1,"tuple",null,null,1],[5,"Handler",195],[5,"CompilerOptions",115],[6,"Option",196,null,1],[5,"Symbol",197],[5,"Stub",198],[5,"IndexMap",199],[6,"FileName",200],[5,"BuildOptions",115],[5,"OutputOptions",115]],"r":[[0,182],[1,115],[2,66],[3,115],[4,115],[66,182]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAF0AHwACAAAABAACAAoAAAAMAAEADwACABcAAgAcAAUAIwAAACkAAAAtAAAAMgAAADUAAAA7AAQAQgAAAEgAAgBMAAIAVAABAFcAAABdAAAAZwAAAGwAAgBwAAAAcgAAAHQAAgB4AAUAfwAIAIsACACWAAIAnQACAKcACwC0AAIA","P":[[11,"T"],[14,""],[15,"T"],[16,""],[23,"T"],[27,""],[29,"K"],[34,""],[35,"T"],[36,""],[43,"U"],[44,""],[59,"T"],[60,"U,T"],[61,"U"],[62,""],[65,"V"],[68,"N"],[72,"T"],[74,"N"],[76,"T"],[77,""],[78,"N"],[83,"T"],[85,"N"],[86,""],[87,"N"],[88,"T"],[89,"N"],[92,""],[93,"U"],[94,"N"],[107,"T"],[108,"U,T"],[109,"U"],[110,"N"],[111,""],[113,"V"],[114,"N"],[119,"T"],[126,""],[129,"T"],[132,""],[141,"T"],[149,""],[153,"T"],[156,""],[161,"U"],[166,"T"],[169,"U,T"],[172,"U"],[175,""],[179,"V"]]}],["leo_disassembler",{"t":"HH","n":["disassemble","disassemble_from_str"],"q":[[0,"leo_disassembler"],[2,"snarkvm_synthesizer_program"],[3,"leo_ast::stub"],[4,"snarkvm_console_network"],[5,"snarkvm_synthesizer_program::traits::instruction"],[6,"snarkvm_synthesizer_program::traits::command"],[7,"leo_errors::errors::utils::util_errors"],[8,"core::result"]],"i":"``","f":"{{{b{ceg}}}df{{h{c}}}{{j{c}}}}{{{n{l}}{n{l}}}{{Ab{dA`}}}}","D":"`","p":[[5,"ProgramCore",2],[5,"Stub",3],[10,"Network",4],[10,"InstructionTrait",5],[10,"CommandTrait",6],[1,"str"],[1,"reference",null,null,1],[6,"UtilError",7],[6,"Result",8,null,1]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAIAEAAAAAAAAQACAA==","P":[[0,"N,Instruction,Command"],[1,""]]}],["leo_errors",{"t":"CQCCCCCCFSONNNNNOONNNNNNONNNNNNONNONNNNNONNFONNNNNNNNNNNNNNNNNNNNONNNNNNKNMMMMMMFFKIFFFINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNONONNNNNNNNNNNNNNNNNONNNNNNMNNNNNONNNNNNNNNNNNNNNNNNNNNONNPPPPPPPPGGPPPPPIPPPPPCNNNNCCNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNCNNCCCNNCNNNNNNCNNCCGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNONNNONNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["common","create_messages","emitter","errors","backtraced","formatted","macros","traits","Backtraced","INDENT","backtrace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code","code_identifier","default","deref","deref_mut","description","drop","eq","error","error_code","exit_code","fmt","","from","hash","help","init","into","message","new_from_backtrace","to_owned","to_string","try_from","try_into","type_","type_id","warning_code","Formatted","backtrace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","description","drop","eq","error_code","exit_code","fmt","","from","hash","init","into","new_from_span","span","to_owned","to_string","try_from","try_into","type_id","warning_code","LeoMessageCode","code_identifier","code_mask","error_code","exit_code","is_error","message_type","warning_code","Buffer","BufferEmitter","Emitter","ErrBuffer","Handler","HandlerInner","StderrEmitter","WarningBuffer","borrow","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","default","","","deref","","","","","deref_mut","","","","","drop","","","","","emit_err","","","","","emit_warning","","","","","emitter","err_count","","extend_if_error","extract_errs","extract_warnings","fatal_err","fmt","","from","","","","","had_errors","init","","","","","inner","into","","","","","into_inner","last_emitted_err_code","","","","last_entry","last_err","last_error_code","new","","new_with_buf","push","to_owned","to_string","try_from","","","","","try_into","","","","","type_id","","","","","warn_count","warning_count","with","Anyhow","AstError","CliError","CompilerError","Err","FlattenError","InterpreterHalt","LastErrorCode","LeoError","LeoWarning","LoopUnrollerError","Ok","PackageError","ParserError","ParserWarning","Result","StaticAnalyzerError","StaticAnalyzerWarning","TypeCheckerError","TypeCheckerWarning","UtilError","ast","borrow","","borrow_mut","","cli","compiler","deref","","deref_mut","","drop","","error_code","","exit_code","flattener","fmt","","","","from","","","","","","","","","","","","","","","","","init","","interpreter_halt","into","","loop_unroller","package","parser","source","","static_analyzer","to_string","","try_from","","try_into","","type_checker","type_id","","utils","ast_errors","AstError","Backtraced","Formatted","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","failed_to_convert_ast_to_json_string","failed_to_convert_ast_to_json_value","failed_to_convert_symbol_table_to_json_string","failed_to_convert_symbol_table_to_json_value","failed_to_create_ast_json_file","failed_to_create_symbol_table_json_file","failed_to_read_json_file","failed_to_read_json_string_to_ast","failed_to_read_json_string_to_symbol_table","failed_to_write_ast_to_json_file","failed_to_write_symbol_table_to_json_file","fmt","","from","","","function_not_found","init","into","is_error","message_type","num_exit_codes","redefining_external_struct","shadowed_function","shadowed_record","shadowed_struct","shadowed_variable","source","to_owned","to_string","try_from","try_into","type_id","warning_code","cli_errors","Backtraced","CliError","Formatted","borrow","borrow_mut","broadcast_error","build_error","cli_invalid_input","cli_io_error","cli_runtime_error","clone","clone_into","clone_to_uninit","code_mask","confirmation_failed","constraint_limit_exceeded","could_not_fetch_versions","deref","deref_mut","drop","error_code","exit_code","failed_to_enable_ansi_support","failed_to_execute_account","failed_to_execute_build","failed_to_execute_deploy","failed_to_execute_execute","failed_to_execute_new","failed_to_execute_node","failed_to_execute_run","failed_to_get_endpoint_from_env","failed_to_get_network_from_env","failed_to_get_private_key_from_env","failed_to_load_instructions","failed_to_parse_deploy","failed_to_parse_execute","failed_to_parse_new","failed_to_parse_node","failed_to_parse_private_key","failed_to_parse_record","failed_to_parse_run","failed_to_parse_seed","failed_to_read_environment_private_key","failed_to_write_file","fmt","","from","","","init","into","invalid_balance","invalid_example","invalid_network_name","is_error","message_type","needs_leo_build","num_exit_codes","old_release_version","recursive_deploy_with_record","self_update_build_error","self_update_error","source","string_parse_error","table_render_failed","to_owned","to_string","try_from","try_into","type_id","variable_limit_exceeded","warning_code","compiler_errors","Backtraced","CompilerError","Formatted","borrow","borrow_mut","cannot_open_cwd","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","file_read_error","fmt","","from","","","illegal_static_member_assignment","import_not_found","imported_program_not_found","init","into","is_error","message_type","num_exit_codes","program_name_should_match_file_name","program_scope_name_does_not_match","source","to_owned","to_string","try_from","try_into","type_id","warning_code","flattener_errors","Backtraced","FlattenError","Formatted","binary_overflow","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","loop_has_neg_value","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","type_name","u128_to_i128","unary_overflow","warning_code","InterpreterHalt","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","","from","init","into","message","new","new_spanned","span","","to_owned","to_string","try_from","try_into","type_id","loop_unroller_errors","Backtraced","Formatted","LoopUnrollerError","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","loop_range_decreasing","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","variable_array_access","warning_code","package_errors","Backtraced","Formatted","PackageError","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","conflicting_on_chain_program_name","dependency_not_found","deref","deref_mut","directory_not_found","drop","empty_source_directory","error_code","execution_error","exit_code","failed_to_create_aleo_file","failed_to_create_directory","failed_to_create_inputs_directory","failed_to_create_manifest","failed_to_create_source_directory","failed_to_deserialize_lock_file","failed_to_deserialize_manifest_file","failed_to_get_file_name","failed_to_get_input_file_entry","failed_to_get_input_file_type","failed_to_get_leo_file_entry","failed_to_get_leo_file_extension","failed_to_initialize_package","failed_to_load_package","failed_to_open_aleo_file","failed_to_open_manifest","failed_to_read_checksum_file","failed_to_read_circuit_file","failed_to_read_file","failed_to_read_input_file","failed_to_read_inputs_directory","failed_to_read_manifest","failed_to_read_manifest_file","failed_to_read_snapshot_file","failed_to_remove_aleo_file","failed_to_remove_checksum_file","failed_to_remove_circuit_file","failed_to_remove_directory","failed_to_remove_snapshot_file","failed_to_serialize_manifest_file","failed_to_set_cwd","failed_to_write_aleo_file","failed_to_write_manifest","fmt","","from","","","init","insufficient_balance","into","invalid_file_name_dependency","invalid_input_file_type","invalid_leo_file_extension","invalid_lock_file_formatting","invalid_package_name","io_error_checksum_file","io_error_circuit_file","io_error_env_file","io_error_gitignore_file","io_error_input_file","io_error_main_file","is_error","message_type","missing_on_chain_program_name","num_exit_codes","snarkvm_error","source","source_directory_can_contain_only_one_file","to_owned","to_string","try_from","try_into","type_id","unimplemented_command","warning_code","parser_errors","parser_warnings","Backtraced","Formatted","ParserError","array_must_have_at_least_one_element","async_finalize_is_deprecated","borrow","borrow_mut","cannot_declare_external_struct","cannot_define_external_record","cannot_import_inside_program_body","circuit_is_deprecated","clone","clone_into","clone_to_uninit","code_mask","comma_expected_after_member","console_statements_are_not_yet_supported","could_not_lex","deref","deref_mut","drop","error_code","exit_code","external_type_cannot_be_used_inside_function","finalize_statements_are_deprecated","fmt","","from","","","hexbin_literal_nonintegers","identifier_too_long","implicit_values_not_allowed","init","inputs_multiple_variable_modes_specified","into","invalid_address_lit","invalid_associated_access","invalid_external_type","invalid_import_list","invalid_method_call","invalid_network","is_error","leo_and_aleo_imports_only","lexer_bidi_override","lexer_block_comment_does_not_close_before_eof","lexer_empty_block_comment","lexer_empty_input","lexer_expected_valid_escaped_char","lexer_hex_number_provided","lexer_string_not_closed","message_type","missing_program_scope","mixed_commas_and_semicolons","num_exit_codes","only_aleo_external_calls","only_one_program_scope_is_allowed","source","space_in_annotation","spread_in_array_init","to_owned","to_string","try_from","try_into","tuple_index_must_be_whole_number","tuple_must_have_at_least_two_elements","type_id","unexpected","unexpected_eof","unexpected_ident","unexpected_statement","unexpected_str","unexpected_token","unexpected_whitespace","warning_code","wrong_digit_for_radix","Backtraced","Formatted","ParserWarning","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","const_parameter_or_input","deprecated","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","warning_code","static_analyzer_error","static_analyzer_warning","Backtraced","Formatted","StaticAnalyzerError","async_transition_call_with_future_argument","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","expected_future","fmt","","from","","","future_awaits_missing","init","into","invalid_await_call","is_error","message_type","misplaced_future","no_path_awaits_all_futures_exactly_once","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","warning_code","Backtraced","Formatted","StaticAnalyzerWarning","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","future_not_awaited_in_order","init","into","is_error","max_conditional_block_depth_exceeded","message_type","num_exit_codes","some_paths_contain_duplicate_future_awaits","some_paths_do_not_await_all_futures","source","to_owned","to_string","try_from","try_into","type_id","warning_code","type_checker_error","type_checker_warning","Backtraced","Formatted","TypeCheckerError","array_element_cannot_be_future","array_element_cannot_be_record","array_element_cannot_be_tuple","array_empty","array_too_large","assign_unit_expression_to_variable","async_call_can_only_be_done_from_async_transition","async_call_in_conditional","async_cannot_assign_outside_conditional","async_function_cannot_return_value","async_function_input_cannot_be_private","async_function_input_length_mismatch","async_function_input_must_be_public","async_function_not_found","async_transition_invalid_output","async_transition_missing_future_to_return","async_transition_must_call_async_function","borrow","borrow_mut","can_only_await_one_future_at_a_time","can_only_call_inline_function","cannot_assign_to_const_input","cannot_assign_to_const_var","cannot_call_external_inline_function","cannot_define_external_struct","cannot_have_constant_output_mode","cannot_invoke_call_to_local_transition_function","cannot_modify_external_mapping","cannot_reassign_future_variable","clone","clone_into","clone_to_uninit","code_mask","compare_address","composite_data_type_cannot_contain_future","composite_data_type_cannot_contain_tuple","const_declaration_can_only_have_one_binding","const_declaration_must_be_literal_or_tuple_of_literals","core_type_name_conflict","could_not_determine_type","cyclic_function_dependency","cyclic_struct_dependency","deref","deref_mut","drop","duplicate_record_variable","duplicate_struct_member","empty_function_arglist","empty_struct","error_code","exit_code","expected_future","expected_one_type_of","expression_statement_must_be_function_call","external_transition_call_must_be_before_finalize","finalize_block_must_not_be_empty","finalize_output_mode_must_be_public","fmt","","from","","","function_cannot_input_or_output_a_record","function_cannot_take_tuple_as_input","function_has_no_return","future_access_must_be_number","future_awaits_missing","future_error_member","imported_program_cannot_import_program","incorrect_num_args_to_call","incorrect_num_struct_members","incorrect_num_tuple_elements","incorrect_tuple_length","init","into","invalid_assignment_target","invalid_associated_constant","invalid_await_call","invalid_block_access","invalid_core_constant","invalid_core_function","invalid_core_function_call","invalid_future_access","invalid_int_value","invalid_mapping_type","invalid_method_call","invalid_operation_inside_finalize","invalid_operation_outside_finalize","invalid_self_access","invalid_struct_variable","invalid_tuple","invalid_type","is_error","lhs_must_be_identifier_or_tuple","lhs_tuple_element_must_be_an_identifier","loop_body_contains_finalize","loop_body_contains_return","loop_bound_must_be_a_literal","loop_bound_must_be_literal_or_const","loop_bound_type_mismatch","loop_range_decreasing","message_type","missing_return","missing_struct_member","mul_types_mismatch","must_call_async_function_once","must_propagate_all_futures","nested_tuple_expression","nested_tuple_type","no_future_parameters","no_path_awaits_all_futures_exactly_once","no_transitions","not_all_futures_consumed","num_exit_codes","only_async_transition_can_return_future","operation_must_be_in_finalize_block","operation_types_mismatch","pow_types_mismatch","record_var_wrong_type","regular_function_inputs_cannot_have_modes","required_record_variable","return_type_of_finalize_function_is_future","shift_type_magnitude","source","strings_are_not_supported","struct_cannot_have_member_mode","struct_definitions_dont_match","struct_or_record_cannot_contain_record","stub_functions_must_be_empty","stub_functions_must_not_be_inlines","stub_name_mismatch","stubs_cannot_have_const_declarations","stubs_cannot_have_non_record_structs","ternary_branch_mismatch","to_owned","to_string","too_many_mappings","too_many_transitions","transition_function_inputs_cannot_be_const","try_from","try_into","tuple_out_of_range","type_id","type_should_be","type_should_be2","undefined_type","unit_expression_only_in_return_statements","unit_type_only_return","unknown_annotation","unknown_future_consumed","unknown_sym","unreachable_code_after_return","warning_code","Backtraced","Formatted","TypeCheckerWarning","async_function_is_never_called_by_transition_function","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","max_conditional_block_depth_exceeded","message_type","num_exit_codes","some_paths_contain_duplicate_future_awaits","some_paths_do_not_await_all_futures","source","to_owned","to_string","try_from","try_into","type_id","warning_code","util_errors","Backtraced","Formatted","UtilError","borrow","borrow_mut","build_file_does_not_exist","circular_dependency_error","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","duplicate_dependency_name_error","endpoint_moved_error","error_code","exit_code","failed_to_deserialize_file","failed_to_open_file","failed_to_read_file","failed_to_retrieve_dependencies","failed_to_retrieve_from_endpoint","fmt","","from","","","init","into","invalid_bound","invalid_field","invalid_height_or_hash","invalid_input_id","invalid_input_id_len","invalid_numerical_input","invalid_range","is_error","json_serialization_error","message_type","missing_network_error","missing_path_error","network_error","num_exit_codes","program_name_mismatch_error","reqwest_error","snarkvm_error_building_program_id","snarkvm_parsing_error","source","to_owned","to_string","toml_serizalization_error","try_from","try_into","type_id","util_file_io_error","warning_code"],"q":[[0,"leo_errors"],[4,"leo_errors::common"],[8,"leo_errors::common::backtraced"],[43,"leo_errors::common::formatted"],[72,"leo_errors::common::traits"],[80,"leo_errors::emitter"],[187,"leo_errors::errors"],[267,"leo_errors::errors::ast"],[268,"leo_errors::errors::ast::ast_errors"],[316,"leo_errors::errors::cli"],[317,"leo_errors::errors::cli::cli_errors"],[389,"leo_errors::errors::compiler"],[390,"leo_errors::errors::compiler::compiler_errors"],[428,"leo_errors::errors::flattener"],[429,"leo_errors::errors::flattener::flattener_errors"],[465,"leo_errors::errors::interpreter_halt"],[489,"leo_errors::errors::loop_unroller"],[490,"leo_errors::errors::loop_unroller::loop_unroller_errors"],[523,"leo_errors::errors::package"],[524,"leo_errors::errors::package::package_errors"],[609,"leo_errors::errors::parser"],[611,"leo_errors::errors::parser::parser_errors"],[687,"leo_errors::errors::parser::parser_warnings"],[720,"leo_errors::errors::static_analyzer"],[722,"leo_errors::errors::static_analyzer::static_analyzer_error"],[759,"leo_errors::errors::static_analyzer::static_analyzer_warning"],[794,"leo_errors::errors::type_checker"],[796,"leo_errors::errors::type_checker::type_checker_error"],[952,"leo_errors::errors::type_checker::type_checker_warning"],[987,"leo_errors::errors::utils"],[988,"leo_errors::errors::utils::util_errors"],[1045,"alloc::string"],[1046,"core::fmt"],[1047,"core::hash"],[1048,"core::option"],[1049,"backtrace::capture"],[1050,"core::result"],[1051,"core::any"],[1052,"leo_span::span"],[1053,"core::convert"],[1054,"alloc::vec"],[1055,"alloc::boxed"],[1056,"core::ops::function"],[1057,"anyhow"],[1058,"core::error"],[1059,"std::fs"]],"i":"``````````f00000000000000000000000000000000`Bh000000000000000000000000000`Bl000000````````ChCjC`CbBn43210000210432104321043210Cd5431054314343113225432135432135432120541235313212543215432154321433Cf000Gn111``1011Cn`20202`2020``202020202`22002222222222222000020`20```20`202020`20```Ef0000000000000000000000000000000000000000000000`Fd`0000000000000000000000000000000000000000000000000000000000000000000000`Ej`000000000000000000000000000000000000`El`000000000000000000000000000000`000`Ed0000000000000000000000`En0`000000000000000000000000000000`Eh0`0000000000000000000000000000000000000000000000000000000000000000000000000000000000``Fb0`0000000000000000000000000000000000000000000000000000000000000000000000000G`0`000000000000000000000000000000``Ff0`0000000000000000000000000000000000Fn0`00000000000000000000000000000000``F`0`000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Fl0`00000000000000000000000000000000`Fj0`000000000000000000000000000000000000000000000000000000","f":"```````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}``{{}f}{l{{b{c}}}{}}{l{{b{dc}}}{}}{{{b{f}}}{{b{n}}}}{lh}{{{b{f}}{b{f}}}A`}`{{{b{f}}}Ab}{{{b{f}}}Ad}{{{b{f}}{b{dAf}}}Ah}0{cc{}}{{{b{f}}{b{dc}}}hAj}`{{}l}{{}c{}}`{{c{Al{Ab}}AdAnAbA`B`}fBb}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}`{bBf}<``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Bh}}}Bh}{{b{b{dc}}}h{}}{{bj}h}{{}Bh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{{{b{Bh}}}{{b{n}}}}{lh}{{{b{Bh}}{b{Bh}}}A`}{{{b{Bh}}}Ab}{{{b{Bh}}}Ad}{{{b{Bh}}{b{dAf}}}Ah}0{cc{}}{{{b{Bh}}{b{dc}}}hAj}{{}l}{{}c{}}{{c{Al{Ab}}AdAnAbA`BjB`}BhBb}`{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}<`{{}An}{{}Ad}{{{b{Bl}}}Ab}{{{b{Bl}}}Ad}{{}A`}{{}Ab}3````````{b{{b{c}}}{}}0000{{{b{d}}}{{b{dc}}}{}}0000{{{b{Bn}}}Bn}{{b{b{dc}}}h{}}{{bj}h}{{}C`}{{}{{Cb{c}}}{}}{{}Bn}{l{{b{c}}}{}}0000{l{{b{dc}}}{}}0000{lh}0000{{{b{dCd}}Cf}h}{{{b{dCh}}Cf}h}{{{b{dCj}}Cf}h}{{{b{C`}}c}h{{Cl{Cf}}}}{{{b{dBn}}Cf}h}{{{b{dCd}}Cn}h}{{{b{dCh}}Cn}h}{{{b{dCj}}Cn}h}{{{b{C`}}Cn}h}{{{b{dBn}}Cn}h}`{{{b{C`}}}l}`{{{b{C`}}{Bd{cCf}}}{{Bd{ch}}}{}}{{{b{Bn}}}D`}{{{b{Bn}}}Db}{{{b{C`}}Cf}Dd}{{{b{{Cb{c}}}}{b{dAf}}}AhDf}{{{b{{Cb{c}}}}{b{dAf}}}AhDh}{cc{}}0000{{{b{C`}}}A`}{{}l}0000`{{}c{}}0000{{{Cb{c}}}{{Dj{c}}}{}}{{{b{Cd}}}{{Al{Ad}}}}{{{b{Ch}}}{{Al{Ad}}}}{{{b{Cj}}}{{Al{Ad}}}}{{{b{Bn}}}{{Al{Ad}}}}{{{b{{Cb{c}}}}}{{Al{{b{c}}}}}{}}{{{b{C`}}}{{Bd{h{Dl{Cf}}}}}}`{{{Dl{Cd}}}C`}{{}Bn}{{}{{Dn{C`Bn}}}}{{{b{d{Cb{c}}}}c}h{}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}0000{{}{{Bd{c}}}{}}0000{bBf}0000`{{{b{C`}}}l}{e{{Bd{cD`}}}{}{{Eb{{b{C`}}}{{E`{{Bd{cCf}}}}}}}}``````````````````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0``{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{{{b{Cf}}}Ab}{{{b{Cn}}}Ab}{{{b{Cf}}}Ad}`{{{b{Cf}}{b{dAf}}}Ah}0{{{b{Cn}}{b{dAf}}}Ah}0{cc{}}{EdCf}{EfCf}{EhCf}{EjCf}{ElCf}{EnCf}{F`Cf}{FbCf}{FdCf}{FfCf}{FhCf}{FjCf}<{FlCn}{FnCn}{G`Cn}{{}l}0`{{}c{}}0```{{{b{Cf}}}{{Al{{b{Gb}}}}}}{{{b{Cn}}}{{Al{{b{Gb}}}}}}`{bAb}0{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0`{bBf}0`````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ef}}}Ef}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ef}}}Ab}{{{b{Ef}}}Ad}{cEfGb}000{{ce}EfDfGb}001100{{{b{Ef}}{b{dAf}}}Ah}0{cc{}}{fEf}{BhEf}{cEfDh}{{}l}{{}c{}}{{}A`}{{}Ab}{{}Ad}{{cBj}EfDh}0000{{{b{Ef}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Ef}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{cFdDh}00{cFdGb}1{{{b{Fd}}}Fd}{{b{b{dc}}}h{}}{{bj}h}?{{}Fd}{{cGde}FdDhDh}5{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fd}}}Ab}{{{b{Fd}}}Ad}6;;;;;;;666;;;;;;;;;;;{{{b{Fd}}{b{dAf}}}Ah}0{cc{}}{BhFd}{fFd}{{}l}{{}c{}}{cFdDh}00{{}A`}{{}Ab}?{{}Ad}{{ce}FdDhDh}{{}Fd}{cFdGb}0{{{b{Fd}}}{{Al{{b{Gb}}}}}}77{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{cGde}FdDhDh}{{{b{Fd}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{cBj}EjGb}{{{b{Ej}}}Ej}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ej}}}Ab}{{{b{Ej}}}Ad}{{ce}EjDfGb}{{{b{Ej}}{b{dAf}}}Ah}0{cc{}}{fEj}{BhEj}{{cBj}EjDh}0{{ceBj}EjDhDh}{{}l}{{}c{}}{{}A`}{{}Ab}{{}Ad}55{{{b{Ej}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Ej}}}Ab}````{{cegiBj}ElDhDhDhDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{El}}}El}{{b{b{dc}}}h{}}{{bj}h}={l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{El}}}Ab}{{{b{El}}}Ad}{{{b{El}}{b{dAf}}}Ah}0{cc{}}{BhEl}{fEl}{{}l}{{}c{}}{{}A`}{{cBj}ElDh}{{}Ab}{{}Ad}{{{b{El}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{c}}}{{b{n}}}{}}9{{ceBj}ElDhDh}{{{b{El}}}Ab}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ed}}}Ed}{{b{b{dc}}}h{}}{{bj}h}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ed}}{b{dAf}}}Ah}0{cc{}}{{}l}{{}c{}}`{AbEd}{{AbBj}Ed}{{{b{Ed}}}{{Al{Bj}}}}`{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{En}}}En}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{En}}}Ab}{{{b{En}}}Ad}{{{b{En}}{b{dAf}}}Ah}0{cc{}}{BhEn}{fEn}{{}l}{{}c{}}{{}A`}{BjEn}{{}Ab}>{{{b{En}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}7{{{b{En}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Eh}}}Eh}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{{ce}EhDhDh}{cEhDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}3{lh}{{}Eh}{{{b{Eh}}}Ab}5{{{b{Eh}}}Ad}6{{ce}EhDhGb}{cEhGb}800140{{ce}EhDfGb}1{cEhDf}{{ceg}EhDhDfDh};;;11413;41;114144;;{{{b{Eh}}{b{dAf}}}Ah}0{fEh}{BhEh}{cc{}}{{}l}{{ceg}EhDhDhDh}{{}c{}}{cEhDh}{{cGf}EhDf}{{ce}EhDfDf}{{}Eh}3>>>>>>{{}A`}{{}Ab}2{{}Ad}6{{{b{Eh}}}{{Al{{b{Gb}}}}}}4{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}<{{{b{Eh}}}Ab}`````{{cBj}FbDh}{BjFb}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}2222{{{b{Fb}}}Fb}{{b{b{dc}}}h{}}{{bj}h}>55{cFbDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fb}}}Ab}{{{b{Fb}}}Ad}{{ceBj}FbDhDh}<{{{b{Fb}}{b{dAf}}}Ah}0{cc{}}{fFb}{BhFb}{BjFb}{{cllBj}FbDh}{{cBj}FbDh}{{}l}3{{}c{}}2244{{cegBj}FbDhDhDh}5{{}A`}6{{}Fb}{cFbDh}11000{{}Ab}99{{}Ad}::{{{b{Fb}}}{{Al{{b{Gb}}}}}};;{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}=={bBf}{{ceBj}FbDhDh}{BjFb}{{c{b{{Gh{e}}}}Bj}FbDhDh}22{{cBj}FbDh}3{{{b{Fb}}}Ab}{{GjGlAb}Fb}```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{G`}}}G`}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{BjG`}{{ceBj}G`DhDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{G`}}}Ab}{{{b{G`}}}Ad}{{{b{G`}}{b{dAf}}}Ah}0{cc{}}{fG`}{BhG`}{{}l}{{}c{}}{{}A`}{{}Ab}?{{{b{G`}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}?`````{{cBj}FfDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ff}}}Ff}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ff}}}Ab}{{{b{Ff}}}Ad};{{{b{Ff}}{b{dAf}}}Ah}0{cc{}}{BhFf}{fFf}?{{}l}{{}c{}}{BjFf}{{}A`}{{}Ab}2{{cBj}FfDh}?{{{b{Ff}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Ff}}}Ab}```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Fn}}}Fn}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fn}}}Ab}{{{b{Fn}}}Ad}{{{b{Fn}}{b{dAf}}}Ah}0{fFn}{BhFn}{cc{}}{{cBj}FnDh}{{}l}{{}c{}}{{}A`}3{{}Ab}>{{ceBj}FnDhDh}0{{{b{Fn}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Fn}}}Ab}`````{BjF`}000{{ceBj}F`DhDh}111{{cBj}F`Dh}22120222{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}4422424422{{{b{F`}}}F`}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}6668866{{{Dj{c}}}F`Dh}0{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}::<<{{{b{F`}}}Ab}{{{b{F`}}}Ad}<=>>>>{{{b{F`}}{b{dAf}}}Ah}0{cc{}}{fF`}{BhF`}{BjF`}0{{cBj}F`Dh}0001{{ceBj}F`DhDh}000{{}l}{{}c{}}43442232224334243{{}A`}55555555{{}Ab}64465666565{{}Ad}77{{cegBj}F`DhDhDh}668686{{{b{F`}}}{{Al{{b{Gb}}}}}}9917997997{bc{}}{bAb}::;{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}};{bBf}<<=>>==<>{{{b{F`}}}Ab}```{{cBj}FlDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Fl}}}Fl}{{b{b{dc}}}h{}}{{bj}h}>{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fl}}}Ab}{{{b{Fl}}}Ad}{{{b{Fl}}{b{dAf}}}Ah}0{fFl}{cc{}}{BhFl}{{}l}{{}c{}}{{}A`}{{cBj}FlDh}{{}Ab}{{}Ad}{{ceBj}FlDhDh}0{{{b{Fl}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Fl}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{cBj}FjDh}{BjFj}{{{b{Fj}}}Fj}{{b{b{dc}}}h{}}{{bj}h}?{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}7{cFjDh}{{{b{Fj}}}Ab}{{{b{Fj}}}Ad}222:{{cBj}FjGb}{{{b{Fj}}{b{dAf}}}Ah}0{cc{}}{BhFj}{fFj}{{}l}{{}c{}}999{{ceg}FjDhDhDh}{{ce}FjDhDh};{{}Fj}{{}A`}:{{}Ab}{{cBj}FjDh}0{{ceBj}FjDhDh}{{}Ad}{{cegBj}FjDhDhDh}{cFjDh}{BjFj}5{{{b{Fj}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{{cBj}FjGb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{ceBj}FjDhGb}{{{b{Fj}}}Ab}","D":"BCn","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Backtraced",8],[1,"unit"],[1,"u8"],[1,"usize"],[1,"str"],[1,"bool"],[5,"String",1045],[1,"i32"],[5,"Formatter",1046],[8,"Result",1046],[10,"Hasher",1047],[6,"Option",1048,null,1],[1,"i8"],[5,"Backtrace",1049],[10,"ToString",1045],[6,"Result",1050,null,1],[5,"TypeId",1051],[5,"Formatted",43],[5,"Span",1052],[10,"LeoMessageCode",72],[5,"BufferEmitter",80],[5,"Handler",80],[5,"Buffer",80],[10,"Emitter",80],[6,"LeoError",187],[5,"StderrEmitter",80],[5,"HandlerInner",80],[10,"Into",1053],[6,"LeoWarning",187],[8,"ErrBuffer",80],[8,"WarningBuffer",80],[1,"never"],[10,"Debug",1046],[10,"Display",1046],[5,"Vec",1054],[5,"Box",1055,null,1],[1,"tuple",null,null,1],[17,"Output"],[10,"FnOnce",1056],[5,"InterpreterHalt",465],[6,"AstError",268],[6,"PackageError",524],[6,"CompilerError",390],[6,"FlattenError",429],[6,"LoopUnrollerError",490],[6,"TypeCheckerError",796],[6,"ParserError",611],[6,"CliError",317],[6,"StaticAnalyzerError",722],[5,"Error",1057],[6,"UtilError",988],[6,"TypeCheckerWarning",952],[6,"StaticAnalyzerWarning",759],[6,"ParserWarning",687],[10,"Error",1058],[1,"u64"],[5,"FileType",1059],[1,"slice"],[1,"char"],[1,"u32"],[8,"Result",187]],"r":[],"b":[[27,"impl-Debug-for-Backtraced"],[28,"impl-Display-for-Backtraced"],[58,"impl-Display-for-Formatted"],[59,"impl-Debug-for-Formatted"],[136,"impl-Debug-for-Buffer%3CT%3E"],[137,"impl-Display-for-Buffer%3CT%3E"],[225,"impl-Debug-for-LeoError"],[226,"impl-Display-for-LeoError"],[227,"impl-Debug-for-LeoWarning"],[228,"impl-Display-for-LeoWarning"],[230,"impl-From%3CInterpreterHalt%3E-for-LeoError"],[231,"impl-From%3CAstError%3E-for-LeoError"],[232,"impl-From%3CPackageError%3E-for-LeoError"],[233,"impl-From%3CCompilerError%3E-for-LeoError"],[234,"impl-From%3CFlattenError%3E-for-LeoError"],[235,"impl-From%3CLoopUnrollerError%3E-for-LeoError"],[236,"impl-From%3CTypeCheckerError%3E-for-LeoError"],[237,"impl-From%3CParserError%3E-for-LeoError"],[238,"impl-From%3CCliError%3E-for-LeoError"],[239,"impl-From%3CStaticAnalyzerError%3E-for-LeoError"],[240,"impl-From%3CError%3E-for-LeoError"],[241,"impl-From%3CUtilError%3E-for-LeoError"],[243,"impl-From%3CTypeCheckerWarning%3E-for-LeoWarning"],[244,"impl-From%3CStaticAnalyzerWarning%3E-for-LeoWarning"],[245,"impl-From%3CParserWarning%3E-for-LeoWarning"],[293,"impl-Display-for-AstError"],[294,"impl-Debug-for-AstError"],[296,"impl-From%3CBacktraced%3E-for-AstError"],[297,"impl-From%3CFormatted%3E-for-AstError"],[361,"impl-Debug-for-CliError"],[362,"impl-Display-for-CliError"],[364,"impl-From%3CFormatted%3E-for-CliError"],[365,"impl-From%3CBacktraced%3E-for-CliError"],[406,"impl-Debug-for-CompilerError"],[407,"impl-Display-for-CompilerError"],[409,"impl-From%3CBacktraced%3E-for-CompilerError"],[410,"impl-From%3CFormatted%3E-for-CompilerError"],[444,"impl-Debug-for-FlattenError"],[445,"impl-Display-for-FlattenError"],[447,"impl-From%3CFormatted%3E-for-FlattenError"],[448,"impl-From%3CBacktraced%3E-for-FlattenError"],[474,"impl-Debug-for-InterpreterHalt"],[475,"impl-Display-for-InterpreterHalt"],[504,"impl-Display-for-LoopUnrollerError"],[505,"impl-Debug-for-LoopUnrollerError"],[507,"impl-From%3CFormatted%3E-for-LoopUnrollerError"],[508,"impl-From%3CBacktraced%3E-for-LoopUnrollerError"],[576,"impl-Display-for-PackageError"],[577,"impl-Debug-for-PackageError"],[578,"impl-From%3CBacktraced%3E-for-PackageError"],[579,"impl-From%3CFormatted%3E-for-PackageError"],[636,"impl-Display-for-ParserError"],[637,"impl-Debug-for-ParserError"],[639,"impl-From%3CBacktraced%3E-for-ParserError"],[640,"impl-From%3CFormatted%3E-for-ParserError"],[703,"impl-Debug-for-ParserWarning"],[704,"impl-Display-for-ParserWarning"],[706,"impl-From%3CBacktraced%3E-for-ParserWarning"],[707,"impl-From%3CFormatted%3E-for-ParserWarning"],[738,"impl-Display-for-StaticAnalyzerError"],[739,"impl-Debug-for-StaticAnalyzerError"],[741,"impl-From%3CFormatted%3E-for-StaticAnalyzerError"],[742,"impl-From%3CBacktraced%3E-for-StaticAnalyzerError"],[773,"impl-Display-for-StaticAnalyzerWarning"],[774,"impl-Debug-for-StaticAnalyzerWarning"],[775,"impl-From%3CBacktraced%3E-for-StaticAnalyzerWarning"],[776,"impl-From%3CFormatted%3E-for-StaticAnalyzerWarning"],[856,"impl-Debug-for-TypeCheckerError"],[857,"impl-Display-for-TypeCheckerError"],[859,"impl-From%3CBacktraced%3E-for-TypeCheckerError"],[860,"impl-From%3CFormatted%3E-for-TypeCheckerError"],[967,"impl-Debug-for-TypeCheckerWarning"],[968,"impl-Display-for-TypeCheckerWarning"],[969,"impl-From%3CBacktraced%3E-for-TypeCheckerWarning"],[971,"impl-From%3CFormatted%3E-for-TypeCheckerWarning"],[1011,"impl-Debug-for-UtilError"],[1012,"impl-Display-for-UtilError"],[1014,"impl-From%3CFormatted%3E-for-UtilError"],[1015,"impl-From%3CBacktraced%3E-for-UtilError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPYCfgAMAAQAEwAFABwAAQAfAAAAIQAAACUAAwAqAAAALgAKADsAAQA+AAEAQwAEAFkAHgB5AAAAfAAAAH4AAACBAAAAiQABAJEABACeAAAAoAAAAKgAEADCAAAA0gADANgABQDiAAMA5wALAPQABQD/AAEAAgEFAAkBAQAOAQwAJgEBACkBAwAuAQMANgEGAD4BAABAAQQASAEFAE8BBABVARYAbQECAHEBBgB5AQAAfAEJAIcBAACJAQwAlwEBAJoBAQCdAQIAoQELAK4BAACwAQAAsgEMAMABAgDEAQAAxgEHANEBAADTAQkA3gEAAOEBAgDlAQQA6wEBAO4BDAD8AQIAAAILAA0CAQAQAgkAGwIFACMCAAAlAgIALQICADUCAQA4AgAAPQIHAEYCAQBJAgAATAIAAFQCDQBkAgEAZwIFAG4CBAB0AgAAdgIIAIACAwCFAgAAiQIBAI0CAgCXAgEAmgIEAKACAwClAgEArgIDALMCBQC7AgYAwwICAMcCCQDSAgIA1gIOAOYCAwDrAg4A+wIOAAsDAQAOAwwAHAMCACADFAA3Aw4ASAMEAE8DBABVAwUAXAMDAGEDAwBnAwIAbQMAAHIDAAB0AwQAegMMAIgDJgCyAwMAtwMDALwDDgDMAwEAzwMMAN0DAQDgAxUA9wMCAPsDGgA=","P":[[11,"T"],[13,""],[14,"T"],[15,""],[19,"T"],[21,""],[29,"T"],[30,"__H"],[32,""],[33,"U"],[35,"S"],[36,"T"],[37,""],[38,"U,T"],[39,"U"],[41,""],[45,"T"],[47,""],[48,"T"],[49,""],[51,"T"],[53,""],[60,"T"],[61,"__H"],[62,""],[63,"U"],[64,"S"],[66,"T"],[67,""],[68,"U,T"],[69,"U"],[70,""],[88,"T"],[98,""],[99,"T"],[100,""],[102,"T"],[103,""],[104,"T"],[114,""],[122,"E"],[123,""],[132,"T"],[133,""],[136,"T"],[143,""],[150,"U"],[155,"T"],[156,""],[160,"T"],[161,""],[166,"T"],[168,""],[169,"U,T"],[174,"U"],[179,""],[186,"T,"],[209,"T"],[219,""],[229,"T"],[230,""],[242,"T"],[243,""],[249,"U"],[254,""],[259,"U,T"],[261,"U"],[264,""],[271,"T"],[273,""],[274,"T"],[275,""],[277,"T"],[279,""],[282,""],[286,","],[289,""],[291,","],[293,""],[295,"T"],[296,""],[298,""],[299,""],[300,"U"],[301,""],[304,""],[309,""],[310,"T"],[311,""],[312,"U,T"],[313,"U"],[314,""],[320,"T"],[322,""],[327,""],[328,"T"],[329,""],[332,","],[333,""],[334,"T"],[336,""],[340,""],[347,""],[350,""],[361,""],[363,"T"],[364,""],[367,"U"],[368,""],[371,""],[375,","],[376,""],[377,""],[379,""],[380,""],[382,"T"],[383,""],[384,"U,T"],[385,"U"],[386,""],[387,","],[388,""],[393,"T"],[395,""],[396,""],[397,"T"],[398,""],[400,"T"],[402,""],[405,","],[406,""],[408,"T"],[409,""],[411,""],[413,","],[414,""],[415,"U"],[416,""],[419,","],[421,""],[422,"T"],[423,""],[424,"U,T"],[425,"U"],[426,""],[432,",,,"],[433,"T"],[435,""],[436,"T"],[437,""],[439,"T"],[441,""],[446,"T"],[447,""],[450,"U"],[451,""],[452,""],[453,""],[456,"T"],[457,""],[458,"U,T"],[459,"U"],[460,""],[461,"T"],[462,""],[463,","],[464,""],[466,"T"],[468,""],[469,"T"],[470,""],[471,"T"],[473,""],[476,"T"],[477,""],[478,"U"],[480,""],[484,"T"],[485,""],[486,"U,T"],[487,"U"],[488,""],[493,"T"],[495,""],[496,"T"],[497,""],[499,"T"],[501,""],[506,"T"],[507,""],[510,"U"],[511,""],[516,"T"],[517,""],[518,"U,T"],[519,"U"],[520,""],[527,"T"],[529,""],[530,"T"],[531,""],[533,","],[534,""],[535,"T"],[537,","],[538,""],[541,""],[542,""],[543,""],[544,","],[545,""],[549,","],[550,""],[551,""],[552,","],[553,""],[555,",,"],[556,""],[561,","],[562,""],[565,","],[566,""],[570,","],[571,""],[572,","],[574,""],[576,""],[580,"T"],[581,""],[582,",,"],[583,"U"],[584,""],[586,","],[587,""],[588,""],[595,""],[599,""],[600,""],[602,"T"],[603,""],[604,"U,T"],[605,"U"],[606,""],[607,""],[608,""],[614,""],[615,""],[616,"T"],[618,""],[623,"T"],[624,""],[628,""],[629,"T"],[631,""],[634,","],[635,""],[638,"T"],[639,""],[642,""],[644,""],[646,"U"],[647,""],[649,""],[651,",,"],[652,""],[656,""],[657,""],[659,""],[662,""],[671,"T"],[672,""],[673,"U,T"],[674,"U"],[675,""],[677,""],[678,","],[679,""],[680,","],[683,""],[684,","],[685,""],[690,"T"],[692,""],[693,"T"],[694,""],[697,","],[698,"T"],[700,""],[705,"T"],[706,""],[709,"U"],[710,""],[714,"T"],[715,""],[716,"U,T"],[717,"U"],[718,""],[725,""],[726,"T"],[728,""],[729,"T"],[730,""],[732,"T"],[734,""],[737,""],[738,""],[740,"T"],[741,""],[743,""],[744,""],[745,"U"],[746,""],[750,""],[751,""],[753,"T"],[754,""],[755,"U,T"],[756,"U"],[757,""],[762,"T"],[764,""],[765,"T"],[766,""],[768,"T"],[770,""],[777,"T"],[778,""],[779,""],[780,"U"],[781,""],[782,""],[783,""],[785,","],[787,""],[788,"T"],[789,""],[790,"U,T"],[791,"U"],[792,""],[803,","],[804,""],[807,""],[808,""],[810,","],[811,""],[812,""],[813,""],[816,"T"],[818,""],[820,""],[822,""],[823,""],[824,""],[826,""],[828,""],[829,"T"],[830,""],[832,""],[835,""],[837,""],[841,"T"],[843,""],[844,""],[846,""],[850,""],[851,","],[852,""],[858,"T"],[859,""],[863,""],[867,""],[868,","],[872,""],[873,"U"],[874,""],[875,""],[876,""],[878,","],[880,""],[881,","],[884,""],[885,""],[887,""],[888,","],[889,""],[890,""],[891,""],[902,","],[904,""],[905,""],[906,""],[909,""],[910,""],[911,""],[912,""],[915,",,"],[916,","],[918,""],[919,","],[920,""],[921,","],[922,""],[925,",,"],[926,","],[927,""],[929,","],[930,""],[932,","],[933,"T"],[934,""],[935,""],[937,""],[938,"U,T"],[939,"U"],[940,","],[941,""],[942,","],[944,""],[945,""],[947,""],[949,","],[950,""],[955,""],[956,"T"],[958,""],[959,"T"],[960,""],[962,"T"],[964,""],[970,"T"],[971,""],[973,"U"],[974,""],[975,""],[976,""],[978,","],[980,""],[981,"T"],[982,""],[983,"U,T"],[984,"U"],[985,""],[991,"T"],[993,""],[994,""],[996,"T"],[997,""],[999,"T"],[1001,""],[1002,""],[1004,""],[1006,""],[1011,""],[1013,"T"],[1014,""],[1017,"U"],[1018,""],[1021,",,"],[1022,","],[1023,""],[1024,""],[1026,""],[1027,""],[1028,""],[1030,","],[1031,""],[1032,",,"],[1033,""],[1034,""],[1035,""],[1036,""],[1037,"T"],[1038,""],[1039,""],[1040,"U,T"],[1041,"U"],[1042,""],[1043,","],[1044,""]]}],["leo_interpreter",{"t":"SSCCCQQHCHCQHCCCPGPPPIPFFPGPIPFPFGFPPFIONONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNHNHNONNNNNNNNNNONNNNNNNNNOONNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNOOONNNNNNNNNOOONOONNNNNONNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNOOOOOHHHFNNNNNNNONNNNNNNNFPFGPPPPPPPPPFNONNNNNNNNONNNNNNNNNONNONNNNNNNNNNNNONNNNNNNNNONNNNNNNNOONNOOONNONNNNNNNNNNNNNNNNNNNNNNOFFFFHNNNNNNNNNNNOOHOOONNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNOONNNONNHOONONNNNNNNNNNNNONNNNOOKFNNONNMNNOONNOMONNNNOKRMHPPFPPFPPPPPPPPPFIIIIIIIPPPPPPPGONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["HELP","INTRO","cursor","cursor_aleo","dialoguer_input","halt","halt_no_span","interpret","interpreter","parse_breakpoint","ratatui_ui","tc_fail","tokenize_user_input","ui","util","value","AleoClosure","AleoContext","AleoExecution","AleoFunction","Block","Closure","","ContextStack","Cursor","DelayedCall","Element","Expression","Finalize","","Frame","Function","FunctionContext","FunctionVariant","GlobalId","Leo","Statement","StepResult","SvmFunction","accumulated_futures","add_future","block_height","borrow","","","","","","","","","borrow_mut","","","","","","","","","branch","caller","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","contexts","","current_len","current_program","","default","deref","","","","","","","","","deref_mut","","","","","","","","","do_call","drop","","","","","","","","","element","eq","equivalent","","","","evaluate_binary","evaluate_core_function","evaluate_unary","execution_complete","finished","fmt","","","","","","","","","","frames","from","","","","","","","","","functions","futures","get_future","get_register","globals","hash","increment_instruction_index","increment_step","init","","","","","","","","","instructions_len","into","","","","","","","","","is_async","","last","last_mut","len","lookup","lookup_function","lookup_mapping","lookup_mapping_mut","mapping_by_call_operator","mappings","name","names","new","new_caller","next_command","next_instruction","operand_value","outputs","over","pop","pop_value","program","","","push","really_async","rng","set","set_block_height","set_program","set_register","set_variable","signer","span","step","","step_aleo","step_aleo_command","step_aleo_instruction","step_block","step_expression","step_statement","structs","to_line","to_owned","","","","","","","","","to_smolstr","to_span","to_string","to_text","try_from","","","","","","","","","try_into","","","","","","","","","try_to_compact_string","type_id","","","","","","","","","user_initiated","user_values","value","values","vzip","","","","","","","","","whole_step","block","context","function_body","instruction_index","registers","snarkvm_literal_to_value","snarkvm_literal_type_to_type","value_to_snarkvm_literal","DialoguerUi","borrow","borrow_mut","deref","deref_mut","display_user_data","drop","from","history","init","into","new","receive_user_input","try_from","try_into","type_id","vzip","Breakpoint","","Interpreter","InterpreterAction","Into","LeoInterpretInto","LeoInterpretOver","Over","PrintRegister","Run","RunFuture","Step","Watch","Watchpoint","action","actions","borrow","","","","borrow_mut","","","","breakpoints","clone","","","clone_into","","","clone_to_uninit","","","code","current_program_and_line","current_span","cursor","deref","","","","deref_mut","","","","drop","","","","filename_to_program","fmt","","","from","","","","get_aleo_program","get_ast","handler","init","","","","into","","","","last_result","line","new","new_impl","node_builder","parsed_inputs","program","restore_cursor","save_cursor","saved_cursors","to_owned","","","try_from","","","","try_into","","","","type_id","","","","update_watchpoints","view_current","view_current_in_context","vzip","","","","watchpoints","DebuggerLayout","DrawData","Prompt","RatatuiUi","append_lines","backspace","beginning_of_line","borrow","","","","borrow_mut","","","","check_history","code","","code_text","current","cursor","data","default","","delete","deref","","","","deref_mut","","","","display_user_data","draw","drop","","","","","end_of_line","fmt","from","","","","handle_key","highlight","history","history_index","history_next","history_prev","init","","","","into","","","","left","message","","new","","new_character","prompt","receive_user_input","render","render_titled","result","","right","terminal","try_from","","","","try_into","","","","type_id","","","","user_input","vzip","","","","watchpoints","","Ui","UserData","borrow","borrow_mut","code","deref","deref_mut","display_user_data","drop","from","futures","highlight","init","into","message","receive_user_input","result","try_from","try_into","type_id","vzip","watchpoints","ExpectTc","T","expect_tc","snarkvm_identifier_to_symbol","Address","Array","AsyncExecution","Bool","Field","Future","","Group","I128","I16","I32","I64","I8","Scalar","Struct","StructContents","SvmAddress","SvmBoolean","SvmField","SvmGroup","SvmIdentifier","SvmInteger","SvmScalar","Tuple","U128","U16","U32","U64","U8","Unit","Value","arguments","borrow","","","","borrow_mut","","","","cast","clone","","","","clone_into","","","","clone_to_uninit","","","","contents","default","","deref","","","","deref_mut","","","","drop","","","","eq","","","","","equivalent","","","","","","","","","","","","","","","","fmt","","","","","","from","","","","function","generator","gt","gte","hash","","","","inc_wrapping","init","","","","into","","","","lt","lte","name","neq","really_cast","simple_shl","simple_shr","to_fields","to_line","","to_owned","","","","to_smolstr","","to_span","","to_string","","to_text","","try_from","","","","try_into","","","","try_to_compact_string","","type_id","","","","vzip","","","","write_bits_be","write_bits_le"],"q":[[0,"leo_interpreter"],[16,"leo_interpreter::cursor"],[281,"leo_interpreter::cursor::Element"],[286,"leo_interpreter::cursor_aleo"],[289,"leo_interpreter::dialoguer_input"],[306,"leo_interpreter::interpreter"],[408,"leo_interpreter::ratatui_ui"],[501,"leo_interpreter::ui"],[523,"leo_interpreter::util"],[527,"leo_interpreter::value"],[685,"std::path"],[686,"snarkvm_console_network::testnet_v0"],[687,"snarkvm_console_types_address"],[688,"leo_errors::errors"],[689,"core::option"],[690,"snarkvm_console_program::data::identifier"],[691,"leo_span::symbol"],[692,"leo_span::span"],[693,"core::iter::traits::iterator"],[694,"leo_ast::expressions::binary"],[695,"leo_ast::functions::core_function"],[696,"leo_ast::expressions"],[697,"leo_ast::expressions::unary"],[698,"core::fmt"],[699,"snarkvm_console_program::data::register"],[700,"core::hash"],[701,"std::collections::hash::map"],[702,"snarkvm_synthesizer_program::logic::instruction::operation::call"],[703,"snarkvm_synthesizer_program::logic::command"],[704,"snarkvm_synthesizer_program::logic::instruction"],[705,"snarkvm_synthesizer_program::logic::instruction::operand"],[706,"alloc::vec"],[707,"leo_ast::statement::block"],[708,"leo_ast::statement"],[709,"ratatui::text::line"],[710,"smol_str"],[711,"ratatui::text::span"],[712,"alloc::string"],[713,"ratatui::text::text"],[714,"core::result"],[715,"compact_str"],[716,"core::any"],[717,"snarkvm_console_program::data::literal"],[718,"snarkvm_console_program::data_types::literal_type"],[719,"leo_ast::types::type_"],[720,"snarkvm_synthesizer_program"],[721,"leo_errors::emitter"],[722,"leo_ast::common::node_builder"],[723,"leo_ast"],[724,"core::convert"],[725,"core::iter::traits::collect"],[726,"ratatui::style"],[727,"ratatui::terminal::frame"],[728,"crossterm::event"],[729,"ratatui::layout::rect"],[730,"ratatui::buffer::buffer"],[731,"ratatui::widgets"],[732,"snarkvm_console_program::data::literal::cast"],[733,"snarkvm_console_types_field"],[734,"snarkvm_console_types_group"],[735,"snarkvm_console_types_boolean"],[736,"snarkvm_console_types_scalar"],[737,"snarkvm_console_types_integers"]],"i":"````````````````C``Bj10`Bh``1`1`0`0```21``BfAnBb2134BlBn72Cb546721830355467218305467218305467218304344345467218305467218303546721830211111`3`30546721183035467218303343313354672183035467218304544433333315333333343513433433333732333333315467218301111546721830546721830154672183023035467218303M`Mb100````Gj000000000000000`H```000000000`Gn00AfHb32103210310310302222103210321032103210322221032103012222122210321032103210322221032`````If0IjJbIh32103310`33203321032103202210333210330333321032103310213023`10322103210321031210310``Gl0000Jj11111110111111`Jn0`Cn0`00`000000000````````0000000`KbK`1B`3120331203120312031031203120312031203311112222000033331200331203233312033120312033313`3330312030303030312031203031203120333","f":"```````{{{f{{d{b}}}}{f{{d{b}}}}{j{h}}ln}{{Ab{A`}}}}`{{{f{Ad}}}{{Ah{Af}}}}``{{{f{Ad}}}{{Aj{{f{Ad}}{f{Ad}}}}}}```````````````````````````{{{f{AlAn}}B`}A`}`{f{{f{c}}}{}}00000000{{{f{Al}}}{{f{Alc}}}{}}00000000{{{f{AlBb}}{f{{Bd{h}}}}}A`}`{{{f{Bf}}}Bf}{{{f{An}}}An}{{{f{Bh}}}Bh}{{{f{Bj}}}Bj}{{{f{Bl}}}Bl}{{{f{Bn}}}Bn}{{{f{C`}}}C`}{{{f{Bb}}}Bb}{{{f{Cb}}}Cb}{{f{f{Alc}}}A`{}}00000000{{fCd}A`}00000000```{{{f{An}}}{{Ah{Cf}}}}{{{f{Bb}}}{{Ah{Cf}}}}{{}An}{Ch{{f{c}}}{}}00000000{Ch{{f{Alc}}}{}}00000000{{{f{AlBb}}CfCfcnCj}{{Ab{A`}}}{{D`{}{{Cl{Cn}}}}}}{ChA`}00000000`{{{f{Bn}}{f{Bn}}}n}{{f{f{c}}}n{}}000{{CjDbCnCn}{{Ab{Cn}}}}{{{f{AlBb}}Dd{f{{d{Df}}}}Cj}{{Ab{Cn}}}}{{CjDhCn}{{Ab{Cn}}}}{{{f{Bb}}}n}`{{{f{Bf}}{f{AlDj}}}Dl}{{{f{An}}{f{AlDj}}}Dl}{{{f{Bh}}{f{AlDj}}}Dl}{{{f{Bj}}{f{AlDj}}}Dl}{{{f{Bl}}{f{AlDj}}}Dl}{{{f{Bn}}{f{AlDj}}}Dl}0{{{f{C`}}{f{AlDj}}}Dl}{{{f{Bb}}{f{AlDj}}}Dl}{{{f{Cb}}{f{AlDj}}}Dl}`{cc{}}00000000``{{{f{AlAn}}}B`}{{{f{Bb}}{f{{Dn{h}}}}}{{f{Cn}}}}`{{{f{Bn}}{f{Alc}}}A`E`}{{{f{AlBb}}}A`}0{{}Ch}00000000{{{f{Bb}}}Ch}{{}c{}}00000000{{{f{An}}}n}`{{{f{An}}}{{Ah{{f{Bf}}}}}}{{{f{AlAn}}}{{Ah{{f{AlBf}}}}}}{{{f{An}}}Ch}{{{f{Bb}}Cf}{{Ah{Cn}}}}{{{f{Bb}}CfCf}{{Ah{C`}}}}{{{f{Bb}}{Ah{Cf}}Cf}{{Ah{{f{{Eb{CnCn}}}}}}}}{{{f{AlBb}}{Ah{Cf}}Cf}{{Ah{{f{Al{Eb{CnCn}}}}}}}}{{{f{Bb}}{f{{Ed{h}}}}}{{Ah{{f{{Eb{CnCn}}}}}}}}```{{n{j{h}}l}Bb}{{{f{Bb}}}{{j{h}}}}{{{f{Bb}}}{{Ah{{f{{Ef{h}}}}}}}}{{{f{Bb}}}{{Ah{{f{{Eh{h}}}}}}}}{{{f{Bb}}{f{{Ej{h}}}}}Cn}{{{f{Bb}}}{{El{Cn}}}}{{{f{AlBb}}}{{Ab{Cb}}}}{{{f{AlAn}}}A`}{{{f{AlBb}}}{{Ab{Cn}}}}```{{{f{AlAn}}Cf{j{h}}n}A`}``{{{f{AlAn}}CfCn}A`}{{{f{AlBb}}l}A`}{{{f{AlBb}}{f{Ad}}}A`}{{{f{AlBb}}{Dn{h}}Cn}A`}{{{f{AlBb}}CfCn}A`}`{{{f{Bj}}}Cj}9`{{{f{AlBb}}}{{Ab{A`}}}}{{{f{AlBb}}{Ef{h}}}{{Ab{A`}}}}{{{f{AlBb}}{Eh{h}}}{{Ab{A`}}}}{{{f{AlBb}}{f{En}}nCh}n}{{{f{AlBb}}{f{Df}}Ch}{{Ab{n}}}}{{{f{AlBb}}{f{F`}}Ch}{{Ab{n}}}}`{fFb}{fc{}}00000000{fFd}{fFf}{fFh}{fFj}{c{{Fl{e}}}{}{}}00000000{{}{{Fl{c}}}{}}00000000{f{{Fl{FnG`}}}}{fGb}00000000````{{}c{}}00000000{{{f{AlBb}}}{{Ab{Cb}}}}`````{{{Gd{h}}}Cn}{GfGh}{Cn{{Gd{h}}}}`{f{{f{c}}}{}}{{{f{Al}}}{{f{Alc}}}{}}{Ch{{f{c}}}{}}{Ch{{f{Alc}}}{}}{{{f{AlGj}}{f{Gl}}}A`}{ChA`}{cc{}}`{{}Ch}{{}c{}}{{}Gj}{{{f{AlGj}}}Fh}{c{{Fl{e}}}{}{}}{{}{{Fl{c}}}{}}{fGb}{{}c{}}``````````````{{{f{AlGn}}H`}{{Ab{{Ah{Cn}}}}}}`????>>>>`{{{f{Af}}}Af}{{{f{Hb}}}Hb}{{{f{H`}}}H`}{{f{f{Alc}}}A`{}}00{{fCd}A`}00`{{{f{Gn}}}{{Ah{{Aj{FhCh}}}}}}{{{f{Gn}}}{{Ah{Cj}}}}`{Ch{{f{c}}}{}}000{Ch{{f{Alc}}}{}}000{ChA`}000`{{{f{Af}}{f{AlDj}}}Dl}{{{f{Hb}}{f{AlDj}}}Dl}{{{f{H`}}{f{AlDj}}}Dl}{cc{}}000{{{f{Hd}}}{{Ab{{Hf{h}}}}}}{{{f{Hd}}{f{Hh}}{f{Hj}}}{{Ab{Hl}}}}`{{}Ch}000{{}c{}}000``{{ei{j{h}}l}{{Ab{Gn}}}{{Hn{Hd}}}{{I`{}{{Cl{{f{c}}}}}}}{{Hn{Hd}}}{{I`{}{{Cl{{f{g}}}}}}}}{{{f{AlD`}}{f{AlD`}}{j{h}}l}{{Ab{Gn}}}}```{{{f{AlGn}}}n}{{{f{AlGn}}}A`}`{fc{}}00{c{{Fl{e}}}{}{}}000{{}{{Fl{c}}}{}}000{fGb}000{{{f{AlGn}}}{{Ab{n}}}}{{{f{Gn}}}{{Ah{{`{Ib}}}}}}{{{f{Gn}}}{{Ah{{Aj{{`{Ib}}ChCh}}}}}}{{}c{}}000`````{{{f{Al{El{Fb}}}}{Ah{Fb}}{f{Ad}}Id}{{Ah{Fb}}}}{{{f{AlIf}}}A`}0{f{{f{c}}}{}}000{{{f{Al}}}{{f{Alc}}}{}}0002``{{{f{Ad}}{Ah{{Aj{ChCh}}}}}{{Aj{FjCh}}}}```{{}Ih}{{}If}5{Ch{{f{c}}}{}}000{Ch{{f{Alc}}}{}}000{{{f{AlIj}}{f{Gl}}}A`}{{{f{AlIh}}{f{AlIl}}}A`}{{{f{AlIj}}}A`}{ChA`}000;{{{f{If}}{f{AlDj}}}Dl}{cc{}}000{{{f{AlIf}}Inn}{{Ah{Fh}}}}```>>{{}Ch}000{{}c{}}000{{{f{AlIf}}}A`}``{{}Ij}{J`Jb}{{{f{AlIf}}Jd}A`}`{{{f{AlIj}}}Fh}{{{f{If}}J`{f{AlJf}}}A`}{{{f{AlIl}}c{f{Ad}}J`}A`Jh}``6`{c{{Fl{e}}}{}{}}000{{}{{Fl{c}}}{}}000{fGb}000`{{}c{}}000````{f{{f{c}}}{}}{{{f{Al}}}{{f{Alc}}}{}}`{Ch{{f{c}}}{}}{Ch{{f{Alc}}}{}}{{{f{AlJj}}{f{Gl}}}A`}{ChA`}{cc{}}``{{}Ch}{{}c{}}`{{{f{AlJj}}}Fh}`=<;:```{{{Jn{}{{Jl{c}}}}Cj}{{Ab{c}}}{}}{{{f{{Bd{h}}}}}Cf}````````````````````````````````;;;;::::{{Cn{f{Gh}}}{{Ah{Cn}}}}{{{f{K`}}}K`}{{{f{Kb}}}Kb}{{{f{B`}}}B`}{{{f{Cn}}}Cn}{{f{f{Alc}}}A`{}}000{{fCd}A`}000`{{}B`}{{}Cn}{Ch{{f{c}}}{}}000{Ch{{f{Alc}}}{}}000{ChA`}000{{{f{K`}}{f{K`}}}n}{{{f{Kb}}{f{Kb}}}n}{{{f{B`}}{f{B`}}}n}{{{f{Cn}}{f{Cn}}}{{Ab{n}}}}{{{f{Cn}}{f{Cn}}}n}{{f{f{c}}}n{}}000000000000000{{{f{K`}}{f{AlDj}}}Dl}{{{f{Kb}}{f{AlDj}}}Dl}{{{f{B`}}{f{AlDj}}}Dl}0{{{f{Cn}}{f{AlDj}}}Dl}0{cc{}}000`>77{{{f{K`}}{f{Alc}}}A`E`}{{{f{Kb}}{f{Alc}}}A`E`}{{{f{B`}}{f{Alc}}}A`E`}{{{f{Cn}}{f{Alc}}}A`E`}{{{f{Cn}}}Cn}{{}Ch}000{{}c{}}000>>`>{{c{f{Gh}}}{{Ah{Cn}}}{{Kd{{j{h}}}}{Kd{{Kf{h}}}}{Kd{{j{h}}}}{Kd{{Kh{h}}}}{Kd{{Kj{h}}}}{Kd{{Kl{h}}}}{Kd{{Kn{hCd}}}}{Kd{{Kn{hL`}}}}{Kd{{Kn{hl}}}}{Kd{{Kn{hLb}}}}{Kd{{Kn{hLd}}}}{Kd{{Kn{hLf}}}}{Kd{{Kn{hLh}}}}{Kd{{Kn{hLj}}}}{Kd{{Kn{hLl}}}}{Kd{{Kn{hLn}}}}}}{{{f{Cn}}l}Cn}0{{{f{Cn}}}{{El{{Kf{h}}}}}}{fFb}0{fc{}}000{fFd}0{fFf}0{fFh}0{fFj}0{c{{Fl{e}}}{}{}}000{{}{{Fl{c}}}{}}000{f{{Fl{FnG`}}}}0{fGb}000{{}c{}}000{{{f{Cn}}{f{Al{El{n}}}}}A`}0","D":"In","p":[[5,"PathBuf",685],[1,"slice"],[1,"reference",null,null,1],[5,"TestnetV0",686],[5,"Address",687],[1,"u32"],[1,"bool"],[1,"unit"],[8,"Result",688],[1,"str"],[5,"Breakpoint",306],[6,"Option",689,null,1],[1,"tuple",null,null,1],[0,"mut"],[5,"ContextStack",16],[5,"Future",527],[5,"Cursor",16],[5,"Identifier",690],[5,"FunctionContext",16],[6,"AleoContext",16],[6,"Element",16],[5,"Frame",16],[5,"GlobalId",16],[6,"FunctionVariant",16],[5,"StepResult",16],[1,"u8"],[5,"Symbol",691],[1,"usize"],[5,"Span",692],[17,"Item"],[6,"Value",527],[10,"Iterator",693],[6,"BinaryOperation",694],[6,"CoreFunction",695],[6,"Expression",696],[6,"UnaryOperation",697],[5,"Formatter",698],[8,"Result",698],[6,"Register",699],[10,"Hasher",700],[5,"HashMap",701],[6,"CallOperator",702],[6,"Command",703],[6,"Instruction",704],[6,"Operand",705],[5,"Vec",706],[5,"Block",707],[6,"Statement",708],[5,"Line",709],[5,"SmolStr",710],[5,"Span",711],[5,"String",712],[5,"Text",713],[6,"Result",714,null,1],[5,"CompactString",715],[6,"ToCompactStringError",715],[5,"TypeId",716],[6,"Literal",717],[6,"LiteralType",718],[6,"Type",719],[5,"DialoguerUi",289],[5,"UserData",501],[5,"Interpreter",306],[6,"InterpreterAction",306],[5,"Watchpoint",306],[5,"Path",685],[8,"Program",720],[5,"Handler",721],[5,"NodeBuilder",722],[5,"Ast",723],[10,"AsRef",724],[10,"IntoIterator",725],[10,"Display",698],[5,"Style",726],[5,"Prompt",408],[5,"DrawData",408],[5,"RatatuiUi",408],[5,"Frame",727],[6,"KeyCode",728],[5,"Rect",729],[5,"DebuggerLayout",408],[1,"char"],[5,"Buffer",730],[10,"Widget",731],[10,"Ui",501],[17,"T"],[10,"ExpectTc",523],[5,"StructContents",527],[5,"AsyncExecution",527],[10,"Cast",732],[5,"Field",733],[5,"Group",734],[5,"Boolean",735],[5,"Scalar",736],[5,"Integer",737],[1,"u16"],[1,"u64"],[1,"u128"],[1,"i8"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i128"],[15,"Block",281],[15,"AleoExecution",281]],"r":[],"b":[[139,"impl-Debug-for-GlobalId"],[140,"impl-Display-for-GlobalId"],[598,"impl-Value"],[599,"impl-PartialEq-for-Value"],[618,"impl-Display-for-Future"],[619,"impl-Debug-for-Future"],[620,"impl-Display-for-Value"],[621,"impl-Debug-for-Value"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAF4CKAAAAAcACQALABYAAQAaAAAAHQABACAAAAAiAAAAJAAAACYAWwCDAAAAhQAAAIcACQCcAAAAngAAAKAADAC3AAsAxAAEAMoADgDaAAYA4gArABABCAAaAQ4AKgEBAC0BBwA2ATIAbQEGAHgBBgCAARAAkgEwAMcBCQDVASkAAAICAAQCKQAvAggAOQIdAFgCFgBzAgAAdQIKAIQCBACKAiMA","P":[[42,"T"],[60,""],[71,"T"],[80,""],[95,"T"],[113,""],[114,""],[125,"K"],[129,""],[145,"T"],[156,""],[159,"__H"],[160,""],[172,"U"],[181,""],[226,"T"],[235,""],[239,"U,T"],[248,"U"],[257,""],[271,"V"],[280,""],[290,"T"],[294,""],[296,"T"],[298,""],[299,"U"],[300,""],[302,"U,T"],[303,"U"],[304,""],[305,"V"],[320,""],[322,"T"],[331,""],[334,"T"],[337,""],[344,"T"],[352,""],[360,"T"],[364,""],[371,"U"],[377,"P,,Q,"],[378,""],[385,"T"],[388,"U,T"],[392,"U"],[396,""],[403,"V"],[412,""],[415,"T"],[423,""],[433,"T"],[441,""],[450,"T"],[454,""],[464,"U"],[468,""],[477,"W"],[480,""],[482,"U,T"],[486,"U"],[490,""],[495,"V"],[503,"T"],[508,""],[510,"T"],[513,""],[514,"U"],[516,""],[518,"U,T"],[519,"U"],[520,""],[521,"V"],[525,"ExpectTc::T"],[526,""],[559,"T"],[567,""],[572,"T"],[576,""],[583,"T"],[591,""],[600,"K"],[616,""],[622,"T"],[627,""],[630,"H"],[631,"__H"],[634,""],[639,"U"],[643,""],[647,"C"],[648,""],[653,"T"],[657,""],[665,"U,T"],[669,"U"],[673,""],[679,"V"],[683,""]]}],["leo_lang",{"t":"CGFFKFFPRFFFFFFFFFFFPRSPPCCOMOOOCCOCOOCOOOOOCCOCOOOOOOOOOOOOOOOOCCOOOOHCOOOOOOCOOOOOOOOOOOCOOOOOOHOOMOOOCOOOOCCHOCCOOOOOOOOOOOOOOOOOOOOOOGPPPPOOOOOOOOOOOOOOOOOOOOFOOOOFOFPPPFPGPPPPPPPPPNNNNNNNNNNONNONNNNNNNNNNNNNNNHNONNNNOOHNNNNNNNNNNNNOOOOOOOOOOOOOEFKEFREEEEEEEEEEERCCMNNNNONNNNCHCNNNNNNNNNNOOCNNCNNNNONNOOOOOOOOOOOOCCNNNNNNNNNNHNNHNNNNNNOCOOHMOOCOCCNNNNNNNNNNCNNNNNNOGPPPPNNNNNNNNNHNNNNNHNHNNNHHNNNNNHNHHOOOOOOOOOOOOOOOOOOOOFNNNNNONNNNNNNNNNNNONOONNNNNNNFNNNNNNNHNNNNNNNNHNNNONNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNONNNNONNNNNNNNHNNNONNNONNNNFNNNNNNNHNNNONNNNNHNNNOONONNNNNNOGFPPPNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNFNNNNNONNONNNHOONNNNNHNONHONOONONNNNNNFNNNNNNNNNNONNNNNNNNOONNNNNNNPPEEEEEFEPPPGEPPNNNNNCNNNNNNONNCNNNNNNONNNNNNNNNHNNNNNNCOCNCCCNNNNNNNNNNCNNOOOOOOOFNNNNNNNNNNNNNNNONNOOONNOOONNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNOONNNNNNFNNNNNNNONNNNNNNNNNNONNNNNNNFNNNNNNNNNNNNNNNNNNOOONNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNONNNNNNNOOONONNNNNNNNNNHHHHHHHFONNNNNNNNNNNNNNNNNNONNNNNNNFNNNNNNNONNNONNNNNHNONNONNNNNNNFNNNNNNNNNNNNNNNNNONNONNNNNNFOOOFOOOOFOOOOOGFPPPOOOFOOOOOOOOOCCCFNNNNNNNNNNNNNNNNNONNNNNNOONNNNNFJONNNNNNNNOOOONNONNNHNONNNNNNNNNNNNTTTTTTFNNNNNNNNNNNNNNNNNNNNNNNNFOOOOOOHOFOOOPPFFFFFFFPPPGFPPCOCOOOOOOOOOOOOOCOOOCCOCOCOOOOOOOOOOFOOOOOOOFFOOFOOFOOOFFOOOOOFOOFOOOOFOOF","n":["cli","Account","BuildOptions","CLI","Command","Deploy","FeeOptions","Import","Input","LeoAdd","LeoBuild","LeoClean","LeoDebug","LeoExample","LeoExecute","LeoNew","LeoQuery","LeoRemove","LeoRun","LeoUpdate","New","Output","SNARKVM_COMMAND","Sign","Verify","account","add","all","apply","base_fee","block_height","broadcast","build","clean","clear","cli","command","","commands","compiler_options","","","conditional_block_max_depth","consensus_version","context","debug","","deploy","disable_conditional_branch_type_checking","dry_run","enable_all_ast_snapshots","enable_ast_spans","enable_dce","enable_dce_ast_snapshot","enable_destructured_ast_snapshot","enable_flattened_ast_snapshot","enable_initial_ast_snapshot","enable_inlined_ast_snapshot","enable_ssa_ast_snapshot","enable_unrolled_ast_snapshot","endpoint","","","","example","execute","fee_options","","file","","handle_error","helpers","home","inputs","","list","local","","logger","name","","","","","","network","","","","","new","no_build","","non_recursive","offline","options","","parse_record","path","paths","prelude","priority_fee","private_key","program","query","quiet","","record","recursive","remove","run","run_with_args","tui","update","updater","wait","yes","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","Account","Import","New","Sign","Verify","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","LeoAdd","clear","local","name","network","LeoBuild","options","LeoClean","Account","Add","Build","CLI","Clean","Commands","Debug","Deploy","Example","Execute","New","Query","Remove","Run","Update","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","borrow_mut","","command","","","command_for_update","","debug","deref","","deref_mut","","drop","","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","handle_error","has_subcommand","home","init","","into","","path","quiet","run_with_args","try_from","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","command","","","","","","","","","","","","","Account","BuildOptions","Command","Deploy","FeeOptions","Input","LeoAdd","LeoBuild","LeoClean","LeoDebug","LeoExample","LeoExecute","LeoNew","LeoQuery","LeoRemove","LeoRun","LeoUpdate","Output","account","add","apply","augment_args","","augment_args_for_update","","base_fee","borrow","","borrow_mut","","build","check_balance","clean","clone","","clone_into","","clone_to_uninit","","command","","command_for_update","","conditional_block_max_depth","consensus_version","debug","default","","deploy","deref","","deref_mut","","disable_conditional_branch_type_checking","drop","","dry_run","enable_all_ast_snapshots","enable_ast_spans","enable_dce","enable_dce_ast_snapshot","enable_destructured_ast_snapshot","enable_flattened_ast_snapshot","enable_initial_ast_snapshot","enable_inlined_ast_snapshot","enable_ssa_ast_snapshot","enable_unrolled_ast_snapshot","endpoint","example","execute","","","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","get_latest_block_height","group_id","","handle_broadcast","init","","into","","log_span","","network","new","non_recursive","offline","parse_record","prelude","priority_fee","private_key","query","record","remove","run","to_owned","","try_execute","","try_from","","try_into","","type_id","","update","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","yes","Account","Import","New","Sign","Verify","apply","augment_subcommands","augment_subcommands_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","display_string_discreetly","drop","fmt","from","from_arg_matches","from_arg_matches_mut","generate_new_account","has_subcommand","import_account","init","into","prelude","print_keys","sign_message","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","verify_message","vzip","wait_for_keypress","write_to_env_file","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","LeoAdd","apply","augment_args","augment_args_for_update","borrow","borrow_mut","clear","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","local","log_span","name","network","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoBuild","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","compile_leo_file","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_build","init","into","log_span","options","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoClean","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoDebug","apply","augment_args","augment_args_for_update","block_height","borrow","borrow_mut","command","command_for_update","compiler_options","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_debug","init","into","log_span","paths","prelude","try_from","try_into","tui","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Deploy","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deploy_cost_breakdown","deref","deref_mut","drop","fee_options","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_deploy","init","into","log_span","no_build","options","prelude","recursive","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","wait","ExampleVariant","LeoExample","Lottery","TicTacToe","Token","apply","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","command","","command_for_update","","deref","","deref_mut","","drop","","endpoint","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","has_subcommand","init","","into","","main_file_string","name","","network","prelude","readme_file_string","run_file_string","to_owned","try_from","","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","LeoExecute","apply","augment_args","augment_args_for_update","borrow","borrow_mut","broadcast","command","command_for_update","compiler_options","deref","deref_mut","drop","execution_cost_breakdown","fee_options","file","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_execute","init","inputs","into","load_program_from_network","local","log_span","name","no_build","prelude","program","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoNew","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","endpoint","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","name","network","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Block","Committee","LeoBlock","LeoCommittee","LeoMempool","LeoPeers","LeoProgram","LeoQuery","LeoTransaction","Mempool","Peers","Program","QueryCommands","StateRoot","Stateroot","Transaction","apply","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","block","borrow","","borrow_mut","","command","","","command_for_update","","committee","deref","","deref_mut","","drop","","endpoint","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","handle_query","has_subcommand","init","","into","","log_span","mempool","network","peers","prelude","program","state_root","transaction","try_from","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","utils","vzip","","command","","","","","","","LeoBlock","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","id","init","into","latest","latest_hash","latest_height","log_span","prelude","range","to_height","transactions","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoCommittee","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoMempool","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","transactions","transmissions","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoPeers","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","count","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","metrics","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoProgram","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","mapping_value","mappings","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","StateRoot","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoTransaction","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","confirmed","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_io","from_program","from_transition","group_id","id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","check_valid_program_name","is_valid_field","is_valid_hash","is_valid_height_or_hash","is_valid_numerical_input","is_valid_transaction_id","is_valid_transition_id","LeoRemove","all","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoRun","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","compiler_options","deref","deref_mut","drop","file","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_run","init","inputs","into","log_span","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoUpdate","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","list","log_span","prelude","quiet","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Context","home","path","recursive","LeoDebug","block_height","compiler_options","paths","tui","Deploy","fee_options","no_build","options","recursive","wait","ExampleVariant","LeoExample","Lottery","TicTacToe","Token","endpoint","name","network","LeoExecute","broadcast","compiler_options","fee_options","file","inputs","local","name","no_build","program","context","logger","updater","Context","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","dir","dotenv_endpoint","dotenv_network","dotenv_private_key","drop","from","get_endpoint","get_network","get_private_key","home","","init","into","local_dependency_paths","new","open_manifest","parent_dir","path","recursive","to_owned","try_from","try_into","type_id","vzip","Format","START","ansi","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","display_level","display_target","display_thread_id","display_thread_name","drop","fmt","format","format_event","from","init","init_logger","into","timer","to_owned","try_from","try_into","type_id","vzip","with_ansi","with_level","with_target","with_thread_ids","with_thread_names","with_timer","without_time","LEO_BIN_NAME","LEO_CACHE_LAST_CHECK_FILE","LEO_CACHE_VERSION_FILE","LEO_REPO_NAME","LEO_REPO_OWNER","LEO_UPDATE_CHECK_INTERVAL","Updater","borrow","borrow_mut","check_for_updates","deref","deref_mut","drop","from","get_cache_dir","get_cli_string","get_current_time","get_version_file_path","init","into","print_cli","read_latest_version","should_check_for_updates","show_available_releases","try_from","try_into","type_id","update_available","update_check_files","update_to_latest_release","vzip","Format","ansi","display_level","display_target","display_thread_id","display_thread_name","format","init_logger","timer","LeoNew","endpoint","name","network","Block","Committee","LeoBlock","LeoCommittee","LeoMempool","LeoPeers","LeoProgram","LeoQuery","LeoTransaction","Mempool","Peers","Program","QueryCommands","StateRoot","Stateroot","Transaction","block","command","committee","confirmed","count","endpoint","from_io","from_program","from_transition","id","","latest","latest_hash","latest_height","mapping_value","mappings","mempool","metrics","name","network","peers","program","range","state_root","to_height","transaction","transactions","","transmissions","command","","","","","","","LeoBlock","id","latest","latest_hash","latest_height","range","to_height","transactions","LeoCommittee","LeoMempool","transactions","transmissions","LeoPeers","count","metrics","LeoProgram","mapping_value","mappings","name","StateRoot","LeoTransaction","confirmed","from_io","from_program","from_transition","id","LeoRemove","all","name","LeoRun","compiler_options","file","inputs","name","LeoUpdate","list","quiet","Updater"],"q":[[0,"leo_lang"],[1,"leo_lang::cli"],[117,"leo_lang::cli::Account"],[137,"leo_lang::cli::account"],[142,"leo_lang::cli::account::Account"],[162,"leo_lang::cli::add"],[167,"leo_lang::cli::build"],[169,"leo_lang::cli::clean"],[170,"leo_lang::cli::cli"],[236,"leo_lang::cli::cli::Commands"],[249,"leo_lang::cli::commands"],[369,"leo_lang::cli::commands::account"],[406,"leo_lang::cli::commands::account::Account"],[426,"leo_lang::cli::commands::add"],[456,"leo_lang::cli::commands::build"],[485,"leo_lang::cli::commands::clean"],[511,"leo_lang::cli::commands::debug"],[542,"leo_lang::cli::commands::deploy"],[575,"leo_lang::cli::commands::example"],[638,"leo_lang::cli::commands::execute"],[676,"leo_lang::cli::commands::new"],[705,"leo_lang::cli::commands::query"],[780,"leo_lang::cli::commands::query::QueryCommands"],[787,"leo_lang::cli::commands::query::block"],[820,"leo_lang::cli::commands::query::committee"],[846,"leo_lang::cli::commands::query::mempool"],[874,"leo_lang::cli::commands::query::peers"],[902,"leo_lang::cli::commands::query::program"],[931,"leo_lang::cli::commands::query::state_root"],[957,"leo_lang::cli::commands::query::transaction"],[988,"leo_lang::cli::commands::query::utils"],[995,"leo_lang::cli::commands::remove"],[1023,"leo_lang::cli::commands::run"],[1054,"leo_lang::cli::commands::update"],[1082,"leo_lang::cli::context"],[1086,"leo_lang::cli::debug"],[1091,"leo_lang::cli::deploy"],[1097,"leo_lang::cli::example"],[1105,"leo_lang::cli::execute"],[1115,"leo_lang::cli::helpers"],[1118,"leo_lang::cli::helpers::context"],[1150,"leo_lang::cli::helpers::logger"],[1186,"leo_lang::cli::helpers::updater"],[1217,"leo_lang::cli::logger"],[1226,"leo_lang::cli::new"],[1230,"leo_lang::cli::query"],[1275,"leo_lang::cli::query::QueryCommands"],[1282,"leo_lang::cli::query::block"],[1290,"leo_lang::cli::query::committee"],[1291,"leo_lang::cli::query::mempool"],[1294,"leo_lang::cli::query::peers"],[1297,"leo_lang::cli::query::program"],[1301,"leo_lang::cli::query::state_root"],[1302,"leo_lang::cli::query::transaction"],[1308,"leo_lang::cli::remove"],[1311,"leo_lang::cli::run"],[1316,"leo_lang::cli::update"],[1319,"leo_lang::cli::updater"],[1320,"leo_errors::errors"],[1321,"snarkvm_console_account::private_key"],[1322,"snarkvm_console_program::data::plaintext"],[1323,"snarkvm_console_program::data::record"],[1324,"snarkvm_console_network"],[1325,"clap_builder::builder::command"],[1326,"core::fmt"],[1327,"clap_builder::parser::matches::arg_matches"],[1328,"clap_builder"],[1329,"core::result"],[1330,"clap_builder::util::id"],[1331,"core::option"],[1332,"core::any"],[1333,"alloc::string"],[1334,"snarkvm_ledger_block::transaction"],[1335,"tracing::span"],[1336,"std::path"],[1337,"snarkvm_console_program::id"],[1338,"leo_errors::emitter"],[1339,"leo_span::symbol"],[1340,"leo_ast::stub"],[1341,"indexmap::map"],[1342,"leo_retriever::program_context::network_name"],[1343,"snarkvm_synthesizer_process"],[1344,"alloc::vec"],[1345,"snarkvm::file::manifest"],[1346,"core::clone"],[1347,"tracing_subscriber::fmt::format"],[1348,"tracing_subscriber::fmt::time"],[1349,"tracing_subscriber::fmt::fmt_layer"],[1350,"tracing_core::event"],[1351,"tracing_core::subscriber"],[1352,"tracing_subscriber::registry"],[1353,"leo_errors::errors::cli::cli_errors"],[1354,"self_update"]],"i":"```````Dff```````````10`11``Hb1CjElFh``Dh`AhFn`43HdCh7``3`070000000000Fd3Fl2``En884``684Hf89`8392<583624`1944Dj2`8;><<:`81<2```;``2>>>`5`Bf00`0`000000000>>00>0>0>0>>0>>0>0>0>0>0>0>0>`0>>0>0>>`>0>0>0>0>0>0KbKdKfKhKjKlKnL`LbLdLfLhLj`````f```````````0``0ChCj1001010```101010101010`10`1010110011111111111``2210101010`10`1010221`11`200`0``1022101010`1010100`Df000000000000`00000`0`000``00000`0``JjJlJn10K`32103100032321`Dh0000000000000000000000000000`Dj000000`00000000`00000000000`Ej000000000000000000000000`El0000000000000000`000000000000`En000000`000000000`00000000000000``Ff00Fd001101011110101010101001010101010101110001110110101010101`Fh00000000000`0000000`000`000000000000`Fl000000000000000000000000000G`0```````000``00Fn0011`010101001`0101010010101010`101010`0`0```0101010101`01LlLnM`MbMdMfMh`Gb0000000000000000000000000000000`Gd000000000000000000000000`Gf00000000000000000000000000`Gh00000000000000000000000000`Gj000000000000000000000000000`Gl000000000000000000000000`Gn00000000000000000000000000000````````Hb00000000000000000000000000`Hd0000000000000000`000000000000`Hf00000000000000000000000000`h00`El000`En0000``Ff00Fd00`Fh00000000````5555555555555555555555555555555``Hn000000000000000000`00000000000000Mj00000`000000000000000000000000`111111`1`Fl00G`0```````000``00`Fn`>Gh1???GbGn111Gj0`304``2`2`2Gf0LlLnM`MbMdMfMh`:::::::``77`;;`888``99999`Hb0`Hd000`Hf0`","f":"````````````````````````````{{{f{}{{b{c}}{d{e}}}}hc}{{j{e}}}{}{}}`````````````````````````````````````````{{{j{c}}}c{}}``````````````````````````{{{n{{l{c}}}}{n{A`}}}{{j{{Ad{c{Ab{c}}}}}}}Af}``{{{n{{f{}{{b{c}}{d{e}}}}}}h}{{j{c}}}{}{}}``````````{Ah{{j{Aj}}}}`````````````````````````````````````````````````````````````````````````{AlAl}000{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{}Al}0`00`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0{{{n{Ah}}{n{AnBb}}}Bd}{{{n{Bf}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{AhBj}}}}{{{n{Bh}}}{{Bl{BfBj}}}}{{{n{AnBh}}}{{Bl{AhBj}}}}{{{n{AnBh}}}{{Bl{BfBj}}}}{{}{{C`{Bn}}}}{{{j{c}}}c{}}{{{n{A`}}}Cb}`{{}B`}0{{}c{}}0``{Ah{{j{Aj}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnAh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnBf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnAh}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnBf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0`````````````````````````````````{{{f{}{{b{c}}{d{e}}}}hc}{{j{e}}}{}{}}{AlAl}000`{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0`{{{n{{l{c}}}}{n{A`}}{n{A`}}{n{h}}Cf}{{j{Aj}}}Af}`{{{n{Ch}}}Ch}{{{n{Cj}}}Cj}{{n{n{Anc}}}Aj{}}0{{nCl}Aj}0{{}Al}000```{{}Ch}{{}Cj}`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0`{B`Aj}0``````````````{{{f{}{{b{c}}{d{e}}}}h}{{j{e}}}{}{}}0{{{n{Ch}}{n{AnBb}}}Bd}{{{n{Cj}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{ChBj}}}}{{{n{Bh}}}{{Bl{CjBj}}}}{{{n{AnBh}}}{{Bl{ChBj}}}}{{{n{AnBh}}}{{Bl{CjBj}}}}{{{n{A`}}{n{A`}}{n{h}}}{{j{Cn}}}}{{}{{C`{Bn}}}}0{{{n{D`}}{Db{c}}{n{D`}}}{{j{Aj}}}Af}{{}B`}0{{}c{}}0{{{n{{f{}{{b{c}}{d{e}}}}}}}Dd{}{}}0````{{{n{{l{c}}}}{n{A`}}}{{j{{Ad{c{Ab{c}}}}}}}Af}{{{n{{f{}{{b{c}}{d{e}}}}}}h}{{j{c}}}{}{}}``````{nc{}}0{{{f{}{{b{c}}{d{e}}}}h}{{j{Aj}}}{}{}}0{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0`{{{n{AnCh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnCj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnCh}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnCj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0``````{{Dfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{{{n{A`}}{n{A`}}}{{j{Aj}}}}{B`Aj}{{{n{Df}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DfBj}}}}{{{n{AnBh}}}{{Bl{DfBj}}}}{{{C`{Cf}}CbCb{n{h}}D`}{{j{Aj}}}}{{{n{A`}}}Cb}{{{C`{D`}}CbCb{n{h}}D`}{{j{Aj}}}}{{}B`}{{}c{}}{{{n{Df}}h}{{j{c}}}{}}{{{l{c}}Cb}{{j{Aj}}}Af}{{D`Cb{C`{D`}}{C`{D`}}}{{j{D`}}}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDf}}{n{AnBh}}}{{Bl{AjBj}}}}{{D`D`D`Cb}{{j{D`}}}}{{}c{}}{{}Aj}{{{l{c}}{n{h}}D`}{{j{Aj}}}Af}`````````````````````{{Dhhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}`{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Dh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DhBj}}}}{{{n{AnBh}}}{{Bl{DhBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}`{{{n{Dh}}}Dd}``{{{n{Dh}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Djhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{{Dl{n{{Dn{c}}}}{n{E`}}{n{E`}}{n{Eb}}Ch{Eh{EdEf}}}{{j{Aj}}}Af}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Dj}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DjBj}}}}{{{n{AnBh}}}{{Bl{DjBj}}}}{{}{{C`{Bn}}}}{{{n{Dj}}h}j}{{}B`}{{}c{}}{{{n{Dj}}}Dd}`{{{n{Dj}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Ejhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Ej}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{EjBj}}}}{{{n{AnBh}}}{{Bl{EjBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Ej}}}Dd}{{{n{Ej}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnEj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Elhc}{{j{e}}}{}{}}{AlAl}0`{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{El}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{ElBj}}}}{{{n{AnBh}}}{{Bl{ElBj}}}}{{}{{C`{Bn}}}}{{{n{El}}h}{{j{Aj}}}}{{}B`}{{}c{}}{{{n{El}}}Dd}`{{{n{El}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}`{nCd}{{{n{AnEl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Enhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{{{n{D`}}F`F`F`F`F`}{{j{Aj}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{En}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{EnBj}}}}{{{n{AnBh}}}{{Bl{EnBj}}}}{{}{{C`{Bn}}}}{{{n{En}}hFb{n{A`}}}j}{{}B`}{{}c{}}{{{n{En}}}Dd}``{{{n{En}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnEn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEn}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}``````{{Fdhc}{{j{e}}}{}{}}{AlAl}000{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{{n{Ff}}}Ff}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{{}Al}000{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0`{{{n{Fd}}{n{AnBb}}}Bd}{{{n{Ff}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{FdBj}}}}{{{n{Bh}}}{{Bl{FfBj}}}}{{{n{AnBh}}}{{Bl{FdBj}}}}{{{n{AnBh}}}{{Bl{FfBj}}}}{{}{{C`{Bn}}}}{{{n{A`}}}Cb}{{}B`}0{{}c{}}0{{{n{Ff}}}D`}0``{{{n{Fd}}h}{{j{c}}}{}}11{nc{}}{c{{Bl{e}}}{}{}}0{{{n{A`}}}{{Bl{Ffc}}}{}}{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnFd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFd}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnFf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0`{{Fhhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}`{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{D`}}F`F`F`F`}{{j{Aj}}}}``{{{n{Fh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{FhBj}}}}{{{n{AnBh}}}{{Bl{FhBj}}}}{{}{{C`{Bn}}}}{{FhhFb{n{A`}}}j}{{}B`}`{{}c{}}{{h{n{An{Fj{c}}}}{n{{Dn{c}}}}Fb{n{A`}}}{{j{Aj}}}Af}`{{{n{Fh}}}Dd}``{{{n{Fh}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnFh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Flhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{Fl}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{FlBj}}}}{{{n{AnBh}}}{{Bl{FlBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Fl}}}Dd}``{{{n{Fl}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnFl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}````````````````{{Fnhc}{{j{e}}}{}{}}{AlAl}000`{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{}Al}0`00`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0`{{{n{Fn}}{n{AnBb}}}Bd}{{{n{G`}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{FnBj}}}}{{{n{Bh}}}{{Bl{G`Bj}}}}{{{n{AnBh}}}{{Bl{FnBj}}}}{{{n{AnBh}}}{{Bl{G`Bj}}}}{{}{{C`{Bn}}}}{{Fnh{n{A`}}{n{A`}}}j}{{{n{A`}}}Cb}{{}B`}0{{}c{}}0{{{n{Fn}}}Dd}```{{{n{Fn}}h}{{j{c}}}{}}```{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnFn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnG`}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFn}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnG`}}{n{AnBh}}}{{Bl{AjBj}}}}`{{}c{}}0````````{{Gbhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gb}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GbBj}}}}{{{n{AnBh}}}{{Bl{GbBj}}}}{{}{{C`{Bn}}}}`{{}B`}{{}c{}}```{{{n{Gb}}}Dd}{{{n{Gb}}h}{{j{c}}}{}}```{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGb}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGb}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gdhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gd}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GdBj}}}}{{{n{AnBh}}}{{Bl{GdBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gd}}}Dd}{{{n{Gd}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGd}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gf}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GfBj}}}}{{{n{AnBh}}}{{Bl{GfBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gf}}}Dd}{{{n{Gf}}h}{{j{c}}}{}}``{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Ghhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GhBj}}}}{{{n{AnBh}}}{{Bl{GhBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gh}}}Dd}`{{{n{Gh}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gjhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gj}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GjBj}}}}{{{n{AnBh}}}{{Bl{GjBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gj}}}Dd}```{{{n{Gj}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Glhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gl}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GlBj}}}}{{{n{AnBh}}}{{Bl{GlBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gl}}}Dd}{{{n{Gl}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gnhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gn}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GnBj}}}}{{{n{AnBh}}}{{Bl{GnBj}}}}```{{}{{C`{Bn}}}}`{{}B`}{{}c{}}{{{n{Gn}}}Dd}{{{n{Gn}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGn}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}{D`D`}{{{n{A`}}}{{j{D`H`}}}}{{{n{A`}}}{{j{AjH`}}}}0000``{{Hbhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Hb}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HbBj}}}}{{{n{AnBh}}}{{Bl{HbBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Hb}}}Dd}`{{{n{Hb}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHb}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHb}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Hdhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{Hd}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HdBj}}}}{{{n{AnBh}}}{{Bl{HdBj}}}}{{}{{C`{Bn}}}}{{Hdh}j}{{}B`}`{{}c{}}{{{n{Hd}}}Dd}`{{{n{Hd}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHd}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Hfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Hf}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HfBj}}}}{{{n{AnBh}}}{{Bl{HfBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}`{{{n{Hf}}}Dd}{{{n{Hf}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`````````````````````````````````````{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{{n{h}}}h}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{{{n{h}}}{{j{Dl}}}}{{{n{h}}}{{j{D`}}}}0{{{n{h}}}{{j{{l{c}}}}}Af}{B`Aj}{cc{}}{{{n{h}}{n{{C`{D`}}}}}{{j{D`}}}}0{{{n{h}}{n{{C`{D`}}}}}{{j{{l{c}}}}}Af}6`{{}B`}{{}c{}}{{{n{h}}}{{j{{Hj{{Hh{D`Dl}}}}}}}}{{{C`{Dl}}{C`{Dl}}Cb}{{j{h}}}}{{{n{h}}}{{j{{Hl{c}}}}}Af};``{nc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{}c{}}```{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{{n{{Hn{ce}}}}}{{Hn{ce}}}I`I`}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{{}{{Hn{IbId}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}````{B`Aj}{{{n{{Hn{ce}}}}{n{AnBb}}}BdIfIf}`{{{n{{Hn{Ibc}}}}{n{{Ih{eg}}}}Ij{n{Il}}}BdIn{J`Jb}Jd}{cc{}}{{}B`}{{{n{A`}}B`}{{j{Aj}}}}{{}c{}}`{nc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{}c{}}{{{Hn{ce}}Cb}{{Hn{ce}}}{}{}}0000{{{Hn{ce}}g}{{Hn{cg}}}{}{}{}}{{{Hn{ce}}}{{Hn{cAj}}}{}{}}```````{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{Cb{{j{CbJf}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{cc{}}{{}Dl}{{}{{j{{C`{D`}}Jf}}}}{{}{{j{CfJf}}}}2{{}B`}{{}c{}}{{}{{j{AjJf}}}}4{{{n{E`}}}{{j{CbJf}}}}{{}{{j{D`}}}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}3{{{n{E`}}{n{E`}}{n{E`}}{n{A`}}}{{j{AjJf}}}}{Cb{{j{Jh}}}}{{}c{}}```````{{{n{A`}}B`}{{j{Aj}}}}```````````````````````````````````````````````````````````````````````````````````````````````","D":"ANf","p":[[17,"Input"],[17,"Output"],[10,"Command",249],[5,"Context",1118],[8,"Result",1320],[5,"PrivateKey",1321],[1,"reference",null,null,1],[1,"str"],[6,"Plaintext",1322],[5,"Record",1323],[10,"Network",1324],[5,"CLI",170],[1,"unit"],[5,"Command",1325],[0,"mut"],[1,"usize"],[5,"Formatter",1326],[8,"Result",1326],[6,"Commands",170],[5,"ArgMatches",1327],[8,"Error",1328],[6,"Result",1329,null,1],[5,"Id",1330],[6,"Option",1331,null,1],[1,"bool"],[5,"TypeId",1332],[1,"u64"],[5,"BuildOptions",249],[5,"FeeOptions",249],[1,"u8"],[1,"u32"],[5,"String",1333],[6,"Transaction",1334],[5,"Span",1335],[6,"Account",369],[5,"LeoAdd",426],[5,"LeoBuild",456],[5,"PathBuf",1336],[5,"ProgramID",1337],[5,"Path",1336],[5,"Handler",1338],[5,"Symbol",1339],[5,"Stub",1340],[5,"IndexMap",1341],[5,"LeoClean",485],[5,"LeoDebug",511],[5,"Deploy",542],[1,"f64"],[6,"NetworkName",1342],[5,"LeoExample",575],[6,"ExampleVariant",575],[5,"LeoExecute",638],[5,"Process",1343],[5,"LeoNew",676],[5,"LeoQuery",705],[6,"QueryCommands",705],[5,"LeoBlock",787],[5,"LeoCommittee",820],[5,"LeoMempool",846],[5,"LeoPeers",874],[5,"LeoProgram",902],[5,"StateRoot",931],[5,"LeoTransaction",957],[6,"LeoError",1320],[5,"LeoRemove",995],[5,"LeoRun",1023],[5,"LeoUpdate",1054],[1,"tuple",null,null,1],[5,"Vec",1344],[5,"Manifest",1345],[5,"Format",1150],[10,"Clone",1346],[5,"Full",1347],[5,"SystemTime",1348],[10,"Debug",1326],[5,"FmtContext",1349],[5,"Writer",1347],[5,"Event",1350],[10,"FormatTime",1348],[10,"Subscriber",1351],[10,"LookupSpan",1352],[10,"FormatFields",1347],[6,"CliError",1353],[6,"Status",1354],[15,"Verify",406],[15,"New",406],[15,"Import",406],[15,"Sign",406],[15,"Account",236],[15,"New",236],[15,"Example",236],[15,"Run",236],[15,"Execute",236],[15,"Deploy",236],[15,"Query",236],[15,"Build",236],[15,"Debug",236],[15,"Add",236],[15,"Remove",236],[15,"Clean",236],[15,"Update",236],[15,"Block",780],[15,"Transaction",780],[15,"Program",780],[15,"Stateroot",780],[15,"Committee",780],[15,"Mempool",780],[15,"Peers",780],[5,"Updater",1186]],"r":[[1,369],[2,249],[3,170],[4,249],[5,542],[6,249],[9,426],[10,456],[11,485],[12,511],[13,575],[14,638],[15,676],[16,705],[17,995],[18,1023],[19,1054],[25,249],[26,249],[32,249],[33,249],[44,1115],[45,249],[47,249],[64,249],[65,249],[70,170],[78,1115],[90,249],[97,249],[104,249],[109,249],[110,249],[111,170],[113,249],[114,1115],[137,369],[162,426],[167,456],[169,485],[249,369],[252,542],[255,426],[256,456],[257,485],[258,511],[259,575],[260,638],[261,676],[262,705],[263,995],[264,1023],[265,1054],[707,787],[708,820],[709,846],[710,874],[711,902],[713,957],[718,931],[1082,1118],[1086,511],[1091,542],[1097,575],[1098,575],[1105,638],[1217,1150],[1224,1150],[1226,676],[1232,787],[1233,820],[1234,846],[1235,874],[1236,902],[1237,705],[1238,957],[1242,705],[1243,931],[1246,705],[1248,705],[1262,705],[1266,705],[1267,705],[1269,705],[1271,705],[1282,787],[1290,820],[1291,846],[1294,874],[1297,902],[1301,931],[1302,957],[1308,995],[1311,1023],[1316,1054],[1319,1186]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADUEeAABAAAAFwAAABoAAgAeAC0ATQAUAGMAAQBmAAQAbAADAHEABAB5AAEAfQADAJIAAQCWAAMApAADAKkAAACrAAIArwAAALEAHgDSAAkA3gABAOEAGQD9AAAAAAEKAAwBAQAPATAAQgEBAEYBBgBOAQEAVAEDAFoBBwBkAQ0AdwEIAIEBAQCEAQUAiwELAJoBAQCeAQMArAELALkBAwC+AQoAygEGANIBAwDXAQQA3QEIAOcBCgDzAQMA+AEHAAECDAAPAgQAFQIJACACDAAuAgQANAILAEICGwBgAgcAagIUAIACDwCRAgUAmQILAKYCCwCzAgMAuAIQAMoCIADtAggA+AInACEDBAAnAw0ANgMKAEIDAwBHAxMAXAMDAGEDFgB5AwMAfgMIAIgDCgCUAwMAmQMKAKUDCgCxAwMAtgMHAL8DCwDMAwcA1QMOAOUDCwDyAwMA9wMIAAEEDAAPBAUAFgQIACAECgAsBAMAMgQBADUEBQBABAMARQQEAEwEBQBTBAsAYAQGAGsEAAByBAAAdQQAAHoEFwCTBAAAlgQFAKMECACtBAIAtQQAALsEAgDBBAcAygQAAMwEBQDTBAEA2AQDAN0ELQAMBQUAEwUCABgFBAAeBQEAIQUDACgFAAA=","P":[[28,"Command::Input,Command::Output"],[70,"T"],[97,"N"],[100,"Command::Input,Command::Output"],[111,""],[189,"T"],[193,""],[199,"T"],[203,""],[207,"T"],[209,""],[214,"T"],[215,""],[219,"U"],[223,""],[224,"U,T"],[226,"U"],[228,""],[234,"V"],[269,"Command::Input,Command::Output"],[270,""],[275,"T"],[280,"N"],[282,""],[284,"T"],[286,""],[298,"T"],[303,""],[319,"Command::Input,Command::Output"],[321,""],[323,"T"],[325,""],[332,"N"],[333,""],[335,"U"],[337,"Command::Input,Command::Output"],[343,"N"],[344,"Command::Input,Command::Output"],[351,"T"],[353,"Command::Input,Command::Output"],[355,"U,T"],[357,"U"],[359,""],[366,"V"],[374,"Command::Input,Command::Output"],[375,""],[377,"T"],[379,""],[381,"T"],[383,""],[386,"T"],[387,""],[393,"U"],[394,"Command::Input"],[395,"N"],[396,""],[397,"U,T"],[398,"U"],[399,""],[403,"V"],[404,""],[405,"N"],[427,"Command::Input,Command::Output"],[428,""],[430,"T"],[433,""],[435,"T"],[437,""],[439,"T"],[440,""],[444,"U"],[446,""],[449,"Command::Input"],[450,"U,T"],[451,"U"],[452,""],[455,"V"],[457,"Command::Input,Command::Output"],[458,""],[460,"T"],[462,""],[464,"N"],[465,"T"],[467,""],[469,"T"],[470,""],[475,"U"],[476,""],[478,"Command::Input"],[479,"U,T"],[480,"U"],[481,""],[484,"V"],[486,"Command::Input,Command::Output"],[487,""],[489,"T"],[491,""],[493,"T"],[495,""],[497,"T"],[498,""],[502,"U"],[503,""],[504,"Command::Input"],[505,"U,T"],[506,"U"],[507,""],[510,"V"],[512,"Command::Input,Command::Output"],[513,""],[516,"T"],[518,""],[521,"T"],[523,""],[525,"T"],[526,""],[531,"U"],[532,""],[534,"Command::Input"],[535,"U,T"],[536,"U"],[538,""],[541,"V"],[543,"Command::Input,Command::Output"],[544,""],[546,"T"],[548,""],[551,"T"],[553,""],[556,"T"],[557,""],[562,"U"],[563,""],[566,"Command::Input"],[568,"U,T"],[569,"U"],[570,""],[573,"V"],[580,"Command::Input,Command::Output"],[581,""],[585,"T"],[589,""],[590,"T"],[591,""],[596,"T"],[600,""],[605,"T"],[607,""],[615,"U"],[617,""],[621,"Command::Input"],[622,""],[624,"T"],[625,"U,T"],[627,"TryFrom::Error"],[628,"U"],[630,""],[636,"V"],[639,"Command::Input,Command::Output"],[640,""],[642,"T"],[645,""],[648,"T"],[650,""],[655,"T"],[656,""],[662,"U"],[663,"N"],[665,""],[668,"Command::Input"],[670,"U,T"],[671,"U"],[672,""],[675,"V"],[677,"Command::Input,Command::Output"],[678,""],[680,"T"],[682,""],[684,"T"],[686,""],[689,"T"],[690,""],[694,"U"],[695,""],[698,"Command::Input"],[699,"U,T"],[700,"U"],[701,""],[704,"V"],[721,"Command::Input,Command::Output"],[722,""],[727,"T"],[731,""],[737,"T"],[741,""],[746,"T"],[748,""],[757,"U"],[759,""],[763,"Command::Input"],[767,"U,T"],[769,"U"],[771,""],[778,"V"],[788,"Command::Input,Command::Output"],[789,""],[791,"T"],[793,""],[795,"T"],[797,""],[799,"T"],[800,""],[805,"U"],[809,""],[810,"Command::Input"],[814,"U,T"],[815,"U"],[816,""],[819,"V"],[821,"Command::Input,Command::Output"],[822,""],[824,"T"],[826,""],[828,"T"],[830,""],[832,"T"],[833,""],[837,"U"],[838,""],[839,"Command::Input"],[840,"U,T"],[841,"U"],[842,""],[845,"V"],[847,"Command::Input,Command::Output"],[848,""],[850,"T"],[852,""],[854,"T"],[856,""],[858,"T"],[859,""],[863,"U"],[864,""],[865,"Command::Input"],[868,"U,T"],[869,"U"],[870,""],[873,"V"],[875,"Command::Input,Command::Output"],[876,""],[878,"T"],[880,""],[883,"T"],[885,""],[887,"T"],[888,""],[892,"U"],[893,""],[895,"Command::Input"],[896,"U,T"],[897,"U"],[898,""],[901,"V"],[903,"Command::Input,Command::Output"],[904,""],[906,"T"],[908,""],[910,"T"],[912,""],[914,"T"],[915,""],[919,"U"],[920,""],[924,"Command::Input"],[925,"U,T"],[926,"U"],[927,""],[930,"V"],[932,"Command::Input,Command::Output"],[933,""],[935,"T"],[937,""],[939,"T"],[941,""],[943,"T"],[944,""],[948,"U"],[949,""],[950,"Command::Input"],[951,"U,T"],[952,"U"],[953,""],[956,"V"],[958,"Command::Input,Command::Output"],[959,""],[961,"T"],[963,""],[966,"T"],[968,""],[970,"T"],[971,""],[979,"U"],[980,""],[981,"Command::Input"],[982,"U,T"],[983,"U"],[984,""],[987,"V"],[988,""],[997,"Command::Input,Command::Output"],[998,""],[1000,"T"],[1002,""],[1004,"T"],[1006,""],[1008,"T"],[1009,""],[1013,"U"],[1014,""],[1016,"Command::Input"],[1017,"U,T"],[1018,"U"],[1019,""],[1022,"V"],[1024,"Command::Input,Command::Output"],[1025,""],[1027,"T"],[1029,""],[1032,"T"],[1034,""],[1037,"T"],[1038,""],[1044,"U"],[1045,""],[1047,"Command::Input"],[1048,"U,T"],[1049,"U"],[1050,""],[1053,"V"],[1055,"Command::Input,Command::Output"],[1056,""],[1058,"T"],[1060,""],[1062,"T"],[1064,""],[1066,"T"],[1067,""],[1071,"U"],[1073,""],[1074,"Command::Input"],[1076,"U,T"],[1077,"U"],[1078,""],[1081,"V"],[1119,"T"],[1121,""],[1122,"T"],[1123,""],[1124,"T"],[1126,""],[1129,"N"],[1130,""],[1131,"T"],[1132,""],[1134,"N"],[1135,""],[1138,"U"],[1139,""],[1141,"N"],[1142,""],[1145,"T"],[1146,"U,T"],[1147,"U"],[1148,""],[1149,"V"],[1153,"T"],[1155,"F,T"],[1156,"T"],[1157,""],[1159,"T"],[1165,""],[1166,"F,T"],[1168,"T,S,N"],[1169,"T"],[1170,""],[1172,"U"],[1174,"T"],[1175,"U,T"],[1176,"U"],[1177,""],[1178,"V"],[1179,"F,T"],[1184,"F,T,T2"],[1185,"F,T"],[1193,"T"],[1195,""],[1196,"T"],[1198,""],[1199,"T"],[1200,""],[1205,"U"],[1206,""],[1210,"U,T"],[1211,"U"],[1212,""],[1216,"V"],[1224,""]]}],["leo_package",{"t":"JJCCCCCHCCCJFNNNNNNNNNNNNNNNCJFNNNNNNNNNNNNNNNNCJFNNNNNNNNNNHNNNNJCCCCJPPPGFPNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNJFNNNNNNNNNNNONNNNNNNNNJFNNNNNNNNNNNONNNNNNNNNJFNNNNNNNNNNNNNNFNNNNNONNNNNNNNOOONNNNNONCCJFNNNNNNONNNNNNONNNNNNNNJFNNNNNNNNNNNNNNNNNNNCCJFNNNNNNNNNNNNNNNJFNNNNNNNNNNNNONNNNNNN","n":["LEO_FILE_EXTENSION","TEST_PRIVATE_KEY","build","imports","inputs","outputs","package","parse_file_paths","root","source","directory","BUILD_DIRECTORY_NAME","BuildDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","from","init","into","open","remove","try_from","try_into","type_id","vzip","directory","IMPORTS_DIRECTORY_NAME","ImportsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","files","from","init","into","is_empty","remove","try_from","try_into","type_id","vzip","directory","INPUTS_DIRECTORY_NAME","InputsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","files","from","init","into","parse_file_paths","try_from","try_into","type_id","vzip","MAIN_ALEO_FILE_NAME","ast_snapshot","checksum","circuit","directory","AST_SNAPSHOT_FILE_EXTENSION","Canonicalization","ImportsResolved","Initial","Snapshot","SnapshotFile","TypeInference","borrow","","borrow_mut","","deref","","deref_mut","","deserialize","","drop","","exists_at","fmt","from","","init","","into","","new","package_name","read_from","remove","snapshot","snapshot_file_path","take_from_value","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip","","CHECKSUM_FILE_EXTENSION","ChecksumFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","package_name","read_from","remove","setup_file_path","take_from_value","try_from","try_into","type_id","vzip","write_to","CIRCUIT_FILE_EXTENSION","CircuitFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","package_name","read_from","remove","setup_file_path","take_from_value","try_from","try_into","type_id","vzip","write_to","OUTPUTS_DIRECTORY_NAME","OutputsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","from","init","into","remove","try_from","try_into","type_id","vzip","Package","borrow","borrow_mut","can_initialize","deref","deref_mut","description","deserialize","drop","from","init","initialize","into","is_aleo_name_valid","is_initialized","license","name","network","new","take_from_value","try_from","try_into","type_id","version","vzip","env","gitignore","ENV_FILENAME","Env","borrow","borrow_mut","deref","deref_mut","deserialize","drop","endpoint","exists_at","fmt","from","init","into","new","private_key","take_from_value","to_smolstr","to_string","try_from","try_into","type_id","vzip","write_to","GITIGNORE_FILENAME","Gitignore","borrow","borrow_mut","default","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","take_from_value","template","try_from","try_into","type_id","vzip","write_to","directory","main","SOURCE_DIRECTORY_NAME","SourceDirectory","borrow","borrow_mut","check_files","create","deref","deref_mut","drop","files","from","init","into","try_from","try_into","type_id","vzip","MAIN_FILENAME","MainFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","filename","from","init","into","new","package_name","take_from_value","template","try_from","try_into","type_id","vzip","write_to"],"q":[[0,"leo_package"],[10,"leo_package::build"],[11,"leo_package::build::directory"],[28,"leo_package::imports"],[29,"leo_package::imports::directory"],[47,"leo_package::inputs"],[48,"leo_package::inputs::directory"],[65,"leo_package::outputs"],[70,"leo_package::outputs::ast_snapshot"],[115,"leo_package::outputs::checksum"],[138,"leo_package::outputs::circuit"],[161,"leo_package::outputs::directory"],[177,"leo_package::package"],[202,"leo_package::root"],[204,"leo_package::root::env"],[228,"leo_package::root::gitignore"],[249,"leo_package::source"],[251,"leo_package::source::directory"],[268,"leo_package::source::main"],[290,"std::fs"],[291,"std::path"],[292,"alloc::vec"],[293,"leo_errors::errors"],[294,"alloc::string"],[295,"core::result"],[296,"core::any"],[297,"serde::de"],[298,"core::fmt"],[299,"alloc::borrow"],[300,"serde_json::value"],[301,"smol_str"],[302,"leo_retriever::program_context::network_name"],[303,"snarkvm_console_network"],[304,"snarkvm_console_account::private_key"],[305,"core::option"]],"i":"`````````````Dd00000000000000```Df000000000000000```Dh000000000`0000``````Al00``00B`101010101001101010000000101110101010``Bn00000000000000000000``C`00000000000000000000``Dj0000000000000`Cb00000000000000000000000````Cf000000000000000000000``Cn000000000000000000````Dl00000000000000``Db0000000000000000000","f":"```````{{b{j{d{h{f}}}}}{{n{l}}}}`````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{A`}}}{{n{f}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{cc{}}{{}Ab}{{}c{}}6{{{j{A`}}}{{n{Ad}}}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}```=<;:98{{{j{A`}}}{{n{{h{f}}}}}}876{{{j{A`}}}{{n{Aj}}}}65432```?>{{{j{A`}}}{{n{l}}}}=<;2:98{{b{j{d{h{f}}}}}{{n{l}}}}7654````````````{j{{j{c}}}{}}0{{{j{d}}}{{j{dc}}}{}}0{Ab{{j{c}}}{}}0{Ab{{j{dc}}}{}}0{c{{Af{Al}}}An}{c{{Af{B`}}}An}{Abl}0{{{j{B`}}{j{A`}}}Aj}{{{j{Al}}{j{dBb}}}Bd}{cc{}}0{{}Ab}0{{}c{}}0{{{j{Bf}}Al}B`}`{{{j{B`}}{j{A`}}}{{n{Ad}}}}{{{j{B`}}{j{A`}}}{{n{Aj}}}}`{{{j{B`}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}0{jBl}{jAd}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{jAh}0{{}c{}}0``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{Bn}}}An}{Abl}{{{j{Bn}}{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}{{{j{Bf}}}Bn}`{{{j{Bn}}{j{A`}}}{{n{Ad}}}}{{{j{Bn}}{j{A`}}}{{n{Aj}}}}{{{j{Bn}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{{j{Bn}}{j{A`}}Ad}{{n{l}}}}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{C`}}}An}{Abl}{{{j{C`}}{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}{{{j{Bf}}}C`}`{{{j{C`}}{j{A`}}}{{n{Ad}}}}{{{j{C`}}{j{A`}}}{{n{Aj}}}}{{{j{C`}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{{j{C`}}{j{A`}}Ad}{{n{l}}}}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{A`}}}{{n{f}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{cc{}}{{}Ab}{{}c{}}{{{j{A`}}}{{n{Ad}}}}>=<;`98{{{j{Bf}}{j{A`}}}Aj}76`{c{{Af{Cb}}}An}654{{{j{Bf}}{j{A`}}Ad}{{n{l}}}}4{{{j{Bf}}}Aj}3```{{{j{Bf}}Cd}{{n{Cb}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}`{{}c{}}````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{{Cf{e}}}}}AnCh}{Abl}`{{{j{A`}}}Aj}{{{j{{Cf{c}}}}{j{dBb}}}BdCh}{cc{}}{{}Ab}{{}c{}}{{{Cl{{Cj{c}}}}Ad}{{n{{Cf{c}}}}}Ch}`{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{jBl}{jAd}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{{Cf{c}}{j{A`}}}{{n{l}}}Ch}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{}Cn}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{Cn}}}An}{Abl}{{{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}8{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{{{j{Cn}}}Ad}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{Cn{j{A`}}}{{n{l}}}}````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{{D`{f}}}}}{{n{l}}}}{{{j{A`}}}{{n{l}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{{{j{A`}}}{{n{{h{f}}}}}}{cc{}}{{}Ab}{{}c{}}?>=<``:965{c{{Af{Db}}}An}5{{{j{A`}}}Aj}{{}Ad}543{{{j{Bf}}}Db}`{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{{{j{Db}}}Ad}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{Db{j{A`}}}{{n{l}}}}","D":"Gj","p":[[5,"ReadDir",290],[0,"mut"],[5,"PathBuf",291],[5,"Vec",292],[1,"reference",null,null,1],[1,"unit"],[8,"Result",293],[5,"Path",291],[1,"usize"],[5,"String",294],[6,"Result",295,null,1],[5,"TypeId",296],[1,"bool"],[6,"Snapshot",70],[10,"Deserializer",297],[5,"SnapshotFile",70],[5,"Formatter",298],[8,"Result",298],[1,"str"],[6,"Cow",299],[6,"Value",300],[5,"SmolStr",301],[5,"ChecksumFile",115],[5,"CircuitFile",138],[5,"Package",177],[6,"NetworkName",302],[5,"Env",204],[10,"Network",303],[5,"PrivateKey",304],[6,"Option",305,null,1],[5,"Gitignore",228],[1,"slice"],[5,"MainFile",268],[5,"BuildDirectory",11],[5,"ImportsDirectory",29],[5,"InputsDirectory",48],[5,"OutputsDirectory",161],[5,"SourceDirectory",251]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOUAKAABAA4AEQACABUAAAAZAAgAIwACACgAAAAsAAgANgACADsAAAA9AAUARgAEAE0ADgBeAAEAYgABAGYAFgB+AAAAgAABAIQABQCLAAgAlQAAAJcAAQCbAAUAogADAKcAAgCrAAAArgAGALYABAC8AAAAwQAJAM0ACgDZAAAA2wATAPAAAADyAAgA/AADAAIBAgAHAQAACQENABgBAAAaAQgA","P":[[13,"T"],[15,""],[16,"T"],[18,""],[19,"T"],[20,""],[21,"U"],[22,""],[24,"U,T"],[25,"U"],[26,""],[27,"V"],[31,"T"],[33,""],[34,"T"],[36,""],[38,"T"],[39,""],[40,"U"],[41,""],[43,"U,T"],[44,"U"],[45,""],[46,"V"],[50,"T"],[52,""],[53,"T"],[55,""],[57,"T"],[58,""],[59,"U"],[60,""],[61,"U,T"],[62,"U"],[63,""],[64,"V"],[77,"T"],[85,"__D"],[87,""],[91,"T"],[93,""],[95,"U"],[97,""],[103,"T"],[105,""],[107,"U,T"],[109,"U"],[111,""],[113,"V"],[117,"T"],[121,"__D"],[122,""],[124,"T"],[125,""],[126,"U"],[127,""],[132,"T"],[133,"U,T"],[134,"U"],[135,""],[136,"V"],[137,""],[140,"T"],[144,"__D"],[145,""],[147,"T"],[148,""],[149,"U"],[150,""],[155,"T"],[156,"U,T"],[157,"U"],[158,""],[159,"V"],[160,""],[163,"T"],[165,""],[166,"T"],[168,""],[169,"T"],[170,""],[171,"U"],[172,""],[173,"U,T"],[174,"U"],[175,""],[176,"V"],[178,"T"],[180,""],[181,"T"],[184,"__D"],[185,""],[186,"T"],[187,""],[189,"U"],[190,""],[196,"T"],[197,"U,T"],[198,"U"],[199,""],[201,"V"],[206,"T"],[210,"__D,N"],[211,""],[214,"N"],[215,"T"],[216,""],[217,"U"],[218,"N"],[220,"T"],[221,""],[223,"U,T"],[224,"U"],[225,""],[226,"V"],[227,"N"],[230,"T"],[232,""],[233,"T"],[235,"__D"],[236,""],[238,"T"],[239,""],[240,"U"],[241,""],[242,"T"],[243,""],[244,"U,T"],[245,"U"],[246,""],[247,"V"],[248,""],[253,"T"],[255,""],[257,"T"],[259,""],[261,"T"],[262,""],[263,"U"],[264,"U,T"],[265,"U"],[266,""],[267,"V"],[270,"T"],[274,"__D"],[275,""],[278,"T"],[279,""],[280,"U"],[281,""],[283,"T"],[284,""],[285,"U,T"],[286,"U"],[287,""],[288,"V"],[289,""]]}],["leo_parser",{"t":"SHCCCCCHHHCCSFNNNNNNNNNONNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNSHSSECCHHFNNNNNNNNNNHHNNNNNHNONNNNONNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPSPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["KEYWORD_TOKENS","parse_ast","parser","tokenizer","context","expression","file","parse","parse_expression","parse_statement","statement","type_","DUMMY_EOF","ParserContext","bin_expr","borrow","borrow_mut","bump","check","check_identifier","check_int","deref","deref_mut","disallow_struct_construction","drop","eat","eat_any","eat_bin_op","eat_group_partial","eat_identifier","eat_whole_number","emit_err","emit_warning","expect","expect_any","expect_identifier","from","handler","has_next","init","into","look_ahead","mk_ident_prev","new","node_builder","parse_additive_expression","parse_annotation","parse_array_expression","parse_assert_statement","parse_assign_statement","parse_associated_access_expression","parse_bin_expr","parse_bitwise_and_expression","parse_bitwise_exclusive_or_expression","parse_bitwise_inclusive_or_expression","parse_block","parse_boolean_and_expression","parse_boolean_or_expression","parse_bracket_comma_list","parse_cast_expression","parse_conditional_expression","parse_conditional_statement","parse_console_statement","parse_const_declaration_statement","parse_definition_statement","parse_equality_expression","parse_exponential_expression","parse_expr_tuple","parse_expression","parse_external_resource","parse_function","parse_import","parse_input","parse_list","parse_loop_statement","parse_mapping","parse_member_variable_declaration","parse_method_call_expression","parse_mode","parse_multiplicative_expression","parse_ordering_expression","parse_output","parse_paren_comma_list","parse_postfix_expression","parse_primary_expression","parse_primitive_type","parse_program","parse_program_scope","parse_return_statement","parse_shift_expression","parse_statement","parse_struct","parse_struct_init_expression","parse_struct_member","parse_struct_members","parse_tuple_expression","parse_type","parse_typed_ident","parse_unary_expression","peek_group_coordinate","peek_is_left_par","phantom","prev_token","program_name","token","token_to_int_type","tokens","try_from","try_into","type_id","unexpected","unexpected_item","vzip","INT_TYPES","assert_no_whitespace","ASSIGN_TOKENS","TYPE_TOKENS","KEYWORD_TOKENS","lexer","token","tokenize","tokenize_iter","SpannedToken","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","dummy","eat_identifier","ensure_no_bidi_override","fmt","","from","init","into","is_bidi_override","serialize","span","take_from_value","to_owned","to_smolstr","to_string","token","try_from","try_into","type_id","vzip","Add","AddAssign","Address","AddressLit","Aleo","And","AndAssign","Arrow","As","Assert","AssertEq","AssertNeq","Assign","Async","At","BigArrow","BitAnd","BitAndAssign","BitOr","BitOrAssign","BitXor","BitXorAssign","Block","Bool","Brace","Bracket","Colon","Comma","CommentBlock","CommentLine","Console","Const","Constant","Delimiter","Div","DivAssign","Dot","DotDot","DoubleColon","Else","Eof","Eq","False","Field","Fn","For","Function","Future","Group","Gt","GtEq","I128","I16","I32","I64","I8","Identifier","If","Import","In","Inline","Integer","KEYWORD_TOKENS","LeftCurly","LeftParen","LeftSquare","Leo","Let","Lt","LtEq","Mapping","Mul","MulAssign","Network","Not","NotEq","Or","OrAssign","Parenthesis","Pow","PowAssign","Private","Program","Public","Question","Record","Rem","RemAssign","Return","RightCurly","RightParen","RightSquare","Scalar","SelfLower","Semicolon","Shl","ShlAssign","Shr","ShrAssign","Signature","StaticString","String","Struct","Sub","SubAssign","Token","Transition","True","U128","U16","U32","U64","U8","Underscore","WhiteSpace","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","drop","","eat","eat_integer","eq","equivalent","","","","fmt","","from","","init","","into","","is_keyword","keyword_to_symbol","open_close_pair","serialize","take_from_value","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip",""],"q":[[0,"leo_parser"],[4,"leo_parser::parser"],[12,"leo_parser::parser::context"],[113,"leo_parser::parser::expression"],[115,"leo_parser::parser::statement"],[116,"leo_parser::parser::type_"],[117,"leo_parser::tokenizer"],[122,"leo_parser::tokenizer::lexer"],[152,"leo_parser::tokenizer::token"],[316,"leo_errors::emitter"],[317,"leo_ast::common::node_builder"],[318,"leo_span::span"],[319,"leo_ast"],[320,"leo_errors::errors"],[321,"leo_ast::program"],[322,"leo_ast::expressions"],[323,"leo_ast::statement"],[324,"leo_ast::expressions::binary"],[325,"snarkvm_console_network"],[326,"leo_ast::common::identifier"],[327,"core::option"],[328,"leo_ast::groups::group_literal"],[329,"leo_ast::common::positive_number"],[330,"leo_errors::errors::parser::parser_errors"],[331,"leo_errors::errors::parser::parser_warnings"],[332,"core::ops::function"],[333,"leo_span::symbol"],[334,"alloc::vec"],[335,"leo_ast::functions::annotation"],[336,"leo_ast::statement::block"],[337,"leo_ast::statement::conditional"],[338,"leo_ast::statement::console::console_statement"],[339,"leo_ast::statement::const_"],[340,"leo_ast::statement::definition"],[341,"leo_ast::functions"],[342,"leo_ast::functions::input"],[343,"leo_ast::statement::iteration"],[344,"leo_ast::mapping"],[345,"leo_ast::struct::member"],[346,"leo_ast::functions::mode"],[347,"leo_ast::functions::output"],[348,"leo_ast::types::type_"],[349,"leo_ast::program::program_scope"],[350,"leo_ast::statement::return_"],[351,"leo_ast::struct"],[352,"leo_ast::expressions::struct_init"],[353,"leo_ast::groups::group_coordinate"],[354,"leo_ast::types::integer_type"],[355,"core::result"],[356,"core::any"],[357,"core::fmt"],[358,"core::iter::traits::iterator"],[359,"serde::de"],[360,"core::iter::adapters::peekable"],[361,"alloc::string"],[362,"serde::ser"],[363,"serde_json::value"],[364,"smol_str"]],"i":"``````````````Aj00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``````````Ch000000000``00000`00000000000B`00000000000000000000000Ed01111111`1111111111111111111111111111`111111111111111011111111111111111111111111`1111111111010101010101011011111111110101011011101110101010","f":"`{{{d{b}}{d{f}}{d{h}}j}{{n{l}}}}`````{{{d{b}}{d{f}}{d{h}}j}{{n{A`}}}}{{{d{b}}{d{f}}{d{h}}j}{{n{Ab}}}}{{{d{b}}{d{f}}{d{h}}j}{{n{Ad}}}}````{{{d{f}}AbAbAf}Ab}{d{{d{c}}}{}}{{{d{Ah}}}{{d{Ahc}}}{}}{{{d{Ah{Aj{c}}}}}AlAn}{{{d{{Aj{c}}}}{d{B`}}}BbAn}{{{d{{Aj{c}}}}{d{Bd}}}AlAn}{{{d{{Aj{c}}}}}BbAn}{Bf{{d{c}}}{}}{Bf{{d{Ahc}}}{}}`{BfAl}{{{d{Ah{Aj{c}}}}{d{B`}}}BbAn}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}BbAn}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}{{Bj{Af}}}An}{{{d{Ah{Aj{c}}}}}{{Bj{{n{Bl}}}}}An}{{{d{Ah{Aj{c}}}}}{{Bj{Bd}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{BnC`}}}}}An}{{{d{{Aj{c}}}}Cd}AlAn}{{{d{{Aj{c}}}}Cf}AlAn}{{{d{Ah{Aj{c}}}}{d{B`}}}{{n{C`}}}An}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}{{n{C`}}}An}{{{d{Ah{Aj{c}}}}}{{n{Bd}}}An}{cc{}}`?{{}Bf}{{}c{}}{{{d{{Aj{c}}}}Bfg}eAn{}{{Cl{{d{Ch}}}{{Cj{e}}}}}}{{{d{{Aj{c}}}}Cn}BdAn}{{{d{b}}{d{f}}{D`{Ch}}}{{Aj{c}}}An}`{{{d{Ah{Aj{c}}}}}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{Db}}}An}1{{{d{Ah{Aj{c}}}}}{{n{Ad}}}An}0{{{d{Ah{Aj{c}}}}Ab}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}e}{{n{Ab}}}An{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{Ab}}}}}}}}444{{{d{Ah{Aj{c}}}}}{{n{Df}}}An}55{{{d{Ah{Aj{c}}}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}66{{{d{Ah{Aj{c}}}}}{{n{Dh}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dj}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dl}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dn}}}An}::{{{d{Ah{Aj{c}}}}}{{n{{Cb{{D`{Ab}}BbC`}}}}}An};{{{d{Ah{Aj{c}}}}AbC`}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnE`}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{Cn{Cb{A`C`}}}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{Eb}}}An}{{{d{Ah{Aj{c}}}}Ed{Bj{B`}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}{{{d{Ah{Aj{c}}}}}{{n{Ef}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnEh}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{Ej}}}An}{{{d{Ah{Aj{c}}}}AbBd}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{El}}}An}{{{d{Ah{Aj{c}}}}}{{n{Ab}}}An}0{{{d{Ah{Aj{c}}}}}{{n{En}}}An}{{{d{Ah{Aj{c}}}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}22{{{d{Ah{Aj{c}}}}}{{n{{Cb{F`C`}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{A`}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fb}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fd}}}An}6{{{d{Ah{Aj{c}}}}}{{n{Ad}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnFf}}}}}An}{{{d{Ah{Aj{c}}}}Bd}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fh}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{{D`{Ej}}C`}}}}}An};8{{{d{Ah{Aj{c}}}}}{{n{{Cb{BdF`C`}}}}}An}<{{{d{{Aj{c}}}}{d{AhBf}}}{{Bj{Fj}}}An}{{{d{{Aj{c}}}}}BbAn}````{{{d{B`}}}{{Bj{Fl}}}}`{c{{Fn{e}}}{}{}}{{}{{Fn{c}}}{}}{dG`}{{{d{{Aj{c}}}}e}{{n{g}}}AnGb{}}{{{d{Ch}}{d{{Bh{B`}}}}}Cd}{{}c{}}`{{C`C`{d{h}}{d{h}}}{{n{Al}}}}`````{{{d{h}}j}{{n{{D`{Ch}}}}}}{{{d{h}}j}{{`{{Gf{}{{Gd{{n{Ch}}}}}}}}}}`{d{{d{c}}}{}}{{{d{Ah}}}{{d{Ahc}}}{}}{{{d{Ch}}}Ch}{{d{d{Ahc}}}Al{}}{{dGh}Al}{Bf{{d{c}}}{}}{Bf{{d{Ahc}}}{}}{c{{Fn{Ch}}}Gj}{BfAl}{{}Ch}{{{d{Ah{Gl{c}}}}}{{Bj{Gn}}}{{Gf{}{{Gd{H`}}}}}}{{{d{h}}}{{n{Al}}}}{{{d{Ch}}{d{AhHb}}}Hd}0{cc{}}{{}Bf}{{}c{}}{H`Bb}{{{d{Ch}}c}FnHf}`{{{d{AhHh}}{d{h}}}{{Fn{c}}}{}}{dc{}}{dHj}{dGn}`{c{{Fn{e}}}{}{}}{{}{{Fn{c}}}{}}{dG`}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}0{{{d{Ah}}}{{d{Ahc}}}{}}0{{{d{B`}}}B`}{{{d{Ed}}}Ed}{{d{d{Ahc}}}Al{}}0{{dGh}Al}0{Bf{{d{c}}}{}}0{Bf{{d{Ahc}}}{}}0{c{{Fn{B`}}}Gj}{BfAl}0{{{d{h}}}{{n{{Cb{BfB`}}}}}}{{{d{Ah{Gl{c}}}}}{{n{{Cb{BfB`}}}}}{{Gf{}{{Gd{H`}}}}}}{{{d{B`}}{d{B`}}}Bb}{{d{d{c}}}Bb{}}000{{{d{B`}}{d{AhHb}}}Hd}0{cc{}}0{{}Bf}0{{}c{}}0{{{d{B`}}}Bb}{{{d{B`}}}{{Bj{Cn}}}}{Ed{{Cb{B`B`}}}}{{{d{B`}}c}FnHf}{{{d{AhHh}}{d{h}}}{{Fn{c}}}{}}{dc{}}0{dHj}{dGn}{c{{Fn{e}}}{}{}}0{{}{{Fn{c}}}{}}0{dG`}0{{}c{}}0","D":"Nj","p":[[5,"Handler",316],[1,"reference",null,null,1],[5,"NodeBuilder",317],[1,"str"],[5,"BytePos",318],[5,"Ast",319],[8,"Result",320],[5,"Program",321],[6,"Expression",322],[6,"Statement",323],[6,"BinaryOperation",324],[0,"mut"],[5,"ParserContext",12],[1,"unit"],[10,"Network",325],[6,"Token",152],[1,"bool"],[5,"Identifier",326],[1,"usize"],[1,"slice"],[6,"Option",327,null,1],[5,"GroupTuple",328],[5,"NonNegativeNumber",329],[5,"Span",318],[1,"tuple",null,null,1],[6,"ParserError",330],[6,"ParserWarning",331],[5,"SpannedToken",122],[17,"Output"],[10,"FnOnce",332],[5,"Symbol",333],[5,"Vec",334],[5,"Annotation",335],[10,"FnMut",332],[5,"Block",336],[5,"ConditionalStatement",337],[5,"ConsoleStatement",338],[5,"ConstDeclaration",339],[5,"DefinitionStatement",340],[5,"Function",341],[5,"Input",342],[6,"Delimiter",152],[5,"IterationStatement",343],[5,"Mapping",344],[5,"Member",345],[6,"Mode",346],[5,"Output",347],[6,"Type",348],[5,"ProgramScope",349],[5,"ReturnStatement",350],[5,"Composite",351],[5,"StructVariableInitializer",352],[6,"GroupCoordinate",353],[6,"IntegerType",354],[6,"Result",355,null,1],[5,"TypeId",356],[10,"Display",357],[17,"Item"],[10,"Iterator",358],[1,"u8"],[10,"Deserializer",359],[5,"Peekable",360],[5,"String",361],[1,"char"],[5,"Formatter",357],[8,"Result",357],[10,"Serializer",362],[6,"Value",363],[5,"SmolStr",364]],"r":[[0,152],[117,152]],"b":[[135,"impl-Display-for-SpannedToken"],[136,"impl-Debug-for-SpannedToken"],[291,"impl-Debug-for-Token"],[292,"impl-Display-for-Token"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMcAFgAFAAIACQADABAAAQAWAAEAGQAAACgAAABeAAAAZgAAAGwAAgBwAAgAewAJAIgAAQCLAAAAjgAiALMABgC7ABsA2AAOAOgAGQADARkAHwEGACgBAQAvAQ0A","P":[[15,"T"],[17,"N"],[21,"T"],[24,""],[25,"N"],[36,"T"],[38,"N"],[39,""],[40,"U"],[41,"N,R,"],[42,"N"],[51,"N,"],[52,"N"],[58,"N,T,"],[59,"N"],[73,"N,T,"],[74,"N"],[82,"N,T,"],[83,"N"],[105,""],[107,"U,T"],[108,"U"],[109,""],[110,"N,,T"],[111,""],[112,"V"],[114,""],[123,"T"],[125,""],[126,"T"],[127,""],[128,"T"],[130,"__D"],[131,""],[133,""],[134,""],[137,"T"],[138,""],[139,"U"],[140,""],[141,"__S"],[143,"T"],[145,""],[148,"U,T"],[149,"U"],[150,""],[151,"V"],[267,"T"],[271,""],[273,"T"],[275,""],[277,"T"],[281,"__D"],[282,""],[285,""],[286,""],[287,"K"],[291,""],[293,"T"],[295,""],[297,"U"],[299,""],[302,"__S"],[303,"T"],[306,""],[308,"U,T"],[310,"U"],[312,""],[314,"V"]]}],["leo_passes",{"t":"FCCCCCCOOCCOCCOOCCCCCCCFONNOOONNNNONONNNOOOOOONNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSECCCCCCCFFNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNIPFGIKINNNNNNNNNNNNNOOOONNNNNNNNNNNNNNOOOONNNNNNNNNNFNNNNNNNNNNNNNNNNONNNNNONONNNNNNFNNNNNNNNNNONNNNPFFPFFPFFGONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNHONNNNNNOOOOOOONNNONNNNNNNNNNNNOONNNNNNNOOOOCNNNNNNNNONNNONNNPFFPPFGNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNOOONNNNNNNNONNNONNNNNNNNNNNNNNNNNNNONNNNNNNNIKFNNNNNOONOONNNOONNNNNNNNNNNNNNNNFNNNNNNNNNNNNNONNNNNNNCCCCFNNNNNNNNNOONONNNNNNNNNNNNNNNNONCCCCFONNNNNNNNNONONNNNNNNNNNNNONONCCCCPPFGPGPPONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNNNNONONNNNNNNNNNNNNNONNNNOOCCCCCFONNNNNNNNNONNNNNNNNNONNNNFONNONNNNNNNONOONNNNNNNNNNONNNONCCCCCGPPKFNNNNOONNNNNNONNNNNNNNNNNNNNNNNNFNNONNNNNNONNNONONNNNNNNNNONNNONNNRRKMCCCCCCFNNONNONNNNNNNONNNOOONNNOONNNNNNFNNNNNNONNNNNONNNOONNNNPPPFPPGPPNNNNNNNNNNNNNNNNNNHONNNNNNNNNNNONNNNNNNNCCCCFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONONONONNNONNFNNNNNNNONNONOOONNNNNNNNNNNNCCCCCFFNNNNNNNNNNNOONNNNONNNNONNNNNNNNNNNNNNONNNNNNNNONOOONNNOONONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNNOOOONNNOOONNONNNON","n":["SymbolTableCreator","code_generation","common","dead_code_elimination","destructuring","flattening","function_inlining","handler","is_stub","loop_unrolling","pass","program_name","static_analysis","static_single_assignment","structs","symbol_table","symbol_table_creation","type_checking","generator","visit_expressions","visit_program","visit_statements","visit_type","CodeGenerator","_call_graph","borrow","borrow_mut","composite_mapping","conditional_depth","current_function","deref","deref_mut","do_pass","drop","finalize_caller","from","global_mapping","init","into","new","next_label","next_register","program","program_id","struct_graph","symbol_table","try_from","try_into","type_id","type_table","variable_mapping","variant","visit_access","visit_array","visit_array_access","visit_assert","visit_assign","visit_associated_constant","visit_associated_function","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_with","visit_identifier","visit_iteration","visit_locator","visit_mapping","visit_member_access","visit_program","visit_record","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_or_record","visit_ternary","visit_tuple","visit_type","visit_type_with_visibility","visit_unary","visit_unit","visit_value","vzip","EXPECT_STR","ConditionalTreeNode","assigner","graph","rename_table","replacer","symbol_table","tree_node","type_table","Assigner","AssignerInner","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","counter","default","","deref","","deref_mut","","drop","","fmt","","from","","init","","inner","into","","simple_assign_statement","","to_owned","","try_from","","try_into","","type_id","","unique_symbol","","vzip","","CallGraph","CycleDetected","DiGraph","DiGraphError","ImportGraph","Node","StructGraph","add_edge","borrow","","borrow_mut","","contains_cycle_from","contains_node","deref","","deref_mut","","drop","","edges","","","","eq","equivalent","","","","fmt","","from","","init","","into","","new","nodes","","","","post_order","retain_nodes","try_from","","try_into","","type_id","","vzip","","RenameTable","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","eq","equivalent","","","","fmt","from","ids","init","into","local_names","lookup","lookup_id","names","new","parent","to_owned","try_from","try_into","type_id","update","vzip","Replacer","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","new","reconstruct_identifier","replace","try_from","try_into","type_id","vzip","Const","Finalizer","FunctionSymbol","Input","LocalTable","LocalTableInner","Mut","SymbolTable","VariableSymbol","VariableType","all_locals","attach_finalizer","borrow","","","borrow_mut","","","check_shadow_global","check_shadow_variable","clone","","clone_into","","clone_to_uninit","","consts","declaration","default","","","deref","","","deref_mut","","","drop","","","enter_parent","enter_scope","eq_struct","finalizer","fmt","","","from","","","function","functions","future_inputs","global_consts","globals","id","inferred_inputs","init","","","inner","insert_const","insert_function","insert_global","insert_record","insert_struct","insert_variable","into","","","iter_functions","iter_records","iter_structs","local","location","lookup_const","lookup_function","lookup_global","lookup_record","lookup_struct","lookup_variable","new","parent","records","span","structs","symbols","to_owned","","try_from","","","try_into","","","type_","type_id","","","variables","vzip","","","Const","Finalizer","FunctionSymbol","Input","Mut","VariableSymbol","VariableType","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","declaration","deref","","","","deref_mut","","","","deserialize","","","drop","","","","eq","","","equivalent","","","","","","","","finalizer","fmt","","","","","","from","","","","function","future_inputs","inferred_inputs","init","","","","into","","","","location","serialize","","","span","take_from_value","","","to_owned","","","","to_smolstr","","to_string","","try_from","","","","try_into","","","","type_","type_id","","","","vzip","","","","ConditionalTreeNode","Node","TreeNode","borrow","borrow_mut","clone","clone_into","clone_to_uninit","counter","","create_child","depth","","deref","deref_mut","drop","elements","","eq","equivalent","","","","fmt","from","init","into","new","remove_element","to_owned","try_from","try_into","type_id","vzip","TypeTable","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","fmt","from","get","init","inner","insert","into","to_owned","try_from","try_into","type_id","vzip","dead_code_eliminator","eliminate_expression","eliminate_program","eliminate_statement","DeadCodeEliminator","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","init","into","is_async","is_necessary","new","node_builder","reconstruct_assert","reconstruct_assign","reconstruct_associated_function","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_expression_statement","reconstruct_function","reconstruct_identifier","reconstruct_iteration","reconstruct_return","reconstruct_struct_init","try_from","try_into","type_id","used_variables","vzip","destructure_expression","destructure_program","destructure_statement","destructurer","Destructurer","assigner","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","init","into","is_async","new","node_builder","reconstruct_assign","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_function","reconstruct_iteration","reconstruct_return","reconstruct_tuple_access","simple_assign_statement","try_from","try_into","tuples","type_id","type_table","vzip","flatten_expression","flatten_program","flatten_statement","flattener","Constructed","","Flattener","Guard","None","ReturnGuard","Unconstructed","","assigner","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","condition_stack","construct_early_return_guard","construct_guard","deref","","","deref_mut","","","do_pass","drop","","","fold_guards","fold_returns","from","","","identifier","init","","","into","","","is_async","new","node_builder","program","reconstruct_assert","reconstruct_assign","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_function","reconstruct_iteration","reconstruct_program_scope","reconstruct_return","reconstruct_struct_init","reconstruct_ternary","returns","simple_assign_statement","symbol_table","ternary_array","ternary_struct","ternary_tuple","to_owned","","try_from","","","try_into","","","type_id","","","type_table","unique_simple_assign_statement","vzip","","","any_return","plain","assignment_renamer","function_inliner","inline_expression","inline_program","inline_statement","AssignmentRenamer","assigner","borrow","borrow_mut","clear","deref","deref_mut","drop","from","init","into","is_lhs","load","new","reconstruct_assign","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_identifier","reconstruct_iteration","reconstruct_struct_init","rename_table","try_from","try_into","type_id","vzip","FunctionInliner","assignment_renamer","borrow","borrow_mut","call_graph","deref","deref_mut","do_pass","drop","from","init","into","is_async","new","node_builder","program","reconstruct_assign","reconstruct_block","reconstruct_call","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_expression_statement","reconstruct_function","reconstruct_iteration","reconstruct_program_scope","reconstructed_functions","try_from","try_into","type_id","type_table","vzip","range_iterator","unroll_expression","unroll_program","unroll_statement","unroller","Clusivity","Exclusive","Inclusive","LoopBound","RangeIterator","borrow","","borrow_mut","","clusivity","current","deref","","deref_mut","","drop","","end","from","","init","","into","","into_iter","new","next","progress_with","try_from","","try_into","","type_id","","vzip","","Unroller","borrow","borrow_mut","current_program","deref","deref_mut","do_pass","drop","emit_err","from","handler","in_scope","init","into","is_unrolling","new","node_builder","reconstruct_array_access","reconstruct_block","reconstruct_const","reconstruct_definition","reconstruct_function","reconstruct_identifier","reconstruct_iteration","reconstruct_program_scope","reconstruct_stub","symbol_table","try_from","try_into","type_id","type_table","unroll_iteration_statement","unroll_single_iteration","vzip","Input","Output","Pass","do_pass","analyze_expression","analyze_program","analyze_statement","analyzer","await_checker","future_checker","StaticAnalyzer","assert_future_await","assert_simple_async_transition_call","await_checker","borrow","borrow_mut","current_program","deref","deref_mut","do_pass","drop","emit_err","emit_warning","from","handler","init","into","new","non_async_external_call_seen","phantom","symbol_table","try_from","try_into","type_id","type_table","variant","visit_access","visit_call","visit_conditional","visit_function","visit_program_scope","vzip","AwaitChecker","borrow","borrow_mut","create_then_scope","deref","deref_mut","drop","enabled","exit_statement_scope","exit_then_scope","from","init","into","max_depth","new","remove","set_futures","static_to_await","to_await","try_from","try_into","type_id","vzip","Await","Definition","FunctionArgument","FutureChecker","LastTupleLiteral","Misc","Position","Return","TupleAccess","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deref","","deref_mut","","drop","","emit_err","fmt","from","","future_check_function","handler","init","","into","","to_owned","try_from","","try_into","","type_id","","type_table","visit_access","visit_call","visit_definition","visit_expression","visit_return","visit_tuple","vzip","","rename_expression","rename_program","rename_statement","static_single_assigner","StaticSingleAssigner","assigner","borrow","borrow_mut","consume_access","consume_array","consume_assert","consume_assign","consume_binary","consume_block","consume_call","consume_cast","consume_conditional","consume_console","consume_const","consume_definition","consume_expression_statement","consume_function","consume_identifier","consume_iteration","consume_literal","consume_locator","consume_program","consume_program_scope","consume_return","consume_struct","consume_struct_init","consume_ternary","consume_tuple","consume_unary","consume_unit","deref","deref_mut","do_pass","drop","from","init","into","is_lhs","new","node_builder","pop","program","push","rename_table","simple_assign_statement","symbol_table","try_from","try_into","type_id","type_table","unique_simple_assign_statement","vzip","SymbolTableCreator","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","handler","init","into","is_stub","new","program_name","structs","symbol_table","try_from","try_into","type_id","visit_function","visit_function_stub","visit_import","visit_mapping","visit_program_scope","visit_struct","visit_struct_stub","visit_stub","vzip","check_expressions","check_program","check_statements","checker","scope_state","NetworkLimits","TypeChecker","assert_and_return_type","assert_array_type","assert_bool_int_type","assert_field_group_int_type","assert_field_int_type","assert_int_type","assert_mapping_type","assert_member_is_not_record","assert_type","assert_type_is_valid","assert_unsigned_type","async_function_callers","async_function_input_types","borrow","","borrow_mut","","call_graph","check_access_allowed","check_core_function_call","check_eq_types","check_function_signature","conditional_scopes","deref","","deref_mut","","do_pass","drop","","emit_err","emit_warning","eq_user","from","","get_core_constant","get_core_function_call","handler","in_conditional_scope","in_scope","init","","insert_symbol_conditional_scope","insert_variable","into","","limits","lookup_struct","max_array_elements","max_functions","max_mappings","maybe_assert_type","merge_types","new","scope_state","struct_graph","symbol_in_conditional_scope","symbol_table","try_from","","try_into","","type_id","","type_table","used_structs","visit_access","visit_array","visit_assert","visit_assign","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_const","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_stub","visit_identifier","visit_iteration","visit_literal","visit_locator","visit_mapping","visit_program","visit_program_scope","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_stub","visit_stub","visit_ternary","visit_tuple","visit_unary","visit_unit","vzip","","ScopeState","borrow","borrow_mut","call_location","deref","deref_mut","drop","from","function","futures","has_called_finalize","has_return","init","initialize_function_state","into","is_call","is_conditional","is_stub","location","new","program_name","try_from","try_into","type_id","variant","vzip"],"q":[[0,"leo_passes"],[18,"leo_passes::code_generation"],[23,"leo_passes::code_generation::generator"],[91,"leo_passes::code_generation::visit_program"],[92,"leo_passes::common"],[100,"leo_passes::common::assigner"],[144,"leo_passes::common::graph"],[196,"leo_passes::common::rename_table"],[228,"leo_passes::common::replacer"],[244,"leo_passes::common::symbol_table"],[347,"leo_passes::common::symbol_table::symbols"],[456,"leo_passes::common::tree_node"],[490,"leo_passes::common::type_table"],[512,"leo_passes::dead_code_elimination"],[516,"leo_passes::dead_code_elimination::dead_code_eliminator"],[548,"leo_passes::destructuring"],[552,"leo_passes::destructuring::destructurer"],[582,"leo_passes::flattening"],[586,"leo_passes::flattening::flattener"],[670,"leo_passes::flattening::flattener::ReturnGuard"],[672,"leo_passes::function_inlining"],[677,"leo_passes::function_inlining::assignment_renamer"],[703,"leo_passes::function_inlining::function_inliner"],[735,"leo_passes::loop_unrolling"],[740,"leo_passes::loop_unrolling::range_iterator"],[776,"leo_passes::loop_unrolling::unroller"],[810,"leo_passes::pass"],[814,"leo_passes::static_analysis"],[820,"leo_passes::static_analysis::analyzer"],[852,"leo_passes::static_analysis::await_checker"],[875,"leo_passes::static_analysis::future_checker"],[924,"leo_passes::static_single_assignment"],[928,"leo_passes::static_single_assignment::static_single_assigner"],[981,"leo_passes::symbol_table_creation"],[1009,"leo_passes::type_checking"],[1014,"leo_passes::type_checking::checker"],[1118,"leo_passes::type_checking::scope_state"],[1144,"leo_ast::program"],[1145,"core::result"],[1146,"core::any"],[1147,"leo_ast::expressions::access"],[1148,"alloc::string"],[1149,"leo_ast::expressions::array"],[1150,"leo_ast::access::array_access"],[1151,"leo_ast::statement::assert"],[1152,"leo_ast::statement::assign"],[1153,"leo_ast::access::associated_constant_access"],[1154,"leo_ast::access::associated_function_access"],[1155,"leo_ast::expressions::binary"],[1156,"leo_ast::statement::block"],[1157,"leo_ast::expressions::call"],[1158,"leo_ast::expressions::cast"],[1159,"leo_ast::statement::conditional"],[1160,"leo_ast::statement::console::console_statement"],[1161,"leo_ast::statement::definition"],[1162,"leo_ast::expressions::err"],[1163,"leo_ast::expressions"],[1164,"leo_ast::statement::expression"],[1165,"leo_ast::functions"],[1166,"leo_ast::common::location"],[1167,"leo_ast::common::identifier"],[1168,"leo_ast::statement::iteration"],[1169,"leo_ast::expressions::locator"],[1170,"leo_ast::mapping"],[1171,"leo_ast::access::member_access"],[1172,"leo_ast::struct"],[1173,"leo_ast::statement::return_"],[1174,"leo_ast::statement"],[1175,"leo_ast::expressions::struct_init"],[1176,"leo_ast::expressions::ternary"],[1177,"leo_ast::expressions::tuple"],[1178,"leo_ast::types::type_"],[1179,"leo_ast::functions::mode"],[1180,"leo_ast::expressions::unary"],[1181,"leo_ast::expressions::unit"],[1182,"leo_ast::expressions::literal"],[1183,"core::fmt"],[1184,"leo_ast::common::node"],[1185,"leo_span::symbol"],[1186,"indexmap::set"],[1187,"core::option"],[1188,"core::cmp"],[1189,"core::iter::traits::iterator"],[1190,"alloc::boxed"],[1191,"core::ops::function"],[1192,"alloc::vec"],[1193,"leo_errors::errors"],[1194,"leo_span::span"],[1195,"serde::de"],[1196,"serde::ser"],[1197,"serde_json::value"],[1198,"smol_str"],[1199,"core::clone"],[1200,"leo_ast::common::node_builder"],[1201,"leo_ast::access::tuple_access"],[1202,"leo_ast::program::program_scope"],[1203,"leo_ast::types::array"],[1204,"leo_ast::types::tuple"],[1205,"indicatif::progress_bar"],[1206,"indicatif::iter"],[1207,"leo_errors::errors::loop_unroller::loop_unroller_errors"],[1208,"leo_errors::emitter"],[1209,"leo_ast::statement::const_"],[1210,"leo_ast::stub"],[1211,"snarkvm_console_network"],[1212,"leo_errors::errors::static_analyzer::static_analyzer_error"],[1213,"leo_errors::errors::static_analyzer::static_analyzer_warning"],[1214,"leo_ast::stub::function_stub"],[1215,"leo_ast::functions::core_function"],[1216,"leo_errors::errors::type_checker::type_checker_error"],[1217,"leo_errors::errors::type_checker::type_checker_warning"],[1218,"leo_ast::types::core_constant"],[1219,"leo_ast::functions::variant"]],"i":"```````Of0``0``00````````Ad000000000000000000000000000000000000000000000000000000000000000000```````````FfFh1010101001010101010101011010101010101010`Hb`````Gf101000101010nA`A@j33333343434343321033343434343`Hf000000000000000000000000000000`Hn00000000000000Jb``0``0```j00IjIl210221010100In32132132132133`J`43243204Jd553054345555555435555055555543525`43543543254335436``66``621062106210621062102621062106206210620666622221662210621010062106210062026206210626262106210262106210```K`0000Nn1101111011111111111111111`l00000000000000000000`````Kh000000000000000000000000000000`````Kj0000000000000000000000000000````KnL```0`10Lb021021212121000021021002100021202102100000000000000000000002102102102100021A@l0``````Lj000000000000000000000000`Ll000000000000000000000000000000``````Ln0``0M`10001010100101010000010101010`Mh00000000000000000000000000000000A@n0`0```````Nd000000000000000000000000000000`Nl000000000000000000000O`00`00`00Ob10111110101010101`001011010101000000001`````Od000000000000000000000000000000000000000000000000000`Of00000000000000000000000000```````Oj000000000000A@d1011111110101101111011111101110111000111111101010111111111111111111111111111111111111101`A@f000000000000000000000000","f":"`````````````````````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}```{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}`{cc{}}`{{}f}{{}c{}}{{{b{j}}{b{l}}{b{n}}{b{A`}}{b{Ab}}}Ad}``````{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}```{{{b{dAd}}{b{Aj}}}{{An{AlAl}}}}{{{b{dAd}}{b{B`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bd}}}Al}{{{b{dAd}}{b{Bf}}}Al}{{{b{dAd}}{b{Bh}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bl}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bn}}}Al}{{{b{dAd}}{b{C`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cd}}}Al}{{{b{dAd}}{b{Cf}}}Al}{{{b{dAd}}{b{Ch}}}Al}{{{b{dAd}}{b{Cj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cl}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cn}}}Al}{{{b{dAd}}{b{D`}}}Al}{{{b{dAd}}{b{D`}}{b{{Dd{Db}}}}}Al}{{{b{dAd}}{b{Df}}}{{An{AlAl}}}}{{{b{dAd}}{b{Dh}}}Al}{{{b{dAd}}{b{Dj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Dl}}}Al}{{{b{dAd}}{b{Dn}}}{{An{AlAl}}}}{{{b{dAd}}{b{Ab}}}Al}{{{b{dAd}}{b{E`}}}Al}{{{b{dAd}}{b{Eb}}}Al}{{{b{dAd}}{b{Ed}}}Al}2{{{b{dAd}}{b{Ef}}}{{An{AlAl}}}}3{{{b{dAd}}{b{Eh}}}{{An{AlAl}}}}{{{b{dAd}}{b{Ej}}}{{An{AlAl}}}}{{{b{El}}}Al}{{{b{Ad}}{b{El}}En}Al}{{{b{dAd}}{b{F`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Fb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Fd}}}{{An{AlAl}}}}{{}c{}}```````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Ff}}}Ff}{{{b{Fh}}}Fh}{{b{b{dc}}}h{}}0{{bFj}h}0`{{}Ff}{{}Fh}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{Ff}}{b{dFl}}}Fn}{{{b{Fh}}{b{dFl}}}Fn}{cc{}}0{{}f}0`{{}c{}}0{{{b{Ff}}DfClG`}Ed}{{{b{dFh}}DfClG`}Ed}{bc{}}0{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0{{{b{Ff}}ce}GbGdGd}{{{b{dFh}}ce}GbGdGd}{{}c{}}0```````{{{b{d{Gf{c}}}}cc}hGh}{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{{Gf{c}}}}c{b{d{Gj{c}}}}{b{d{Gj{c}}}}}{{Gl{c}}}Gh}{{{b{{Gf{c}}}}c}GnGh}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0````{{{b{{Gf{c}}}}{b{{Gf{c}}}}}Gn{H`Gh}}{{b{b{c}}}Gn{}}000{{{b{{Hb{c}}}}{b{dFl}}}Fn{HdGh}}{{{b{{Gf{c}}}}{b{dFl}}}Fn{HdGh}}{cc{}}0{{}f}0{{}c{}}0{{{Gj{c}}}{{Gf{c}}}Gh}````{{{b{{Gf{c}}}}}{{Af{{Gj{c}}{Hb{c}}}}}Gh}{{{b{d{Gf{c}}}}{b{{Gj{c}}}}}hGh}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0{{}c{}}0`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Hf}}}Hf}{{b{b{dc}}}h{}}{{bFj}h}{{}Hf}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{Hf}}{b{Hf}}}Gn}{{b{b{c}}}Gn{}}000{{{b{Hf}}{b{dFl}}}Fn}{cc{}}`{{}f}{{}c{}}{{{b{Hf}}}{{`{{Hj{}{{Hh{{b{Gb}}}}}}}}}}{{{b{Hf}}Gb}{{Gl{{b{Gb}}}}}}{{{b{Hf}}{b{Gb}}}{{Gl{{b{G`}}}}}}`{{{Gl{{Hl{Hf}}}}}Hf}`{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{{b{dHf}}GbGbG`}h}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}{{}f}{{}c{}}{c{{Hn{c}}}{{Ib{{b{Df}}}{{I`{Cl}}}}}}{{{b{d{Hn{c}}}}Df}{{An{Cle}}}{{Ib{{b{Df}}}{{I`{Cl}}}}}{}}`>=<:```````````{{{b{dj}}DbDb{Id{Db}}{Id{El}}}{{If{h}}}}:::999{{{b{j}}DbIh}{{If{h}}}}{{{b{j}}GbGbIh}{{If{h}}}}{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{b{b{dc}}}h{}}0{{bFj}h}0``{{}j}{{}Ij}{{}Il}{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{fh}00{{{b{dj}}}h}{{{b{dj}}{Gl{G`}}}h}{{{b{E`}}{b{E`}}}Gn}`{{{b{j}}{b{dFl}}}Fn}{{{b{Ij}}{b{dFl}}}Fn}{{{b{Il}}{b{dFl}}}Fn}{cc{}}00```````{{}f}00`{{{b{dj}}GbGbCl}h}{{{b{dj}}DbD`}{{If{h}}}}{{{b{dj}}DbIn}{{If{h}}}}{{{b{dj}}DbE`}{{If{h}}}}{{{b{dj}}GbGbE`}{{If{h}}}}{{{b{dj}}GbGbIn}{{If{h}}}}{{}c{}}00{{{b{j}}}{{`{{Hj{}{{Hh{{An{Db{b{J`}}}}}}}}}}}}{{{b{j}}}{{`{{Hj{}{{Hh{{An{Db{b{E`}}}}}}}}}}}}{{{b{j}}}{{`{{Hj{}{{Hh{{An{Gb{b{E`}}}}}}}}}}}}``{{{b{j}}GbGb}{{Gl{Cl}}}}{{{b{j}}Db}{{Gl{{b{J`}}}}}}{{{b{j}}Db}{{Gl{{b{In}}}}}}{{{b{j}}Db}{{Gl{{b{E`}}}}}}{{{b{j}}Gb}{{Gl{{b{E`}}}}}}{{{b{j}}GbGb}{{Gl{In}}}}{{G`{Gl{G`}}}Ij}`````{bc{}}0{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00`{bAh}00`{{}c{}}00```````{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{Jb}}}Jb}{{{b{In}}}In}{{{b{J`}}}J`}{{{b{Jd}}}Jd}{{b{b{dc}}}h{}}000{{bFj}h}000`{f{{b{c}}}{}}000{f{{b{dc}}}{}}000{c{{Af{Jb}}}Jf}{c{{Af{In}}}Jf}{c{{Af{Jd}}}Jf}{fh}000{{{b{Jb}}{b{Jb}}}Gn}{{{b{In}}{b{In}}}Gn}{{{b{Jd}}{b{Jd}}}Gn}{{b{b{c}}}Gn{}}0000000`{{{b{Jb}}{b{dFl}}}Fn}0{{{b{In}}{b{dFl}}}Fn}0{{{b{J`}}{b{dFl}}}Fn}{{{b{Jd}}{b{dFl}}}Fn}{cc{}}000```{{}f}000{{}c{}}000`{{{b{Jb}}c}AfJh}{{{b{In}}c}AfJh}{{{b{Jd}}c}AfJh}`{{{b{dJj}}{b{Jl}}}{{Af{c}}}{}}00{bc{}}000{bJn}0{bAl}0{c{{Af{e}}}{}{}}000{{}{{Af{c}}}{}}000`{bAh}000{{}c{}}000```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{{K`{c}}}}}{{K`{c}}}{KbKd}}{{b{b{dc}}}h{}}{{bFj}h}``{{{b{d{K`{c}}}}}{{K`{c}}}Kd}``{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}``{{{b{{K`{c}}}}{b{{K`{c}}}}}Gn{H`Kd}}{{b{b{c}}}Gn{}}000{{{b{{K`{c}}}}{b{dFl}}}Fn{HdKd}}{cc{}}{{}f}{{}c{}}{{{Gj{c}}}{{K`{c}}}Kd}{{{b{d{K`{c}}}}{b{c}}}GnKd}{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{l}}}l}{{b{b{dc}}}h{}}{{bFj}h}{{}l}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{l}}{b{dFl}}}Fn}{cc{}}{{{b{l}}{b{G`}}}{{Gl{El}}}}{{}f}`{{{b{l}}G`El}h}{{}c{}}{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}?>{ce{}{}}><:8``{{{b{Kf}}}Kh}`{{{b{dKh}}Bd}{{An{Edc}}}{}}{{{b{dKh}}Bf}{{An{Edc}}}{}}{{{b{dKh}}Bj}{{An{Clc}}}{}}{{{b{dKh}}Bn}{{An{Bnc}}}{}}{{{b{dKh}}Cd}{{An{Edc}}}{}}{{{b{dKh}}Cf}{{An{Edc}}}{}}{{{b{dKh}}Ch}{{An{Edc}}}{}}{{{b{dKh}}Cn}{{An{Edc}}}{}}{{{b{dKh}}D`}D`}{{{b{dKh}}Df}{{An{Clc}}}{}}{{{b{dKh}}Dh}{{An{Edc}}}{}}{{{b{dKh}}Eb}{{An{Edc}}}{}}{{{b{dKh}}Ef}{{An{Clc}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{}c{}}``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{l}}{b{Kf}}{b{Ff}}}Kj}`{{{b{dKj}}Bf}{{An{Edc}}}{}}{{{b{dKj}}Bn}{{An{Bnc}}}{}}{{{b{dKj}}Cd}{{An{Edc}}}{}}{{{b{dKj}}Cf}{{An{Edc}}}{}}{{{b{dKj}}Ch}{{An{Edc}}}{}}{{{b{dKj}}D`}D`}{{{b{dKj}}Dh}{{An{Edc}}}{}}{{{b{dKj}}Eb}{{An{Edc}}}{}}{{{b{dKj}}Kl}{{An{Clc}}}{}}{{{b{dKj}}DfCl}Ed}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}`{bAh}`{{}c{}}`````````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Kn}}}Kn}{{{b{L`}}}L`}{{b{b{dc}}}h{}}0{{bFj}h}0`{{{b{dLb}}}{{Gl{{An{Df{Id{Ed}}}}}}}}0{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{ce{}{}}{fh}00{{{b{dLb}}{b{Jl}}{Id{{An{{Gl{Cl}}Cl}}}}}{{An{Cl{Id{Ed}}}}}}{{{b{dLb}}{b{dBn}}{Id{{An{{Gl{Cl}}Eb}}}}}h}{cc{}}00{KnDf}{{}f}00{{}c{}}00`{{{b{j}}{b{l}}{b{Kf}}{b{Ff}}}Lb}``{{{b{dLb}}Bd}{{An{Edc}}}{}}{{{b{dLb}}Bf}{{An{Edc}}}{}}{{{b{dLb}}Bn}{{An{Bnc}}}{}}{{{b{dLb}}Cd}{{An{Edc}}}{}}{{{b{dLb}}Cf}{{An{Edc}}}{}}{{{b{dLb}}Ch}{{An{Edc}}}{}}{{{b{dLb}}D`}D`}{{{b{dLb}}Dh}{{An{Edc}}}{}}{{{b{dLb}}Ld}Ld}{{{b{dLb}}Eb}{{An{Edc}}}{}}{{{b{dLb}}Ef}{{An{Clc}}}{}}{{{b{dLb}}Eh}{{An{Clc}}}{}}`{{{b{dLb}}DfCl}Ed}`{{{b{dLb}}{b{Lf}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{{{b{dLb}}{b{E`}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{{{b{dLb}}{b{Lh}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{bc{}}0{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00{bAh}00`{{{b{dLb}}Cl}{{An{DfEd}}}}{{}c{}}00`````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dLj}}}h}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{dLj}}c}h{{Hj{}{{Hh{{An{GbGbG`}}}}}}}}{{{b{Ff}}}Lj}{{{b{dLj}}Bf}{{An{Edc}}}{}}{{{b{dLj}}Cd}{{An{Edc}}}{}}{{{b{dLj}}Cf}{{An{Edc}}}{}}{{{b{dLj}}Ch}{{An{Edc}}}{}}{{{b{dLj}}Df}{{An{Clc}}}{}}{{{b{dLj}}Dh}{{An{Edc}}}{}}{{{b{dLj}}Ef}{{An{Clc}}}{}}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{Kf}}{b{A`}}{b{Ff}}{b{l}}}Ll}``{{{b{dLl}}Bf}{{An{Edc}}}{}}{{{b{dLl}}Bn}{{An{Bnc}}}{}}{{{b{dLl}}C`}{{An{Clc}}}{}}{{{b{dLl}}Cd}{{An{Edc}}}{}}{{{b{dLl}}Cf}{{An{Edc}}}{}}{{{b{dLl}}Ch}{{An{Edc}}}{}}{{{b{dLl}}Cn}{{An{Edc}}}{}}{{{b{dLl}}D`}D`}{{{b{dLl}}Dh}{{An{Edc}}}{}}{{{b{dLl}}Ld}Ld}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{}c{}}``````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0``{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0`{cc{}}0{{}f}0{{}c{}}0{{}c{}}{{ccLn}{{M`{c}}}Mb}{{{b{d{M`{c}}}}}{{Gl{e}}}Mb{}}{Md{{Mf{c}}}{}}??>>==<<`;:`98{ce{}{}}8{{{b{Mh}}Mj}h}8`{{{b{dMh}}G`e}c{}{{Ml{{b{dMh}}}{{I`{c}}}}}}87`{{j{b{l}}{b{Mn}}{b{Kf}}}Mh}`{{{b{dMh}}Bb}{{An{Clc}}}{}}{{{b{dMh}}Bn}{{An{Bnc}}}{}}{{{b{dMh}}N`}{{An{Edc}}}{}}{{{b{dMh}}Ch}{{An{Edc}}}{}}{{{b{dMh}}D`}D`}{{{b{dMh}}Df}{{An{Clc}}}{}}{{{b{dMh}}Dh}{{An{Edc}}}{}}{{{b{dMh}}Ld}Ld}{{{b{dMh}}Nb}Nb}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{{b{dMh}}Dh}Ed}{{{b{dMh}}{b{Dh}}c}EdMb}{{}c{}}```{ce{}{}}```````{{{b{d{Nd{c}}}}{b{{Gl{{b{Cl}}}}}}Ih}hNf}{{{b{{Nd{c}}}}GbGbIh}hNf}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}6{fh}{{{b{{Nd{c}}}}Nh}hNf}{{{b{{Nd{c}}}}Nj}hNf}{cc{}}`{{}f}{{}c{}}{{{b{j}}{b{l}}{b{Mn}}fGn}{{Nd{c}}}Nf}```{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}``{{{b{d{Nd{c}}}}{b{Aj}}{b{e}}}gNf{}{}}{{{b{d{Nd{c}}}}{b{C`}}{b{e}}}gNf{}{}}{{{b{d{Nd{c}}}}{b{Cd}}}hNf}{{{b{d{Nd{c}}}}{b{D`}}}hNf}{{{b{d{Nd{c}}}}{b{Ld}}}hNf}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dNl}}GnIh}{{Af{{Id{Nn}}Nj}}}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}`{{{b{dNl}}Gn{Id{Nn}}}h}{{{b{dNl}}Gn{Id{Nn}}}{{Id{Nn}}}}{cc{}}{{}f}{{}c{}}`{{fGn}Nl}{{{b{dNl}}{b{Df}}}Gn}{{{b{dNl}}{Gj{Gb}}}h}``{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{O`}}}O`}{{b{b{dc}}}h{}}{{bFj}h}{{}O`}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{Ob}}Nh}h}{{{b{O`}}{b{dFl}}}Fn}{cc{}}0{{{b{D`}}{b{l}}{b{Mn}}}h}`{{}f}0{{}c{}}0{bc{}}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0`{{{b{dOb}}{b{Aj}}{b{c}}}e{}{}}{{{b{dOb}}{b{C`}}{b{c}}}e{}{}}{{{b{dOb}}{b{Ch}}}h}{{{b{dOb}}{b{Cl}}{b{c}}}e{}{}}{{{b{dOb}}{b{Eb}}}h}{{{b{dOb}}{b{Ej}}{b{c}}}e{}{}}{{}c{}}0``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dOd}}Aj}c{}}{{{b{dOd}}B`}c{}}{{{b{dOd}}Bd}c{}}{{{b{dOd}}Bf}c{}}{{{b{dOd}}Bl}c{}}{{{b{dOd}}Bn}c{}}{{{b{dOd}}C`}c{}}{{{b{dOd}}Cb}c{}}{{{b{dOd}}Cd}c{}}{{{b{dOd}}Cf}c{}}{{{b{dOd}}N`}c{}}{{{b{dOd}}Ch}c{}}{{{b{dOd}}Cn}c{}}{{{b{dOd}}D`}c{}}{{{b{dOd}}Df}c{}}{{{b{dOd}}Dh}c{}}{{{b{dOd}}Fd}c{}}{{{b{dOd}}Dj}c{}}{{{b{dOd}}Ab}c{}}{{{b{dOd}}Ld}c{}}{{{b{dOd}}Eb}c{}}{{{b{dOd}}E`}c{}}{{{b{dOd}}Ef}c{}}{{{b{dOd}}Eh}c{}}{{{b{dOd}}Ej}c{}}{{{b{dOd}}F`}c{}}{{{b{dOd}}Fb}c{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{Kf}}{b{j}}{b{l}}{b{Ff}}}Od}`{{{b{dOd}}}Hf}`{{{b{dOd}}}h}`{{{b{dOd}}DfCl}Ed}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{{b{dOd}}Cl}{{An{DfEd}}}}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}`{{}f}{{}c{}}`{{{b{Mn}}}Of}```>=<{{{b{dOf}}{b{D`}}}h}{{{b{dOf}}{b{Oh}}}h}{{{b{dOf}}{b{Ab}}}h}{{{b{dOf}}{b{Dl}}}h}{{{b{dOf}}{b{Ld}}}h}{{{b{dOf}}{b{E`}}}h}0{{{b{dOf}}{b{Nb}}}h}{{}c{}}```````{{{b{dOj}}El{b{{Gl{El}}}}Ih}El}{{{b{Oj}}{b{El}}Ih}h}00000{{{b{dOj}}IhGb{b{El}}}h}{{{b{dOj}}{b{El}}{b{El}}Ih}h}{{{b{dOj}}{b{El}}Ih}h}3``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0`{{{b{dOj}}{b{Jl}}GnIh}h}{{{b{dOj}}Ol{b{{Dd{{An{ElIh}}}}}}Ih}El}{{{b{Oj}}{b{{Gl{El}}}}{b{{Gl{El}}}}Ih}h}{{{b{dOj}}{b{D`}}Gn}h}`{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{ce{}{}}{fh}0{{{b{Oj}}On}h}{{{b{Oj}}A@`}h}{{{b{Oj}}{b{El}}{b{El}}}Gn}{cc{}}0{{{b{Oj}}{b{El}}{b{Df}}}{{Gl{A@b}}}}{{{b{Oj}}{b{Df}}{b{Df}}}{{Gl{Ol}}}}`{{{b{dOj}}e}c{}{{Ml{{b{dOj}}}{{I`{c}}}}}}{{{b{dOj}}G`e}c{}{{Ml{{b{dOj}}}{{I`{c}}}}}}{{}f}0{{{b{dOj}}Gb}h}{{{b{dOj}}{Gl{El}}{b{Df}}ElIh}h}{{}c{}}0`{{{b{dOj}}{Gl{Gb}}Gb}{{Gl{E`}}}}```{{{b{dOj}}{b{El}}{b{{Gl{El}}}}Ih}h}{{{b{Oj}}{b{dEl}}{b{El}}}h}{{j{b{l}}{b{Mn}}A@d}Oj}``{{{b{dOj}}Gb}Gn}`{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0``{{{b{dOj}}{b{Aj}}{b{c}}}e{}{}}{{{b{dOj}}{b{B`}}{b{c}}}e{}{}}{{{b{dOj}}{b{Bd}}}h}{{{b{dOj}}{b{Bf}}}h}{{{b{dOj}}{b{Bl}}{b{c}}}e{}{}}{{{b{dOj}}{b{Bn}}}h}{{{b{dOj}}{b{C`}}{b{c}}}e{}{}}{{{b{dOj}}{b{Cb}}{b{c}}}e{}{}}{{{b{dOj}}{b{Cd}}}h}{{{b{dOj}}{b{Cf}}}h}{{{b{dOj}}{b{N`}}}h}{{{b{dOj}}{b{Ch}}}h}{{{b{dOj}}{b{Cj}}{b{c}}}e{}{}}{{{b{dOj}}{b{Cl}}{b{c}}}e{}{}}{{{b{dOj}}{b{Cn}}}h}{{{b{dOj}}{b{D`}}}h}{{{b{dOj}}{b{Oh}}}h}{{{b{dOj}}{b{Df}}{b{c}}}e{}{}}{{{b{dOj}}{b{Dh}}}h}{{{b{dOj}}{b{Fd}}{b{c}}}e{}{}}{{{b{dOj}}{b{Dj}}{b{c}}}e{}{}}{{{b{dOj}}{b{Dl}}}h}{{{b{dOj}}{b{Ab}}}h}{{{b{dOj}}{b{Ld}}}h}{{{b{dOj}}{b{Eb}}}h}{{{b{dOj}}{b{Ed}}}h}{{{b{dOj}}{b{E`}}}h}{{{b{dOj}}{b{Ef}}{b{c}}}e{}{}}1{{{b{dOj}}{b{Nb}}}h}{{{b{dOj}}{b{Eh}}{b{c}}}e{}{}}{{{b{dOj}}{b{Ej}}{b{c}}}e{}{}}{{{b{dOj}}{b{F`}}{b{c}}}e{}{}}{{{b{dOj}}{b{Fb}}{b{c}}}e{}{}}{{}c{}}0`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}````{{}f}{{{b{dA@f}}A@h}h}{{}c{}}```{{{b{A@f}}}Db}{{}A@f}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`>","D":"CAd","p":[[1,"reference",null,null,1],[0,"mut"],[1,"usize"],[1,"unit"],[5,"SymbolTable",244],[5,"TypeTable",490],[8,"StructGraph",144],[8,"CallGraph",144],[5,"Program",1144],[5,"CodeGenerator",23],[6,"Result",1145,null,1],[5,"TypeId",1146],[6,"AccessExpression",1147],[5,"String",1148],[1,"tuple",null,null,1],[5,"ArrayExpression",1149],[5,"ArrayAccess",1150],[5,"AssertStatement",1151],[5,"AssignStatement",1152],[5,"AssociatedConstant",1153],[5,"AssociatedFunction",1154],[5,"BinaryExpression",1155],[5,"Block",1156],[5,"CallExpression",1157],[5,"CastExpression",1158],[5,"ConditionalStatement",1159],[5,"ConsoleStatement",1160],[5,"DefinitionStatement",1161],[5,"ErrExpression",1162],[6,"Expression",1163],[5,"ExpressionStatement",1164],[5,"Function",1165],[5,"Location",1166],[1,"slice"],[5,"Identifier",1167],[5,"IterationStatement",1168],[5,"LocatorExpression",1169],[5,"Mapping",1170],[5,"MemberAccess",1171],[5,"Composite",1172],[5,"ReturnStatement",1173],[6,"Statement",1174],[5,"StructExpression",1175],[5,"TernaryExpression",1176],[5,"TupleExpression",1177],[6,"Type",1178],[6,"Mode",1179],[5,"UnaryExpression",1180],[5,"UnitExpression",1181],[6,"Literal",1182],[5,"Assigner",100],[5,"AssignerInner",100],[1,"u8"],[5,"Formatter",1183],[8,"Result",1183],[8,"NodeID",1184],[5,"Symbol",1185],[10,"Display",1183],[5,"DiGraph",144],[10,"Node",144],[5,"IndexSet",1186],[6,"Option",1187,null,1],[1,"bool"],[10,"PartialEq",1188],[6,"DiGraphError",144],[10,"Debug",1183],[5,"RenameTable",196],[17,"Item"],[10,"Iterator",1189],[5,"Box",1190,null,1],[5,"Replacer",228],[17,"Output"],[10,"Fn",1191],[5,"Vec",1192],[8,"Result",1193],[5,"Span",1194],[5,"LocalTable",244],[5,"LocalTableInner",244],[5,"VariableSymbol",347],[5,"FunctionSymbol",347],[6,"VariableType",347],[5,"Finalizer",347],[10,"Deserializer",1195],[10,"Serializer",1196],[6,"Value",1197],[1,"str"],[5,"SmolStr",1198],[5,"TreeNode",456],[10,"Clone",1199],[10,"Node",456],[5,"NodeBuilder",1200],[5,"DeadCodeEliminator",516],[5,"Destructurer",552],[5,"TupleAccess",1201],[6,"Guard",586],[6,"ReturnGuard",586],[5,"Flattener",586],[5,"ProgramScope",1202],[5,"ArrayType",1203],[5,"TupleType",1204],[5,"AssignmentRenamer",677],[5,"FunctionInliner",703],[6,"Clusivity",740],[5,"RangeIterator",740],[10,"LoopBound",740],[5,"ProgressBar",1205],[5,"ProgressBarIter",1206],[5,"Unroller",776],[6,"LoopUnrollerError",1207],[10,"FnOnce",1191],[5,"Handler",1208],[5,"ConstDeclaration",1209],[5,"Stub",1210],[5,"StaticAnalyzer",820],[10,"Network",1211],[6,"StaticAnalyzerError",1212],[6,"StaticAnalyzerWarning",1213],[5,"AwaitChecker",852],[8,"ConditionalTreeNode",456],[6,"Position",875],[5,"FutureChecker",875],[5,"StaticSingleAssigner",928],[5,"SymbolTableCreator",981],[5,"FunctionStub",1214],[5,"TypeChecker",1014],[6,"CoreFunction",1215],[6,"TypeCheckerError",1216],[6,"TypeCheckerWarning",1217],[6,"CoreConstant",1218],[5,"NetworkLimits",1014],[5,"ScopeState",1118],[6,"Variant",1219],[8,"ImportGraph",144],[15,"Constructed",670],[10,"Pass",810]],"r":[[0,981],[92,456],[245,347],[246,347],[252,347],[253,347]],"b":[[402,"impl-Display-for-VariableType"],[403,"impl-Debug-for-VariableType"],[404,"impl-Debug-for-VariableSymbol"],[405,"impl-Display-for-VariableSymbol"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO4CiQABAAIACgABAA0AAAARAAcAGgABAB8AAwAmAAAALwACADUALwBnAAkAcgAJAH4AAQCFAAcAjwABAJkABACfAAUAqQAGALIAAQC9AAcAxgAOANcAAADfAAMA5AAAAOYABADsAAAA7gANAAEBDQARAQsAHwEEACcBAAAuAQMARgEAAEsBCABVAQIAWQEHAGMBEwB4ASAAnQEAAKABAwCpAQIArQESAMEBBwDMAQQA1gECANsBBQDiAQAA5gEEAOwBCQD4AQAA/AEPAA0CAAATAgAAGwIAAB4CAAAgAgIAJAIFACsCBQAyAgAANQIAADgCBQBBAgEARAIAAEYCBABNAgAAUAIAAFQCCwBjAgkAcgIDAHoCAACBAgEAhAIAAIwCDQCcAgIAoQIEAKcCAgCrAgIArwIAALECAAC7AgUAwgIBAMUCAwDKAgAA0gIAANcCAADZAgAA2wICAN8CBQDmAgEA6gIMAPkCAQD9Ag4ADQMDABQDAQAYAwAAGgMIACQDAgAqAwIALwMGADkDAQA8AwMARAMAAEgDAABKAwIATwMIAFkDAgBgAwAAaAMcAIgDAgCNAxQAowMBAK8DAAC0AwAAtwMBAL8DBADFAwAAzgMAANADAgDVAwUA3AMAAN8DAADiAwAA5gMSAPoDBAABBAAAAwQAAAYEAwALBAAAEAQGAB8EBAApBAMAMQQAADMEBQA7BCYAYwQCAGsEAAB0BAIAeAQAAA==","P":[[25,"T"],[32,"Pass::Input,Pass::Output"],[33,""],[35,"T"],[37,""],[38,"U"],[39,""],[46,"U,T"],[47,"U"],[48,""],[90,"V"],[102,"T"],[106,""],[108,"T"],[110,""],[115,"T"],[119,""],[123,"T"],[125,""],[128,"U"],[130,""],[132,"T"],[134,"U,T"],[136,"U"],[138,""],[140,","],[142,"V"],[151,"N"],[152,"T"],[156,"N"],[158,"T"],[162,""],[168,"N"],[169,"K"],[173,"N"],[175,"T"],[177,""],[179,"U"],[181,"N"],[188,"U,T"],[190,"U"],[192,""],[194,"V"],[197,"T"],[199,""],[200,"T"],[201,""],[203,"T"],[205,""],[207,"K"],[211,""],[212,"T"],[214,""],[215,"U"],[216,""],[222,"T"],[223,"U,T"],[224,"U"],[225,""],[227,"V"],[229,"T"],[233,""],[234,"T"],[235,""],[236,"U"],[237,"F"],[238,"F,ExpressionReconstructor::AdditionalOutput"],[240,"U,T"],[241,"U"],[242,""],[243,"V"],[255,""],[256,"T"],[262,""],[266,"T"],[268,""],[275,"T"],[281,""],[291,"T"],[301,""],[311,"U"],[314,""],[331,"T"],[333,"U,T"],[336,"U"],[340,""],[344,"V"],[354,"T"],[362,""],[366,"T"],[370,""],[375,"T"],[383,"__D"],[386,""],[393,"K"],[402,""],[408,"T"],[415,""],[419,"U"],[424,"__S"],[428,"T"],[435,""],[439,"U,T"],[443,"U"],[448,""],[452,"V"],[459,"T"],[461,"N"],[462,"T"],[463,""],[466,"N"],[469,"T"],[471,""],[474,"N"],[475,"K"],[479,"N"],[480,"T"],[481,""],[482,"U"],[483,"N"],[485,"T"],[486,"U,T"],[487,"U"],[488,""],[489,"V"],[491,"T"],[493,""],[494,"T"],[495,""],[497,"T"],[499,""],[501,"T"],[502,""],[506,"U"],[507,"T"],[508,"U,T"],[509,"U"],[510,""],[511,"V"],[517,"T"],[521,"Pass::Input,Pass::Output"],[522,""],[523,"T"],[524,""],[525,"U"],[528,""],[530,"ExpressionReconstructor::AdditionalOutput"],[538,""],[539,"ExpressionReconstructor::AdditionalOutput"],[543,"U,T"],[544,"U"],[545,""],[547,"V"],[554,"T"],[558,"Pass::Input,Pass::Output"],[559,""],[560,"T"],[561,""],[562,"U"],[564,""],[566,"ExpressionReconstructor::AdditionalOutput"],[571,""],[572,"ExpressionReconstructor::AdditionalOutput"],[575,""],[576,"U,T"],[577,"U"],[579,""],[581,"V"],[595,"T"],[601,""],[603,"T"],[605,""],[610,"T"],[616,"Pass::Input,Pass::Output"],[617,""],[622,"T"],[625,""],[629,"U"],[633,""],[636,"ExpressionReconstructor::AdditionalOutput"],[642,""],[643,"ExpressionReconstructor::AdditionalOutput"],[644,""],[645,"ExpressionReconstructor::AdditionalOutput"],[649,""],[654,"T"],[656,"U,T"],[659,"U"],[662,""],[667,"V"],[679,"T"],[681,""],[682,"T"],[684,""],[685,"T"],[686,""],[687,"U"],[689,""],[690,""],[691,"ExpressionReconstructor::AdditionalOutput"],[699,"U,T"],[700,"U"],[701,""],[702,"V"],[705,"T"],[710,"Pass::Input,Pass::Output"],[711,""],[712,"T"],[713,""],[714,"U"],[716,""],[719,"ExpressionReconstructor::AdditionalOutput"],[726,""],[727,"ExpressionReconstructor::AdditionalOutput"],[728,""],[730,"U,T"],[731,"U"],[732,""],[734,"V"],[745,"T"],[755,""],[758,"T"],[760,""],[762,"U"],[764,"I"],[766,"I,Iterator::Item"],[767,"T"],[768,"U,T"],[770,"U"],[772,""],[774,"V"],[777,"T"],[782,"Pass::Input,Pass::Output"],[783,""],[785,"T"],[787,"T,"],[788,""],[789,"U"],[791,""],[793,"ExpressionReconstructor::AdditionalOutput"],[797,""],[798,"ExpressionReconstructor::AdditionalOutput"],[800,""],[803,"U,T"],[804,"U"],[805,""],[808,"I"],[809,"V"],[813,"Pass::Input,Pass::Output"],[821,"N"],[824,"T"],[829,"Pass::Input,Pass::Output"],[830,""],[831,"N"],[833,"T"],[835,""],[836,"U"],[837,"N"],[841,"U,T"],[842,"U"],[843,""],[846,"N,ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[848,"N"],[851,"V"],[853,"T"],[855,""],[856,"T"],[858,""],[862,"T"],[863,""],[864,"U"],[866,""],[871,"U,T"],[872,"U"],[873,""],[874,"V"],[884,"T"],[888,""],[889,"T"],[890,""],[892,"T"],[896,""],[900,"T"],[902,""],[906,"U"],[908,"T"],[909,"U,T"],[911,"U"],[913,""],[916,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[918,""],[919,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[920,""],[921,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[922,"V"],[930,"T"],[932,"ExpressionConsumer::Output"],[934,"StatementConsumer::Output"],[936,"ExpressionConsumer::Output"],[937,"StatementConsumer::Output"],[938,"ExpressionConsumer::Output"],[940,"StatementConsumer::Output"],[945,"FunctionConsumer::Output"],[946,"ExpressionConsumer::Output"],[947,"StatementConsumer::Output"],[948,"ExpressionConsumer::Output"],[950,"ProgramConsumer::Output"],[951,"ProgramScopeConsumer::Output"],[952,"StatementConsumer::Output"],[953,"StructConsumer::Output"],[954,"ExpressionConsumer::Output"],[959,"T"],[961,"Pass::Input,Pass::Output"],[962,""],[963,"T"],[964,""],[965,"U"],[967,""],[975,"U,T"],[976,"U"],[977,""],[980,"V"],[982,"T"],[986,"Pass::Input,Pass::Output"],[987,""],[988,"T"],[990,""],[991,"U"],[993,""],[997,"U,T"],[998,"U"],[999,""],[1008,"V"],[1016,""],[1029,"T"],[1034,""],[1039,"T"],[1043,"Pass::Input,Pass::Output"],[1044,""],[1049,"T"],[1051,""],[1054,"T,"],[1056,""],[1060,"U"],[1063,""],[1074,"U,T"],[1076,"U"],[1078,""],[1082,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1084,""],[1086,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1087,""],[1088,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1090,""],[1094,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1096,""],[1099,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1100,""],[1101,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1103,""],[1109,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1110,""],[1112,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1116,"V"],[1119,"T"],[1124,""],[1125,"T"],[1130,""],[1132,"U"],[1136,""],[1139,"U,T"],[1140,"U"],[1141,""],[1143,"V"]]}],["leo_retriever",{"t":"CCEFNNNNNNNNNONNNNONOCNNNNNNNONONNCNOCCNONOCNNONONONNNNNFNNNNNNNNNNNNNNNNNNNNONONONNONNNNNNNPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNONNNNNNNNNONOONONNNNNNNFNNNNNNNONNNONNNNNNNONNONNNNNNNNONNPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNOHNNNNONONNOONHHNNNHNN","n":["program_context","retriever","Location","ProgramContext","add_checksum","add_compiled_file_path","add_dependencies","add_full_path","add_post_order","add_stub","borrow","borrow_mut","checksum","","clone","clone_into","clone_to_uninit","compiled_file_path","","dependencies","","dependency","deref","deref_mut","drop","fmt","from","","full_name","","full_path","","init","into","location","","","lock_file_entry","manifest","name","","network","","network_name","new_main","path","","post_order","","stub","","to_owned","try_from","try_into","type_id","vzip","Dependency","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","location","","name","","network","","new","path","","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Git","Local","Location","Network","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","LockFileEntry","borrow","borrow_mut","checksum","clone","clone_into","clone_to_uninit","dependencies","deref","deref_mut","deserialize","drop","fmt","from","","init","into","location","name","","network","path","","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Manifest","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","dependencies","","deref","deref_mut","description","","deserialize","drop","fmt","from","init","into","license","","new","program","","read_from_dir","serialize","take_from_value","to_owned","try_from","try_into","type_id","version","","vzip","write_to_dir","CanaryV0","MainnetV0","NetworkName","TestnetV0","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","","","try_into","type_id","vzip","Retriever","borrow","borrow_mut","contexts","deref","deref_mut","drop","endpoint","fetch_from_network","from","get_context","init","into","name","new","phantom","prepare_local","process_local","project_path","registry_path","retrieve","retrieve_from_network","retrieve_local","try_from","try_into","type_id","verify_valid_program","vzip","write_lock_file"],"q":[[0,"leo_retriever"],[2,"leo_retriever::program_context"],[56,"leo_retriever::program_context::dependency"],[92,"leo_retriever::program_context::location"],[122,"leo_retriever::program_context::lock_file_entry"],[152,"leo_retriever::program_context::manifest"],[187,"leo_retriever::program_context::network_name"],[223,"leo_retriever::retriever"],[252,"std::path"],[253,"leo_span::symbol"],[254,"alloc::vec"],[255,"indexmap::set"],[256,"leo_ast::stub"],[257,"alloc::string"],[258,"core::fmt"],[259,"core::result"],[260,"core::any"],[261,"serde::de"],[262,"core::hash"],[263,"core::option"],[264,"serde::ser"],[265,"serde_json::value"],[266,"leo_errors::errors::package::package_errors"],[267,"smol_str"],[268,"leo_errors::errors"],[269,"leo_errors::errors::utils::util_errors"],[270,"snarkvm_console_network"],[271,"indexmap::map"]],"i":"````d0000000000000000`000000000000`00``0000`000000000000`Bb0000000000000000000000000000000000Bd0`000000000000000000000000000`Ch0000000000000000000000000000`Cj000000000000000000000000000000000Bf0`000000000000000000000000000000000`Df000000`000000000000``000`00","f":"````{{{f{bd}}}h}{{{f{bd}}{f{j}}}h}{{{f{bd}}{n{l}}}h}1{{{f{bd}}{A`{l}}}h}{{{f{bd}}Ab}Ad}{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{d}}}{{f{Af}}}}`{{{f{d}}}d}{{f{f{bc}}}h{}}{{fAh}h}{{{f{d}}}{{f{Aj}}}}`{{{f{d}}}{{n{l}}}}``{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{Alh}{{{f{d}}{f{bAn}}}B`}{Bbd}{cc{}};`7`{{}Al}{{}c{}}`{{{f{d}}}{{f{Bd}}}}```{{{f{d}}}{{f{l}}}}`{{{f{d}}}{{f{Bf}}}}``{{lAj{n{Bb}}}d}=`{{{f{d}}}{{f{{A`{l}}}}}}`{{{f{d}}}{{f{Ab}}}}`{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bb}}}Bb}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bb}}}Bl}{Alh}{{{f{Bb}}{f{Bb}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bb}}{f{bAn}}}B`}{cc{}}{{{f{Bb}}{f{bc}}}hBn}{{}Al}{{}c{}}{{{f{Bb}}}{{f{Bd}}}}`{{{f{Bb}}}{{f{Af}}}}`{{{f{Bb}}}{{f{{C`{Bf}}}}}}`{{AfBd{C`{Bf}}{C`{Aj}}}Bb}{{{f{Bb}}}{{f{{C`{Aj}}}}}}`{{{f{Bb}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}````{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bd}}}Bd}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bd}}}Bl}{Alh}{{{f{Bd}}{f{Bd}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bd}}{f{bAn}}}B`}{cc{}}{{{f{Bd}}{f{bc}}}hBn}{{}Al}{{}c{}}{{{f{Bd}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}`{{{f{Ch}}}Ch}{{f{f{bc}}}h{}}{{fAh}h}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Ch}}}Bl}{Alh}{{{f{Ch}}{f{bAn}}}B`}{cc{}}{{{f{d}}}Ch}{{}Al}{{}c{}}`{{{f{Ch}}}{{f{Cf}}}}``{{{f{Ch}}}{{C`{{f{Aj}}}}}}`{{{f{Ch}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Cj}}}Cj}{{f{f{bc}}}h{}}{{fAh}h}{{{f{Cf}}}Cj}{{{f{Cj}}}{{f{{C`{{n{Bb}}}}}}}}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{{{f{Cj}}}{{f{Af}}}}`{c{{Bh{Cj}}}Bl}{Alh}{{{f{Cj}}{f{bAn}}}B`}{cc{}}{{}Al}{{}c{}}6`{{{f{Cf}}{f{Cf}}{f{Cf}}{f{Cf}}{C`{{n{Bb}}}}}Cj}7`{{{f{j}}}{{Bh{CjCl}}}}{{{f{Cj}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}>`{{}c{}}{{{f{Cj}}{f{j}}}{{Bh{hCl}}}}````{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bf}}}Bf}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bf}}}Bl}{Alh}{{{f{Bf}}{f{Bf}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bf}}{f{bAn}}}B`}0{cc{}}{{{f{Bf}}{f{bc}}}hBn}{{{f{Bf}}}Cn}{{}Al}{{}c{}}{{{f{Bf}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{fD`}{fAf}{c{{Bh{e}}}{}{}}{Af{{Bh{BfDb}}}}{{{f{Cf}}}{{Bh{BfDb}}}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{Alh}`{{{f{Cf}}}{{Bh{AfDd}}}}{cc{}}{{{f{{Df{c}}}}{f{l}}}{{f{d}}}Dh}{{}Al}{{}c{}}`{{l{f{Aj}}{f{j}}Af}{{Bh{{Df{c}}Dd}}}Dh}`{{{f{b{Df{c}}}}l}{{Bh{{Dl{Aj{Dj{lAb}}}}Dd}}}Dh}{{{f{b{Df{c}}}}lAd}{{Bh{hDd}}}Dh}``{{{f{b{Df{c}}}}}{{Bh{{n{l}}Dd}}}Dh}{{{f{j}}{f{j}}{f{Af}}{f{Af}}}{{Bh{{Dl{Ab{n{Bb}}}}Dd}}}}{{{f{Af}}{f{Aj}}}{{Bh{{n{Bb}}Dd}}}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{{f{Cf}}{f{Cf}}}{{Bh{hDd}}}}{{}c{}}{{{f{{Df{c}}}}{f{l}}}{{Bh{hDd}}}Dh}","D":"Al","p":[[0,"mut"],[5,"ProgramContext",2],[1,"reference",null,null,1],[1,"unit"],[5,"Path",252],[5,"Symbol",253],[5,"Vec",254],[5,"IndexSet",255],[5,"Stub",256],[1,"bool"],[5,"String",257],[1,"u8"],[5,"PathBuf",252],[1,"usize"],[5,"Formatter",258],[8,"Result",258],[5,"Dependency",56],[6,"Location",92],[6,"NetworkName",187],[6,"Result",259,null,1],[5,"TypeId",260],[10,"Deserializer",261],[10,"Hasher",262],[6,"Option",263,null,1],[10,"Serializer",264],[6,"Value",265],[1,"str"],[5,"LockFileEntry",122],[5,"Manifest",152],[6,"PackageError",266],[1,"u16"],[5,"SmolStr",267],[6,"LeoError",268],[6,"UtilError",269],[5,"Retriever",223],[10,"Network",270],[5,"IndexMap",271],[1,"tuple",null,null,1]],"r":[[2,92]],"b":[[205,"impl-Debug-for-NetworkName"],[206,"impl-Display-for-NetworkName"],[218,"impl-TryFrom%3CString%3E-for-NetworkName"],[219,"impl-TryFrom%3C%26str%3E-for-NetworkName"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO4ADwAAABsAHQAEACMAJQBKAAEATQAiAHEAAQB0ABMAiQABAIwAHACqAAAArAAjANEAAgDVABMA6gABAO0ADwA=","P":[[10,"T"],[12,""],[15,"T"],[16,""],[22,"T"],[24,""],[27,"T"],[28,""],[33,"U"],[35,""],[51,"T"],[52,"U,T"],[53,"U"],[54,""],[55,"V"],[57,"T"],[59,""],[60,"T"],[61,""],[62,"T"],[64,"__D"],[65,""],[67,"K"],[71,""],[72,"T"],[73,"__H"],[74,""],[75,"U"],[76,""],[85,"__S"],[86,"T"],[88,"U,T"],[89,"U"],[90,""],[91,"V"],[96,"T"],[98,""],[99,"T"],[100,""],[101,"T"],[103,"__D"],[104,""],[106,"K"],[110,""],[111,"T"],[112,"__H"],[113,""],[114,"U"],[115,"__S"],[116,"T"],[118,"U,T"],[119,"U"],[120,""],[121,"V"],[123,"T"],[126,""],[127,"T"],[128,""],[130,"T"],[132,"__D"],[133,""],[135,"T"],[136,""],[138,"U"],[140,""],[145,"__S"],[146,"T"],[148,"U,T"],[149,"U"],[150,""],[151,"V"],[153,"T"],[155,""],[156,"T"],[157,""],[161,"T"],[163,""],[165,"__D"],[166,""],[168,"T"],[169,""],[170,"U"],[171,""],[177,"__S"],[178,"T"],[180,"U,T"],[181,"U"],[182,""],[185,"V"],[186,""],[191,"T"],[193,""],[194,"T"],[195,""],[196,"T"],[198,"__D"],[199,""],[201,"K"],[205,""],[207,"T"],[208,"__H"],[209,""],[211,"U"],[212,"__S"],[213,"T"],[215,""],[217,"U,T"],[218,""],[220,"U"],[221,""],[222,"V"],[224,"T"],[229,""],[232,"T"],[233,"N"],[234,""],[235,"U"],[237,"N"],[244,""],[246,"U,T"],[247,"U"],[248,""],[250,"V"],[251,"N"]]}],["leo_span",{"t":"EECCCECPGFFPFFFFHNNNNNNNNNNNNNNNONNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNHONOOONNNOONNHHOHOOONNOONNNNNNNNNNNNNNNNNNNNNNNNNOFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNOQNNNNNNNONNNNNNNNNNNMNNMNNNNNNNNNNNFNNNNHNNNNNNHNNNNFGFPSJFPFNNNNNNNNNNNNNNNNNNQHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNOOQCOQNNNNNNNNNNNNNNNNNHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS","n":["Span","Symbol","source_map","span","span_json","sym","symbol","Custom","FileName","LineCol","MultiByteChar","Real","SourceFile","SourceMap","SourceMapInner","SpanLocation","analyze_source_file","borrow","","","","","","","borrow_mut","","","","","","","bytepos_to_file_charpos","bytes","clone","","clone_into","","clone_to_uninit","","col","col_start","col_stop","contents_of_span","","default","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dummy","end_pos","eq","equivalent","","","find_line_col","find_source_file","find_source_file_index","fmt","","from","","","","","","","init","","","","","","","inner","into","","","","","","","is_not_test_framework","line","line_contents_of_span","line_start","line_stop","lines","load_file","lookup_file_pos","lookup_line","multibyte_chars","name","new","new_source","normalize_newlines","normalize_src","pos","remove_bom","source_file","","source_files","span_to_location","span_to_string","src","start_pos","to_owned","","to_string","try_allocate_address_space","try_from","","","","","","","try_into","","","","","","","type_id","","","","","","","used_address_space","BytePos","CharPos","Pos","Span","add","","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","default","","deref","","","deref_mut","","","deserialize","","drop","","","dummy","eq","","","equivalent","","","","","","","","","fmt","","","","from","","","from_u32","","","from_usize","","","hash","","hi","impl_pos","init","","","into","","","is_dummy","lo","new","partial_cmp","","serialize","","sub","","to_owned","","","to_string","to_u32","","","to_usize","","","try_from","","","try_into","","","type_id","","","SpanMapVisitor","borrow","borrow_mut","deref","deref_mut","deserialize","drop","expecting","fmt","from","init","into","serialize","try_from","try_into","type_id","visit_map","InnerInterner","InternedStr","Interner","Owned","PRE_DEFINED","SESSION_GLOBALS","SessionGlobals","Static","Symbol","as_str","as_u32","borrow","","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","cmp","compare","consts","create_session_if_not_set_then","default","deref","","","","","","deref_mut","","","","","deserialize","drop","","","","","eq","","equivalent","","","","","","fmt","","from","","","","","get","hash","","init","","","","","inner","intern","","into","","","","","new","partial_cmp","prefill","prefilled","serde_from_symbol","serde_to_symbol","serialize","set","source_map","strings","sym","symbol_interner","symbols","to_owned","to_string","try_from","","","","","try_into","","","","","type_id","","","","","with_session_globals","As","Await","BHP1024","BHP256","BHP512","BHP768","ChaCha","CheatCode","Const","Else","False","Fn","For","Future","GEN","If","In","Keccak256","Keccak384","Keccak512","Let","Mapping","Mod","Mut","Pedersen128","Pedersen64","Poseidon2","Poseidon4","Poseidon8","Return","SHA3_256","SHA3_384","SHA3_512","SelfLower","SelfUpper","Star","Struct","True","Type","_nonce","abs","abs_wrapped","add","add_wrapped","address","aleo","and","assert","assert_eq","assert_neq","block","bool","caller","commit_to_address","commit_to_field","commit_to_group","console","constant","contains","decrement","div","div_wrapped","double","eq","field","function","get","get_or_use","group","gt","gte","hash_to_address","hash_to_field","hash_to_group","hash_to_i128","hash_to_i16","hash_to_i32","hash_to_i64","hash_to_i8","hash_to_scalar","hash_to_u128","hash_to_u16","hash_to_u32","hash_to_u64","hash_to_u8","height","i128","i16","i32","i64","i8","id","import","increment","inline","input","inv","leo","lt","lte","main","mapping","mul","mul_wrapped","nand","neg","neq","network","nor","not","or","owner","pow","pow_wrapped","print_mapping","private","program","public","rand_address","rand_bool","rand_field","rand_group","rand_i128","rand_i16","rand_i32","rand_i64","rand_i8","rand_scalar","rand_u128","rand_u16","rand_u32","rand_u64","rand_u8","record","rem","rem_wrapped","remove","scalar","set","set_block_height","shl","shl_wrapped","shr","shr_wrapped","signature","signer","square","square_root","string","stub","sub","sub_wrapped","to_x_coordinate","to_y_coordinate","transition","u128","u16","u32","u64","u8","verify","xor"],"q":[[0,"leo_span"],[7,"leo_span::source_map"],[150,"leo_span::span"],[254,"leo_span::span_json"],[271,"leo_span::symbol"],[380,"leo_span::symbol::sym"],[542,"alloc::vec"],[543,"alloc::string"],[544,"core::option"],[545,"alloc::rc"],[546,"core::fmt"],[547,"std::path"],[548,"std::io::error"],[549,"core::result"],[550,"core::any"],[551,"core::cmp"],[552,"serde::de"],[553,"core::hash"],[554,"serde::ser"],[555,"core::ops::function"],[556,"core::num::nonzero"]],"i":"```````Ad```0`````A`BfBjAnBb5j5432160506060603445221543216054321605432160450000222605432160543216025432160`324452555552``0`431225560615432160543216054321601````Aj0fAb2102102102102101010212102102121022102221110002210210D`21021323`3213213332132213213021021321321321`Df000`000000`0000```Ed```0`Dl0DnElEf3442103433333``2210344210343210343433344433210340342103400321034330033312``2`33210342103421034```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````","f":"````````````````{{{d{b}}f}{{l{{h{f}}{h{j}}}}}}{d{{d{c}}}{}}000000{{{d{n}}}{{d{nc}}}{}}000000{{{d{A`}}f}Ab}`{{{d{Ad}}}Ad}{{{d{j}}}j}{{d{d{nc}}}Af{}}0{{dAh}Af}0```{{{d{A`}}Aj}Al}{{{d{An}}Aj}{{B`{Al}}}}{{}An}{{}Bb}{Bd{{d{c}}}{}}000000{Bd{{d{nc}}}{}}000000{BdAf}000000{{}Bf}`{{{d{j}}{d{j}}}Bh}{{d{d{c}}}Bh{}}00{{{d{An}}f}{{B`{Bj}}}}{{{d{An}}f}{{B`{{Bl{A`}}}}}}{{{d{An}}f}{{B`{Bd}}}}{{{d{Ad}}{d{nBn}}}C`}{{{d{j}}{d{nBn}}}C`}{cc{}}000000{{}Bd}000000`{{}c{}}000000{{}Bh}`{{{d{An}}Aj}{{B`{Al}}}}```{{{d{An}}{d{Cb}}}{{Cd{{Bl{A`}}}}}}{{{d{A`}}f}{{l{BdAb}}}}{{{d{A`}}f}{{B`{Bd}}}}``{{AdAlf}A`}{{{d{An}}{d{b}}Ad}{{Bl{A`}}}}{{{d{nAl}}}Af}0`0```{{{d{An}}Aj}{{B`{Bf}}}}{{{d{An}}Aj}Al}``{dc{}}0{dAl}{{{d{nBb}}Cf}{{B`{f}}}}{c{{Ch{e}}}{}{}}000000{{}{{Ch{c}}}{}}000000{dCj}000000`````{{{d{Aj}}{d{Aj}}}Aj}{{AjAj}Aj}{{ff}f}{{AbAb}Ab}{d{{d{c}}}{}}00{{{d{n}}}{{d{nc}}}{}}00{{{d{Aj}}}Aj}{{{d{f}}}f}{{{d{Ab}}}Ab}{{d{d{nc}}}Af{}}00{{dAh}Af}00{{{d{f}}{d{f}}}Cl}{{{d{Ab}}{d{Ab}}}Cl}{{d{d{c}}}Cl{}}0{{}Aj}{{}f}{Bd{{d{c}}}{}}00{Bd{{d{nc}}}{}}00{c{{Ch{Aj}}}Cn}{c{{Ch{f}}}Cn}{BdAf}006{{{d{Aj}}{d{Aj}}}Bh}{{{d{f}}{d{f}}}Bh}{{{d{Ab}}{d{Ab}}}Bh}{{d{d{c}}}Bh{}}00000000{{{d{Aj}}{d{nBn}}}C`}0{{{d{f}}{d{nBn}}}C`}{{{d{Ab}}{d{nBn}}}C`}{cc{}}00{CfD`}{Cff}{CfAb}{BdD`}{Bdf}{BdAb}{{{d{Aj}}{d{nc}}}AfDb}{{{d{f}}{d{nc}}}AfDb}``{{}Bd}00{{}c{}}00{{{d{Aj}}}Bh}`{{ff}Aj}{{{d{f}}{d{f}}}{{B`{Cl}}}}{{{d{Ab}}{d{Ab}}}{{B`{Cl}}}}{{{d{Aj}}c}ChDd}{{{d{f}}c}ChDd}{{ff}f}{{AbAb}Ab}{dc{}}00{dAl}{{{d{D`}}}Cf}{{{d{f}}}Cf}{{{d{Ab}}}Cf}{{{d{D`}}}Bd}{{{d{f}}}Bd}{{{d{Ab}}}Bd}{c{{Ch{e}}}{}{}}00{{}{{Ch{c}}}{}}00{dCj}00`{d{{d{c}}}{}}{{{d{n}}}{{d{nc}}}{}}{Bd{{d{c}}}{}}{Bd{{d{nc}}}{}}{c{{Ch{Aj}}}Cn}{BdAf}{{{d{Df}}{d{nBn}}}C`}{{d{d{nBn}}}{{Ch{AfDh}}}}{cc{}}{{}Bd}{{}c{}}{{{d{Aj}}c}ChDd}>=<{{Dfc}{{Ch{e}}}Dj{}}`````````{{Dl{d{Dn}}e}c{}{{Eb{{d{b}}}{{E`{c}}}}}}{DlCf}>>>>>{{{d{Ed}}}{{d{b}}}}>>>>>{{{d{Dl}}}Dl}{{d{d{nc}}}Af{}}{{dAh}Af}{{{d{Dl}}{d{Dl}}}Cl}{{d{d{c}}}Cl{}}`{ec{}{{Eb{{d{Dn}}}{{E`{c}}}}}}{{}Dn}{Bd{{d{c}}}{}}000{{{d{Ed}}}{{d{c}}}{}}1{Bd{{d{nc}}}{}}0000{c{{Ch{Dl}}}Cn}{BdAf}0000{{{d{Dl}}{d{Dl}}}Bh}{{{d{Ed}}{d{Ed}}}Bh}{{d{d{c}}}Bh{}}00000{{{d{Dl}}{d{nBn}}}C`}0{cc{}}0000{{{d{Ef}}Dle}c{}{{Eb{{d{b}}}{{E`{c}}}}}}{{{d{Dl}}{d{nc}}}AfDb}{{{d{Ed}}{d{nc}}}AfDb}{{}Bd}0000`{{{d{Ef}}{d{b}}}Dl}{{{d{b}}}Dl}{{}c{}}0000{CfDl}{{{d{Dl}}{d{Dl}}}{{B`{Cl}}}}{{{d{{Eh{{d{b}}}}}}}Ef}{{}Ef}{{{d{Ej}}c}ChDd}{c{{Ch{Ej}}}Cn}{{{d{Dl}}c}ChDd}``````{dc{}}{dAl}{c{{Ch{e}}}{}{}}0000{{}{{Ch{c}}}{}}0000{dCj}0000{ec{}{{Eb{{d{Dn}}}{{E`{c}}}}}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````","D":"Nj","p":[[1,"str"],[1,"reference",null,null,1],[5,"BytePos",150],[5,"Vec",542],[5,"MultiByteChar",7],[1,"tuple",null,null,1],[0,"mut"],[5,"SourceFile",7],[5,"CharPos",150],[6,"FileName",7],[1,"unit"],[1,"u8"],[5,"Span",150],[5,"String",543],[5,"SourceMap",7],[6,"Option",544,null,1],[5,"SourceMapInner",7],[1,"usize"],[5,"SpanLocation",7],[1,"bool"],[5,"LineCol",7],[5,"Rc",545,null,1],[5,"Formatter",546],[8,"Result",546],[5,"Path",547],[8,"Result",548],[1,"u32"],[6,"Result",549,null,1],[5,"TypeId",550],[6,"Ordering",551],[10,"Deserializer",552],[10,"Pos",150],[10,"Hasher",553],[10,"Serializer",554],[5,"SpanMapVisitor",254],[5,"Error",546],[10,"MapAccess",552],[5,"Symbol",271],[5,"SessionGlobals",271],[17,"Output"],[10,"FnOnce",555],[6,"InternedStr",271],[5,"Interner",271],[1,"slice"],[8,"NonZeroU32",556],[5,"InnerInterner",271]],"r":[[0,150],[1,271],[5,271]],"b":[[154,"impl-Add-for-%26Span"],[155,"impl-Add-for-Span"],[203,"impl-Debug-for-Span"],[204,"impl-Display-for-Span"],[326,"impl-Display-for-Symbol"],[327,"impl-Debug-for-Symbol"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKkBHwAAAAIABgABABIADQAiAAUAKQABAC0AFgBGAAMATQABAFYABgBoAAEAdgAAAH0AAgCBABQAnQAhAMAADwDTAAcA3QACAOYAGAAAAQMABQECAAkBAAAMAQMAFAEBABsBDwAtARsATwEHAF8BAABiAQIAaAEAAGsBEAB9AaEA","P":[[17,"T"],[31,""],[35,"T"],[37,""],[46,"T"],[60,""],[70,"K"],[73,""],[78,"T"],[85,""],[93,"U"],[100,""],[124,"T"],[126,""],[128,"U,T"],[135,"U"],[142,""],[158,"T"],[164,""],[167,"T"],[170,""],[175,"K"],[177,""],[179,"T"],[185,"__D"],[187,""],[194,"K"],[203,""],[207,"T"],[210,""],[216,"__H"],[220,""],[223,"U"],[226,""],[231,"__S"],[233,""],[235,"T"],[238,""],[245,"U,T"],[248,"U"],[251,""],[255,"T"],[259,"D"],[260,""],[263,"T"],[264,""],[265,"U"],[266,"S"],[267,"U,T"],[268,"U"],[269,""],[270,"M,Visitor::Value"],[280,"R,"],[281,""],[282,"T"],[287,""],[288,"T"],[293,""],[294,"T"],[295,""],[297,"K"],[299,"R,"],[300,""],[301,"T"],[305,"Deref::Target"],[306,"T"],[312,"__D"],[313,""],[320,"K"],[326,""],[328,"T"],[333,"R,"],[334,"__H"],[335,"H"],[336,""],[344,"U"],[349,""],[353,"S"],[354,"D"],[355,"__S"],[362,"T"],[363,""],[364,"U,T"],[369,"U"],[374,""],[379,"R,"]]}],["leo_test_framework",{"t":"CCCCCPPPPPGFPPNNNNNNNNNNHONNNNNNNNONHNNNNNNOOOOOOOOOOOOOOOOHHHFNNNNNNNNNONNNOONNNNNPPKSGKFFPNNNNNNNNNOONNNNNNNNNNNNNOONNNNHNNNNNNHNNONMOONMMHHHONNNNNNNNNNPPPFGNNNNNNNNNNNNNNNNNNNNNNOOHNNNNNNNNONNNNNNNNNN","n":["error","fetch","output","runner","test","FailedAndShouldntHave","MismatchedTestExpectationLength","MissingTestConfig","Panicked","PassedAndShouldntHave","TestError","TestFailure","UnexpectedError","UnexpectedOutput","borrow","","borrow_mut","","deref","","deref_mut","","drop","","emit_errors","errors","fmt","","from","","init","","into","","path","to_string","toml_to_string","try_from","","try_into","","type_id","","error","","expected","","index","","","","","output","","test","","","","","find_tests","split_tests_one_line","split_tests_two_line","TestExpectation","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","expectation","from","init","into","namespace","outputs","serialize","to_owned","try_from","try_into","type_id","ContinuousLines","Line","Namespace","PROGRAM_DELIMITER","ParseType","Runner","Test","TestCases","Whole","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","config","content","deref","","","deref_mut","","","drop","","","eq","equivalent","","","expectation_category","fail_categories","fmt","from","","","get_benches","init","","","into","","","is_env_var_set","load_expectations","load_tests","name","new","parse_type","path","path_prefix","process_tests","resolve_namespace","run_test","run_tests","set_hook","take_hook","tests","to_owned","try_from","","","try_into","","","type_id","","","Fail","Pass","Skip","TestConfig","TestExpectationMode","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","equivalent","","","expectation","extra","extract_test_config","fmt","","from","","init","","into","","namespace","serialize","","to_owned","","try_from","","try_into","","type_id",""],"q":[[0,"leo_test_framework"],[5,"leo_test_framework::error"],[43,"leo_test_framework::error::TestError"],[59,"leo_test_framework::fetch"],[62,"leo_test_framework::output"],[83,"leo_test_framework::runner"],[154,"leo_test_framework::test"],[203,"toml::value"],[204,"alloc::string"],[205,"core::result"],[206,"core::option"],[207,"core::fmt"],[208,"core::any"],[209,"std::path"],[210,"core::iter::traits::iterator"],[211,"alloc::vec"],[212,"serde::de"],[213,"serde::ser"],[214,"core::ops::function"],[215,"alloc::boxed"],[216,"std::sync::mutex"],[217,"alloc::sync"]],"i":"`````Af0000``00Dn101010101`01101010101`010101E`EbEdEf31Eh312142031````Bj0000000000000000000Cb0``````0DfCf2102222111021021022222002102`102102`0010Cn211Db1```24324324324Ab00``0Ch1010101010101010111100`1010101001010101010","f":"``````````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{j}}{b{{A`{{A`{ln}}n}}}}{b{Ab}}{Ad{l}}f}{{Ad{Af}}}}`{{{b{Af}}{b{dAh}}}Aj}0{cc{}}0{{}f}0{{}c{}}0`{bn}{{{b{l}}}n}{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{bAl}0````````````````{{{b{An}}}{{`{{Bf{}{{B`{{Bd{Bbn}}}}}}}}}}{{{b{j}}}{{Bh{{b{j}}}}}}{{{b{j}}}{{Bh{n}}}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Bj}}}Bj}{{b{b{dc}}}h{}}{{bBl}h}{f{{b{c}}}{}}{f{{b{dc}}}{}}{c{{A`{Bj}}}Bn}{fh}`{cc{}}{{}f}{{}c{}}``{{{b{Bj}}c}A`C`}{bc{}}{c{{A`{e}}}{}{}}{{}{{A`{c}}}{}}{bAl}`````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Cb}}}Cb}{{b{b{dc}}}h{}}{{bBl}h}``{f{{b{c}}}{}}00{f{{b{dc}}}{}}00???{{{b{Cb}}{b{Cb}}}Cd}{{b{b{c}}}Cd{}}00``{{{b{Cb}}{b{dAh}}}Aj}{cc{}}00{{}{{Bh{{Bd{nn}}}}}}{{}f}00{{}c{}}00{{{b{j}}}Cd}{{{b{Cf}}{b{An}}}{{Bd{Bb{Ad{Bj}}}}}}{{{b{dCf}}c}{{Bh{Ch}}}{{Cl{{b{Ch}}}{{Cj{Cd}}}}}}`{{{b{j}}c}{{Bd{Cf{Bh{Ch}}}}}{{Cl{{b{Ch}}}{{Cj{Cd}}}}}}{{{b{Cn}}}Cb}``{{{b{dCf}}{Bh{Ch}}e}{{Bh{c}}}{}{{D`{{b{dCf}}{Bd{{b{An}}{b{j}}{b{j}}Ch}}}{{Cj{c}}}}}}{{{b{Db}}{b{j}}}{{Ad{{Dd{Cn}}}}}}{{{b{Cn}}Df}{{A`{ln}}}}{{{b{c}}{b{j}}}hDb}{{}{{Dj{{Dh{{Ad{n}}}}}}}}{{{A`{{A`{ln}}{Dd{Dl}}}}{Dj{{Dh{{Ad{n}}}}}}}{{A`{{A`{ln}}n}}}}`{bc{}}{c{{A`{e}}}{}{}}00{{}{{A`{c}}}{}}00{bAl}00`````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Ab}}}Ab}{{{b{Ch}}}Ch}{{b{b{dc}}}h{}}0{{bBl}h}0{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{c{{A`{Ab}}}Bn}{c{{A`{Ch}}}Bn}{fh}0{{{b{Ab}}{b{Ab}}}Cd}{{b{b{c}}}Cd{}}00``{{{b{j}}}{{Ad{Ch}}}}{{{b{Ab}}{b{dAh}}}Aj}{{{b{Ch}}{b{dAh}}}Aj}{cc{}}0{{}f}0{{}c{}}0`{{{b{Ab}}c}A`C`}{{{b{Ch}}c}A`C`}{bc{}}0{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{bAl}0","D":"Bl","p":[[1,"reference",null,null,1],[0,"mut"],[1,"usize"],[1,"unit"],[1,"str"],[6,"Value",203],[5,"String",204],[6,"Result",205,null,1],[6,"TestExpectationMode",154],[6,"Option",206,null,1],[6,"TestError",5],[5,"Formatter",207],[8,"Result",207],[5,"TypeId",208],[5,"Path",209],[17,"Item"],[5,"PathBuf",209],[1,"tuple",null,null,1],[10,"Iterator",210],[5,"Vec",211],[5,"TestExpectation",62],[1,"u8"],[10,"Deserializer",212],[10,"Serializer",213],[6,"ParseType",83],[1,"bool"],[5,"TestCases",83],[5,"TestConfig",154],[17,"Output"],[10,"Fn",214],[10,"Namespace",83],[10,"FnMut",214],[10,"Runner",83],[5,"Box",215,null,1],[5,"Test",83],[5,"Mutex",216],[5,"Arc",217,null,1],[10,"Any",208],[5,"TestFailure",5],[15,"Panicked",43],[15,"FailedAndShouldntHave",43],[15,"UnexpectedOutput",43],[15,"UnexpectedError",43],[15,"PassedAndShouldntHave",43]],"r":[],"b":[[26,"impl-Debug-for-TestError"],[27,"impl-Display-for-TestError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALUACwABABsAHwABACMAAQAmACMASwAAAE0AKgB8AAIAggAYAJ4AHAC9AAEAwQAKAA==","P":[[14,"T"],[22,""],[28,"T"],[30,""],[32,"U"],[35,""],[37,"U,T"],[39,"U"],[41,""],[63,"T"],[65,""],[66,"T"],[67,""],[68,"T"],[70,"__D"],[71,""],[73,"T"],[74,""],[75,"U"],[78,"__S"],[79,"T"],[80,"U,T"],[81,"U"],[82,""],[92,"T"],[98,""],[99,"T"],[100,""],[103,"T"],[109,""],[113,"K"],[118,""],[119,"T"],[122,""],[126,"U"],[129,""],[131,""],[134,""],[137,"O,P"],[138,""],[140,"T"],[141,""],[144,"T"],[145,"U,T"],[148,"U"],[151,""],[159,"T"],[163,""],[165,"T"],[167,""],[169,"T"],[173,"__D"],[175,""],[178,"K"],[183,""],[186,"T"],[188,""],[190,"U"],[193,"__S"],[195,"T"],[197,"U,T"],[199,"U"],[201,""]]}]]')); +var searchIndex = new Map(JSON.parse('[["errcov",{"t":"H","n":["main"],"q":[[0,"errcov"]],"i":"`","f":"{{}b}","D":"`","p":[[1,"unit"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAEAEAAAAAAAAQA=","P":[]}],["leo",{"t":"HH","n":["main","set_panic_hook"],"q":[[0,"leo"]],"i":"``","f":"{{}b}0","D":"`","p":[[1,"unit"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAIAEAAAAAAAAQACAA==","P":[]}],["leo_abnf",{"t":"PPPFGNNNNNNNNNNNNNNNNONNOHNOHNOONNNNNNNN","n":["Code","Definition","Free","Processor","Scope","append_str","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","enter_scope","fmt","","from","","grammar","into","","line","main","new","out","parse_abnf_node","process","rules","scope","to_owned","","try_from","","try_into","","type_id",""],"q":[[0,"leo_abnf"],[40,"core::fmt"],[41,"anyhow"],[42,"abnf::types"],[43,"alloc::vec"],[44,"alloc::string"],[45,"core::result"],[46,"core::any"]],"i":"l00``d1010101010010100100`00`00010101010","f":"`````{{{f{bd}}{f{h}}}j}{f{{f{c}}}{}}0{{{f{b}}}{{f{bc}}}{}}0{{{f{l}}}l}{{{f{d}}}d}{{f{f{bc}}}j{}}0{{fn}j}0{{{f{bd}}l}j}{{{f{l}}{f{bA`}}}Ab}{{{f{d}}{f{bA`}}}Ab}{cc{}}0`{{}c{}}0`{{}{{Ad{j}}}}{{{f{h}}{Ah{Af}}}d}`{{{f{Aj}}{f{b{Ah{Al}}}}}j}{{{f{bd}}}j}``{fc{}}0{c{{An{e}}}{}{}}0{{}{{An{c}}}{}}0{fB`}0","D":"Ad","p":[[0,"mut"],[5,"Processor",0],[1,"reference",null,null,1],[1,"str"],[1,"unit"],[6,"Scope",0],[1,"u8"],[5,"Formatter",40],[8,"Result",40],[8,"Result",41],[5,"Rule",42],[5,"Vec",43],[6,"Node",42],[5,"String",44],[6,"Result",45,null,1],[5,"TypeId",46]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAB4ABgAAAAMABwAJABIAAQAWAAAAGQADAB8ACQA=","P":[[6,"T"],[10,""],[12,"T"],[14,""],[19,"T"],[22,"U"],[25,""],[32,"T"],[34,"U,T"],[36,"U"],[38,""]]}],["leo_ast",{"t":"FCNNONNNNNCNNNNNNNNNCNNNNCCNNNCNHCCHQCCCNNNNNNNNCCNFFFFFOOCCCOOOOOOOOCOOOOOOOOOCOOFONNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNONNFONNNNNNNNNNNNNNNNNNONNONNNNONNNNNNNONFNNNNNNNNNNNNNNNNNNONONONNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNONNCCCCCCCFNNNNNNNNNNNNNNNNNNNNNONNNONNNNNONNNNNNNNHHFNNNNNNNNNNNNNNNNNNNONONNNNNNNKIMMMMFFNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGPPPPPPFPPPFGPPPPFPFPPPPPFGPKPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPFFPPPFPPPPFPFGPFPCOCCNNCCNNNONNNNNOONNNNNCOONNNMONOOOOOOOOOOOOOONNOCCOOOOOOONNNNOOOOOOOOOOOCNCNNNNNCONCCNGPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNONNNNNNNNNONNNNNNONNNNNNNNPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOOONNNNNONNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNNNONONNONNNNONNNNNNNNFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNONNFNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNPPFPKPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNMNNQNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNONNNONONNNNONNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNOOONNNNOONNNNNNNNOONNNNNNNNNNNNNNNNNFNNNNNONNNNNNNNNNNNNOOONNNNNNONNNNNNNNFNNNNNNNNNONNNNNNNNNONNNNNNONNNNNNNNPPPPPPPPPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOONNNNNONNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNFCOONNNNNCNNNNNNNNNNNNNNNNOONCONCNNCOONNNNONNNNNNNCONFNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNONONNNONNNNONNNNNNNONNPGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNNONNNNONNNNNNNONNPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNONNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNOONNONNNNONNNNNNNONCCCKKKKRRRRRRRRKKKKMMMMMMMMMMMMNNMMMMMMMMMMMNMMMMMMRKKKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRKRKKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNONNCCONONNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNFNNNNNONNNNNNNNNNNNNONNOONOONNNNNNNNPPPPPPPPPPGCCCNNNNNCCCCNNNNNNNNNNCNNNNNNCCNNNNNNNNNNNNPPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNONNNNNNNNNNNNONNFNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNNONFNNNNNNNNNNNNNNNNNNNONNNNNNOONNNNNNNNFNNNNNONNNNNNNNNNNNNONNONNNNONONNNNNNNCCPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNONONNNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNNONNONNNNONNNNNNONONPGFPNNNNNCONNNNNNNNNNNNNONNONNNNONNNNNNONONPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNNNFONNNNNNNNNNNNNNNNNNOONNNNNNOOOOONNNNNNONONFNNNNNNNNNNNNNNONNNNONNNNNNONNNNNNNNFNNNNNNNNNNNNNNONNNNNNOONNOCONNNNNONNNNNNNNFNNNNNNNNNNNNNNNNNNOONNONNNNNONNNNNNONNFNNNNNONNNNNNNNNNNNNCOONNONOOONNNNNNNNFONNNNNNNNNNNNNNNNNNNNNNNOONONNNNOONNNNONNNNNNNONCCCCCCCCFNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNNNNGPNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNONONONNNNNNNNNNPPPPPGPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNOONNNNNNNNONFNNNNNNNNNNNNNNNNNNONNONNNNNNNNNFNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Ast","access","as_ref","as_repr","ast","borrow","borrow_mut","clone","clone_into","clone_to_uninit","common","default","deref","deref_mut","drop","eq","equivalent","","","","expressions","fmt","from","from_json_file","from_json_string","functions","groups","init","into","into_repr","mapping","new","normalize_json_value","passes","program","remove_key_from_json","simple_node_impl","statement","struct","stub","to_json_file","to_json_file_without_keys","to_json_string","to_json_value","to_owned","try_from","try_into","type_id","types","value","vzip","ArrayAccess","AssociatedConstant","AssociatedFunction","MemberAccess","TupleAccess","arguments","array","array_access","associated_constant_access","associated_function_access","id","","","","","index","","inner","member_access","name","","","span","","","","","tuple","tuple_access","ty","variant","ArrayAccess","array","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","index","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","AssociatedConstant","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","ty","type_id","vzip","AssociatedFunction","arguments","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","vzip","MemberAccess","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","inner","into","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleAccess","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","index","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","tuple","type_id","vzip","identifier","imported_modules","location","node","node_builder","positive_number","static_string","Identifier","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","hash","id","","init","into","matches","name","new","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","deserialize","serialize","Location","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","name","new","program","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Node","NodeID","id","set_id","set_span","span","NodeBuilder","NodeBuilderInner","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","default","deref","","deref_mut","","drop","","fmt","","from","","init","","inner","into","","new","","next","next_id","","to_owned","","try_from","","try_into","","type_id","","vzip","","NonNegativeNumber","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","","hash","init","into","is_zero","serialize","string","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","","vzip","StaticString","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Abs","AbsWrapped","Access","AccessExpression","Add","AddWrapped","Address","And","Array","","ArrayExpression","AssociatedConstant","AssociatedFunction","Binary","BinaryExpression","BinaryOperation","BitwiseAnd","BitwiseOr","Boolean","Call","CallExpression","Cast","CastExpression","Div","DivWrapped","Double","Eq","Err","ErrExpression","Expression","Field","FromStrRadix","Group","Gt","Gte","Identifier","Integer","Inverse","Literal","","Locator","Lt","Lte","Member","Mod","Mul","MulWrapped","Nand","Negate","Neq","Nor","Not","Or","Pow","PowWrapped","Rem","RemWrapped","Scalar","Shl","ShlWrapped","Shr","ShrWrapped","Square","SquareRoot","String","Struct","StructExpression","StructVariableInitializer","Sub","SubWrapped","Ternary","TernaryExpression","ToXCoordinate","ToYCoordinate","Tuple","","TupleExpression","Unary","UnaryExpression","UnaryOperation","Unit","UnitExpression","Xor","access","arguments","array","binary","borrow","borrow_mut","call","cast","clone","clone_into","clone_to_uninit","condition","default","deref","deref_mut","deserialize","drop","elements","","eq","equivalent","","","","err","expression","","fmt","","from","from_str_by_radix","function","id","","","","","","","","","","","","identifier","if_false","if_true","init","into","left","literal","locator","members","name","op","","program","receiver","right","serialize","set_id","set_span","span","","","","","","","","","","","","struct_init","take_from_value","ternary","to_owned","to_smolstr","to_string","try_from","try_into","tuple","type_","type_id","unary","unit","vzip","AccessExpression","Array","AssociatedConstant","AssociatedFunction","Member","Tuple","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","init","into","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ArrayExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Add","AddWrapped","And","BinaryExpression","BinaryOperation","BitwiseAnd","BitwiseOr","Div","DivWrapped","Eq","Gt","Gte","Lt","Lte","Mod","Mul","MulWrapped","Nand","Neq","Nor","Or","Pow","PowWrapped","Rem","RemWrapped","Shl","ShlWrapped","Shr","ShrWrapped","Sub","SubWrapped","Xor","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","","from","","from_symbol","id","","init","","into","","left","op","right","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","CallExpression","arguments","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function","id","","init","into","program","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","CastExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","vzip","ErrExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Boolean","DisplayDecimal","Field","FromStrRadix","Group","Integer","Literal","Scalar","String","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","display_decimal","drop","","eq","equivalent","","","","fmt","","","from","","from_str_by_radix","from_value","id","implement_from_str_radix","init","","into","","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","LocatorExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","","init","into","matches","name","new","program","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","StructExpression","StructVariableInitializer","borrow","","borrow_mut","","check_record","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","expression","fmt","","","","from","","id","","","","identifier","init","","into","","members","name","serialize","","set_id","","set_span","","span","","","","take_from_value","","to_owned","","to_record_string","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","TernaryExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","condition","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","if_false","if_true","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Abs","AbsWrapped","Double","Inverse","Negate","Not","Square","SquareRoot","ToXCoordinate","ToYCoordinate","UnaryExpression","UnaryOperation","as_str","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","","from","","from_symbol","id","","init","","into","","op","receiver","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","","to_string","","try_from","","try_into","","type_id","","vzip","","UnitExpression","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Function","annotation","annotations","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","core_function","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","","id","","identifier","init","input","","into","mode","name","new","output","","output_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","","vzip","Annotation","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","identifier","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","BHP1024CommitToAddress","BHP1024CommitToField","BHP1024CommitToGroup","BHP1024HashToAddress","BHP1024HashToField","BHP1024HashToGroup","BHP1024HashToI128","BHP1024HashToI16","BHP1024HashToI32","BHP1024HashToI64","BHP1024HashToI8","BHP1024HashToScalar","BHP1024HashToU128","BHP1024HashToU16","BHP1024HashToU32","BHP1024HashToU64","BHP1024HashToU8","BHP256CommitToAddress","BHP256CommitToField","BHP256CommitToGroup","BHP256HashToAddress","BHP256HashToField","BHP256HashToGroup","BHP256HashToI128","BHP256HashToI16","BHP256HashToI32","BHP256HashToI64","BHP256HashToI8","BHP256HashToScalar","BHP256HashToU128","BHP256HashToU16","BHP256HashToU32","BHP256HashToU64","BHP256HashToU8","BHP512CommitToAddress","BHP512CommitToField","BHP512CommitToGroup","BHP512HashToAddress","BHP512HashToField","BHP512HashToGroup","BHP512HashToI128","BHP512HashToI16","BHP512HashToI32","BHP512HashToI64","BHP512HashToI8","BHP512HashToScalar","BHP512HashToU128","BHP512HashToU16","BHP512HashToU32","BHP512HashToU64","BHP512HashToU8","BHP768CommitToAddress","BHP768CommitToField","BHP768CommitToGroup","BHP768HashToAddress","BHP768HashToField","BHP768HashToGroup","BHP768HashToI128","BHP768HashToI16","BHP768HashToI32","BHP768HashToI64","BHP768HashToI8","BHP768HashToScalar","BHP768HashToU128","BHP768HashToU16","BHP768HashToU32","BHP768HashToU64","BHP768HashToU8","ChaChaRandAddress","ChaChaRandBool","ChaChaRandField","ChaChaRandGroup","ChaChaRandI128","ChaChaRandI16","ChaChaRandI32","ChaChaRandI64","ChaChaRandI8","ChaChaRandScalar","ChaChaRandU128","ChaChaRandU16","ChaChaRandU32","ChaChaRandU64","ChaChaRandU8","CheatCodePrintMapping","CheatCodeSetBlockHeight","CoreFunction","FutureAwait","GroupToXCoordinate","GroupToYCoordinate","Keccak256HashToAddress","Keccak256HashToField","Keccak256HashToGroup","Keccak256HashToI128","Keccak256HashToI16","Keccak256HashToI32","Keccak256HashToI64","Keccak256HashToI8","Keccak256HashToScalar","Keccak256HashToU128","Keccak256HashToU16","Keccak256HashToU32","Keccak256HashToU64","Keccak256HashToU8","Keccak384HashToAddress","Keccak384HashToField","Keccak384HashToGroup","Keccak384HashToI128","Keccak384HashToI16","Keccak384HashToI32","Keccak384HashToI64","Keccak384HashToI8","Keccak384HashToScalar","Keccak384HashToU128","Keccak384HashToU16","Keccak384HashToU32","Keccak384HashToU64","Keccak384HashToU8","Keccak512HashToAddress","Keccak512HashToField","Keccak512HashToGroup","Keccak512HashToI128","Keccak512HashToI16","Keccak512HashToI32","Keccak512HashToI64","Keccak512HashToI8","Keccak512HashToScalar","Keccak512HashToU128","Keccak512HashToU16","Keccak512HashToU32","Keccak512HashToU64","Keccak512HashToU8","MappingContains","MappingGet","MappingGetOrUse","MappingRemove","MappingSet","Pedersen128CommitToAddress","Pedersen128CommitToField","Pedersen128CommitToGroup","Pedersen128HashToAddress","Pedersen128HashToField","Pedersen128HashToGroup","Pedersen128HashToI128","Pedersen128HashToI16","Pedersen128HashToI32","Pedersen128HashToI64","Pedersen128HashToI8","Pedersen128HashToScalar","Pedersen128HashToU128","Pedersen128HashToU16","Pedersen128HashToU32","Pedersen128HashToU64","Pedersen128HashToU8","Pedersen64CommitToAddress","Pedersen64CommitToField","Pedersen64CommitToGroup","Pedersen64HashToAddress","Pedersen64HashToField","Pedersen64HashToGroup","Pedersen64HashToI128","Pedersen64HashToI16","Pedersen64HashToI32","Pedersen64HashToI64","Pedersen64HashToI8","Pedersen64HashToScalar","Pedersen64HashToU128","Pedersen64HashToU16","Pedersen64HashToU32","Pedersen64HashToU64","Pedersen64HashToU8","Poseidon2HashToAddress","Poseidon2HashToField","Poseidon2HashToGroup","Poseidon2HashToI128","Poseidon2HashToI16","Poseidon2HashToI32","Poseidon2HashToI64","Poseidon2HashToI8","Poseidon2HashToScalar","Poseidon2HashToU128","Poseidon2HashToU16","Poseidon2HashToU32","Poseidon2HashToU64","Poseidon2HashToU8","Poseidon4HashToAddress","Poseidon4HashToField","Poseidon4HashToGroup","Poseidon4HashToI128","Poseidon4HashToI16","Poseidon4HashToI32","Poseidon4HashToI64","Poseidon4HashToI8","Poseidon4HashToScalar","Poseidon4HashToU128","Poseidon4HashToU16","Poseidon4HashToU32","Poseidon4HashToU64","Poseidon4HashToU8","Poseidon8HashToAddress","Poseidon8HashToField","Poseidon8HashToGroup","Poseidon8HashToI128","Poseidon8HashToI16","Poseidon8HashToI32","Poseidon8HashToI64","Poseidon8HashToI8","Poseidon8HashToScalar","Poseidon8HashToU128","Poseidon8HashToU16","Poseidon8HashToU32","Poseidon8HashToU64","Poseidon8HashToU8","SHA3_256HashToAddress","SHA3_256HashToField","SHA3_256HashToGroup","SHA3_256HashToI128","SHA3_256HashToI16","SHA3_256HashToI32","SHA3_256HashToI64","SHA3_256HashToI8","SHA3_256HashToScalar","SHA3_256HashToU128","SHA3_256HashToU16","SHA3_256HashToU32","SHA3_256HashToU64","SHA3_256HashToU8","SHA3_384HashToAddress","SHA3_384HashToField","SHA3_384HashToGroup","SHA3_384HashToI128","SHA3_384HashToI16","SHA3_384HashToI32","SHA3_384HashToI64","SHA3_384HashToI8","SHA3_384HashToScalar","SHA3_384HashToU128","SHA3_384HashToU16","SHA3_384HashToU32","SHA3_384HashToU64","SHA3_384HashToU8","SHA3_512HashToAddress","SHA3_512HashToField","SHA3_512HashToGroup","SHA3_512HashToI128","SHA3_512HashToI16","SHA3_512HashToI32","SHA3_512HashToI64","SHA3_512HashToI8","SHA3_512HashToScalar","SHA3_512HashToU128","SHA3_512HashToU16","SHA3_512HashToU32","SHA3_512HashToU64","SHA3_512HashToU8","SignatureVerify","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","fmt","from","from_symbols","init","into","is_finalize_command","num_args","to_owned","try_from","try_into","type_id","vzip","Input","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","id","","identifier","","init","into","mode","","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","","type_id","vzip","Constant","Mode","None","Private","Public","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Output","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","mode","","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","","type_id","vzip","AsyncFunction","AsyncTransition","Function","Inline","Transition","Variant","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","init","into","is_async","is_async_function","is_function","is_transition","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","group_coordinate","group_literal","GroupCoordinate","Inferred","Number","SignHigh","SignLow","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","GroupLiteral","GroupTuple","Single","Tuple","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","from","","id","","init","","into","","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip","","x","y","Mapping","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","from_snarkvm","id","","identifier","init","into","key_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value_type","vzip","consumer","reconstructor","visitor","ExpressionConsumer","FunctionConsumer","ImportConsumer","MappingConsumer","Output","","","","","","","","ProgramConsumer","ProgramScopeConsumer","StatementConsumer","StructConsumer","consume_access","consume_array","consume_assert","consume_assign","consume_binary","consume_block","consume_call","consume_cast","consume_conditional","consume_console","consume_const","consume_definition","consume_err","consume_expression","consume_expression_statement","consume_function","consume_identifier","consume_import","consume_iteration","consume_literal","consume_locator","consume_mapping","consume_program","consume_program_scope","consume_return","consume_statement","consume_struct","consume_struct_init","consume_ternary","consume_tuple","consume_unary","consume_unit","AdditionalOutput","ExpressionReconstructor","ProgramReconstructor","StatementReconstructor","reconstruct_access","reconstruct_array","reconstruct_array_access","reconstruct_assert","reconstruct_assign","reconstruct_associated_constant","reconstruct_associated_function","reconstruct_binary","reconstruct_block","reconstruct_call","reconstruct_cast","reconstruct_conditional","reconstruct_console","reconstruct_const","reconstruct_definition","reconstruct_err","reconstruct_expression","reconstruct_expression_statement","reconstruct_function","reconstruct_function_stub","reconstruct_identifier","reconstruct_import","reconstruct_iteration","reconstruct_literal","reconstruct_locator","reconstruct_mapping","reconstruct_member_access","reconstruct_program","reconstruct_program_scope","reconstruct_return","reconstruct_statement","reconstruct_struct","reconstruct_struct_init","reconstruct_stub","reconstruct_ternary","reconstruct_tuple","reconstruct_tuple_access","reconstruct_unary","reconstruct_unit","AdditionalInput","ExpressionVisitor","Output","ProgramVisitor","StatementVisitor","visit_access","visit_array","visit_assert","visit_assign","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_const","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_stub","visit_identifier","visit_import","visit_iteration","visit_literal","visit_locator","visit_mapping","visit_program","visit_program_scope","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_stub","visit_stub","visit_ternary","visit_tuple","visit_unary","visit_unit","Program","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","imports","init","into","program_id","program_scope","program_scopes","serialize","stubs","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ProgramId","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","","hash","init","into","name","network","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ProgramScope","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consts","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","","functions","init","into","mappings","program_id","serialize","span","structs","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Assert","Assign","Block","Conditional","Console","Const","Definition","Expression","Iteration","Return","Statement","assert","assign","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","conditional","console","const_","definition","deref","deref_mut","deserialize","drop","dummy","eq","equivalent","","","","expression","fmt","","from","id","init","into","iteration","return_","serialize","set_id","set_span","span","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Assert","AssertEq","AssertNeq","AssertStatement","AssertVariant","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","","equivalent","","","","","","","","fmt","","","from","","id","","init","","into","","serialize","","set_id","set_span","span","","take_from_value","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","variant","vzip","","AssignStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","vzip","Block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","statements","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConditionalStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","condition","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","otherwise","serialize","set_id","set_span","span","","take_from_value","then","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","console_function","console_statement","Assert","AssertEq","AssertNeq","ConsoleFunction","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConsoleStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ConstDeclaration","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","value","vzip","Const","DeclarationType","DefinitionStatement","Let","borrow","borrow_mut","clone","clone_into","clone_to_uninit","declaration_type","","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","init","into","place","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","value","vzip","Const","DeclarationType","Let","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","ExpressionStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","IterationStatement","block","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","inclusive","init","into","serialize","set_id","set_span","span","","start","start_value","stop","stop_value","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","variable","vzip","ReturnStatement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","expression","fmt","","from","id","","init","into","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Composite","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","external","fmt","","from","from_external_record","from_snarkvm","id","","identifier","init","into","is_record","member","members","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Member","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","id","","identifier","init","into","mode","name","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_","type_id","vzip","Stub","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consts","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","function_stub","functions","imports","init","into","mappings","serialize","span","structs","stub_id","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","FunctionStub","annotations","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","format","from","","from_closure","from_finalize","from_function_core","id","","identifier","init","input","into","is_main","name","new","output","output_type","serialize","set_id","set_span","span","","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","variant","vzip","array","core_constant","future","integer_type","mapping","struct_type","tuple","type_","ArrayType","base_element_type","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","element_type","","eq","equivalent","","","","fmt","","from","from_snarkvm","hash","init","into","length","","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","CoreConstant","GroupGenerator","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","from","from_symbols","init","into","to_owned","to_type","try_from","try_into","type_id","vzip","FutureType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","inputs","","into","is_explicit","location","","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","I128","I16","I32","I64","I8","IntegerType","U128","U16","U32","U64","U8","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","into","is_signed","serialize","symbol","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","MappingType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","init","into","key","program","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","value","vzip","CompositeType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","init","into","program","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","TupleType","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","elements","","eq","equivalent","","","","fmt","","from","hash","init","into","length","new","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Array","Boolean","Composite","Err","Field","Future","Group","Identifier","Integer","Mapping","Scalar","Signature","String","Tuple","Type","Unit","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","eq_flat_relaxed","equivalent","","","","fmt","","from","","","from_snarkvm","hash","init","into","serialize","take_from_value","to_owned","to_smolstr","to_string","try_from","try_into","type_id","vzip","Address","Boolean","Field","Group","I128","I16","I32","I64","I8","Input","Scalar","String","Struct","U128","U16","U32","U64","U8","Value","abs","abs_wrapped","add","add_wrapped","as_ref","bitand","bitor","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","div","div_wrapped","drop","eq","","equivalent","","","","fmt","","from","ge","gt","implement_const_binary","implement_const_unary","init","into","is_supported_const_fold_type","le","lt","mul","mul_wrapped","neg","not","pow","pow_wrapped","shl","shl_wrapped","shr","shr_wrapped","sub","sub_wrapped","to_owned","to_smolstr","to_string","try_from","","try_into","type_id","vzip","xor"],"q":[[0,"leo_ast"],[51,"leo_ast::access"],[82,"leo_ast::access::array_access"],[119,"leo_ast::access::associated_constant_access"],[156,"leo_ast::access::associated_function_access"],[194,"leo_ast::access::member_access"],[231,"leo_ast::access::tuple_access"],[268,"leo_ast::common"],[275,"leo_ast::common::identifier"],[316,"leo_ast::common::imported_modules"],[318,"leo_ast::common::location"],[348,"leo_ast::common::node"],[354,"leo_ast::common::node_builder"],[397,"leo_ast::common::positive_number"],[434,"leo_ast::common::static_string"],[465,"leo_ast::expressions"],[636,"leo_ast::expressions::access"],[674,"leo_ast::expressions::array"],[710,"leo_ast::expressions::binary"],[808,"leo_ast::expressions::call"],[846,"leo_ast::expressions::cast"],[883,"leo_ast::expressions::err"],[919,"leo_ast::expressions::literal"],[980,"leo_ast::expressions::locator"],[1020,"leo_ast::expressions::struct_init"],[1096,"leo_ast::expressions::ternary"],[1134,"leo_ast::expressions::tuple"],[1170,"leo_ast::expressions::unary"],[1248,"leo_ast::expressions::unit"],[1283,"leo_ast::functions"],[1336,"leo_ast::functions::annotation"],[1372,"leo_ast::functions::core_function"],[1652,"leo_ast::functions::input"],[1694,"leo_ast::functions::mode"],[1727,"leo_ast::functions::output"],[1766,"leo_ast::functions::variant"],[1802,"leo_ast::groups"],[1804,"leo_ast::groups::group_coordinate"],[1837,"leo_ast::groups::group_literal"],[1902,"leo_ast::mapping"],[1941,"leo_ast::passes"],[1944,"leo_ast::passes::consumer"],[1992,"leo_ast::passes::reconstructor"],[2035,"leo_ast::passes::visitor"],[2075,"leo_ast::program"],[2110,"leo_ast::program::program_id"],[2144,"leo_ast::program::program_scope"],[2180,"leo_ast::statement"],[2234,"leo_ast::statement::assert"],[2299,"leo_ast::statement::assign"],[2336,"leo_ast::statement::block"],[2373,"leo_ast::statement::conditional"],[2411,"leo_ast::statement::console"],[2413,"leo_ast::statement::console::console_function"],[2445,"leo_ast::statement::console::console_statement"],[2481,"leo_ast::statement::const_"],[2520,"leo_ast::statement::definition"],[2563,"leo_ast::statement::definition::declaration_type"],[2594,"leo_ast::statement::expression"],[2630,"leo_ast::statement::iteration"],[2673,"leo_ast::statement::return_"],[2709,"leo_ast::struct"],[2752,"leo_ast::struct::member"],[2791,"leo_ast::stub"],[2829,"leo_ast::stub::function_stub"],[2878,"leo_ast::types"],[2886,"leo_ast::types::array"],[2923,"leo_ast::types::core_constant"],[2948,"leo_ast::types::future"],[2985,"leo_ast::types::integer_type"],[3027,"leo_ast::types::mapping"],[3060,"leo_ast::types::struct_type"],[3092,"leo_ast::types::tuple"],[3126,"leo_ast::types::type_"],[3177,"leo_ast::value"],[3252,"core::fmt"],[3253,"std::path"],[3254,"leo_errors::errors"],[3255,"serde_json::value"],[3256,"alloc::string"],[3257,"core::result"],[3258,"core::any"],[3259,"serde::de"],[3260,"serde::ser"],[3261,"leo_span::span"],[3262,"smol_str"],[3263,"snarkvm_console_program::data::identifier"],[3264,"snarkvm_console_network"],[3265,"core::hash"],[3266,"leo_span::symbol"],[3267,"alloc::vec"],[3268,"indexmap::map"],[3269,"core::num::error"],[3270,"core::option"],[3271,"snarkvm_synthesizer_program::mapping"],[3272,"core::default"],[3273,"snarkvm_console_program::id"],[3274,"snarkvm_console_program::data_types::record_type"],[3275,"snarkvm_console_program::data_types::struct_type"],[3276,"snarkvm_synthesizer_program::closure"],[3277,"snarkvm_synthesizer_program::traits::instruction"],[3278,"snarkvm_synthesizer_program::function"],[3279,"snarkvm_synthesizer_program::traits::command"],[3280,"snarkvm_console_program::data_types::array_type"],[3281,"snarkvm_console_program::data_types::plaintext_type"]],"i":"``b0000000`000000000`0000``000`0````````00000000``0`````CdBf```0Cb2CfCh301`241324100`24`333333333333333333333333333333333333`222222222222222222222222222222222222`4444444444444444444444444444444444444`111111111111111111111111111111111111`000000000000000000000000000000000000````````Cj000000000000000000000000000000000000000```Dh0000000000000000000000000000``Dj000``DlDn101010101101010101010110100101010101010`E`00000000000000000000000000000000000`Eb00000000000000000000000000000Gn0Ed`En0Fj1Ej3`003``2213`3`22423``1`122314`332202222422422222122224413``223`4403`3``3`2`Fd``44``444Gj55555ElGl77777`FfGh999Ef6:4F`732GfFh86H`Hb6::??4``3341;14????94;7632:810`?`?????`7?``?`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<`99999999999999999999999999999999999>>>``>>>>>>>>>>>>>>>>>>>>>>>>>>>>4>4>4>4>4>4>4>4>4>4>>>>4444>>44>4>44>4>4444>44444>4>4>4>4>4>4>4>4`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`777777777777777777777777777777777777`22222222222222222222222222222222222==`=`==`==Fn>0>>>>0>0>>>0>>>>>>0>>0>6>>`0>0>>>>>>>0>0>0>0>0>0>`Gb00000000000000000000000000000000000000``85855858585858585858588885555888558585858858555858585858585855858585858585`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<`:::::::::::::::::::::::::::::::::::Gn000000000``004040404040404040404000044440044040440404440444440404040404040404`3333333333333333333333333333333333``Hd000000`0000000000000000000`00`00`00000000000000`00`Hh0000000000000000000000000000000000Ib000000000000000000000000000000000000000000000000000000000000000000000000000000000000`00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Hl0000000000000000000000000000000000000000Id`0000000000000000000000000000000`Hn0000000000000000000000000000000000000Hj0000`000000000000000000000000000000```Ih0000000000000000000000000000000``Ij00Il10101010101010101011110000110101010101011101010111010101000`In0000000000000000000000000000000000000```````JdJfKfLhKhKlL`Kn````77667677666677657367720166477777Ln```000Md01110110000110Mf02012202001102022222Ml`0``00Mn010110000110N`0201220001102002222`f00000000000000000000``00000000000`Gd00000000000000000000000000000000`Lb0000000000000000000000000000000000Lf000000000````00000````0000000000`000000``000000000000Nd00``0Jh1010101010101010101111000010010001010100000101000101010010`Jj00000000000000000000000000000000000`I`00000000000000000000000000000000000`Jl000000000000000000000000000000000000``Nf00`0000000000000000000000000000`Jn0000000000000000000000000000000000`K`0000000000000000000000000000000000000Nh``0Kb0000`0000000000000000000000000000000001`11111111111111111111111111111`Kd0000000000000000000000000000000000`Kj00000000000000000000000000000000000000000`Ld0000000000000000000000000000000000`Lj0000000000000000000000000`000000000000000`Nn0000000000000000000000000000000000000`Mh000000000000000000`00000000000000000`Hf00000000000000000000000000000000000000000000000`````````Oh00000000000000000000000000000000000`Ol00000000000000000000000`On00000000000000000000000000000000000A@`0000`000000000000000000000000000000000000`A@b0000000000000000000000000000000`A@d000000000000000000000000000000`A@f00000000000000000000000000000000If00000000000000`00000000000000000000000000000000000G`00000000000000000`0000000000000000000000000000``00000000000000000000000000","f":"``{{{d{b}}}{{d{f}}}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{b}}}b}{{d{d{hc}}}j{}}{{dl}j}`{{}b}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{b}}{d{b}}}A`}{{d{d{c}}}A`{}}000`{{{d{b}}{d{hAb}}}Ad}{cc{}}{Af{{Ah{b}}}}{{{d{Aj}}}{{Ah{b}}}}``{{}n}{{}c{}}{bf}`{fb}{AlAl}``{{Al{d{Aj}}}Al}````{{{d{b}}Af{d{Aj}}}{{Ah{j}}}}{{{d{b}}Af{d{Aj}}{d{{An{{d{Aj}}}}}}}{{Ah{j}}}}{{{d{b}}}{{Ah{B`}}}}{{{d{b}}}{{Ah{Al}}}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}``{{}c{}}`````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Bf}}}Bf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Bf}}}Bh}{nj}{{{d{Bf}}{d{Bf}}}A`}{{d{d{c}}}A`{}}000{{{d{Bf}}{d{hAb}}}Ad}0{cc{}}{{{d{Bf}}}Bj}``{{}n}{{}c{}}{{{d{Bf}}c}BbBl}{{{d{hBf}}Bj}j}{{{d{hBf}}Bn}j}{{{d{Bf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cb}}}Cb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cb}}}Bh}{nj}{{{d{Cb}}{d{Cb}}}A`}{{d{d{c}}}A`{}}000{{{d{Cb}}{d{hAb}}}Ad}0{cc{}}{{{d{Cb}}}Bj}`{{}n}{{}c{}}`{{{d{Cb}}c}BbBl}{{{d{hCb}}Bj}j}{{{d{hCb}}Bn}j}{{{d{Cb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cd}}}Cd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cd}}}Bh}{nj}{{{d{Cd}}{d{Cd}}}A`}{{d{d{c}}}A`{}}000{{{d{Cd}}{d{hAb}}}Ad}0{cc{}}{{{d{Cd}}}Bj}`{{}n}{{}c{}}`{{{d{Cd}}c}BbBl}{{{d{hCd}}Bj}j}{{{d{hCd}}Bn}j}{{{d{Cd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cf}}}Cf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Cf}}}Bh}{nj}{{{d{Cf}}{d{Cf}}}A`}{{d{d{c}}}A`{}}000{{{d{Cf}}{d{hAb}}}Ad}0{cc{}}{{{d{Cf}}}Bj}`{{}n}`{{}c{}}`{{{d{Cf}}c}BbBl}{{{d{hCf}}Bj}j}{{{d{hCf}}Bn}j}{{{d{Cf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ch}}}Ch}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ch}}}Bh}{nj}{{{d{Ch}}{d{Ch}}}A`}{{d{d{c}}}A`{}}000{{{d{Ch}}{d{hAb}}}Ad}0{cc{}}{{{d{Ch}}}Bj}``{{}n}{{}c{}}{{{d{Ch}}c}BbBl}{{{d{hCh}}Bj}j}{{{d{hCh}}Bn}j}{{{d{Ch}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Cj}}}Cj}{{d{d{hc}}}j{}}{{dl}j}{{}Cj}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Ah{Cj}}}Bh}{nj}{{{d{Cj}}{d{Cj}}}A`}{{d{d{c}}}A`{}}000{{{d{Cj}}{d{hAb}}}Ad}0{cc{}}{{{d{{Cl{c}}}}}CjCn}{{{d{Cj}}{d{hc}}}jD`}{{{d{Cj}}}Bj}`{{}n}{{}c{}}8`{{DbBj}Cj}{{{d{Cj}}c}AhBl}{{{d{hCj}}Bj}j}{{{d{hCj}}Bn}j}{{{d{Cj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}{c{{Bb{{Df{{Dd{Db}}f}}}}}Bh}{{{d{{Df{{Dd{Db}}f}}}}c}BbBl}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Dh}}}Dh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Dh}}}Bh}{nj}{{{d{Dh}}{d{Dh}}}A`}{{d{d{c}}}A`{}}000{{{d{Dh}}{d{hAb}}}Ad}{cc{}}{{{d{Dh}}{d{hc}}}jD`}{{}n}{{}c{}}`{{DbDb}Dh}`{{{d{Dh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{{{d{Dj}}}Bj}{{{d{hDj}}Bj}j}{{{d{hDj}}Bn}j}{{{d{Dj}}}Bn}``{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Dl}}}Dl}{{{d{Dn}}}Dn}{{d{d{hc}}}j{}}0{{dl}j}0{{}Dl}{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{nj}0{{{d{Dl}}{d{hAb}}}Ad}{{{d{Dn}}{d{hAb}}}Ad}{cc{}}0{{}n}0`{{}c{}}0{BjDl}{BjDn}`{{{d{Dl}}}Bj}{{{d{hDn}}}Bj}{dc{}}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{E`}}}E`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{E`}}}Bh}{nj}{{{d{E`}}{d{E`}}}A`}{{d{d{c}}}A`{}}000{{{d{E`}}{d{hAb}}}Ad}0{cc{}}{B`E`}{nE`}{{{d{E`}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{E`}}}A`}{{{d{E`}}c}BbBl}{{{d{E`}}}{{d{Aj}}}}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{{d{E`}}}n}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Eb}}}Eb}{{d{d{hc}}}j{}}{{dl}j}{{}Eb}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Eb}}}Bh}{nj}{{{d{Eb}}{d{Eb}}}A`}{{d{d{c}}}A`{}}000{{{d{Eb}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{B`Eb}{{{d{Eb}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}``{{{d{Ed}}}Ed}{{d{d{hc}}}j{}}{{dl}j}`{{}Ed}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ed}}}Bh}{nj}``{{{d{Ed}}{d{Ed}}}A`}{{d{d{c}}}A`{}}000```{{{d{Ed}}{d{hAb}}}Ad}0{cc{}}{{{d{Aj}}}{{Bb{EfEh}}}}`{{{d{Ed}}}Bj}``````````````{{}n}{{}c{}}``````````{{{d{Ed}}c}BbBl}{{{d{hEd}}Bj}j}{{{d{hEd}}Bn}j}{{{d{Ed}}}Bn}````````````{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}`{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}``{dBd}``{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ej}}}Ej}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ej}}}Bh}{nj}{{{d{Ej}}{d{Ej}}}A`}{{d{d{c}}}A`{}}000{{{d{Ej}}{d{hAb}}}Ad}0{cc{}}{{{d{Ej}}}Bj}{{}n}{{}c{}}{{{d{Ej}}c}BbBl}{{{d{hEj}}Bj}j}{{{d{hEj}}Bn}j}{{{d{Ej}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{El}}}El}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{El}}}Bh}{nj}`{{{d{El}}{d{El}}}A`}{{d{d{c}}}A`{}}000{{{d{El}}{d{hAb}}}Ad}0{cc{}}{{{d{El}}}Bj}`{{}n}{{}c{}}{{{d{El}}c}BbBl}{{{d{hEl}}Bj}j}{{{d{hEl}}Bn}j}{{{d{El}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````````````````````````````````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{En}}}En}{{{d{F`}}}F`}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{En}}}Bh}{c{{Bb{F`}}}Bh}{nj}0{{{d{En}}{d{En}}}A`}{{{d{F`}}{d{F`}}}A`}{{d{d{c}}}A`{}}0000000{{{d{En}}{d{hAb}}}Ad}0{{{d{F`}}{d{hAb}}}Ad}0{cc{}}0{Db{{Fb{En}}}}{{{d{F`}}}Bj}`{{}n}0{{}c{}}0```{{{d{En}}c}BbBl}{{{d{F`}}c}BbBl}{{{d{hF`}}Bj}j}{{{d{hF`}}Bn}j}{{{d{F`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Fd}}}Fd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Fd}}}Bh}{nj}{{{d{Fd}}{d{Fd}}}A`}{{d{d{c}}}A`{}}000{{{d{Fd}}{d{hAb}}}Ad}0{cc{}}`{{{d{Fd}}}Bj}`{{}n}{{}c{}}`{{{d{Fd}}c}BbBl}{{{d{hFd}}Bj}j}{{{d{hFd}}Bn}j}{{{d{Fd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ff}}}Ff}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ff}}}Bh}{nj}{{{d{Ff}}{d{Ff}}}A`}{{d{d{c}}}A`{}}000`{{{d{Ff}}{d{hAb}}}Ad}0{cc{}}{{{d{Ff}}}Bj}`{{}n}{{}c{}}{{{d{Ff}}c}BbBl}{{{d{hFf}}Bj}j}{{{d{hFf}}Bn}j}{{{d{Ff}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Fh}}}Fh}{{d{d{hc}}}j{}}{{dl}j}{{}Fh}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Fh}}}Bh}{nj}{{{d{Fh}}{d{Fh}}}A`}{{d{d{c}}}A`{}}000{{{d{Fh}}{d{hAb}}}Ad}0{cc{}}{{{d{Fh}}}Bj}`{{}n}{{}c{}}{{{d{Fh}}c}BbBl}{{{d{hFh}}Bj}j}{{{d{hFh}}Bn}j}{{{d{Fh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Fj}}}Fj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Fj}}}Bh}{{{d{Fj}}}{{`{Fl}}}}{nj}0{{{d{Fj}}{d{Fj}}}A`}{{d{d{c}}}A`{}}000{{{d{Fn}}{d{hAb}}}Ad}{{{d{Fj}}{d{hAb}}}Ad}0{cc{}}0{{{d{Aj}}}{{Bb{EfEh}}}}{{G`Bj}Fj}{{{d{Fj}}}Bj}`{{}n}0{{}c{}}0{{{d{Fj}}c}BbBl}{{{d{hFj}}Bj}j}{{{d{hFj}}Bn}j}{{{d{Fj}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gb}}}Gb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gb}}}Bh}{nj}{{{d{Gb}}{d{Gb}}}A`}{{d{d{c}}}A`{}}000{{{d{Gb}}{d{hAb}}}Ad}0{cc{}}{{{d{Gb}}{d{hc}}}jD`}{{{d{Gb}}}Bj}`{{}n}{{}c{}}7`{{GdDbBj}Gb}`{{{d{Gb}}c}BbBl}{{{d{hGb}}Bj}j}{{{d{hGb}}Bn}j}{{{d{Gb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Gf}}}A`}{{{d{Gh}}}Gh}{{{d{Gf}}}Gf}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Gh}}}Bh}{c{{Bb{Gf}}}Bh}{nj}0{{{d{Gh}}{d{Gh}}}A`}{{{d{Gf}}{d{Gf}}}A`}{{d{d{c}}}A`{}}0000000`{{{d{Gh}}{d{hAb}}}Ad}0{{{d{Gf}}{d{hAb}}}Ad}0{cc{}}0{{{d{Gh}}}Bj}{{{d{Gf}}}Bj}```{{}n}0{{}c{}}0``{{{d{Gh}}c}BbBl}{{{d{Gf}}c}BbBl}{{{d{hGh}}Bj}j}{{{d{hGf}}Bj}j}{{{d{hGh}}Bn}j}{{{d{hGf}}Bn}j}{{{d{Gh}}}Bn}{{{d{Gf}}}Bn}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{{{d{Gf}}}B`}{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gj}}}Gj}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gj}}}Bh}{nj}{{{d{Gj}}{d{Gj}}}A`}{{d{d{c}}}A`{}}000{{{d{Gj}}{d{hAb}}}Ad}0{cc{}}{{{d{Gj}}}Bj}```{{}n}{{}c{}}{{{d{Gj}}c}BbBl}{{{d{hGj}}Bj}j}{{{d{hGj}}Bn}j}{{{d{Gj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gl}}}Gl}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gl}}}Bh}{nj}`{{{d{Gl}}{d{Gl}}}A`}{{d{d{c}}}A`{}}000{{{d{Gl}}{d{hAb}}}Ad}0{cc{}}{{{d{Gl}}}Bj}`{{}n}{{}c{}}{{{d{Gl}}c}BbBl}{{{d{hGl}}Bj}j}{{{d{hGl}}Bn}j}{{{d{Gl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````````````{Gn{{d{Aj}}}}{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Gn}}}Gn}{{{d{H`}}}H`}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Gn}}}Bh}{c{{Bb{H`}}}Bh}{nj}0{{{d{Gn}}{d{Gn}}}A`}{{{d{H`}}{d{H`}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Gn}}{d{hAb}}}Ad}0{{{d{H`}}{d{hAb}}}Ad}0{cc{}}0{Db{{Fb{Gn}}}}{{{d{H`}}}Bj}`{{}n}0{{}c{}}0``{{{d{Gn}}c}BbBl}{{{d{H`}}c}BbBl}{{{d{hH`}}Bj}j}{{{d{hH`}}Bn}j}{{{d{H`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}0{dB`}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hb}}}Hb}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hb}}}Bh}{nj}{{{d{Hb}}{d{Hb}}}A`}{{d{d{c}}}A`{}}000{{{d{Hb}}{d{hAb}}}Ad}0{cc{}}{{{d{Hb}}}Bj}`{{}n}{{}c{}}{{{d{Hb}}c}BbBl}{{{d{hHb}}Bj}j}{{{d{hHb}}Bn}j}{{{d{Hb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hd}}}Hd}{{d{d{hc}}}j{}}{{dl}j}`{{}Hd}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hd}}}Bh}{nj}{{{d{Hd}}{d{Hd}}}A`}{{d{d{c}}}A`{}}000{{{d{Hd}}{d{hAb}}}Ad}00{HfHd}{cc{}}{{{d{Hd}}}Bj}``{{}n}``{{}c{}}`{{{d{Hd}}}Db}{{{Dd{Hh}}HjCj{Dd{Hl}}{Dd{Hn}}I`BnBj}Hd}```{{{d{Hd}}c}BbBl}{{{d{hHd}}Bj}j}{{{d{hHd}}Bn}j}{{{d{Hd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}``{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hh}}}Hh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hh}}}Bh}{nj}{{{d{Hh}}{d{Hh}}}A`}{{d{d{c}}}A`{}}000{{{d{Hh}}{d{hAb}}}Ad}0{cc{}}{{{d{Hh}}}Bj}``{{}n}{{}c{}}{{{d{Hh}}c}BbBl}{{{d{hHh}}Bj}j}{{{d{hHh}}Bn}j}{{{d{Hh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ib}}}Ib}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{Ib}}{d{Ib}}}A`}{{d{d{c}}}A`{}}000{{{d{Ib}}{d{hAb}}}Ad}{cc{}}{{DbDb}{{Fb{Ib}}}}{{}n}{{}c{}}{{{d{Ib}}}A`}{{{d{Ib}}}n}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hl}}}Hl}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hl}}}Bh}{nj}{{{d{Hl}}{d{Hl}}}A`}{{d{d{c}}}A`{}}000{{{d{Hl}}{d{hAb}}}Ad}00{cc{}}{{{d{Hl}}}Bj}`{{{d{Hl}}}{{d{Cj}}}}`{{}n}{{}c{}}{{{d{Hl}}}Id}`{{{d{Hl}}c}BbBl}{{{d{hHl}}Bj}j}{{{d{hHl}}Bn}j}{{{d{Hl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{{{d{Hl}}}{{d{If}}}}`{dBd}{{}c{}}`````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Id}}}Id}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Id}}}Bh}{nj}{{{d{Id}}{d{Id}}}A`}{{d{d{c}}}A`{}}000{{{d{Id}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Id}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hn}}}Hn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hn}}}Bh}{nj}{{{d{Hn}}{d{Hn}}}A`}{{d{d{c}}}A`{}}000{{{d{Hn}}{d{hAb}}}Ad}0{cc{}}{{{d{Hn}}}Bj}`{{}n}{{}c{}}{{{d{Hn}}}Id}`{{{d{Hn}}c}BbBl}{{{d{hHn}}Bj}j}{{{d{hHn}}Bn}j}{{{d{Hn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{{{d{Hn}}}{{d{If}}}}`{dBd}{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hj}}}Hj}{{d{d{hc}}}j{}}{{dl}j}{{}Hj}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hj}}}Bh}{nj}{{{d{Hj}}{d{Hj}}}A`}{{d{d{c}}}A`{}}000{{{d{Hj}}{d{hAb}}}Ad}{cc{}}{{}n}{{}c{}}{HjA`}000{{{d{Hj}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ih}}}Ih}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ih}}}Bh}{nj}{{{d{Ih}}{d{Ih}}}A`}{{d{d{c}}}A`{}}000{{{d{Ih}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Ih}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Ij}}}Ij}{{{d{Il}}}Il}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Ij}}}Bh}{c{{Bb{Il}}}Bh}{nj}0{{{d{Ij}}{d{Ij}}}A`}{{{d{Il}}{d{Il}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Ij}}{d{hAb}}}Ad}0{{{d{Il}}{d{hAb}}}Ad}{cc{}}0{{{d{Ij}}}{{d{Bj}}}}`{{}n}0{{}c{}}0{{{d{Ij}}c}BbBl}{{{d{Il}}c}BbBl}{{{d{hIj}}Bj}j}{{{d{hIj}}Bn}j}{{{d{Ij}}}{{d{Bn}}}}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}{dB`}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0{{}c{}}0```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{In}}}In}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{In}}}Bh}{nj}{{{d{In}}{d{In}}}A`}{{d{d{c}}}A`{}}000{{{d{In}}{d{hAb}}}Ad}0{cc{}}{{{d{{J`{c}}}}}InCn}{{{d{In}}}Bj}``{{}n}{{}c{}}`{{{d{In}}c}BbBl}{{{d{hIn}}Bj}j}{{{d{hIn}}Bn}j}{{{d{In}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}```````````````````{{{d{h{Jd{}{{Jb{c}}}}}}Ej}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}El}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jh}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}F`}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}I`}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fd}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Ff}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jl}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Jn}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}K`}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kb}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fh}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Ed}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kd}c{}}{{{d{h{Kf{}{{Jb{c}}}}}}Hd}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Cj}c{}}{{{d{h{Kh{}{{Jb{c}}}}}}f}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Kj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Fj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gb}c{}}{{{d{h{Kl{}{{Jb{c}}}}}}In}c{}}{{{d{h{Kn{}{{Jb{c}}}}}}f}c{}}{{{d{h{L`{}{{Jb{c}}}}}}Lb}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Ld}c{}}{{{d{h{Jf{}{{Jb{c}}}}}}Lf}c{}}{{{d{h{Lh{}{{Jb{c}}}}}}Lj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gf}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gj}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Gl}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}H`}c{}}{{{d{h{Jd{}{{Jb{c}}}}}}Hb}c{}}````{{{d{h{Ln{}{{Ll{c}}}}}}Ej}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}El}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Bf}{{M`{Edc}}}Mb}{{{d{hMd}}Jh}{{M`{Lfc}}}{}}{{{d{hMd}}Jj}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Cb}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Cd}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}F`}{{M`{Edc}}}Mb}{{{d{hMd}}I`}{{M`{I`c}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fd}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ff}{{M`{Edc}}}Mb}{{{d{hMd}}Jl}{{M`{Lfc}}}{}}{{{d{hMd}}Jn}{{M`{Lfc}}}{}}{{{d{hMd}}K`}{{M`{Lfc}}}{}}{{{d{hMd}}Kb}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fh}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ed}{{M`{Edc}}}Mb}{{{d{hMd}}Kd}{{M`{Lfc}}}{}}{{{d{hMf}}Hd}Hd}{{{d{hMf}}Hf}Hf}{{{d{h{Ln{}{{Ll{c}}}}}}Cj}{{M`{Edc}}}Mb}{{{d{hMf}}f}f}{{{d{hMd}}Kj}{{M`{Lfc}}}{}}{{{d{h{Ln{}{{Ll{c}}}}}}Fj}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Gb}{{M`{Edc}}}Mb}{{{d{hMf}}In}In}{{{d{h{Ln{}{{Ll{c}}}}}}Cf}{{M`{Edc}}}Mb}5{{{d{hMf}}Lb}Lb}{{{d{hMd}}Ld}{{M`{Lfc}}}{}}{{{d{hMd}}Lf}{{M`{Lfc}}}{}}{{{d{hMf}}Lj}Lj}{{{d{h{Ln{}{{Ll{c}}}}}}Gf}{{M`{Edc}}}Mb}{{{d{hMf}}Mh}Mh}{{{d{h{Ln{}{{Ll{c}}}}}}Gj}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Gl}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Ch}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}H`}{{M`{Edc}}}Mb}{{{d{h{Ln{}{{Ll{c}}}}}}Hb}{{M`{Edc}}}Mb}`````{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ej}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{El}}{d{c}}}eMbMb}{{{d{hMn}}{d{Jh}}}j}{{{d{hMn}}{d{Jj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{F`}}{d{c}}}eMbMb}{{{d{hMn}}{d{I`}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fd}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ff}}{d{c}}}eMbMb}{{{d{hMn}}{d{Jl}}}j}{{{d{hMn}}{d{Jn}}}j}{{{d{hMn}}{d{K`}}}j}{{{d{hMn}}{d{Kb}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fh}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Ed}}{d{c}}}eMbMb}{{{d{hMn}}{d{Kd}}}j}{{{d{hN`}}{d{Hd}}}j}{{{d{hN`}}{d{Hf}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Cj}}{d{c}}}eMbMb}{{{d{hN`}}{d{f}}}j}{{{d{hMn}}{d{Kj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Fj}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gb}}{d{c}}}eMbMb}{{{d{hN`}}{d{In}}}j}4{{{d{hN`}}{d{Lb}}}j}{{{d{hMn}}{d{Ld}}}j}{{{d{hMn}}{d{Lf}}}j}{{{d{hN`}}{d{Lj}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gf}}{d{c}}}eMbMb}1{{{d{hN`}}{d{Mh}}}j}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gj}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Gl}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{H`}}{d{c}}}eMbMb}{{{d{h{Ml{}{{Mj{c}}{Jb{e}}}}}}{d{Hb}}{d{c}}}eMbMb}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{f}}}f}{{d{d{hc}}}j{}}{{dl}j}{{}f}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{f}}}Bh}{nj}{{{d{f}}{d{f}}}A`}{{d{d{c}}}A`{}}000{{{d{f}}{d{hAb}}}Ad}0{cc{}}`{{}n}{{}c{}}```{{{d{f}}c}BbBl}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Gd}}}Gd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Gd}}}Bh}{nj}{{{d{Gd}}{d{Gd}}}A`}{{d{d{c}}}A`{}}000{{{d{Gd}}{d{hAb}}}Ad}0{{{d{{Nb{c}}}}}GdCn}{CjGd}{cc{}}{{{d{Gd}}{d{hc}}}jD`}{{}n}{{}c{}}``{{{d{Gd}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lb}}}Lb}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lb}}}Bh}{nj}{{{d{Lb}}{d{Lb}}}A`}{{d{d{c}}}A`{}}000{{{d{Lb}}{d{hAb}}}Ad}0{cc{}}{MhLb}`{{}n}{{}c{}}``{{{d{Lb}}c}BbBl}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lf}}}Lf}{{d{d{hc}}}j{}}{{dl}j}````{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lf}}}Bh}{nj}{{BnBj}Lf}{{{d{Lf}}{d{Lf}}}A`}{{d{d{c}}}A`{}}000`{{{d{Lf}}{d{hAb}}}Ad}0{cc{}}{{{d{Lf}}}Bj}{{}n}{{}c{}}``{{{d{Lf}}c}BbBl}{{{d{hLf}}Bj}j}{{{d{hLf}}Bn}j}{{{d{Lf}}}Bn}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`````{d{{d{c}}}{}}0{{{d{h}}}{{d{hc}}}{}}0{{{d{Nd}}}Nd}{{{d{Jh}}}Jh}{{d{d{hc}}}j{}}0{{dl}j}0{n{{d{c}}}{}}0{n{{d{hc}}}{}}0{c{{Bb{Nd}}}Bh}{c{{Bb{Jh}}}Bh}{nj}0{{{d{Nd}}{d{Nd}}}A`}{{{d{Jh}}{d{Jh}}}A`}{{d{d{c}}}A`{}}0000000{{{d{Nd}}{d{hAb}}}Ad}{{{d{Jh}}{d{hAb}}}Ad}0{cc{}}0{{{d{Jh}}}Bj}`{{}n}0{{}c{}}0{{{d{Nd}}c}BbBl}{{{d{Jh}}c}BbBl}{{{d{hJh}}Bj}j}{{{d{hJh}}Bn}j}{{{d{Jh}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}0{dc{}}0{dC`}{dB`}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBd}0`{{}c{}}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jj}}}Jj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jj}}}Bh}{nj}{{{d{Jj}}{d{Jj}}}A`}{{d{d{c}}}A`{}}000{{{d{Jj}}{d{hAb}}}Ad}0{cc{}}{{{d{Jj}}}Bj}`{{}n}{{}c{}}`{{{d{Jj}}c}BbBl}{{{d{hJj}}Bj}j}{{{d{hJj}}Bn}j}{{{d{Jj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{I`}}}I`}{{d{d{hc}}}j{}}{{dl}j}{{}I`}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{I`}}}Bh}{nj}{{{d{I`}}{d{I`}}}A`}{{d{d{c}}}A`{}}000{{{d{I`}}{d{hAb}}}Ad}0{cc{}}{{{d{I`}}}Bj}`{{}n}{{}c{}}{{{d{I`}}c}BbBl}{{{d{hI`}}Bj}j}{{{d{hI`}}Bn}j}{{{d{I`}}}Bn}``{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jl}}}Jl}{{d{d{hc}}}j{}}{{dl}j}`{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jl}}}Bh}{nj}{{{d{Jl}}{d{Jl}}}A`}{{d{d{c}}}A`{}}000{{{d{Jl}}{d{hAb}}}Ad}0{cc{}}{{{d{Jl}}}Bj}`{{}n}{{}c{}}`{{{d{Jl}}c}BbBl}{{{d{hJl}}Bj}j}{{{d{hJl}}Bn}j}{{{d{Jl}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}`{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nf}}}Nf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nf}}}Bh}{nj}{{{d{Nf}}{d{Nf}}}A`}{{d{d{c}}}A`{}}000{{{d{Nf}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Nf}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Jn}}}Jn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Jn}}}Bh}{nj}{{{d{Jn}}{d{Jn}}}A`}{{d{d{c}}}A`{}}000{{{d{Jn}}{d{hAb}}}Ad}0{cc{}}`{{{d{Jn}}}Bj}`{{}n}{{}c{}}{{{d{Jn}}c}BbBl}{{{d{hJn}}Bj}j}{{{d{hJn}}Bn}j}{{{d{Jn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{K`}}}K`}{{d{d{hc}}}j{}}{{dl}j}{{}K`}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{K`}}}Bh}{nj}{{{d{K`}}{d{K`}}}A`}{{d{d{c}}}A`{}}000{{{d{K`}}{d{hAb}}}Ad}0{cc{}}{{{d{K`}}}Bj}`{{}n}{{}c{}}`{{{d{K`}}c}BbBl}{{{d{hK`}}Bj}j}{{{d{hK`}}Bn}j}{{{d{K`}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kb}}}Kb}{{d{d{hc}}}j{}}{{dl}j}``{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kb}}}Bh}{nj}{{{d{Kb}}{d{Kb}}}A`}{{d{d{c}}}A`{}}000{{{d{Kb}}{d{hAb}}}Ad}0{cc{}}{{{d{Kb}}}Bj}`{{}n}{{}c{}}`{{{d{Kb}}c}BbBl}{{{d{hKb}}Bj}j}{{{d{hKb}}Bn}j}{{{d{Kb}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nh}}}Nh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nh}}}Bh}{nj}{{{d{Nh}}{d{Nh}}}A`}{{d{d{c}}}A`{}}000{{{d{Nh}}{d{hAb}}}Ad}0{cc{}}{{}n}{{}c{}}{{{d{Nh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kd}}}Kd}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kd}}}Bh}{nj}{{{d{Kd}}{d{Kd}}}A`}{{d{d{c}}}A`{}}000`{{{d{Kd}}{d{hAb}}}Ad}0{cc{}}{{{d{Kd}}}Bj}`{{}n}{{}c{}}{{{d{Kd}}c}BbBl}{{{d{hKd}}Bj}j}{{{d{hKd}}Bn}j}{{{d{Kd}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Kj}}}Kj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Kj}}}Bh}{nj}{{{d{Kj}}{d{Kj}}}A`}{{d{d{c}}}A`{}}000{{{d{Kj}}{d{hAb}}}Ad}0{cc{}}{{{d{Kj}}}Bj}``{{}n}{{}c{}}{{{d{Kj}}c}BbBl}{{{d{hKj}}Bj}j}{{{d{hKj}}Bn}j}{{{d{Kj}}}Bn}`````{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ld}}}Ld}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Ld}}}Bh}{nj}{{{d{Ld}}{d{Ld}}}A`}{{d{d{c}}}A`{}}000`{{{d{Ld}}{d{hAb}}}Ad}0{cc{}}{{{d{Ld}}}Bj}`{{}n}{{}c{}}{{{d{Ld}}c}BbBl}{{{d{hLd}}Bj}j}{{{d{hLd}}Bn}j}{{{d{Ld}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Lj}}}Lj}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Lj}}}Bh}{nj}{{{d{Lj}}{d{Lj}}}A`}{{d{d{c}}}A`{}}000`{{{d{Lj}}{d{hAb}}}Ad}0{cc{}}{{{d{{Nj{c}}}}Db}LjCn}{{{d{{Nl{c}}}}}LjCn}{{{d{Lj}}}Bj}``{{}n}{{}c{}}```{{{d{Lj}}}Db}{{{d{Lj}}c}BbBl}{{{d{hLj}}Bj}j}{{{d{hLj}}Bn}j}{{{d{Lj}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Nn}}}Nn}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Nn}}}Bh}{nj}{{{d{Nn}}{d{Nn}}}A`}{{d{d{c}}}A`{}}000{{{d{Nn}}{d{hAb}}}Ad}0{cc{}}{{{d{Nn}}}Bj}``{{}n}{{}c{}}`{{{d{Nn}}}Db}{{{d{Nn}}c}BbBl}{{{d{hNn}}Bj}j}{{{d{hNn}}Bn}j}{{{d{Nn}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}`{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Mh}}}Mh}{{d{d{hc}}}j{}}{{dl}j}`{{}Mh}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Mh}}}Bh}{nj}{{{d{Mh}}{d{Mh}}}A`}{{d{d{c}}}A`{}}000{{{d{Mh}}{d{hAb}}}Ad}0{cc{}}```{{}n}{{}c{}}`{{{d{Mh}}c}BbBl}```{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Hf}}}Hf}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Hf}}}Bh}{nj}{{{d{Hf}}{d{Hf}}}A`}{{d{d{c}}}A`{}}000{{{d{Hf}}{d{hAb}}}Ad}00{HdHf}{cc{}}{{{d{{O`{ce}}}}Db}HfCn{{Ob{c}}}}{{{d{{Od{ceg}}}}DbDb}HfCn{{Ob{c}}}{{Of{c}}}}{{{d{{Od{ceg}}}}Db}HfCn{{Ob{c}}}{{Of{c}}}}{{{d{Hf}}}Bj}``{{}n}`{{}c{}}{{{d{Hf}}}A`}{{{d{Hf}}}Db}{{{Dd{Hh}}A`HjCj{Dd{Hl}}{Dd{Hn}}BnBj}Hf}``{{{d{Hf}}c}BbBl}{{{d{hHf}}Bj}j}{{{d{hHf}}Bn}j}{{{d{Hf}}}Bn}`{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`````````{{{d{Oh}}}{{d{If}}}}{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Oh}}}Oh}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{Oh}}}Bh}{nj}9`{{{d{Oh}}{d{Oh}}}A`}{{d{d{c}}}A`{}}000{{{d{Oh}}{d{hAb}}}Ad}0{cc{}}{{{d{{Oj{c}}}}{Fb{Db}}}OhCn}{{{d{Oh}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{Oh}}}n}`{{IfE`}Oh}{{{d{Oh}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}``{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Ol}}}Ol}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{nj}{{{d{Ol}}{d{Ol}}}A`}{{d{d{c}}}A`{}}000{cc{}}{{DbDb}{{Fb{Ol}}}}{{}n}{{}c{}}{dc{}}{{{d{Ol}}}If}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{On}}}On}{{d{d{hc}}}j{}}{{dl}j}{{}On}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{On}}}Bh}{nj}{{{d{On}}{d{On}}}A`}{{d{d{c}}}A`{}}000{{{d{On}}{d{hAb}}}Ad}0{cc{}}{{{d{On}}{d{hc}}}jD`}{{}n}{{{d{On}}}{{d{{An{If}}}}}}`{{}c{}}`{{{d{On}}}{{d{{Fb{Dh}}}}}}`{{{Dd{If}}{Fb{Dh}}A`}On}{{{d{On}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@`}}}A@`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@`}}}Bh}{nj}{{{d{A@`}}{d{A@`}}}A`}{{d{d{c}}}A`{}}000{{{d{A@`}}{d{hAb}}}Ad}0{cc{}}{{{d{A@`}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{A@`}}}A`}{{{d{A@`}}c}BbBl}{A@`Db}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@b}}}A@b}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@b}}}Bh}{nj}{{{d{A@b}}{d{A@b}}}A`}{{d{d{c}}}A`{}}000{{{d{A@b}}{d{hAb}}}Ad}0{cc{}}{{{d{A@b}}{d{hc}}}jD`}{{}n}{{}c{}}``{{{d{A@b}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}`{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@d}}}A@d}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@d}}}Bh}{nj}{{{d{A@d}}{d{A@d}}}A`}{{d{d{c}}}A`{}}000{{{d{A@d}}{d{hAb}}}Ad}0{cc{}}{{{d{A@d}}{d{hc}}}jD`}`{{}n}{{}c{}}`{{{d{A@d}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{A@f}}}A@f}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{A@f}}}Bh}{nj}{{{d{A@f}}}{{d{{An{If}}}}}}`{{{d{A@f}}{d{A@f}}}A`}{{d{d{c}}}A`{}}000{{{d{A@f}}{d{hAb}}}Ad}0{cc{}}{{{d{A@f}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{A@f}}}n}{{{Dd{If}}}A@f}{{{d{A@f}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}`````````````````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{If}}}If}{{d{d{hc}}}j{}}{{dl}j}{{}If}{n{{d{c}}}{}}{n{{d{hc}}}{}}{c{{Bb{If}}}Bh}{nj}{{{d{If}}{d{If}}}A`}0{{d{d{c}}}A`{}}000{{{d{If}}{d{hAb}}}Ad}0{{{d{G`}}}If}{cc{}}{G`If}{{{d{{A@h{c}}}}{Fb{Db}}}IfCn}{{{d{If}}{d{hc}}}jD`}{{}n}{{}c{}}{{{d{If}}c}BbBl}{{{d{hAl}}{d{Aj}}}{{Bb{c}}}{}}{dc{}}{dC`}{dB`}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}```````````````````{{G`Bn}{{Ah{G`}}}}0{{G`G`Bn}{{Ah{G`}}}}0{{{d{G`}}}{{d{G`}}}}11{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{G`}}}G`}{{d{d{hc}}}j{}}{{dl}j}{n{{d{c}}}{}}{n{{d{hc}}}{}}88{nj}9{{{d{G`}}{d{G`}}}A`}{{d{d{c}}}A`{}}000{{{d{G`}}{d{hAb}}}Ad}0{cc{}}==``{{}n}{{}c{}}{{{d{G`}}}A`}{{G`G`Bn}{{Ah{G`}}}}000{{G`Bn}{{Ah{G`}}}}011111111{dc{}}{dC`}{dB`}{{{d{Fj}}}{{Ah{G`c}}}{}}{c{{Bb{e}}}{}{}}{{}{{Bb{c}}}{}}{dBd}{{}c{}}9","D":"EKb","p":[[5,"Ast",0],[1,"reference",null,null,1],[5,"Program",2075],[0,"mut"],[1,"unit"],[1,"u8"],[1,"usize"],[1,"bool"],[5,"Formatter",3252],[8,"Result",3252],[5,"PathBuf",3253],[8,"Result",3254],[1,"str"],[6,"Value",3255],[1,"slice"],[5,"String",3256],[6,"Result",3257,null,1],[5,"TypeId",3258],[5,"ArrayAccess",82],[10,"Deserializer",3259],[8,"NodeID",348],[10,"Serializer",3260],[5,"Span",3261],[5,"SmolStr",3262],[5,"AssociatedConstant",119],[5,"AssociatedFunction",156],[5,"MemberAccess",194],[5,"TupleAccess",231],[5,"Identifier",275],[5,"Identifier",3263],[10,"Network",3264],[10,"Hasher",3265],[5,"Symbol",3266],[5,"Vec",3267],[5,"IndexMap",3268],[5,"Location",318],[10,"Node",348],[5,"NodeBuilder",354],[5,"NodeBuilderInner",354],[5,"NonNegativeNumber",397],[5,"StaticString",434],[6,"Expression",465],[10,"FromStrRadix",919],[5,"ParseIntError",3269],[6,"AccessExpression",636],[5,"ArrayExpression",674],[6,"BinaryOperation",710],[5,"BinaryExpression",710],[6,"Option",3270,null,1],[5,"CallExpression",808],[5,"CastExpression",846],[5,"ErrExpression",883],[6,"Literal",919],[10,"Display",3252],[5,"DisplayDecimal",919],[6,"Value",3177],[5,"LocatorExpression",980],[5,"ProgramId",2110],[5,"StructExpression",1020],[5,"StructVariableInitializer",1020],[5,"TernaryExpression",1096],[5,"TupleExpression",1134],[6,"UnaryOperation",1170],[5,"UnaryExpression",1170],[5,"UnitExpression",1248],[5,"Function",1283],[5,"FunctionStub",2829],[5,"Annotation",1336],[6,"Variant",1766],[5,"Input",1652],[5,"Output",1727],[5,"Block",2336],[6,"CoreFunction",1372],[6,"Mode",1694],[6,"Type",3126],[6,"GroupCoordinate",1804],[6,"GroupLiteral",1837],[5,"GroupTuple",1837],[5,"Mapping",1902],[5,"Mapping",3271],[17,"Output"],[10,"ExpressionConsumer",1944],[10,"StatementConsumer",1944],[5,"AssertStatement",2234],[5,"AssignStatement",2299],[5,"ConditionalStatement",2373],[5,"ConsoleStatement",2445],[5,"ConstDeclaration",2481],[5,"DefinitionStatement",2520],[5,"ExpressionStatement",2594],[10,"FunctionConsumer",1944],[10,"ImportConsumer",1944],[5,"IterationStatement",2630],[10,"MappingConsumer",1944],[10,"ProgramConsumer",1944],[10,"ProgramScopeConsumer",1944],[5,"ProgramScope",2144],[5,"ReturnStatement",2673],[6,"Statement",2180],[10,"StructConsumer",1944],[5,"Composite",2709],[17,"AdditionalOutput"],[10,"ExpressionReconstructor",1992],[1,"tuple",null,null,1],[10,"Default",3272],[10,"StatementReconstructor",1992],[10,"ProgramReconstructor",1992],[5,"Stub",2791],[17,"AdditionalInput"],[10,"ExpressionVisitor",2035],[10,"StatementVisitor",2035],[10,"ProgramVisitor",2035],[5,"ProgramID",3273],[6,"AssertVariant",2234],[6,"ConsoleFunction",2413],[6,"DeclarationType",2563],[5,"RecordType",3274],[5,"StructType",3275],[5,"Member",2752],[5,"ClosureCore",3276],[10,"InstructionTrait",3277],[5,"FunctionCore",3278],[10,"CommandTrait",3279],[5,"ArrayType",2886],[5,"ArrayType",3280],[6,"CoreConstant",2923],[5,"FutureType",2948],[6,"IntegerType",2985],[5,"MappingType",3027],[5,"CompositeType",3060],[5,"TupleType",3092],[6,"PlaintextType",3281]],"r":[[51,82],[52,119],[53,156],[54,194],[55,231],[468,636],[475,674],[479,710],[480,710],[485,808],[487,846],[493,883],[496,919],[503,919],[531,1020],[532,1020],[536,1096],[541,1134],[543,1170],[544,1170],[546,1248],[2521,2563]],"b":[[98,"impl-Display-for-ArrayAccess"],[99,"impl-Debug-for-ArrayAccess"],[134,"impl-Display-for-AssociatedConstant"],[135,"impl-Debug-for-AssociatedConstant"],[172,"impl-Debug-for-AssociatedFunction"],[173,"impl-Display-for-AssociatedFunction"],[209,"impl-Display-for-MemberAccess"],[210,"impl-Debug-for-MemberAccess"],[246,"impl-Display-for-TupleAccess"],[247,"impl-Debug-for-TupleAccess"],[291,"impl-Debug-for-Identifier"],[292,"impl-Display-for-Identifier"],[412,"impl-Display-for-NonNegativeNumber"],[413,"impl-Debug-for-NonNegativeNumber"],[415,"impl-From%3CString%3E-for-NonNegativeNumber"],[416,"impl-From%3Cusize%3E-for-NonNegativeNumber"],[450,"impl-Display-for-StaticString"],[451,"impl-Debug-for-StaticString"],[575,"impl-Display-for-Expression"],[576,"impl-Debug-for-Expression"],[656,"impl-Display-for-AccessExpression"],[657,"impl-Debug-for-AccessExpression"],[690,"impl-Display-for-ArrayExpression"],[691,"impl-Debug-for-ArrayExpression"],[770,"impl-Debug-for-BinaryOperation"],[771,"impl-Display-for-BinaryOperation"],[772,"impl-Debug-for-BinaryExpression"],[773,"impl-Display-for-BinaryExpression"],[824,"impl-Display-for-CallExpression"],[825,"impl-Debug-for-CallExpression"],[862,"impl-Debug-for-CastExpression"],[863,"impl-Display-for-CastExpression"],[899,"impl-Debug-for-ErrExpression"],[900,"impl-Display-for-ErrExpression"],[950,"impl-Display-for-Literal"],[951,"impl-Debug-for-Literal"],[995,"impl-Display-for-LocatorExpression"],[996,"impl-Debug-for-LocatorExpression"],[1052,"impl-Display-for-StructVariableInitializer"],[1053,"impl-Debug-for-StructVariableInitializer"],[1054,"impl-Display-for-StructExpression"],[1055,"impl-Debug-for-StructExpression"],[1112,"impl-Debug-for-TernaryExpression"],[1113,"impl-Display-for-TernaryExpression"],[1150,"impl-Display-for-TupleExpression"],[1151,"impl-Debug-for-TupleExpression"],[1211,"impl-Display-for-UnaryOperation"],[1212,"impl-Debug-for-UnaryOperation"],[1213,"impl-Display-for-UnaryExpression"],[1214,"impl-Debug-for-UnaryExpression"],[1263,"impl-Display-for-UnitExpression"],[1264,"impl-Debug-for-UnitExpression"],[1303,"impl-Debug-for-Function"],[1304,"impl-Display-for-Function"],[1351,"impl-Debug-for-Annotation"],[1352,"impl-Display-for-Annotation"],[1667,"impl-Debug-for-Input"],[1668,"impl-Display-for-Input"],[1713,"impl-Debug-for-Mode"],[1714,"impl-Display-for-Mode"],[1742,"impl-Display-for-Output"],[1743,"impl-Debug-for-Output"],[1823,"impl-Debug-for-GroupCoordinate"],[1824,"impl-Display-for-GroupCoordinate"],[1869,"impl-Debug-for-GroupLiteral"],[1870,"impl-Display-for-GroupLiteral"],[1917,"impl-Debug-for-Mapping"],[1918,"impl-Display-for-Mapping"],[2091,"impl-Display-for-Program"],[2092,"impl-Debug-for-Program"],[2125,"impl-Debug-for-ProgramId"],[2126,"impl-Display-for-ProgramId"],[2127,"impl-From%3C%26ProgramID%3CN%3E%3E-for-ProgramId"],[2128,"impl-From%3CIdentifier%3E-for-ProgramId"],[2160,"impl-Display-for-ProgramScope"],[2161,"impl-Debug-for-ProgramScope"],[2214,"impl-Display-for-Statement"],[2215,"impl-Debug-for-Statement"],[2268,"impl-Debug-for-AssertStatement"],[2269,"impl-Display-for-AssertStatement"],[2314,"impl-Debug-for-AssignStatement"],[2315,"impl-Display-for-AssignStatement"],[2352,"impl-Display-for-Block"],[2353,"impl-Debug-for-Block"],[2389,"impl-Display-for-ConditionalStatement"],[2390,"impl-Debug-for-ConditionalStatement"],[2431,"impl-Display-for-ConsoleFunction"],[2432,"impl-Debug-for-ConsoleFunction"],[2460,"impl-Debug-for-ConsoleStatement"],[2461,"impl-Display-for-ConsoleStatement"],[2497,"impl-Debug-for-ConstDeclaration"],[2498,"impl-Display-for-ConstDeclaration"],[2540,"impl-Display-for-DefinitionStatement"],[2541,"impl-Debug-for-DefinitionStatement"],[2580,"impl-Display-for-DeclarationType"],[2581,"impl-Debug-for-DeclarationType"],[2610,"impl-Debug-for-ExpressionStatement"],[2611,"impl-Display-for-ExpressionStatement"],[2646,"impl-Debug-for-IterationStatement"],[2647,"impl-Display-for-IterationStatement"],[2689,"impl-Display-for-ReturnStatement"],[2690,"impl-Debug-for-ReturnStatement"],[2725,"impl-Debug-for-Composite"],[2726,"impl-Display-for-Composite"],[2767,"impl-Debug-for-Member"],[2768,"impl-Display-for-Member"],[2808,"impl-Display-for-Stub"],[2809,"impl-Debug-for-Stub"],[2845,"impl-Debug-for-FunctionStub"],[2846,"impl-Display-for-FunctionStub"],[2904,"impl-Display-for-ArrayType"],[2905,"impl-Debug-for-ArrayType"],[2964,"impl-Debug-for-FutureType"],[2965,"impl-Display-for-FutureType"],[3010,"impl-Debug-for-IntegerType"],[3011,"impl-Display-for-IntegerType"],[3042,"impl-Display-for-MappingType"],[3043,"impl-Debug-for-MappingType"],[3075,"impl-Debug-for-CompositeType"],[3076,"impl-Display-for-CompositeType"],[3109,"impl-Display-for-TupleType"],[3110,"impl-Debug-for-TupleType"],[3159,"impl-Debug-for-Type"],[3160,"impl-Display-for-Type"],[3161,"impl-From%3C%26Value%3E-for-Type"],[3163,"impl-From%3CValue%3E-for-Type"],[3213,"impl-Value"],[3214,"impl-PartialEq-for-Value"],[3219,"impl-Display-for-Value"],[3220,"impl-Debug-for-Value"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANsJWgECAAEABQARABoAAgAeAAEAJQACACwABwA7AAIARgAAAFAAAABVAA8AZgAAAGkAAABrAAMAcAAHAHkADwCKAAAAjAAAAI8AAwCUAAUAmwABAJ8ADwCwAAAAsgAAALUAAwC6AAYAwgAAAMQADwDVAAAA1wAAANsAAwDgAAcA6QAPAPoAAAD9AAAA/wADAAQBBQALAQgAFQEQACcBAgArAQAAMAEDADUBGQBQAQEAUwEJAGUBEgB6AQEAhAEJAI8BDwCgAQMApgEAAKkBBgCyARIAxgEAAMgBCQAlAgAAJwIIADECBAA4AgUAQAIBAEMCAABFAgAAVAIAAFcCAQBgAgMAbwIIAHkCAwCDAg8AlAIBAJcCCwCkAggArgIGALYCAAC4AgAAugIDAL8CBwDnAh8ACgMAAAwDAQATAwQAGQMPACsDDwA9AwAAPwMAAEIDAwBHAwcAUAMNAF8DAQBiAwAAZAMAAGYDAwBrAwUAcgMBAHUDEACHAwAAiQMAAIsDAwCQAwcAmgMAAKIDCwCvAwkAuwMFAMMDEQDWAw8A5wMBAOoDAADwAwMA9QMHAP8DAwAEBBcAHQQDACMEAQAoBAEALgQHADgEAwA9BAsASgQEAFAECgBcBAAAYAQAAGIEAwBnBAcAcAQIAHoEBgCCBAAAhAQAAIYEAwCLBAcAoAQfAMMEAADFBAEAywQEANEEDwDiBA8A8wQAAPUEAAD3BAMA/AQHAAUFAAAIBREAGwUAAB0FAAAgBQEAJAUAACcFAAAqBQMALwUHADgFAAA6BQ8ASwUAAE4FAABQBQMAVQVcALMFtgBsBgAAcAYEAHYGEACIBgAAigYAAIwGAACOBgAAkAYDAJUGBgCdBgIAoQYSALUGAAC3BggAwQYPANIGAADUBgAA1gYAANgGAwDdBgYA5QYGAO0GDwD+BgAABAcIABIHDwAjBwAAJQcIADIHHgBTBwAAVQcBAFkHBABfBw0AcAcPAIEHAQCFBwAAiAcDAI0HBgCVBwAAnQcHAKkHIADNBycA9gcAAPkHIgAdCAQAIwgKADAIAAAyCAAANQgAADcIBwBACBEAUwgBAFgICABiCAQAaAgKAHQIAAB2CAAAeggAAH0IBwCQCA8AoQgHAKoIAQCtCA0AwAgeAOEIAADjCAEA5wgEAO0ICwD6CAEA/QgPAA4JAAAQCQAAEwkDABgJBgAgCQAAIgkQADQJAAA2CQAAOAkDAD4JBwBHCQQATQkKAFkJAABbCQAAXgkDAGMJAABlCQgAcgkPAIMJAACFCQgAjwkPAKEJAACjCQAApQkDAKoJBwCzCRAAxQkAAMcJAADKCQMAzwkFANYJAADYCQAA3QkFAOQJCgDwCQAA8gkAAPUJAwD6CQUAAQoAAAMKAAAHCg8AGAoAABoKCAAkCg0AMwoBADYKAAA4CgAAOgoDAD8KBwBJCg8AWgoAAF0KAABfCgMAaAoFAG8KAABxCgAAcwoNAIIKAQCFCgAAhwoAAIkKAwCOCgcAlwoNAKYKAQCpCgIArgoAALEKAAC0CgMAuQoHAMIKDwDTCgAA1goAANoKAwDfCgUA5goBAOkKBADwCgoA/AoAAP8KAAACCwAABgsHABALDwAhCwAAIwsBACYLAAApCwAAMQsDADYLBgA+CwgASQsIAFMLBwBcCwIAYQsAAGMLCABtCw0AfQsAAH8LAACBCwMAhgsQAJgLAQCbCwAAnQsAAJ8LAAChCw0AsAsUAMYLAQDKCwAAzAsHANULDwDmCwEA6QsLAPYLDwAHDAIACwwJABYMCAAgDAcAKQwBAC4MCABIDAoAVAwGAFwMAwBhDDQAlwwEAJ0MEQCwDAQA","P":[[5,"T"],[7,""],[8,"T"],[9,""],[12,"T"],[14,""],[16,"K"],[21,""],[22,"T"],[23,""],[28,"U"],[29,""],[44,"T"],[45,"U,T"],[46,"U"],[47,""],[50,"V"],[84,"T"],[86,""],[87,"T"],[88,""],[89,"T"],[91,"__D"],[92,""],[94,"K"],[98,""],[100,"T"],[101,""],[105,"U"],[106,"__S"],[107,""],[111,"T"],[113,""],[115,"U,T"],[116,"U"],[117,""],[118,"V"],[120,"T"],[122,""],[123,"T"],[124,""],[125,"T"],[127,"__D"],[128,""],[130,"K"],[134,""],[136,"T"],[137,""],[140,"U"],[142,"__S"],[143,""],[147,"T"],[149,""],[151,"U,T"],[152,"U"],[154,""],[155,"V"],[158,"T"],[160,""],[161,"T"],[162,""],[163,"T"],[165,"__D"],[166,""],[168,"K"],[172,""],[174,"T"],[175,""],[178,"U"],[180,"__S"],[181,""],[185,"T"],[187,""],[189,"U,T"],[190,"U"],[191,""],[193,"V"],[195,"T"],[197,""],[198,"T"],[199,""],[200,"T"],[202,"__D"],[203,""],[205,"K"],[209,""],[211,"T"],[212,""],[216,"U"],[218,"__S"],[219,""],[223,"T"],[225,""],[227,"U,T"],[228,"U"],[229,""],[230,"V"],[232,"T"],[234,""],[235,"T"],[236,""],[237,"T"],[239,"__D"],[240,""],[242,"K"],[246,""],[248,"T"],[249,""],[253,"U"],[254,"__S"],[255,""],[259,"T"],[261,""],[263,"U,T"],[264,"U"],[266,""],[267,"V"],[276,"T"],[278,""],[279,"T"],[280,""],[282,"T"],[284,"D"],[285,""],[287,"K"],[291,""],[293,"T"],[294,"N"],[295,"H"],[296,""],[299,"U"],[300,""],[303,"S"],[304,""],[308,"T"],[310,""],[312,"U,T"],[313,"U"],[314,""],[315,"V"],[316,"D"],[317,"S"],[319,"T"],[321,""],[322,"T"],[323,""],[324,"T"],[326,"__D"],[327,""],[329,"K"],[333,""],[334,"T"],[335,"__H"],[336,""],[337,"U"],[339,""],[341,"__S"],[342,"T"],[344,"U,T"],[345,"U"],[346,""],[347,"V"],[350,""],[356,"T"],[360,""],[362,"T"],[364,""],[367,"T"],[371,""],[375,"T"],[377,""],[380,"U"],[382,""],[387,"T"],[389,"U,T"],[391,"U"],[393,""],[395,"V"],[398,"T"],[400,""],[401,"T"],[402,""],[403,"T"],[405,"__D"],[406,""],[408,"K"],[412,""],[414,"T"],[415,""],[417,"__H"],[418,""],[419,"U"],[420,""],[421,"__S"],[422,""],[424,"T"],[426,""],[428,"U,T"],[429,"U"],[430,""],[433,"V"],[435,"T"],[437,""],[438,"T"],[439,""],[441,"T"],[443,"__D"],[444,""],[446,"K"],[450,""],[452,"T"],[453,""],[454,"U"],[455,""],[456,"__S"],[457,"T"],[459,""],[461,"U,T"],[462,"U"],[463,""],[464,"V"],[552,"T"],[556,""],[557,"T"],[558,""],[561,"T"],[563,"__D"],[564,""],[568,"K"],[575,""],[577,"T"],[578,""],[596,"U"],[607,"__S"],[608,""],[623,"T"],[626,""],[628,"U,T"],[629,"U"],[632,""],[635,"V"],[642,"T"],[644,""],[645,"T"],[646,""],[647,"T"],[649,"__D"],[650,""],[652,"K"],[656,""],[658,"T"],[659,""],[661,"U"],[662,"__S"],[663,""],[666,"T"],[668,""],[670,"U,T"],[671,"U"],[672,""],[673,"V"],[675,"T"],[677,""],[678,"T"],[679,""],[680,"T"],[682,"__D"],[683,""],[686,"K"],[690,""],[692,"T"],[693,""],[696,"U"],[697,"__S"],[698,""],[702,"T"],[704,""],[706,"U,T"],[707,"U"],[708,""],[709,"V"],[742,"T"],[746,""],[748,"T"],[750,""],[752,"T"],[756,"__D"],[758,""],[762,"K"],[770,""],[774,"T"],[776,""],[781,"U"],[786,"__S"],[788,""],[792,"T"],[796,""],[800,"U,T"],[802,"U"],[804,""],[806,"V"],[810,"T"],[812,""],[813,"T"],[814,""],[815,"T"],[817,"__D"],[818,""],[820,"K"],[824,""],[826,"T"],[828,""],[831,"U"],[833,"__S"],[834,""],[838,"T"],[840,""],[842,"U,T"],[843,"U"],[844,""],[845,"V"],[847,"T"],[849,""],[850,"T"],[851,""],[852,"T"],[854,"__D"],[855,""],[857,"K"],[862,""],[864,"T"],[865,""],[868,"U"],[869,"__S"],[870,""],[874,"T"],[876,""],[878,"U,T"],[879,"U"],[881,""],[882,"V"],[884,"T"],[886,""],[887,"T"],[888,""],[890,"T"],[892,"__D"],[893,""],[895,"K"],[899,""],[901,"T"],[902,""],[905,"U"],[906,"__S"],[907,""],[911,"T"],[913,""],[915,"U,T"],[916,"U"],[917,""],[918,"V"],[929,"T"],[933,""],[934,"T"],[935,""],[936,"T"],[940,"__D"],[941,""],[945,"K"],[949,""],[952,"T"],[954,""],[960,"U"],[962,"__S"],[963,""],[966,"T"],[968,""],[972,"U,T"],[974,"U"],[976,""],[978,"V"],[981,"T"],[983,""],[984,"T"],[985,""],[986,"T"],[988,"__D"],[989,""],[991,"K"],[995,""],[997,"T"],[998,"__H"],[999,""],[1002,"U"],[1003,""],[1007,"__S"],[1008,""],[1012,"T"],[1014,""],[1016,"U,T"],[1017,"U"],[1018,""],[1019,"V"],[1022,"T"],[1026,""],[1029,"T"],[1031,""],[1033,"T"],[1037,"__D"],[1039,""],[1043,"K"],[1052,""],[1056,"T"],[1058,""],[1065,"U"],[1069,"__S"],[1071,""],[1079,"T"],[1083,""],[1088,"U,T"],[1090,"U"],[1092,""],[1094,"V"],[1097,"T"],[1099,""],[1100,"T"],[1101,""],[1103,"T"],[1105,"__D"],[1106,""],[1108,"K"],[1112,""],[1114,"T"],[1115,""],[1120,"U"],[1121,"__S"],[1122,""],[1126,"T"],[1128,""],[1130,"U,T"],[1131,"U"],[1132,""],[1133,"V"],[1135,"T"],[1137,""],[1138,"T"],[1139,""],[1140,"T"],[1142,"__D"],[1143,""],[1146,"K"],[1150,""],[1152,"T"],[1153,""],[1156,"U"],[1157,"__S"],[1158,""],[1162,"T"],[1164,""],[1166,"U,T"],[1167,"U"],[1168,""],[1169,"V"],[1182,""],[1183,"T"],[1187,""],[1189,"T"],[1191,""],[1193,"T"],[1197,"__D"],[1199,""],[1203,"K"],[1211,""],[1215,"T"],[1217,""],[1222,"U"],[1226,"__S"],[1228,""],[1232,"T"],[1236,""],[1240,"U,T"],[1242,"U"],[1244,""],[1246,"V"],[1249,"T"],[1251,""],[1252,"T"],[1253,""],[1254,"T"],[1256,"__D"],[1257,""],[1259,"K"],[1263,""],[1265,"T"],[1266,""],[1269,"U"],[1270,"__S"],[1271,""],[1275,"T"],[1277,""],[1279,"U,T"],[1280,"U"],[1281,""],[1282,"V"],[1287,"T"],[1289,""],[1290,"T"],[1291,""],[1294,"T"],[1296,"__D"],[1297,""],[1299,"K"],[1303,""],[1307,"T"],[1308,""],[1314,"U"],[1316,""],[1321,"__S"],[1322,""],[1326,"T"],[1328,""],[1330,"U,T"],[1331,"U"],[1332,""],[1335,"V"],[1337,"T"],[1339,""],[1340,"T"],[1341,""],[1342,"T"],[1344,"__D"],[1345,""],[1347,"K"],[1351,""],[1353,"T"],[1354,""],[1358,"U"],[1359,"__S"],[1360,""],[1364,"T"],[1366,""],[1368,"U,T"],[1369,"U"],[1370,""],[1371,"V"],[1627,"T"],[1629,""],[1630,"T"],[1631,""],[1632,"T"],[1634,""],[1636,"K"],[1640,""],[1641,"T"],[1642,""],[1644,"U"],[1645,""],[1647,"T"],[1648,"U,T"],[1649,"U"],[1650,""],[1651,"V"],[1653,"T"],[1655,""],[1656,"T"],[1657,""],[1658,"T"],[1660,"__D"],[1661,""],[1663,"K"],[1667,""],[1670,"T"],[1671,""],[1676,"U"],[1677,""],[1679,"__S"],[1680,""],[1684,"T"],[1686,""],[1688,"U,T"],[1689,"U"],[1690,""],[1693,"V"],[1699,"T"],[1701,""],[1702,"T"],[1703,""],[1704,"T"],[1706,"__D"],[1707,""],[1709,"K"],[1713,""],[1715,"T"],[1716,""],[1717,"U"],[1718,"__S"],[1719,"T"],[1721,""],[1723,"U,T"],[1724,"U"],[1725,""],[1726,"V"],[1728,"T"],[1730,""],[1731,"T"],[1732,""],[1733,"T"],[1735,"__D"],[1736,""],[1738,"K"],[1742,""],[1744,"T"],[1745,""],[1748,"U"],[1749,""],[1751,"__S"],[1752,""],[1756,"T"],[1758,""],[1760,"U,T"],[1761,"U"],[1762,""],[1765,"V"],[1772,"T"],[1774,""],[1775,"T"],[1776,""],[1778,"T"],[1780,"__D"],[1781,""],[1783,"K"],[1787,""],[1788,"T"],[1789,""],[1790,"U"],[1791,""],[1795,"__S"],[1796,"T"],[1798,"U,T"],[1799,"U"],[1800,""],[1801,"V"],[1809,"T"],[1811,""],[1812,"T"],[1813,""],[1814,"T"],[1816,"__D"],[1817,""],[1819,"K"],[1823,""],[1825,"T"],[1826,""],[1827,"U"],[1828,"__S"],[1829,"T"],[1831,""],[1833,"U,T"],[1834,"U"],[1835,""],[1836,"V"],[1841,"T"],[1845,""],[1847,"T"],[1849,""],[1851,"T"],[1855,"__D"],[1857,""],[1861,"K"],[1869,""],[1872,"T"],[1874,""],[1878,"U"],[1880,"__S"],[1882,""],[1886,"T"],[1890,""],[1892,"U,T"],[1894,"U"],[1896,""],[1898,"V"],[1903,"T"],[1905,""],[1906,"T"],[1907,""],[1908,"T"],[1910,"__D"],[1911,""],[1913,"K"],[1917,""],[1919,"T"],[1920,"N"],[1921,""],[1925,"U"],[1927,"__S"],[1928,""],[1932,"T"],[1934,""],[1936,"U,T"],[1937,"U"],[1938,""],[1940,"V"],[1960,"ExpressionConsumer::Output"],[1962,"StatementConsumer::Output"],[1964,"ExpressionConsumer::Output"],[1965,"StatementConsumer::Output"],[1966,"ExpressionConsumer::Output"],[1968,"StatementConsumer::Output"],[1972,"ExpressionConsumer::Output"],[1974,"StatementConsumer::Output"],[1975,"FunctionConsumer::Output"],[1976,"ExpressionConsumer::Output"],[1977,"ImportConsumer::Output"],[1978,"StatementConsumer::Output"],[1979,"ExpressionConsumer::Output"],[1981,"MappingConsumer::Output"],[1982,"ProgramConsumer::Output"],[1983,"ProgramScopeConsumer::Output"],[1984,"StatementConsumer::Output"],[1986,"StructConsumer::Output"],[1987,"ExpressionConsumer::Output"],[1996,"ExpressionReconstructor::AdditionalOutput"],[2014,""],[2016,"ExpressionReconstructor::AdditionalOutput"],[2017,""],[2018,"ExpressionReconstructor::AdditionalOutput"],[2021,""],[2022,"ExpressionReconstructor::AdditionalOutput"],[2023,""],[2025,"ExpressionReconstructor::AdditionalOutput"],[2027,""],[2028,"ExpressionReconstructor::AdditionalOutput"],[2029,""],[2030,"ExpressionReconstructor::AdditionalOutput"],[2040,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2042,""],[2044,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2045,""],[2046,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2048,""],[2052,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2054,""],[2057,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2058,""],[2060,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2062,""],[2068,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2069,""],[2071,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[2076,"T"],[2078,""],[2079,"T"],[2080,""],[2082,"T"],[2084,"__D"],[2085,""],[2087,"K"],[2091,""],[2093,"T"],[2095,""],[2096,"U"],[2100,"__S"],[2102,"T"],[2104,""],[2106,"U,T"],[2107,"U"],[2108,""],[2109,"V"],[2111,"T"],[2113,""],[2114,"T"],[2115,""],[2116,"T"],[2118,"D"],[2119,""],[2121,"K"],[2125,""],[2127,"N"],[2128,""],[2129,"T"],[2130,"__H"],[2131,""],[2132,"U"],[2135,"S"],[2136,"T"],[2138,""],[2140,"U,T"],[2141,"U"],[2142,""],[2143,"V"],[2145,"T"],[2147,""],[2148,"T"],[2149,""],[2151,"T"],[2153,"__D"],[2154,""],[2156,"K"],[2160,""],[2162,"T"],[2163,""],[2166,"U"],[2169,"__S"],[2172,"T"],[2174,""],[2176,"U,T"],[2177,"U"],[2178,""],[2179,"V"],[2194,"T"],[2196,""],[2197,"T"],[2198,""],[2203,"T"],[2205,"__D"],[2206,""],[2209,"K"],[2214,""],[2216,"T"],[2217,""],[2219,"U"],[2222,"__S"],[2223,""],[2226,"T"],[2228,""],[2230,"U,T"],[2231,"U"],[2232,""],[2233,"V"],[2239,"T"],[2243,""],[2245,"T"],[2247,""],[2249,"T"],[2253,"__D"],[2255,""],[2259,"K"],[2267,""],[2270,"T"],[2272,""],[2276,"U"],[2278,"__S"],[2280,""],[2284,"T"],[2288,""],[2290,"U,T"],[2292,"U"],[2294,""],[2297,"V"],[2300,"T"],[2302,""],[2303,"T"],[2304,""],[2305,"T"],[2307,"__D"],[2308,""],[2310,"K"],[2314,""],[2316,"T"],[2317,""],[2320,"U"],[2322,"__S"],[2323,""],[2327,"T"],[2329,""],[2331,"U,T"],[2332,"U"],[2333,""],[2335,"V"],[2337,"T"],[2339,""],[2340,"T"],[2341,""],[2343,"T"],[2345,"__D"],[2346,""],[2348,"K"],[2352,""],[2354,"T"],[2355,""],[2358,"U"],[2359,"__S"],[2360,""],[2365,"T"],[2367,""],[2369,"U,T"],[2370,"U"],[2371,""],[2372,"V"],[2374,"T"],[2376,""],[2377,"T"],[2378,""],[2380,"T"],[2382,"__D"],[2383,""],[2385,"K"],[2389,""],[2391,"T"],[2392,""],[2395,"U"],[2397,"__S"],[2398,""],[2402,"T"],[2405,""],[2407,"U,T"],[2408,"U"],[2409,""],[2410,"V"],[2417,"T"],[2419,""],[2420,"T"],[2421,""],[2422,"T"],[2424,"__D"],[2425,""],[2427,"K"],[2431,""],[2433,"T"],[2434,""],[2435,"U"],[2436,"__S"],[2437,"T"],[2439,""],[2441,"U,T"],[2442,"U"],[2443,""],[2444,"V"],[2446,"T"],[2448,""],[2449,"T"],[2450,""],[2451,"T"],[2453,"__D"],[2454,""],[2456,"K"],[2460,""],[2462,"T"],[2464,""],[2467,"U"],[2468,"__S"],[2469,""],[2473,"T"],[2475,""],[2477,"U,T"],[2478,"U"],[2479,""],[2480,"V"],[2482,"T"],[2484,""],[2485,"T"],[2486,""],[2488,"T"],[2490,"__D"],[2491,""],[2493,"K"],[2497,""],[2499,"T"],[2500,""],[2503,"U"],[2505,"__S"],[2506,""],[2510,"T"],[2512,""],[2514,"U,T"],[2515,"U"],[2517,""],[2519,"V"],[2524,"T"],[2526,""],[2527,"T"],[2528,""],[2531,"T"],[2533,"__D"],[2534,""],[2536,"K"],[2540,""],[2542,"T"],[2543,""],[2546,"U"],[2548,"__S"],[2549,""],[2553,"T"],[2555,""],[2557,"U,T"],[2558,"U"],[2560,""],[2562,"V"],[2566,"T"],[2568,""],[2569,"T"],[2570,""],[2571,"T"],[2573,"__D"],[2574,""],[2576,"K"],[2580,""],[2582,"T"],[2583,""],[2584,"U"],[2585,"__S"],[2586,"T"],[2588,""],[2590,"U,T"],[2591,"U"],[2592,""],[2593,"V"],[2595,"T"],[2597,""],[2598,"T"],[2599,""],[2600,"T"],[2602,"__D"],[2603,""],[2605,"K"],[2610,""],[2612,"T"],[2613,""],[2616,"U"],[2617,"__S"],[2618,""],[2622,"T"],[2624,""],[2626,"U,T"],[2627,"U"],[2628,""],[2629,"V"],[2632,"T"],[2634,""],[2635,"T"],[2636,""],[2637,"T"],[2639,"__D"],[2640,""],[2642,"K"],[2646,""],[2648,"T"],[2649,""],[2653,"U"],[2654,"__S"],[2655,""],[2663,"T"],[2665,""],[2667,"U,T"],[2668,"U"],[2670,""],[2672,"V"],[2674,"T"],[2676,""],[2677,"T"],[2678,""],[2679,"T"],[2681,"__D"],[2682,""],[2684,"K"],[2689,""],[2691,"T"],[2692,""],[2695,"U"],[2696,"__S"],[2697,""],[2701,"T"],[2703,""],[2705,"U,T"],[2706,"U"],[2707,""],[2708,"V"],[2710,"T"],[2712,""],[2713,"T"],[2714,""],[2715,"T"],[2717,"__D"],[2718,""],[2720,"K"],[2725,""],[2727,"T"],[2728,"N"],[2730,""],[2734,"U"],[2738,""],[2739,"__S"],[2740,""],[2744,"T"],[2746,""],[2748,"U,T"],[2749,"U"],[2750,""],[2751,"V"],[2753,"T"],[2755,""],[2756,"T"],[2757,""],[2758,"T"],[2760,"__D"],[2761,""],[2763,"K"],[2767,""],[2769,"T"],[2770,""],[2774,"U"],[2776,""],[2777,"__S"],[2778,""],[2782,"T"],[2784,""],[2786,"U,T"],[2787,"U"],[2789,""],[2790,"V"],[2792,"T"],[2794,""],[2795,"T"],[2796,""],[2799,"T"],[2801,"__D"],[2802,""],[2804,"K"],[2808,""],[2810,"T"],[2814,""],[2815,"U"],[2817,"__S"],[2821,"T"],[2823,""],[2825,"U,T"],[2826,"U"],[2827,""],[2828,"V"],[2831,"T"],[2833,""],[2834,"T"],[2835,""],[2836,"T"],[2838,"__D"],[2839,""],[2841,"K"],[2845,""],[2849,"T"],[2850,"N,Instruction"],[2851,"N,Instruction,Command"],[2853,""],[2858,"U"],[2859,""],[2864,"__S"],[2865,""],[2869,"T"],[2871,""],[2873,"U,T"],[2874,"U"],[2875,""],[2877,"V"],[2887,""],[2888,"T"],[2890,""],[2891,"T"],[2892,""],[2893,"T"],[2895,"__D"],[2896,""],[2900,"K"],[2904,""],[2906,"T"],[2907,"N"],[2908,"__H"],[2909,""],[2910,"U"],[2911,""],[2914,"__S"],[2915,"T"],[2917,""],[2919,"U,T"],[2920,"U"],[2921,""],[2922,"V"],[2925,"T"],[2927,""],[2928,"T"],[2929,""],[2930,"T"],[2932,""],[2934,"K"],[2938,"T"],[2939,""],[2941,"U"],[2942,"T"],[2943,""],[2944,"U,T"],[2945,"U"],[2946,""],[2947,"V"],[2949,"T"],[2951,""],[2952,"T"],[2953,""],[2955,"T"],[2957,"__D"],[2958,""],[2960,"K"],[2964,""],[2966,"T"],[2967,"__H"],[2968,""],[2971,"U"],[2973,""],[2976,"__S"],[2977,"T"],[2979,""],[2981,"U,T"],[2982,"U"],[2983,""],[2984,"V"],[2996,"T"],[2998,""],[2999,"T"],[3000,""],[3001,"T"],[3003,"__D"],[3004,""],[3006,"K"],[3010,""],[3012,"T"],[3013,"__H"],[3014,""],[3015,"U"],[3016,""],[3017,"__S"],[3018,""],[3019,"T"],[3021,""],[3023,"U,T"],[3024,"U"],[3025,""],[3026,"V"],[3028,"T"],[3030,""],[3031,"T"],[3032,""],[3033,"T"],[3035,"__D"],[3036,""],[3038,"K"],[3042,""],[3044,"T"],[3045,"__H"],[3046,""],[3047,"U"],[3050,"__S"],[3051,"T"],[3053,""],[3055,"U,T"],[3056,"U"],[3057,""],[3059,"V"],[3061,"T"],[3063,""],[3064,"T"],[3065,""],[3066,"T"],[3068,"__D"],[3069,""],[3071,"K"],[3075,""],[3077,"T"],[3078,"__H"],[3080,""],[3081,"U"],[3083,"__S"],[3084,"T"],[3086,""],[3088,"U,T"],[3089,"U"],[3090,""],[3091,"V"],[3093,"T"],[3095,""],[3096,"T"],[3097,""],[3098,"T"],[3100,"__D"],[3101,""],[3105,"K"],[3109,""],[3111,"T"],[3112,"__H"],[3113,""],[3114,"U"],[3115,""],[3117,"__S"],[3118,"T"],[3120,""],[3122,"U,T"],[3123,"U"],[3124,""],[3125,"V"],[3143,"T"],[3145,""],[3146,"T"],[3147,""],[3149,"T"],[3151,"__D"],[3152,""],[3155,"K"],[3159,""],[3162,"T"],[3163,""],[3164,"N"],[3165,"__H"],[3166,""],[3167,"U"],[3168,"__S"],[3169,"T"],[3171,""],[3173,"U,T"],[3174,"U"],[3175,""],[3176,"V"],[3196,""],[3203,"T"],[3205,""],[3206,"T"],[3207,""],[3208,"T"],[3210,""],[3215,"K"],[3219,""],[3221,"T"],[3222,""],[3227,"U"],[3228,""],[3243,"T"],[3244,""],[3246,"TryFrom::Error"],[3247,"U,T"],[3248,"U"],[3249,""],[3250,"V"],[3251,""]]}],["leo_compiler",{"t":"FFFFFNNOOOONNONNNCOOOONNNOONNNNNNONNNNOONOONNOONOCOOOOONNNNNNNNOONFFNOOONNNNNNNNONNNNNNNNNNNOONNNOONOONNOONNNNNNNNONNFFFONNNNNNONNNNNNNNNOOONNNNNNNNNOONNNONNNNNNOONNNOONNNNNNNNNNNNONNN","n":["Ast","BuildOptions","Compiler","CompilerOptions","OutputOptions","as_ref","as_repr","assigner","ast","","ast_spans_enabled","borrow","borrow_mut","build","clone","clone_into","clone_to_uninit","compiler","compiler_options","conditional_block_max_depth","dce_ast","dce_enabled","default","deref","deref_mut","destructured_ast","disable_conditional_branch_type_checking","drop","eq","equivalent","","","","flattened_ast","fmt","from","from_json_file","from_json_string","handler","import_stubs","init","initial_ast","inlined_ast","into","into_repr","main_file_path","network","new","node_builder","options","output","output_directory","phantom","program_name","ssa_ast","to_json_file","to_json_file_without_keys","to_json_string","to_json_value","to_owned","try_from","try_into","type_id","type_table","unrolled_ast","vzip","Ast","Compiler","add_import_stubs","assigner","ast","","borrow","borrow_mut","checksum","clone","clone_into","clone_to_uninit","code_generation_pass","compile","compiler_options","compiler_stages","const_propagation_and_unroll_loop","const_propagation_pass","dead_code_elimination_pass","deref","deref_mut","destructuring_pass","drop","flattening_pass","from","function_inlining_pass","handler","import_stubs","init","into","loop_unrolling_pass","main_file_path","network","new","node_builder","output_directory","parse_program","parse_program_from_string","phantom","program_name","static_analysis_pass","static_single_assignment_pass","symbol_table_pass","to_owned","try_from","try_into","type_checker_pass","type_id","type_table","vzip","write_ast_to_json","BuildOptions","CompilerOptions","OutputOptions","ast_spans_enabled","borrow","","","borrow_mut","","","build","clone","","","clone_into","","","clone_to_uninit","","","conditional_block_max_depth","dce_ast","dce_enabled","default","","","deref","","","deref_mut","","","destructured_ast","disable_conditional_branch_type_checking","drop","","","flattened_ast","from","","","init","","","initial_ast","inlined_ast","into","","","output","ssa_ast","to_owned","","","try_from","","","try_into","","","type_id","","","unrolled_ast","vzip","",""],"q":[[0,"leo_compiler"],[66,"leo_compiler::compiler"],[117,"leo_compiler::options"],[184,"leo_ast"],[185,"leo_ast::program"],[186,"core::fmt"],[187,"core::result"],[188,"std::path"],[189,"leo_errors::errors"],[190,"alloc::string"],[191,"serde_json::value"],[192,"core::any"],[193,"snarkvm_console_network"],[194,"core::clone"],[195,"leo_passes::common::symbol_table"],[196,"leo_passes::common::graph"],[197,"leo_passes::const_propagation"],[198,"leo_passes::loop_unrolling"],[199,"leo_errors::emitter"],[200,"core::option"],[201,"leo_span::symbol"],[202,"leo_ast::stub"],[203,"indexmap::map"],[204,"leo_span::source_map"]],"i":"`````b0Bf01Dj22Cl333`2Dh20444204444442444433422443343`1333244444444324``3334333333333333333333333333333333333333333333333```2102102110210210202010210210220102210210222102121021021021022102","f":"`````{{{d{b}}}{{d{f}}}}0````{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}`{{{d{b}}}b}{{d{d{hc}}}j{}}{{dl}j}`````{{}b}{n{{d{c}}}{}}{n{{d{hc}}}{}}``{nj}{{{d{b}}{d{b}}}A`}{{d{d{c}}}A`{}}000`{{{d{b}}{d{hAb}}}{{Af{jAd}}}}{cc{}}{Ah{{Af{bAj}}}}{{{d{Al}}}{{Af{bAj}}}}``{{}n}``{{}c{}}{bf}``{fb}```````{{{d{b}}Ah{d{Al}}}{{Af{jAj}}}}{{{d{b}}Ah{d{Al}}{d{{An{{d{Al}}}}}}}{{Af{jAj}}}}{{{d{b}}}{{Af{B`Aj}}}}{{{d{b}}}{{Af{BbAj}}}}{dc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{dBd}``{{}c{}}``{{{d{h{Bf{c}}}}}{{Bh{j}}}Bj}```{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{{Bf{c}}}}}{{Bh{B`}}}Bj}{{{d{{Bf{c}}}}}{{Bf{c}}}{BlBj}}{{d{d{hc}}}j{}}{{dl}j}{{{d{h{Bf{c}}}}{d{Bn}}{d{C`}}{d{Cb}}}{{Bh{B`}}}Bj}{{{d{h{Bf{c}}}}}{{Bh{B`}}}Bj}`{{{d{h{Bf{c}}}}}{{Bh{{Cd{BnC`Cb}}}}}Bj}{{{d{h{Bf{c}}}}{d{hBn}}}{{Bh{j}}}Bj}{{{d{h{Bf{c}}}}{d{hBn}}}{{Bh{Cf}}}Bj};{n{{d{c}}}{}}{n{{d{hc}}}{}}={nj}{{{d{h{Bf{c}}}}{d{Bn}}}{{Bh{j}}}Bj}{cc{}}{{{d{h{Bf{c}}}}{d{Cb}}}{{Bh{j}}}Bj}``{{}n}{{}c{}}{{{d{h{Bf{c}}}}{d{hBn}}}{{Bh{Ch}}}Bj}``{{B`B`{d{Cj}}AhAh{Cn{Cl}}{Dd{D`Db}}}{{Bf{c}}}Bj}``{{{d{h{Bf{c}}}}}{{Bh{j}}}Bj}{{{d{h{Bf{c}}}}{d{Al}}Df}{{Bh{j}}}Bj}``88{{{d{{Bf{c}}}}}{{Bh{Bn}}}Bj}{dc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{{{d{{Bf{c}}}}{d{hBn}}}{{Bh{{Cd{C`Cb}}}}}Bj}{dBd}`{{}c{}}{{{d{{Bf{c}}}}{d{Al}}}{{Bh{j}}}Bj}````{d{{d{c}}}{}}00{{{d{h}}}{{d{hc}}}{}}00`{{{d{Cl}}}Cl}{{{d{Dh}}}Dh}{{{d{Dj}}}Dj}{{d{d{hc}}}j{}}00{{dl}j}00```{{}Cl}{{}Dh}{{}Dj}{n{{d{c}}}{}}00{n{{d{hc}}}{}}00``{nj}00`{cc{}}00{{}n}00``{{}c{}}00``{dc{}}00{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00{dBd}00`{{}c{}}00","D":"Kf","p":[[5,"Ast",0,184],[1,"reference",null,null,1],[5,"Program",185],[0,"mut"],[1,"unit"],[1,"u8"],[1,"usize"],[1,"bool"],[5,"Formatter",186],[5,"Error",186],[6,"Result",187,null,1],[5,"PathBuf",188],[6,"LeoError",189],[1,"str"],[1,"slice"],[5,"String",190],[6,"Value",191],[5,"TypeId",192],[5,"Compiler",66],[8,"Result",189],[10,"Network",193],[10,"Clone",194],[5,"SymbolTable",195],[8,"StructGraph",196],[8,"CallGraph",196],[1,"tuple",null,null,1],[5,"ConstPropagatorOutput",197],[5,"UnrollerOutput",198],[5,"Handler",199],[5,"CompilerOptions",117],[6,"Option",200,null,1],[5,"Symbol",201],[5,"Stub",202],[5,"IndexMap",203],[6,"FileName",204],[5,"BuildOptions",117],[5,"OutputOptions",117]],"r":[[0,184],[1,117],[2,66],[3,117],[4,117],[66,184]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAF0AHwACAAAABAACAAoAAAAMAAEADwACABcAAgAcAAUAIwAAACkAAAAtAAAAMgAAADUAAAA7AAQAQgAAAEgAAgBMAAIAVgABAFkAAABfAAAAaQAAAG4AAgByAAAAdAAAAHYAAgB6AAUAgQAIAI0ACACYAAIAnwACAKkACwC2AAIA","P":[[11,"T"],[14,""],[15,"T"],[16,""],[23,"T"],[27,""],[29,"K"],[34,""],[35,"T"],[36,""],[43,"U"],[44,""],[59,"T"],[60,"U,T"],[61,"U"],[62,""],[65,"V"],[68,"N"],[72,"T"],[74,"N"],[76,"T"],[77,""],[78,"N"],[85,"T"],[87,"N"],[88,""],[89,"N"],[90,"T"],[91,"N"],[94,""],[95,"U"],[96,"N"],[109,"T"],[110,"U,T"],[111,"U"],[112,"N"],[113,""],[115,"V"],[116,"N"],[121,"T"],[128,""],[131,"T"],[134,""],[143,"T"],[151,""],[155,"T"],[158,""],[163,"U"],[168,"T"],[171,"U,T"],[174,"U"],[177,""],[181,"V"]]}],["leo_disassembler",{"t":"HH","n":["disassemble","disassemble_from_str"],"q":[[0,"leo_disassembler"],[2,"snarkvm_synthesizer_program"],[3,"leo_ast::stub"],[4,"snarkvm_console_network"],[5,"snarkvm_synthesizer_program::traits::instruction"],[6,"snarkvm_synthesizer_program::traits::command"],[7,"leo_errors::errors::utils::util_errors"],[8,"core::result"]],"i":"``","f":"{{{b{ceg}}}df{{h{c}}}{{j{c}}}}{{{n{l}}{n{l}}}{{Ab{dA`}}}}","D":"`","p":[[5,"ProgramCore",2],[5,"Stub",3],[10,"Network",4],[10,"InstructionTrait",5],[10,"CommandTrait",6],[1,"str"],[1,"reference",null,null,1],[6,"UtilError",7],[6,"Result",8,null,1]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAIAEAAAAAAAAQACAA==","P":[[0,"N,Instruction,Command"],[1,""]]}],["leo_errors",{"t":"CQCCCCCCFSONNNNNOONNNNNNONNNNNNONNONNNNNONNFONNNNNNNNNNNNNNNNNNNNONNNNNNKNMMMMMMFFKIFFFINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNONONNNNNNNNNNNNNNNNNONNNNNNMNNNNNONNNNNNNNNNNNNNNNNNNNNONNPPPPPPPPGGPPPPPIPPPPPCNNNNCCNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNCNNCCCNNCNNNNNNCNNCCGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNFNNNNNNNNNNNNNONNNONNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["common","create_messages","emitter","errors","backtraced","formatted","macros","traits","Backtraced","INDENT","backtrace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code","code_identifier","default","deref","deref_mut","description","drop","eq","error","error_code","exit_code","fmt","","from","hash","help","init","into","message","new_from_backtrace","to_owned","to_string","try_from","try_into","type_","type_id","warning_code","Formatted","backtrace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","description","drop","eq","error_code","exit_code","fmt","","from","hash","init","into","new_from_span","span","to_owned","to_string","try_from","try_into","type_id","warning_code","LeoMessageCode","code_identifier","code_mask","error_code","exit_code","is_error","message_type","warning_code","Buffer","BufferEmitter","Emitter","ErrBuffer","Handler","HandlerInner","StderrEmitter","WarningBuffer","borrow","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","default","","","deref","","","","","deref_mut","","","","","drop","","","","","emit_err","","","","","emit_warning","","","","","emitter","err_count","","extend_if_error","extract_errs","extract_warnings","fatal_err","fmt","","from","","","","","had_errors","init","","","","","inner","into","","","","","into_inner","last_emitted_err_code","","","","last_entry","last_err","last_error_code","new","","new_with_buf","push","to_owned","to_string","try_from","","","","","try_into","","","","","type_id","","","","","warn_count","warning_count","with","Anyhow","AstError","CliError","CompilerError","Err","FlattenError","InterpreterHalt","LastErrorCode","LeoError","LeoWarning","LoopUnrollerError","Ok","PackageError","ParserError","ParserWarning","Result","StaticAnalyzerError","StaticAnalyzerWarning","TypeCheckerError","TypeCheckerWarning","UtilError","ast","borrow","","borrow_mut","","cli","compiler","deref","","deref_mut","","drop","","error_code","","exit_code","flattener","fmt","","","","from","","","","","","","","","","","","","","","","","init","","interpreter_halt","into","","loop_unroller","package","parser","source","","static_analyzer","to_string","","try_from","","try_into","","type_checker","type_id","","utils","ast_errors","AstError","Backtraced","Formatted","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","failed_to_convert_ast_to_json_string","failed_to_convert_ast_to_json_value","failed_to_convert_symbol_table_to_json_string","failed_to_convert_symbol_table_to_json_value","failed_to_create_ast_json_file","failed_to_create_symbol_table_json_file","failed_to_read_json_file","failed_to_read_json_string_to_ast","failed_to_read_json_string_to_symbol_table","failed_to_write_ast_to_json_file","failed_to_write_symbol_table_to_json_file","fmt","","from","","","function_not_found","init","into","is_error","message_type","num_exit_codes","redefining_external_struct","shadowed_function","shadowed_record","shadowed_struct","shadowed_variable","source","to_owned","to_string","try_from","try_into","type_id","warning_code","cli_errors","Backtraced","CliError","Formatted","borrow","borrow_mut","broadcast_error","build_error","cli_invalid_input","cli_io_error","cli_runtime_error","clone","clone_into","clone_to_uninit","code_mask","confirmation_failed","constraint_limit_exceeded","could_not_fetch_versions","deref","deref_mut","drop","error_code","exit_code","failed_to_enable_ansi_support","failed_to_execute_account","failed_to_execute_build","failed_to_execute_deploy","failed_to_execute_execute","failed_to_execute_new","failed_to_execute_node","failed_to_execute_run","failed_to_get_endpoint_from_env","failed_to_get_network_from_env","failed_to_get_private_key_from_env","failed_to_load_instructions","failed_to_parse_deploy","failed_to_parse_execute","failed_to_parse_new","failed_to_parse_node","failed_to_parse_private_key","failed_to_parse_record","failed_to_parse_run","failed_to_parse_seed","failed_to_read_environment_private_key","failed_to_write_file","fmt","","from","","","init","into","invalid_balance","invalid_example","invalid_network_name","is_error","message_type","needs_leo_build","num_exit_codes","old_release_version","recursive_deploy_with_record","self_update_build_error","self_update_error","source","string_parse_error","table_render_failed","to_owned","to_string","try_from","try_into","type_id","variable_limit_exceeded","warning_code","compiler_errors","Backtraced","CompilerError","Formatted","array_index_not_evaluated","borrow","borrow_mut","cannot_open_cwd","clone","clone_into","clone_to_uninit","code_mask","const_not_evaluated","const_prop_unroll_many_loops","deref","deref_mut","drop","error_code","exit_code","file_read_error","fmt","","from","","","illegal_static_member_assignment","import_not_found","imported_program_not_found","init","into","is_error","loop_bounds_not_evaluated","message_type","num_exit_codes","program_name_should_match_file_name","program_scope_name_does_not_match","source","to_owned","to_string","try_from","try_into","type_id","warning_code","flattener_errors","Backtraced","FlattenError","Formatted","binary_overflow","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","loop_has_neg_value","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","type_name","u128_to_i128","unary_overflow","warning_code","InterpreterHalt","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","","from","init","into","message","new","new_spanned","span","","to_owned","to_string","try_from","try_into","type_id","loop_unroller_errors","Backtraced","Formatted","LoopUnrollerError","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","loop_range_decreasing","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","variable_array_access","warning_code","package_errors","Backtraced","Formatted","PackageError","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","conflicting_on_chain_program_name","dependency_not_found","deref","deref_mut","directory_not_found","drop","empty_source_directory","error_code","execution_error","exit_code","failed_to_create_aleo_file","failed_to_create_directory","failed_to_create_inputs_directory","failed_to_create_manifest","failed_to_create_source_directory","failed_to_deserialize_lock_file","failed_to_deserialize_manifest_file","failed_to_get_file_name","failed_to_get_input_file_entry","failed_to_get_input_file_type","failed_to_get_leo_file_entry","failed_to_get_leo_file_extension","failed_to_initialize_package","failed_to_load_package","failed_to_open_aleo_file","failed_to_open_manifest","failed_to_read_checksum_file","failed_to_read_circuit_file","failed_to_read_file","failed_to_read_input_file","failed_to_read_inputs_directory","failed_to_read_manifest","failed_to_read_manifest_file","failed_to_read_snapshot_file","failed_to_remove_aleo_file","failed_to_remove_checksum_file","failed_to_remove_circuit_file","failed_to_remove_directory","failed_to_remove_snapshot_file","failed_to_serialize_manifest_file","failed_to_set_cwd","failed_to_write_aleo_file","failed_to_write_manifest","fmt","","from","","","init","insufficient_balance","into","invalid_file_name_dependency","invalid_input_file_type","invalid_leo_file_extension","invalid_lock_file_formatting","invalid_package_name","io_error_checksum_file","io_error_circuit_file","io_error_env_file","io_error_gitignore_file","io_error_input_file","io_error_main_file","is_error","message_type","missing_on_chain_program_name","num_exit_codes","snarkvm_error","source","source_directory_can_contain_only_one_file","to_owned","to_string","try_from","try_into","type_id","unimplemented_command","warning_code","parser_errors","parser_warnings","Backtraced","Formatted","ParserError","array_must_have_at_least_one_element","async_finalize_is_deprecated","borrow","borrow_mut","cannot_declare_external_struct","cannot_define_external_record","cannot_import_inside_program_body","circuit_is_deprecated","clone","clone_into","clone_to_uninit","code_mask","comma_expected_after_member","console_statements_are_not_yet_supported","could_not_lex","deref","deref_mut","drop","error_code","exit_code","external_type_cannot_be_used_inside_function","finalize_statements_are_deprecated","fmt","","from","","","hexbin_literal_nonintegers","identifier_too_long","implicit_values_not_allowed","init","inputs_multiple_variable_modes_specified","into","invalid_address_lit","invalid_associated_access","invalid_external_type","invalid_import_list","invalid_method_call","invalid_network","is_error","leo_and_aleo_imports_only","lexer_bidi_override","lexer_block_comment_does_not_close_before_eof","lexer_empty_block_comment","lexer_empty_input","lexer_expected_valid_escaped_char","lexer_hex_number_provided","lexer_string_not_closed","message_type","missing_program_scope","mixed_commas_and_semicolons","num_exit_codes","only_aleo_external_calls","only_one_program_scope_is_allowed","source","space_in_annotation","spread_in_array_init","to_owned","to_string","try_from","try_into","tuple_index_must_be_whole_number","tuple_must_have_at_least_two_elements","type_id","unexpected","unexpected_eof","unexpected_ident","unexpected_statement","unexpected_str","unexpected_token","unexpected_whitespace","warning_code","wrong_digit_for_radix","Backtraced","Formatted","ParserWarning","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","const_parameter_or_input","deprecated","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","message_type","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","warning_code","static_analyzer_error","static_analyzer_warning","Backtraced","Formatted","StaticAnalyzerError","array_bounds","async_transition_call_with_future_argument","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","compile_core_function","compile_time_binary_op","compile_time_cast","compile_time_unary_op","deref","deref_mut","drop","error_code","exit_code","expected_future","fmt","","from","","","future_awaits_missing","init","into","invalid_await_call","is_error","message_type","misplaced_future","no_path_awaits_all_futures_exactly_once","num_exit_codes","source","to_owned","to_string","try_from","try_into","type_id","warning_code","Backtraced","Formatted","StaticAnalyzerWarning","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","future_not_awaited_in_order","init","into","is_error","max_conditional_block_depth_exceeded","message_type","num_exit_codes","some_paths_contain_duplicate_future_awaits","some_paths_do_not_await_all_futures","source","to_owned","to_string","try_from","try_into","type_id","warning_code","type_checker_error","type_checker_warning","Backtraced","Formatted","TypeCheckerError","array_element_cannot_be_future","array_element_cannot_be_record","array_element_cannot_be_tuple","array_empty","array_too_large","assign_unit_expression_to_variable","async_call_can_only_be_done_from_async_transition","async_call_in_conditional","async_cannot_assign_outside_conditional","async_function_cannot_return_value","async_function_input_cannot_be_private","async_function_input_length_mismatch","async_function_input_must_be_public","async_function_not_found","async_transition_invalid_output","async_transition_missing_future_to_return","async_transition_must_call_async_function","borrow","borrow_mut","can_only_await_one_future_at_a_time","can_only_call_inline_function","cannot_assign_to_const_input","cannot_assign_to_const_var","cannot_call_external_inline_function","cannot_define_external_struct","cannot_have_constant_output_mode","cannot_invoke_call_to_local_transition_function","cannot_modify_external_mapping","cannot_reassign_future_variable","clone","clone_into","clone_to_uninit","code_mask","compare_address","composite_data_type_cannot_contain_future","composite_data_type_cannot_contain_tuple","const_declaration_can_only_have_one_binding","const_declaration_must_be_literal_or_tuple_of_literals","core_type_name_conflict","could_not_determine_type","cyclic_function_dependency","cyclic_struct_dependency","deref","deref_mut","drop","duplicate_record_variable","duplicate_struct_member","empty_function_arglist","empty_struct","error_code","exit_code","expected_future","expected_one_type_of","expression_statement_must_be_function_call","external_transition_call_must_be_before_finalize","finalize_block_must_not_be_empty","finalize_output_mode_must_be_public","fmt","","from","","","function_cannot_input_or_output_a_record","function_cannot_take_tuple_as_input","function_has_no_return","future_access_must_be_number","future_awaits_missing","future_error_member","imported_program_cannot_import_program","incorrect_num_args_to_call","incorrect_num_struct_members","incorrect_num_tuple_elements","incorrect_tuple_length","init","into","invalid_assignment_target","invalid_associated_constant","invalid_await_call","invalid_block_access","invalid_core_constant","invalid_core_function","invalid_core_function_call","invalid_future_access","invalid_int_value","invalid_mapping_type","invalid_method_call","invalid_operation_inside_finalize","invalid_operation_outside_finalize","invalid_self_access","invalid_struct_variable","invalid_tuple","invalid_type","is_error","lhs_must_be_identifier_or_tuple","lhs_tuple_element_must_be_an_identifier","loop_body_contains_finalize","loop_body_contains_return","loop_bound_must_be_a_literal","loop_bound_must_be_literal_or_const","loop_bound_type_mismatch","loop_range_decreasing","message_type","missing_return","missing_struct_member","mul_types_mismatch","must_call_async_function_once","must_propagate_all_futures","nested_tuple_expression","nested_tuple_type","no_future_parameters","no_path_awaits_all_futures_exactly_once","no_transitions","not_all_futures_consumed","num_exit_codes","only_async_transition_can_return_future","operation_must_be_in_finalize_block","operation_types_mismatch","pow_types_mismatch","record_var_wrong_type","regular_function_inputs_cannot_have_modes","required_record_variable","return_type_of_finalize_function_is_future","shift_type_magnitude","source","strings_are_not_supported","struct_cannot_have_member_mode","struct_definitions_dont_match","struct_or_record_cannot_contain_record","stub_functions_must_be_empty","stub_functions_must_not_be_inlines","stub_name_mismatch","stubs_cannot_have_const_declarations","stubs_cannot_have_non_record_structs","ternary_branch_mismatch","to_owned","to_string","too_many_mappings","too_many_transitions","transition_function_inputs_cannot_be_const","try_from","try_into","tuple_out_of_range","type_id","type_should_be","type_should_be2","undefined_type","unit_expression_only_in_return_statements","unit_type_only_return","unknown_annotation","unknown_future_consumed","unknown_sym","unreachable_code_after_return","warning_code","Backtraced","Formatted","TypeCheckerWarning","async_function_is_never_called_by_transition_function","borrow","borrow_mut","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","error_code","exit_code","fmt","","from","","","init","into","is_error","max_conditional_block_depth_exceeded","message_type","num_exit_codes","some_paths_contain_duplicate_future_awaits","some_paths_do_not_await_all_futures","source","to_owned","to_string","try_from","try_into","type_id","warning_code","util_errors","Backtraced","Formatted","UtilError","borrow","borrow_mut","build_file_does_not_exist","circular_dependency_error","clone","clone_into","clone_to_uninit","code_mask","deref","deref_mut","drop","duplicate_dependency_name_error","endpoint_moved_error","error_code","exit_code","failed_to_deserialize_file","failed_to_open_file","failed_to_read_file","failed_to_retrieve_dependencies","failed_to_retrieve_from_endpoint","fmt","","from","","","init","into","invalid_bound","invalid_field","invalid_height_or_hash","invalid_input_id","invalid_input_id_len","invalid_numerical_input","invalid_range","is_error","json_serialization_error","message_type","missing_network_error","missing_path_error","network_error","num_exit_codes","program_name_mismatch_error","reqwest_error","snarkvm_error_building_program_id","snarkvm_parsing_error","source","to_owned","to_string","toml_serizalization_error","try_from","try_into","type_id","util_file_io_error","warning_code"],"q":[[0,"leo_errors"],[4,"leo_errors::common"],[8,"leo_errors::common::backtraced"],[43,"leo_errors::common::formatted"],[72,"leo_errors::common::traits"],[80,"leo_errors::emitter"],[187,"leo_errors::errors"],[267,"leo_errors::errors::ast"],[268,"leo_errors::errors::ast::ast_errors"],[316,"leo_errors::errors::cli"],[317,"leo_errors::errors::cli::cli_errors"],[389,"leo_errors::errors::compiler"],[390,"leo_errors::errors::compiler::compiler_errors"],[432,"leo_errors::errors::flattener"],[433,"leo_errors::errors::flattener::flattener_errors"],[469,"leo_errors::errors::interpreter_halt"],[493,"leo_errors::errors::loop_unroller"],[494,"leo_errors::errors::loop_unroller::loop_unroller_errors"],[527,"leo_errors::errors::package"],[528,"leo_errors::errors::package::package_errors"],[613,"leo_errors::errors::parser"],[615,"leo_errors::errors::parser::parser_errors"],[691,"leo_errors::errors::parser::parser_warnings"],[724,"leo_errors::errors::static_analyzer"],[726,"leo_errors::errors::static_analyzer::static_analyzer_error"],[768,"leo_errors::errors::static_analyzer::static_analyzer_warning"],[803,"leo_errors::errors::type_checker"],[805,"leo_errors::errors::type_checker::type_checker_error"],[961,"leo_errors::errors::type_checker::type_checker_warning"],[996,"leo_errors::errors::utils"],[997,"leo_errors::errors::utils::util_errors"],[1054,"alloc::string"],[1055,"core::fmt"],[1056,"core::hash"],[1057,"core::option"],[1058,"backtrace::capture"],[1059,"core::result"],[1060,"core::any"],[1061,"leo_span::span"],[1062,"core::convert"],[1063,"alloc::vec"],[1064,"alloc::boxed"],[1065,"core::ops::function"],[1066,"anyhow"],[1067,"core::error"],[1068,"std::fs"]],"i":"``````````f00000000000000000000000000000000`Bh000000000000000000000000000`Bl000000````````ChCjC`CbBn43210000210432104321043210Cd5431054314343113225432135432135432120541235313212543215432154321433Cf000Gn111``1011Cn`20202`2020``202020202`22002222222222222000020`20```20`202020`20```Eh0000000000000000000000000000000000000000000000`Ef`0000000000000000000000000000000000000000000000000000000000000000000000`Fj`0000000000000000000000000000000000000000`Ej`000000000000000000000000000000`000`Ed0000000000000000000000`En0`000000000000000000000000000000`El0`0000000000000000000000000000000000000000000000000000000000000000000000000000000000``Ff0`0000000000000000000000000000000000000000000000000000000000000000000000000Fl0`000000000000000000000000000000``Fd0`000000000000000000000000000000000000000G`0`00000000000000000000000000000000``F`0`000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Fn0`00000000000000000000000000000000`Fb0`000000000000000000000000000000000000000000000000000000","f":"```````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}``{{}f}{l{{b{c}}}{}}{l{{b{dc}}}{}}{{{b{f}}}{{b{n}}}}{lh}{{{b{f}}{b{f}}}A`}`{{{b{f}}}Ab}{{{b{f}}}Ad}{{{b{f}}{b{dAf}}}Ah}0{cc{}}{{{b{f}}{b{dc}}}hAj}`{{}l}{{}c{}}`{{c{Al{Ab}}AdAnAbA`B`}fBb}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}`{bBf}<``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Bh}}}Bh}{{b{b{dc}}}h{}}{{bj}h}{{}Bh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{{{b{Bh}}}{{b{n}}}}{lh}{{{b{Bh}}{b{Bh}}}A`}{{{b{Bh}}}Ab}{{{b{Bh}}}Ad}{{{b{Bh}}{b{dAf}}}Ah}0{cc{}}{{{b{Bh}}{b{dc}}}hAj}{{}l}{{}c{}}{{c{Al{Ab}}AdAnAbA`BjB`}BhBb}`{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}<`{{}An}{{}Ad}{{{b{Bl}}}Ab}{{{b{Bl}}}Ad}{{}A`}{{}Ab}3````````{b{{b{c}}}{}}0000{{{b{d}}}{{b{dc}}}{}}0000{{{b{Bn}}}Bn}{{b{b{dc}}}h{}}{{bj}h}{{}C`}{{}{{Cb{c}}}{}}{{}Bn}{l{{b{c}}}{}}0000{l{{b{dc}}}{}}0000{lh}0000{{{b{dCd}}Cf}h}{{{b{dCh}}Cf}h}{{{b{dCj}}Cf}h}{{{b{C`}}c}h{{Cl{Cf}}}}{{{b{dBn}}Cf}h}{{{b{dCd}}Cn}h}{{{b{dCh}}Cn}h}{{{b{dCj}}Cn}h}{{{b{C`}}Cn}h}{{{b{dBn}}Cn}h}`{{{b{C`}}}l}`{{{b{C`}}{Bd{cCf}}}{{Bd{ch}}}{}}{{{b{Bn}}}D`}{{{b{Bn}}}Db}{{{b{C`}}Cf}Dd}{{{b{{Cb{c}}}}{b{dAf}}}AhDf}{{{b{{Cb{c}}}}{b{dAf}}}AhDh}{cc{}}0000{{{b{C`}}}A`}{{}l}0000`{{}c{}}0000{{{Cb{c}}}{{Dj{c}}}{}}{{{b{Cd}}}{{Al{Ad}}}}{{{b{Ch}}}{{Al{Ad}}}}{{{b{Cj}}}{{Al{Ad}}}}{{{b{Bn}}}{{Al{Ad}}}}{{{b{{Cb{c}}}}}{{Al{{b{c}}}}}{}}{{{b{C`}}}{{Bd{h{Dl{Cf}}}}}}`{{{Dl{Cd}}}C`}{{}Bn}{{}{{Dn{C`Bn}}}}{{{b{d{Cb{c}}}}c}h{}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}0000{{}{{Bd{c}}}{}}0000{bBf}0000`{{{b{C`}}}l}{e{{Bd{cD`}}}{}{{Eb{{b{C`}}}{{E`{{Bd{cCf}}}}}}}}``````````````````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0``{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{{{b{Cf}}}Ab}{{{b{Cn}}}Ab}{{{b{Cf}}}Ad}`{{{b{Cf}}{b{dAf}}}Ah}0{{{b{Cn}}{b{dAf}}}Ah}0{EdCf}{EfCf}{EhCf}{EjCf}{ElCf}{EnCf}{F`Cf}{FbCf}{FdCf}{FfCf}{FhCf}{cc{}}{FjCf}{FlCn}{FnCn}3{G`Cn}{{}l}0`{{}c{}}0```{{{b{Cf}}}{{Al{{b{Gb}}}}}}{{{b{Cn}}}{{Al{{b{Gb}}}}}}`{bAb}0{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0`{bBf}0`````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Eh}}}Eh}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Eh}}}Ab}{{{b{Eh}}}Ad}{cEhGb}000{{ce}EhDfGb}001100{{{b{Eh}}{b{dAf}}}Ah}0{fEh}{cc{}}{BhEh}{cEhDh}{{}l}{{}c{}}{{}A`}{{}Ab}{{}Ad}{{cBj}EhDh}0000{{{b{Eh}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Eh}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{cEfDh}00{cEfGb}1{{{b{Ef}}}Ef}{{b{b{dc}}}h{}}{{bj}h}?{{}Ef}{{cGde}EfDhDh}5{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ef}}}Ab}{{{b{Ef}}}Ad}6;;;;;;;666;;;;;;;;;;;{{{b{Ef}}{b{dAf}}}Ah}0{fEf}{BhEf}{cc{}}{{}l}{{}c{}}{cEfDh}00{{}A`}{{}Ab}?{{}Ad}{{ce}EfDhDh}{{}Ef}{cEfGb}0{{{b{Ef}}}{{Al{{b{Gb}}}}}}77{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{cGde}EfDhDh}{{{b{Ef}}}Ab}````{BjFj}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{cBj}FjGb}{{{b{Fj}}}Fj}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}7{{lBj}Fj}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fj}}}Ab}{{{b{Fj}}}Ad}{{ce}FjDfGb}{{{b{Fj}}{b{dAf}}}Ah}0{cc{}}{BhFj}{fFj}{{cBj}FjDh}0{{ceBj}FjDhDh}{{}l}{{}c{}}{{}A`}{BjFj}{{}Ab}{{}Ad}66{{{b{Fj}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Fj}}}Ab}````{{cegiBj}EjDhDhDhDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ej}}}Ej}{{b{b{dc}}}h{}}{{bj}h}={l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ej}}}Ab}{{{b{Ej}}}Ad}{{{b{Ej}}{b{dAf}}}Ah}0{BhEj}{cc{}}{fEj}{{}l}{{}c{}}{{}A`}{{cBj}EjDh}{{}Ab}{{}Ad}{{{b{Ej}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{c}}}{{b{n}}}{}}9{{ceBj}EjDhDh}{{{b{Ej}}}Ab}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ed}}}Ed}{{b{b{dc}}}h{}}{{bj}h}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ed}}{b{dAf}}}Ah}0{cc{}}{{}l}{{}c{}}`{AbEd}{{AbBj}Ed}{{{b{Ed}}}{{Al{Bj}}}}`{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{En}}}En}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{En}}}Ab}{{{b{En}}}Ad}{{{b{En}}{b{dAf}}}Ah}0{BhEn}{fEn}{cc{}}{{}l}{{}c{}}{{}A`}{BjEn}{{}Ab}>{{{b{En}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}7{{{b{En}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{El}}}El}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{{ce}ElDhDh}{cElDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}3{lh}{{}El}{{{b{El}}}Ab}5{{{b{El}}}Ad}6{{ce}ElDhGb}{cElGb}800140{{ce}ElDfGb}1{cElDf}{{ceg}ElDhDfDh};;;11413;41;114144;;{{{b{El}}{b{dAf}}}Ah}0{cc{}}{fEl}{BhEl}{{}l}{{ceg}ElDhDhDh}{{}c{}}{cElDh}{{cGf}ElDf}{{ce}ElDfDf}{{}El}3>>>>>>{{}A`}{{}Ab}2{{}Ad}6{{{b{El}}}{{Al{{b{Gb}}}}}}4{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}<{{{b{El}}}Ab}`````{{cBj}FfDh}{BjFf}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}2222{{{b{Ff}}}Ff}{{b{b{dc}}}h{}}{{bj}h}>55{cFfDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Ff}}}Ab}{{{b{Ff}}}Ad}{{ceBj}FfDhDh}<{{{b{Ff}}{b{dAf}}}Ah}0{fFf}{cc{}}{BhFf}{BjFf}{{cllBj}FfDh}{{cBj}FfDh}{{}l}3{{}c{}}2244{{cegBj}FfDhDhDh}5{{}A`}6{{}Ff}{cFfDh}11000{{}Ab}99{{}Ad}::{{{b{Ff}}}{{Al{{b{Gb}}}}}};;{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}=={bBf}{{ceBj}FfDhDh}{BjFf}{{c{b{{Gh{e}}}}Bj}FfDhDh}22{{cBj}FfDh}3{{{b{Ff}}}Ab}{{GjGlAb}Ff}```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Fl}}}Fl}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}{BjFl}{{ceBj}FlDhDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fl}}}Ab}{{{b{Fl}}}Ad}{{{b{Fl}}{b{dAf}}}Ah}0{BhFl}{fFl}{cc{}}{{}l}{{}c{}}{{}A`}{{}Ab}?{{{b{Fl}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}?`````{{ceBj}FdDhDh}{{cBj}FdDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Fd}}}Fd}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}6{{cegiBj}FdDhDhDhDh}8{{cegBj}FdDhDhDh}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fd}}}Ab}{{{b{Fd}}}Ad}={{{b{Fd}}{b{dAf}}}Ah}0{BhFd}{fFd}{cc{}}{{cBj}FdDh}{{}l}{{}c{}}{BjFd}{{}A`}{{}Ab}25{{}Ad}{{{b{Fd}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Fd}}}Ab}```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{G`}}}G`}{{b{b{dc}}}h{}}{{bj}h}<{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{G`}}}Ab}{{{b{G`}}}Ad}{{{b{G`}}{b{dAf}}}Ah}0{BhG`}{fG`}{cc{}}{{cBj}G`Dh}{{}l}{{}c{}}{{}A`}3{{}Ab}{{}Ad}{{ceBj}G`DhDh}0{{{b{G`}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{G`}}}Ab}`````{BjF`}000{{ceBj}F`DhDh}111{{cBj}F`Dh}22120222{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}4422424422{{{b{F`}}}F`}{{b{b{dc}}}h{}}{{bj}h}{{}Ad}6668866{{{Dj{c}}}F`Dh}0{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}::<<{{{b{F`}}}Ab}{{{b{F`}}}Ad}<=>>>>{{{b{F`}}{b{dAf}}}Ah}0{cc{}}{BhF`}{fF`}{BjF`}0{{cBj}F`Dh}0001{{ceBj}F`DhDh}000{{}l}{{}c{}}43442232224334243{{}A`}55555555{{}Ab}64465666565{{}Ad}77{{cegBj}F`DhDhDh}668686{{{b{F`}}}{{Al{{b{Gb}}}}}}9917997997{bc{}}{bAb}::;{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}};{bBf}<<=>>==<>{{{b{F`}}}Ab}```{{cBj}FnDh}{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Fn}}}Fn}{{b{b{dc}}}h{}}{{bj}h}>{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{{{b{Fn}}}Ab}{{{b{Fn}}}Ad}{{{b{Fn}}{b{dAf}}}Ah}0{cc{}}{fFn}{BhFn}{{}l}{{}c{}}{{}A`}{{cBj}FnDh}{{}Ab}{{}Ad}{{ceBj}FnDhDh}0{{{b{Fn}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{{b{Fn}}}Ab}````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{cBj}FbDh}{BjFb}{{{b{Fb}}}Fb}{{b{b{dc}}}h{}}{{bj}h}?{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}7{cFbDh}{{{b{Fb}}}Ab}{{{b{Fb}}}Ad}222:{{cBj}FbGb}{{{b{Fb}}{b{dAf}}}Ah}0{cc{}}{BhFb}{fFb}{{}l}{{}c{}}999{{ceg}FbDhDhDh}{{ce}FbDhDh};{{}Fb}{{}A`}:{{}Ab}{{cBj}FbDh}0{{ceBj}FbDhDh}{{}Ad}{{cegBj}FbDhDhDh}{cFbDh}{BjFb}5{{{b{Fb}}}{{Al{{b{Gb}}}}}}{bc{}}{bAb}{{cBj}FbGb}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bBf}{{ceBj}FbDhGb}{{{b{Fb}}}Ab}","D":"BCl","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Backtraced",8],[1,"unit"],[1,"u8"],[1,"usize"],[1,"str"],[1,"bool"],[5,"String",1054],[1,"i32"],[5,"Formatter",1055],[8,"Result",1055],[10,"Hasher",1056],[6,"Option",1057,null,1],[1,"i8"],[5,"Backtrace",1058],[10,"ToString",1054],[6,"Result",1059,null,1],[5,"TypeId",1060],[5,"Formatted",43],[5,"Span",1061],[10,"LeoMessageCode",72],[5,"BufferEmitter",80],[5,"Handler",80],[5,"Buffer",80],[10,"Emitter",80],[6,"LeoError",187],[5,"StderrEmitter",80],[5,"HandlerInner",80],[10,"Into",1062],[6,"LeoWarning",187],[8,"ErrBuffer",80],[8,"WarningBuffer",80],[1,"never"],[10,"Debug",1055],[10,"Display",1055],[5,"Vec",1063],[5,"Box",1064,null,1],[1,"tuple",null,null,1],[17,"Output"],[10,"FnOnce",1065],[5,"InterpreterHalt",469],[6,"CliError",317],[6,"AstError",268],[6,"FlattenError",433],[6,"PackageError",528],[6,"LoopUnrollerError",494],[6,"TypeCheckerError",805],[6,"UtilError",997],[6,"StaticAnalyzerError",726],[6,"ParserError",615],[5,"Error",1066],[6,"CompilerError",390],[6,"ParserWarning",691],[6,"TypeCheckerWarning",961],[6,"StaticAnalyzerWarning",768],[10,"Error",1067],[1,"u64"],[5,"FileType",1068],[1,"slice"],[1,"char"],[1,"u32"],[8,"Result",187]],"r":[],"b":[[27,"impl-Debug-for-Backtraced"],[28,"impl-Display-for-Backtraced"],[58,"impl-Display-for-Formatted"],[59,"impl-Debug-for-Formatted"],[136,"impl-Debug-for-Buffer%3CT%3E"],[137,"impl-Display-for-Buffer%3CT%3E"],[225,"impl-Debug-for-LeoError"],[226,"impl-Display-for-LeoError"],[227,"impl-Display-for-LeoWarning"],[228,"impl-Debug-for-LeoWarning"],[229,"impl-From%3CInterpreterHalt%3E-for-LeoError"],[230,"impl-From%3CCliError%3E-for-LeoError"],[231,"impl-From%3CAstError%3E-for-LeoError"],[232,"impl-From%3CFlattenError%3E-for-LeoError"],[233,"impl-From%3CPackageError%3E-for-LeoError"],[234,"impl-From%3CLoopUnrollerError%3E-for-LeoError"],[235,"impl-From%3CTypeCheckerError%3E-for-LeoError"],[236,"impl-From%3CUtilError%3E-for-LeoError"],[237,"impl-From%3CStaticAnalyzerError%3E-for-LeoError"],[238,"impl-From%3CParserError%3E-for-LeoError"],[239,"impl-From%3CError%3E-for-LeoError"],[241,"impl-From%3CCompilerError%3E-for-LeoError"],[242,"impl-From%3CParserWarning%3E-for-LeoWarning"],[243,"impl-From%3CTypeCheckerWarning%3E-for-LeoWarning"],[245,"impl-From%3CStaticAnalyzerWarning%3E-for-LeoWarning"],[293,"impl-Debug-for-AstError"],[294,"impl-Display-for-AstError"],[295,"impl-From%3CBacktraced%3E-for-AstError"],[297,"impl-From%3CFormatted%3E-for-AstError"],[361,"impl-Display-for-CliError"],[362,"impl-Debug-for-CliError"],[363,"impl-From%3CBacktraced%3E-for-CliError"],[364,"impl-From%3CFormatted%3E-for-CliError"],[409,"impl-Display-for-CompilerError"],[410,"impl-Debug-for-CompilerError"],[412,"impl-From%3CFormatted%3E-for-CompilerError"],[413,"impl-From%3CBacktraced%3E-for-CompilerError"],[448,"impl-Debug-for-FlattenError"],[449,"impl-Display-for-FlattenError"],[450,"impl-From%3CFormatted%3E-for-FlattenError"],[452,"impl-From%3CBacktraced%3E-for-FlattenError"],[478,"impl-Display-for-InterpreterHalt"],[479,"impl-Debug-for-InterpreterHalt"],[508,"impl-Display-for-LoopUnrollerError"],[509,"impl-Debug-for-LoopUnrollerError"],[510,"impl-From%3CFormatted%3E-for-LoopUnrollerError"],[511,"impl-From%3CBacktraced%3E-for-LoopUnrollerError"],[580,"impl-Display-for-PackageError"],[581,"impl-Debug-for-PackageError"],[583,"impl-From%3CBacktraced%3E-for-PackageError"],[584,"impl-From%3CFormatted%3E-for-PackageError"],[640,"impl-Display-for-ParserError"],[641,"impl-Debug-for-ParserError"],[642,"impl-From%3CBacktraced%3E-for-ParserError"],[644,"impl-From%3CFormatted%3E-for-ParserError"],[707,"impl-Display-for-ParserWarning"],[708,"impl-Debug-for-ParserWarning"],[709,"impl-From%3CFormatted%3E-for-ParserWarning"],[710,"impl-From%3CBacktraced%3E-for-ParserWarning"],[747,"impl-Debug-for-StaticAnalyzerError"],[748,"impl-Display-for-StaticAnalyzerError"],[749,"impl-From%3CFormatted%3E-for-StaticAnalyzerError"],[750,"impl-From%3CBacktraced%3E-for-StaticAnalyzerError"],[782,"impl-Debug-for-StaticAnalyzerWarning"],[783,"impl-Display-for-StaticAnalyzerWarning"],[784,"impl-From%3CFormatted%3E-for-StaticAnalyzerWarning"],[785,"impl-From%3CBacktraced%3E-for-StaticAnalyzerWarning"],[865,"impl-Display-for-TypeCheckerError"],[866,"impl-Debug-for-TypeCheckerError"],[868,"impl-From%3CFormatted%3E-for-TypeCheckerError"],[869,"impl-From%3CBacktraced%3E-for-TypeCheckerError"],[976,"impl-Display-for-TypeCheckerWarning"],[977,"impl-Debug-for-TypeCheckerWarning"],[979,"impl-From%3CBacktraced%3E-for-TypeCheckerWarning"],[980,"impl-From%3CFormatted%3E-for-TypeCheckerWarning"],[1020,"impl-Debug-for-UtilError"],[1021,"impl-Display-for-UtilError"],[1023,"impl-From%3CFormatted%3E-for-UtilError"],[1024,"impl-From%3CBacktraced%3E-for-UtilError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAADfQAMAAQAEwAFABwAAQAfAAAAIQAAACUAAwAqAAAALgAKADsAAQA+AAEAQwAEAFkAHgB5AAAAfAAAAH4AAACBAAAAiQABAJEABACeAAAAoAAAAKgAEADCAAAA0gADANgABQDiAA4A8gACAPYAAwD/AAEAAgEFAAkBAQAOAQwAJgECACoBAgAuAQMANgEGAD4BAABAAQQASAEFAE8BBABVARgAbwEAAHEBBgB5AQAAfAEJAIcBAACJAQ8AmgEBAJ0BAQCgAQIApAEMALIBAAC0AQAAtgENAMUBAQDIAQAAygEHANUBAADXAQkA4gEAAOUBAgDpAQcA8gEOAAICAAAEAgsAEQIBABQCCQAfAgUAJwIAACkCAgAxAgIAOQIBADwCAABBAgUASAIDAE0CAABQAgAAWAINAGgCAQBrAgUAcgIEAHgCAAB6AgkAhQICAIkCAACNAgEAkQICAJsCAQCeAgQApAIDAKkCAQCyAgMAtwIFAL8CCADJAgAAywIJANYCAgDaAhUA8QIBAPQCDgAEAw4AFAMBABcDDAAlAwIAKQMUAEADDgBRAwQAWAMEAF4DBQBlAwMAagMDAHADAgB2AwAAewMAAH0DBACDAwwAkQMmALsDAwDAAwMAxQMNANQDAgDYAwwA5gMBAOkDFQAABAIABAQaAA==","P":[[11,"T"],[13,""],[14,"T"],[15,""],[19,"T"],[21,""],[29,"T"],[30,"__H"],[32,""],[33,"U"],[35,"S"],[36,"T"],[37,""],[38,"U,T"],[39,"U"],[41,""],[45,"T"],[47,""],[48,"T"],[49,""],[51,"T"],[53,""],[60,"T"],[61,"__H"],[62,""],[63,"U"],[64,"S"],[66,"T"],[67,""],[68,"U,T"],[69,"U"],[70,""],[88,"T"],[98,""],[99,"T"],[100,""],[102,"T"],[103,""],[104,"T"],[114,""],[122,"E"],[123,""],[132,"T"],[133,""],[136,"T"],[143,""],[150,"U"],[155,"T"],[156,""],[160,"T"],[161,""],[166,"T"],[168,""],[169,"U,T"],[174,"U"],[179,""],[186,"T,"],[209,"T"],[219,""],[240,"T"],[241,""],[244,"T"],[245,""],[249,"U"],[254,""],[259,"U,T"],[261,"U"],[264,""],[271,"T"],[273,""],[274,"T"],[275,""],[277,"T"],[279,""],[282,""],[286,","],[289,""],[291,","],[293,""],[296,"T"],[297,""],[298,""],[299,""],[300,"U"],[301,""],[304,""],[309,""],[310,"T"],[311,""],[312,"U,T"],[313,"U"],[314,""],[320,"T"],[322,""],[327,""],[328,"T"],[329,""],[332,","],[333,""],[334,"T"],[336,""],[340,""],[347,""],[350,""],[361,""],[365,"T"],[366,""],[367,"U"],[368,""],[371,""],[375,","],[376,""],[377,""],[379,""],[380,""],[382,"T"],[383,""],[384,"U,T"],[385,"U"],[386,""],[387,","],[388,""],[394,"T"],[396,""],[397,""],[398,"T"],[399,""],[403,"T"],[405,""],[408,","],[409,""],[411,"T"],[412,""],[414,""],[416,","],[417,""],[418,"U"],[419,""],[423,","],[425,""],[426,"T"],[427,""],[428,"U,T"],[429,"U"],[430,""],[436,",,,"],[437,"T"],[439,""],[440,"T"],[441,""],[443,"T"],[445,""],[451,"T"],[452,""],[454,"U"],[455,""],[456,""],[457,""],[460,"T"],[461,""],[462,"U,T"],[463,"U"],[464,""],[465,"T"],[466,""],[467,","],[468,""],[470,"T"],[472,""],[473,"T"],[474,""],[475,"T"],[477,""],[480,"T"],[481,""],[482,"U"],[484,""],[488,"T"],[489,""],[490,"U,T"],[491,"U"],[492,""],[497,"T"],[499,""],[500,"T"],[501,""],[503,"T"],[505,""],[512,"T"],[513,""],[514,"U"],[515,""],[520,"T"],[521,""],[522,"U,T"],[523,"U"],[524,""],[531,"T"],[533,""],[534,"T"],[535,""],[537,","],[538,""],[539,"T"],[541,","],[542,""],[545,""],[546,""],[547,""],[548,","],[549,""],[553,","],[554,""],[555,""],[556,","],[557,""],[559,",,"],[560,""],[565,","],[566,""],[569,","],[570,""],[574,","],[575,""],[576,","],[578,""],[580,""],[582,"T"],[583,""],[586,",,"],[587,"U"],[588,""],[590,","],[591,""],[592,""],[599,""],[603,""],[604,""],[606,"T"],[607,""],[608,"U,T"],[609,"U"],[610,""],[611,""],[612,""],[618,""],[619,""],[620,"T"],[622,""],[627,"T"],[628,""],[632,""],[633,"T"],[635,""],[638,","],[639,""],[643,"T"],[644,""],[646,""],[648,""],[650,"U"],[651,""],[653,""],[655,",,"],[656,""],[660,""],[661,""],[663,""],[666,""],[675,"T"],[676,""],[677,"U,T"],[678,"U"],[679,""],[681,""],[682,","],[683,""],[684,","],[687,""],[688,","],[689,""],[694,"T"],[696,""],[697,"T"],[698,""],[701,","],[702,"T"],[704,""],[711,"T"],[712,""],[713,"U"],[714,""],[718,"T"],[719,""],[720,"U,T"],[721,"U"],[722,""],[729,","],[730,""],[731,"T"],[733,""],[734,"T"],[735,""],[737,""],[738,",,,"],[739,","],[740,",,"],[741,"T"],[743,""],[746,""],[747,""],[751,"T"],[752,""],[753,""],[754,"U"],[755,""],[759,""],[760,""],[762,"T"],[763,""],[764,"U,T"],[765,"U"],[766,""],[771,"T"],[773,""],[774,"T"],[775,""],[777,"T"],[779,""],[786,"T"],[787,""],[788,""],[789,"U"],[790,""],[791,""],[792,""],[794,","],[796,""],[797,"T"],[798,""],[799,"U,T"],[800,"U"],[801,""],[812,","],[813,""],[816,""],[817,""],[819,","],[820,""],[821,""],[822,""],[825,"T"],[827,""],[829,""],[831,""],[832,""],[833,""],[835,""],[837,""],[838,"T"],[839,""],[841,""],[844,""],[846,""],[850,"T"],[852,""],[853,""],[855,""],[859,""],[860,","],[861,""],[867,"T"],[868,""],[872,""],[876,""],[877,","],[881,""],[882,"U"],[883,""],[884,""],[885,""],[887,","],[889,""],[890,","],[893,""],[894,""],[896,""],[897,","],[898,""],[899,""],[900,""],[911,","],[913,""],[914,""],[915,""],[918,""],[919,""],[920,""],[921,""],[924,",,"],[925,","],[927,""],[928,","],[929,""],[930,","],[931,""],[934,",,"],[935,","],[936,""],[938,","],[939,""],[941,","],[942,"T"],[943,""],[944,""],[946,""],[947,"U,T"],[948,"U"],[949,","],[950,""],[951,","],[953,""],[954,""],[956,""],[958,","],[959,""],[964,""],[965,"T"],[967,""],[968,"T"],[969,""],[971,"T"],[973,""],[978,"T"],[979,""],[982,"U"],[983,""],[984,""],[985,""],[987,","],[989,""],[990,"T"],[991,""],[992,"U,T"],[993,"U"],[994,""],[1000,"T"],[1002,""],[1003,""],[1005,"T"],[1006,""],[1008,"T"],[1010,""],[1011,""],[1013,""],[1015,""],[1020,""],[1022,"T"],[1023,""],[1026,"U"],[1027,""],[1030,",,"],[1031,","],[1032,""],[1033,""],[1035,""],[1036,""],[1037,""],[1039,","],[1040,""],[1041,",,"],[1042,""],[1043,""],[1044,""],[1045,""],[1046,"T"],[1047,""],[1048,""],[1049,"U,T"],[1050,"U"],[1051,""],[1052,","],[1053,""]]}],["leo_interpreter",{"t":"PPPKPPPSPPPPPSPPPPPPPPPGCCCCHHHQQHCHHMCQHCCCKHNNNNNNMNNNNPGPPPIPFFPGPIPFPFGFPPFIONONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNHHNONNNNNNNNNNONNNNNNNNNOONNONNNNNNNNNNNNNNNNNNNNNNNONNNHNNNNNNNOOONNNNNNNNNNOOONONONNNNNONNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNOOOOOHHHFNNNNNNNONNNNNNNNFPFGPPPPPPPPPFNONNNNNNNNONNNNNNNNNONNONNNNNNNNNNNNONNNNNNNNNONNNNNNNNOONNOOONNONNNNNNNNNNNNNNNNNNNNNNOFFFFHNNNNNNNNNNNOOHOOONNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNOONNNONNHOONONNNNNNNNNNNNONNNNOOKFNNONNMNNOONNOMONNNNOKRMHPPFPPFPPPPPPPPPFIIIIIIIPPPPPPPGONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Address","Array","Bool","CoreFunctionHelper","Field","Future","Group","HELP","I128","I16","I32","I64","I8","INTRO","Scalar","Struct","Tuple","U128","U16","U32","U64","U8","Unit","Value","core_functions","cursor","cursor_aleo","dialoguer_input","evaluate_binary","evaluate_core_function","evaluate_unary","halt","halt_no_span","interpret","interpreter","literal_to_value","parse_breakpoint","pop_value_impl","ratatui_ui","tc_fail","tokenize_user_input","ui","util","value","CoreFunctionHelper","evaluate_core_function","lookup_mapping","","lookup_mapping_mut","","pop_value","","pop_value_impl","rng","","set_block_height","","AleoClosure","AleoContext","AleoExecution","AleoFunction","Block","Closure","","ContextStack","Cursor","DelayedCall","Element","Expression","Finalize","","Frame","Function","FunctionContext","FunctionVariant","GlobalId","Leo","Statement","StepResult","SvmFunction","accumulated_futures","add_future","block_height","borrow","","","","","","","","","borrow_mut","","","","","","","","","branch","caller","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","contexts","","current_len","current_program","","default","deref","","","","","","","","","deref_mut","","","","","","","","","do_call","drop","","","","","","","","","element","eq","equivalent","","","","evaluate_binary","evaluate_unary","execution_complete","finished","fmt","","","","","","","","","","frames","from","","","","","","","","","functions","futures","get_future","get_register","globals","hash","increment_instruction_index","increment_step","init","","","","","","","","","instructions_len","into","","","","","","","","","is_async","","last","last_mut","len","literal_to_value","lookup","lookup_function","lookup_mapping","","lookup_mapping_mut","","mapping_by_call_operator","mappings","name","names","new","new_caller","next_command","next_instruction","operand_value","outputs","over","pop","pop_value","pop_value_impl","program","","","push","really_async","rng","","set","set_block_height","set_program","set_register","set_variable","signer","span","step","","step_aleo","step_aleo_command","step_aleo_instruction","step_block","step_expression","step_statement","structs","to_line","to_owned","","","","","","","","","to_smolstr","to_span","to_string","to_text","try_from","","","","","","","","","try_into","","","","","","","","","try_to_compact_string","type_id","","","","","","","","","user_initiated","user_values","value","values","vzip","","","","","","","","","whole_step","block","context","function_body","instruction_index","registers","snarkvm_literal_to_value","snarkvm_literal_type_to_type","value_to_snarkvm_literal","DialoguerUi","borrow","borrow_mut","deref","deref_mut","display_user_data","drop","from","history","init","into","new","receive_user_input","try_from","try_into","type_id","vzip","Breakpoint","","Interpreter","InterpreterAction","Into","LeoInterpretInto","LeoInterpretOver","Over","PrintRegister","Run","RunFuture","Step","Watch","Watchpoint","action","actions","borrow","","","","borrow_mut","","","","breakpoints","clone","","","clone_into","","","clone_to_uninit","","","code","current_program_and_line","current_span","cursor","deref","","","","deref_mut","","","","drop","","","","filename_to_program","fmt","","","from","","","","get_aleo_program","get_ast","handler","init","","","","into","","","","last_result","line","new","new_impl","node_builder","parsed_inputs","program","restore_cursor","save_cursor","saved_cursors","to_owned","","","try_from","","","","try_into","","","","type_id","","","","update_watchpoints","view_current","view_current_in_context","vzip","","","","watchpoints","DebuggerLayout","DrawData","Prompt","RatatuiUi","append_lines","backspace","beginning_of_line","borrow","","","","borrow_mut","","","","check_history","code","","code_text","current","cursor","data","default","","delete","deref","","","","deref_mut","","","","display_user_data","draw","drop","","","","","end_of_line","fmt","from","","","","handle_key","highlight","history","history_index","history_next","history_prev","init","","","","into","","","","left","message","","new","","new_character","prompt","receive_user_input","render","render_titled","result","","right","terminal","try_from","","","","try_into","","","","type_id","","","","user_input","vzip","","","","watchpoints","","Ui","UserData","borrow","borrow_mut","code","deref","deref_mut","display_user_data","drop","from","futures","highlight","init","into","message","receive_user_input","result","try_from","try_into","type_id","vzip","watchpoints","ExpectTc","T","expect_tc","snarkvm_identifier_to_symbol","Address","Array","AsyncExecution","Bool","Field","Future","","Group","I128","I16","I32","I64","I8","Scalar","Struct","StructContents","SvmAddress","SvmBoolean","SvmField","SvmGroup","SvmIdentifier","SvmInteger","SvmScalar","Tuple","U128","U16","U32","U64","U8","Unit","Value","arguments","borrow","","","","borrow_mut","","","","cast","clone","","","","clone_into","","","","clone_to_uninit","","","","contents","default","","deref","","","","deref_mut","","","","drop","","","","eq","","","","","equivalent","","","","","","","","","","","","","","","","fmt","","","","","","from","","","","function","generator","gt","gte","hash","","","","inc_wrapping","init","","","","into","","","","lt","lte","name","neq","really_cast","simple_shl","simple_shr","to_fields","to_line","","to_owned","","","","to_smolstr","","to_span","","to_string","","to_text","","try_from","","","","try_into","","","","try_to_compact_string","","type_id","","","","vzip","","","","write_bits_be","write_bits_le"],"q":[[0,"leo_interpreter"],[44,"leo_interpreter::core_functions"],[57,"leo_interpreter::cursor"],[326,"leo_interpreter::cursor::Element"],[331,"leo_interpreter::cursor_aleo"],[334,"leo_interpreter::dialoguer_input"],[351,"leo_interpreter::interpreter"],[453,"leo_interpreter::ratatui_ui"],[546,"leo_interpreter::ui"],[568,"leo_interpreter::util"],[572,"leo_interpreter::value"],[730,"leo_span::span"],[731,"leo_ast::expressions::binary"],[732,"leo_errors::errors"],[733,"leo_ast::functions::core_function"],[734,"leo_ast::expressions"],[735,"core::option"],[736,"leo_ast::expressions::unary"],[737,"std::path"],[738,"snarkvm_console_network::testnet_v0"],[739,"snarkvm_console_types_address"],[740,"leo_ast::expressions::literal"],[741,"leo_span::symbol"],[742,"std::collections::hash::map"],[743,"rand_chacha::chacha"],[744,"snarkvm_console_program::data::identifier"],[745,"core::iter::traits::iterator"],[746,"core::fmt"],[747,"snarkvm_console_program::data::register"],[748,"core::hash"],[749,"snarkvm_synthesizer_program::logic::instruction::operation::call"],[750,"snarkvm_synthesizer_program::logic::command"],[751,"snarkvm_synthesizer_program::logic::instruction"],[752,"snarkvm_synthesizer_program::logic::instruction::operand"],[753,"alloc::vec"],[754,"leo_ast::statement::block"],[755,"leo_ast::statement"],[756,"ratatui::text::line"],[757,"smol_str"],[758,"ratatui::text::span"],[759,"alloc::string"],[760,"ratatui::text::text"],[761,"core::result"],[762,"compact_str"],[763,"core::any"],[764,"snarkvm_console_program::data::literal"],[765,"snarkvm_console_program::data_types::literal_type"],[766,"leo_ast::types::type_"],[767,"snarkvm_synthesizer_program"],[768,"leo_errors::emitter"],[769,"leo_ast::common::node_builder"],[770,"leo_ast"],[771,"core::convert"],[772,"core::iter::traits::collect"],[773,"ratatui::style"],[774,"ratatui::terminal::frame"],[775,"crossterm::event"],[776,"ratatui::layout::rect"],[777,"ratatui::buffer::buffer"],[778,"ratatui::widgets"],[779,"snarkvm_console_program::data::literal::cast"],[780,"snarkvm_console_types_field"],[781,"snarkvm_console_types_group"],[782,"snarkvm_console_types_boolean"],[783,"snarkvm_console_types_scalar"],[784,"snarkvm_console_types_integers"]],"i":"f00`000`00000`000000000``````````````n````````00000000000Df`D`10`Cn``1`1`0`0```21``ClCdCh2134DbDd72Dh546721830355467218305467218305467218304344345467218305467218303546721830211111``305467211830354672183033433133546721830354672183045444`333333331533333334335134333433333732333333315467218301111546721830546721830154672183023035467218303MfMh100````H`000000000000000`Hf``000000000`Hd00BjHh32103210310310302222103210321032103210322221032103012222122210321032103210322221032`````Il0J`JhIn32103310`33203321032103202210333210330333321032103310213023`10322103210321031210310``Hb0000K`11111110111111`Kd0`f0`00`000000000````````0000000`KhKf1Cf3120331203120312031031203120312031203311112222000033331200331203233312033120312033313`3330312030303030312031203031203120333","f":"````````````````````````````{{bd{h{f}}{h{f}}}{{j{f}}}}{{{h{ln}}A`{h{{Ad{Ab}}}}b}{{j{{Af{f}}}}}}{{bAh{h{f}}}{{j{f}}}}``{{{h{{Ad{Aj}}}}{h{{Ad{Aj}}}}{An{Al}}B`Bb}{{j{Bd}}}}`{{{h{Bf}}}{{j{f}}}}{{{h{Bh}}}{{Af{Bj}}}}{{{h{ln}}}{{Af{f}}}}``{{{h{Bh}}}{{Bl{{h{Bh}}{h{Bh}}}}}}````6{{{h{n}}{Af{Bn}}Bn}{{Af{{h{{C`{ff}}}}}}}}0{{{h{ln}}{Af{Bn}}Bn}{{Af{{h{l{C`{ff}}}}}}}}0{{{h{ln}}}{{j{f}}}}04{{{h{ln}}}{{Af{{h{lCb}}}}}}0{{{h{ln}}B`}Bd}0````````````````````````{{{h{lCd}}Cf}Bd}`{h{{h{c}}}{}}00000000{{{h{l}}}{{h{lc}}}{}}00000000{{{h{lCh}}{h{{Cj{Al}}}}}Bd}`{{{h{Cl}}}Cl}{{{h{Cd}}}Cd}{{{h{Cn}}}Cn}{{{h{D`}}}D`}{{{h{Db}}}Db}{{{h{Dd}}}Dd}{{{h{Df}}}Df}{{{h{Ch}}}Ch}{{{h{Dh}}}Dh}{{h{h{lc}}}Bd{}}00000000{{hDj}Bd}00000000```{{{h{Cd}}}{{Af{Bn}}}}{{{h{Ch}}}{{Af{Bn}}}}{{}Cd}{Dl{{h{c}}}{}}00000000{Dl{{h{lc}}}{}}00000000{{{h{lCh}}BnBncBbb}{{j{Bd}}}{{E`{}{{Dn{f}}}}}}{DlBd}00000000`{{{h{Dd}}{h{Dd}}}Bb}{{h{h{c}}}Bb{}}000{{bd{h{f}}{h{f}}}{{j{f}}}}{{bAh{h{f}}}{{j{f}}}}{{{h{Ch}}}Bb}`{{{h{Cl}}{h{lEb}}}Ed}{{{h{Cd}}{h{lEb}}}Ed}{{{h{Cn}}{h{lEb}}}Ed}{{{h{D`}}{h{lEb}}}Ed}{{{h{Db}}{h{lEb}}}Ed}{{{h{Dd}}{h{lEb}}}Ed}0{{{h{Df}}{h{lEb}}}Ed}{{{h{Ch}}{h{lEb}}}Ed}{{{h{Dh}}{h{lEb}}}Ed}`{cc{}}00000000``{{{h{lCd}}}Cf}{{{h{Ch}}{h{{Ef{Al}}}}}{{h{f}}}}`{{{h{Dd}}{h{lc}}}BdEh}{{{h{lCh}}}Bd}0{{}Dl}00000000{{{h{Ch}}}Dl}{{}c{}}00000000{{{h{Cd}}}Bb}`{{{h{Cd}}}{{Af{{h{Cl}}}}}}{{{h{lCd}}}{{Af{{h{lCl}}}}}}{{{h{Cd}}}Dl}{{{h{Bf}}}{{j{f}}}}{{{h{Ch}}Bn}{{Af{f}}}}{{{h{Ch}}BnBn}{{Af{Df}}}}{{{h{Ch}}{Af{Bn}}Bn}{{Af{{h{{C`{ff}}}}}}}}0{{{h{lCh}}{Af{Bn}}Bn}{{Af{{h{l{C`{ff}}}}}}}}0{{{h{Ch}}{h{{Ej{Al}}}}}{{Af{{h{{C`{ff}}}}}}}}```{{Bb{An{Al}}B`}Ch}{{{h{Ch}}}{{An{Al}}}}{{{h{Ch}}}{{Af{{h{{El{Al}}}}}}}}{{{h{Ch}}}{{Af{{h{{En{Al}}}}}}}}{{{h{Ch}}{h{{F`{Al}}}}}f}{{{h{Ch}}}{{Fb{f}}}}{{{h{lCh}}}{{j{Dh}}}}{{{h{lCd}}}Bd}{{{h{lCh}}}{{j{f}}}}{{{h{lCh}}}{{Af{f}}}}```{{{h{lCd}}Bn{An{Al}}Bb}Bd}`{{{h{lCh}}}{{Af{{h{lCb}}}}}}`{{{h{lCd}}Bnf}Bd}{{{h{lCh}}B`}Bd}{{{h{lCh}}{h{Bh}}}Bd}{{{h{lCh}}{Ef{Al}}f}Bd}{{{h{lCh}}Bnf}Bd}`{{{h{D`}}}b};`{{{h{lCh}}}{{j{Bd}}}}{{{h{lCh}}{El{Al}}}{{j{Bd}}}}{{{h{lCh}}{En{Al}}}{{j{Bd}}}}{{{h{lCh}}{h{Fd}}BbDl}Bb}{{{h{lCh}}{h{Ab}}Dl}{{j{Bb}}}}{{{h{lCh}}{h{Ff}}Dl}{{j{Bb}}}}`{hFh}{hc{}}00000000{hFj}{hFl}{hFn}{hG`}{c{{Gb{e}}}{}{}}00000000{{}{{Gb{c}}}{}}00000000{h{{Gb{GdGf}}}}{hGh}00000000````{{}c{}}00000000{{{h{lCh}}}{{j{Dh}}}}`````{{{Gj{Al}}}f}{GlGn}{f{{Gj{Al}}}}`{h{{h{c}}}{}}{{{h{l}}}{{h{lc}}}{}}{Dl{{h{c}}}{}}{Dl{{h{lc}}}{}}{{{h{lH`}}{h{Hb}}}Bd}{DlBd}{cc{}}`{{}Dl}{{}c{}}{{}H`}{{{h{lH`}}}Fn}{c{{Gb{e}}}{}{}}{{}{{Gb{c}}}{}}{hGh}{{}c{}}``````````````{{{h{lHd}}Hf}{{j{{Af{f}}}}}}`????>>>>`{{{h{Bj}}}Bj}{{{h{Hh}}}Hh}{{{h{Hf}}}Hf}{{h{h{lc}}}Bd{}}00{{hDj}Bd}00`{{{h{Hd}}}{{Af{{Bl{FnDl}}}}}}{{{h{Hd}}}{{Af{b}}}}`{Dl{{h{c}}}{}}000{Dl{{h{lc}}}{}}000{DlBd}000`{{{h{Bj}}{h{lEb}}}Ed}{{{h{Hh}}{h{lEb}}}Ed}{{{h{Hf}}{h{lEb}}}Ed}{cc{}}000{{{h{Hj}}}{{j{{Hl{Al}}}}}}{{{h{Hj}}{h{Hn}}{h{I`}}}{{j{Ib}}}}`{{}Dl}000{{}c{}}000``{{ei{An{Al}}B`}{{j{Hd}}}{{Id{Hj}}}{{If{}{{Dn{{h{c}}}}}}}{{Id{Hj}}}{{If{}{{Dn{{h{g}}}}}}}}{{{h{lE`}}{h{lE`}}{An{Al}}B`}{{j{Hd}}}}```{{{h{lHd}}}Bb}{{{h{lHd}}}Bd}`{hc{}}00{c{{Gb{e}}}{}{}}000{{}{{Gb{c}}}{}}000{hGh}000{{{h{lHd}}}{{j{Bb}}}}{{{h{Hd}}}{{Af{{`{Ih}}}}}}{{{h{Hd}}}{{Af{{Bl{{`{Ih}}DlDl}}}}}}{{}c{}}000`````{{{h{l{Fb{Fh}}}}{Af{Fh}}{h{Bh}}Ij}{{Af{Fh}}}}{{{h{lIl}}}Bd}0{h{{h{c}}}{}}000{{{h{l}}}{{h{lc}}}{}}0002``{{{h{Bh}}{Af{{Bl{DlDl}}}}}{{Bl{G`Dl}}}}```{{}In}{{}Il}5{Dl{{h{c}}}{}}000{Dl{{h{lc}}}{}}000{{{h{lJ`}}{h{Hb}}}Bd}{{{h{lIn}}{h{lJb}}}Bd}{{{h{lJ`}}}Bd}{DlBd}000;{{{h{Il}}{h{lEb}}}Ed}{cc{}}000{{{h{lIl}}JdBb}{{Af{Fn}}}}```>>{{}Dl}000{{}c{}}000{{{h{lIl}}}Bd}``{{}J`}{JfJh}{{{h{lIl}}Jj}Bd}`{{{h{lJ`}}}Fn}{{{h{Il}}Jf{h{lJl}}}Bd}{{{h{lJb}}c{h{Bh}}Jf}BdJn}``6`{c{{Gb{e}}}{}{}}000{{}{{Gb{c}}}{}}000{hGh}000`{{}c{}}000````{h{{h{c}}}{}}{{{h{l}}}{{h{lc}}}{}}`{Dl{{h{c}}}{}}{Dl{{h{lc}}}{}}{{{h{lK`}}{h{Hb}}}Bd}{DlBd}{cc{}}``{{}Dl}{{}c{}}`{{{h{lK`}}}Fn}`=<;:```{{{Kd{}{{Kb{c}}}}b}{{j{c}}}{}}{{{h{{Cj{Al}}}}}Bn}````````````````````````````````;;;;::::{{{h{f}}{h{Gn}}}{{Af{f}}}}{{{h{Kf}}}Kf}{{{h{Kh}}}Kh}{{{h{Cf}}}Cf}{{{h{f}}}f}{{h{h{lc}}}Bd{}}000{{hDj}Bd}000`{{}Cf}{{}f}{Dl{{h{c}}}{}}000{Dl{{h{lc}}}{}}000{DlBd}000{{{h{Kf}}{h{Kf}}}Bb}{{{h{Kh}}{h{Kh}}}Bb}{{{h{Cf}}{h{Cf}}}Bb}{{{h{f}}{h{f}}}{{j{Bb}}}}{{{h{f}}{h{f}}}Bb}{{h{h{c}}}Bb{}}000000000000000{{{h{Kf}}{h{lEb}}}Ed}{{{h{Kh}}{h{lEb}}}Ed}{{{h{Cf}}{h{lEb}}}Ed}0{{{h{f}}{h{lEb}}}Ed}0{cc{}}000`>77{{{h{Kf}}{h{lc}}}BdEh}{{{h{Kh}}{h{lc}}}BdEh}{{{h{Cf}}{h{lc}}}BdEh}{{{h{f}}{h{lc}}}BdEh}{{{h{f}}}f}{{}Dl}000{{}c{}}000>>`>{{c{h{Gn}}}{{Af{f}}}{{Kj{{An{Al}}}}{Kj{{Kl{Al}}}}{Kj{{An{Al}}}}{Kj{{Kn{Al}}}}{Kj{{L`{Al}}}}{Kj{{Lb{Al}}}}{Kj{{Ld{AlDj}}}}{Kj{{Ld{AlLf}}}}{Kj{{Ld{AlB`}}}}{Kj{{Ld{AlLh}}}}{Kj{{Ld{AlLj}}}}{Kj{{Ld{AlLl}}}}{Kj{{Ld{AlLn}}}}{Kj{{Ld{AlM`}}}}{Kj{{Ld{AlMb}}}}{Kj{{Ld{AlMd}}}}}}{{{h{f}}B`}f}0{{{h{f}}}{{Fb{{Kl{Al}}}}}}{hFh}0{hc{}}000{hFj}0{hFl}0{hFn}0{hG`}0{c{{Gb{e}}}{}{}}000{{}{{Gb{c}}}{}}000{h{{Gb{GdGf}}}}0{hGh}000{{}c{}}000{{{h{f}}{h{l{Fb{Bb}}}}}Bd}0","D":"Jh","p":[[5,"Span",730],[6,"BinaryOperation",731],[6,"Value",572],[1,"reference",null,null,1],[8,"Result",732],[0,"mut"],[10,"CoreFunctionHelper",44],[6,"CoreFunction",733],[6,"Expression",734],[1,"slice"],[6,"Option",735,null,1],[6,"UnaryOperation",736],[5,"PathBuf",737],[5,"TestnetV0",738],[5,"Address",739],[1,"u32"],[1,"bool"],[1,"unit"],[6,"Literal",740],[1,"str"],[5,"Breakpoint",351],[1,"tuple",null,null,1],[5,"Symbol",741],[5,"HashMap",742],[5,"ChaCha20Rng",743],[5,"ContextStack",57],[5,"Future",572],[5,"Cursor",57],[5,"Identifier",744],[5,"FunctionContext",57],[6,"AleoContext",57],[6,"Element",57],[5,"Frame",57],[5,"GlobalId",57],[6,"FunctionVariant",57],[5,"StepResult",57],[1,"u8"],[1,"usize"],[17,"Item"],[10,"Iterator",745],[5,"Formatter",746],[8,"Result",746],[6,"Register",747],[10,"Hasher",748],[6,"CallOperator",749],[6,"Command",750],[6,"Instruction",751],[6,"Operand",752],[5,"Vec",753],[5,"Block",754],[6,"Statement",755],[5,"Line",756],[5,"SmolStr",757],[5,"Span",758],[5,"String",759],[5,"Text",760],[6,"Result",761,null,1],[5,"CompactString",762],[6,"ToCompactStringError",762],[5,"TypeId",763],[6,"Literal",764],[6,"LiteralType",765],[6,"Type",766],[5,"DialoguerUi",334],[5,"UserData",546],[5,"Interpreter",351],[6,"InterpreterAction",351],[5,"Watchpoint",351],[5,"Path",737],[8,"Program",767],[5,"Handler",768],[5,"NodeBuilder",769],[5,"Ast",770],[10,"AsRef",771],[10,"IntoIterator",772],[10,"Display",746],[5,"Style",773],[5,"Prompt",453],[5,"DrawData",453],[5,"RatatuiUi",453],[5,"Frame",774],[6,"KeyCode",775],[5,"Rect",776],[5,"DebuggerLayout",453],[1,"char"],[5,"Buffer",777],[10,"Widget",778],[10,"Ui",546],[17,"T"],[10,"ExpectTc",568],[5,"StructContents",572],[5,"AsyncExecution",572],[10,"Cast",779],[5,"Field",780],[5,"Group",781],[5,"Boolean",782],[5,"Scalar",783],[5,"Integer",784],[1,"u16"],[1,"u64"],[1,"u128"],[1,"i8"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i128"],[15,"Block",326],[15,"AleoExecution",326]],"r":[[3,44],[23,572],[28,57],[29,44],[30,57],[35,57]],"b":[[179,"impl-Display-for-GlobalId"],[180,"impl-Debug-for-GlobalId"],[229,"impl-Cursor%3C\'a%3E"],[230,"impl-CoreFunctionHelper-for-Cursor%3C\'_%3E"],[231,"impl-CoreFunctionHelper-for-Cursor%3C\'_%3E"],[232,"impl-Cursor%3C\'a%3E"],[643,"impl-Value"],[644,"impl-PartialEq-for-Value"],[663,"impl-Display-for-Future"],[664,"impl-Debug-for-Future"],[665,"impl-Display-for-Value"],[666,"impl-Debug-for-Value"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIYCLAAAAAMABQASABkAAwAeAAAAIAABACMACQAuAA8APwABAEMAAABGAAEASQAAAEsAAABNAAAATwBbAK0AAACvAAkAxAAAAMYAAADIAAwA3wAOAO8ABAD1ABAABwEGAA8BKwA9AQgARwEOAFcBAQBaAQcAYwEyAJoBBgClAQYArQEQAL8BMAD0AQkAAgIpAC0CAgAxAikAXAIIAGYCHQCFAhYAoAIAAKICCgCxAgQAtwIjAA==","P":[[83,"T"],[101,""],[112,"T"],[121,""],[136,"T"],[154,""],[155,""],[166,"K"],[170,""],[185,"T"],[196,""],[199,"__H"],[200,""],[212,"U"],[221,""],[271,"T"],[280,""],[284,"U,T"],[293,"U"],[302,""],[316,"V"],[325,""],[335,"T"],[339,""],[341,"T"],[343,""],[344,"U"],[345,""],[347,"U,T"],[348,"U"],[349,""],[350,"V"],[365,""],[367,"T"],[376,""],[379,"T"],[382,""],[389,"T"],[397,""],[405,"T"],[409,""],[416,"U"],[422,"P,,Q,"],[423,""],[430,"T"],[433,"U,T"],[437,"U"],[441,""],[448,"V"],[457,""],[460,"T"],[468,""],[478,"T"],[486,""],[495,"T"],[499,""],[509,"U"],[513,""],[522,"W"],[525,""],[527,"U,T"],[531,"U"],[535,""],[540,"V"],[548,"T"],[553,""],[555,"T"],[558,""],[559,"U"],[561,""],[563,"U,T"],[564,"U"],[565,""],[566,"V"],[570,"ExpectTc::T"],[571,""],[604,"T"],[612,""],[617,"T"],[621,""],[628,"T"],[636,""],[645,"K"],[661,""],[667,"T"],[672,""],[675,"H"],[676,"__H"],[679,""],[684,"U"],[688,""],[692,"C"],[693,""],[698,"T"],[702,""],[710,"U,T"],[714,"U"],[718,""],[724,"V"],[728,""]]}],["leo_lang",{"t":"CGFFKFFPRFFFFFFFFFFFPRSPPCCOMOOOCCOCOOCOOOOOCCOCOOOOOOOOOOOOOOOOCCOOOOHCOOOOOOCOOOOOOOOOOOCOOOOOOHOOMOOOCOOOOCCHOCCOOOOOOOOOOOOOOOOOOOOOOGPPPPOOOOOOOOOOOOOOOOOOOOFOOOOFOFPPPFPGPPPPPPPPPNNNNNNNNNNONNONNNNNNNNNNNNNNNHNONNNNOOHNNNNNNNNNNNNOOOOOOOOOOOOOEFKEFREEEEEEEEEEERCCMNNNNONNNNCHCNNNNNNNNNNOOCNNCNNNNONNOOOOOOOOOOOOCCNNNNNNNNNNHNNHNNNNNNOCOOHMOOCOCCNNNNNNNNNNCNNNNNNOGPPPPNNNNNNNNNHNNNNNHNHNNNHHNNNNNHNHHOOOOOOOOOOOOOOOOOOOOFNNNNNONNNNNNNNNNNNONOONNNNNNNFNNNNNNNHNNNNNNNNHNNNONNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNONNNNONNNNNNNNHNNNONNNONNNNFNNNNNNNHNNNONNNNNHNNNOONONNNNNNOGFPPPNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNFNNNNNONNONNNHOONNNNNHNONHONOONONNNNNNFNNNNNNNNNNONNNNNNNNOONNNNNNNPPEEEEEFEPPPGEPPNNNNNCNNNNNNONNCNNNNNNONNNNNNNNNHNNNNNNCOCNCCCNNNNNNNNNNCNNOOOOOOOFNNNNNNNNNNNNNNNONNOOONNOOONNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNOONNNNNNFNNNNNNNONNNNNNNNNNNONNNNNNNFNNNNNNNNNNNNNNNNNNOOONNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNONNNNNNNOOONONNNNNNNNNNHHHHHHHFONNNNNNNNNNNNNNNNNNONNNNNNNFNNNNNNNONNNONNNNNHNONNONNNNNNNFNNNNNNNNNNNNNNNNNONNONNNNNNFOOOFOOOOFOOOOOGFPPPOOOFOOOOOOOOOCCCFNNNNNNNNNNNNNNNNNONNNNNNOONNNNNFJONNNNNNNNOOOONNONNNHNONNNNNNNNNNNNTTTTTTFNNNNNNNNNNNNNNNNNNNNNNNNFOOOOOOHOFOOOPPFFFFFFFPPPGFPPCOCOOOOOOOOOOOOOCOOOCCOCOCOOOOOOOOOOFOOOOOOOFFOOFOOFOOOFFOOOOOFOOFOOOOFOOF","n":["cli","Account","BuildOptions","CLI","Command","Deploy","FeeOptions","Import","Input","LeoAdd","LeoBuild","LeoClean","LeoDebug","LeoExample","LeoExecute","LeoNew","LeoQuery","LeoRemove","LeoRun","LeoUpdate","New","Output","SNARKVM_COMMAND","Sign","Verify","account","add","all","apply","base_fee","block_height","broadcast","build","clean","clear","cli","command","","commands","compiler_options","","","conditional_block_max_depth","consensus_version","context","debug","","deploy","disable_conditional_branch_type_checking","dry_run","enable_all_ast_snapshots","enable_ast_spans","enable_dce","enable_dce_ast_snapshot","enable_destructured_ast_snapshot","enable_flattened_ast_snapshot","enable_initial_ast_snapshot","enable_inlined_ast_snapshot","enable_ssa_ast_snapshot","enable_unrolled_ast_snapshot","endpoint","","","","example","execute","fee_options","","file","","handle_error","helpers","home","inputs","","list","local","","logger","name","","","","","","network","","","","","new","no_build","","non_recursive","offline","options","","parse_record","path","paths","prelude","priority_fee","private_key","program","query","quiet","","record","recursive","remove","run","run_with_args","tui","update","updater","wait","yes","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","Account","Import","New","Sign","Verify","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","LeoAdd","clear","local","name","network","LeoBuild","options","LeoClean","Account","Add","Build","CLI","Clean","Commands","Debug","Deploy","Example","Execute","New","Query","Remove","Run","Update","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","borrow_mut","","command","","","command_for_update","","debug","deref","","deref_mut","","drop","","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","handle_error","has_subcommand","home","init","","into","","path","quiet","run_with_args","try_from","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","command","","","","","","","","","","","","","Account","BuildOptions","Command","Deploy","FeeOptions","Input","LeoAdd","LeoBuild","LeoClean","LeoDebug","LeoExample","LeoExecute","LeoNew","LeoQuery","LeoRemove","LeoRun","LeoUpdate","Output","account","add","apply","augment_args","","augment_args_for_update","","base_fee","borrow","","borrow_mut","","build","check_balance","clean","clone","","clone_into","","clone_to_uninit","","command","","command_for_update","","conditional_block_max_depth","consensus_version","debug","default","","deploy","deref","","deref_mut","","disable_conditional_branch_type_checking","drop","","dry_run","enable_all_ast_snapshots","enable_ast_spans","enable_dce","enable_dce_ast_snapshot","enable_destructured_ast_snapshot","enable_flattened_ast_snapshot","enable_initial_ast_snapshot","enable_inlined_ast_snapshot","enable_ssa_ast_snapshot","enable_unrolled_ast_snapshot","endpoint","example","execute","","","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","get_latest_block_height","group_id","","handle_broadcast","init","","into","","log_span","","network","new","non_recursive","offline","parse_record","prelude","priority_fee","private_key","query","record","remove","run","to_owned","","try_execute","","try_from","","try_into","","type_id","","update","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","yes","Account","Import","New","Sign","Verify","apply","augment_subcommands","augment_subcommands_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","display_string_discreetly","drop","fmt","from","from_arg_matches","from_arg_matches_mut","generate_new_account","has_subcommand","import_account","init","into","prelude","print_keys","sign_message","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","verify_message","vzip","wait_for_keypress","write_to_env_file","address","discreet","","endpoint","","message","","network","","","","private_key","","private_key_file","raw","","seed","signature","write","","LeoAdd","apply","augment_args","augment_args_for_update","borrow","borrow_mut","clear","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","local","log_span","name","network","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoBuild","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","compile_leo_file","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_build","init","into","log_span","options","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoClean","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoDebug","apply","augment_args","augment_args_for_update","block_height","borrow","borrow_mut","command","command_for_update","compiler_options","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_debug","init","into","log_span","paths","prelude","try_from","try_into","tui","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Deploy","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deploy_cost_breakdown","deref","deref_mut","drop","fee_options","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_deploy","init","into","log_span","no_build","options","prelude","recursive","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","wait","ExampleVariant","LeoExample","Lottery","TicTacToe","Token","apply","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","command","","command_for_update","","deref","","deref_mut","","drop","","endpoint","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","has_subcommand","init","","into","","main_file_string","name","","network","prelude","readme_file_string","run_file_string","to_owned","try_from","","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","vzip","","LeoExecute","apply","augment_args","augment_args_for_update","borrow","borrow_mut","broadcast","command","command_for_update","compiler_options","deref","deref_mut","drop","execution_cost_breakdown","fee_options","file","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_execute","init","inputs","into","load_program_from_network","local","log_span","name","no_build","prelude","program","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoNew","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","endpoint","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","name","network","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Block","Committee","LeoBlock","LeoCommittee","LeoMempool","LeoPeers","LeoProgram","LeoQuery","LeoTransaction","Mempool","Peers","Program","QueryCommands","StateRoot","Stateroot","Transaction","apply","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","block","borrow","","borrow_mut","","command","","","command_for_update","","committee","deref","","deref_mut","","drop","","endpoint","fmt","","from","","from_arg_matches","","from_arg_matches_mut","","group_id","handle_query","has_subcommand","init","","into","","log_span","mempool","network","peers","prelude","program","state_root","transaction","try_from","","try_into","","type_id","","update_from_arg_matches","","update_from_arg_matches_mut","","utils","vzip","","command","","","","","","","LeoBlock","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","id","init","into","latest","latest_hash","latest_height","log_span","prelude","range","to_height","transactions","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoCommittee","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoMempool","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","transactions","transmissions","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoPeers","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","count","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","metrics","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoProgram","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","mapping_value","mappings","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","StateRoot","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoTransaction","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","confirmed","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_io","from_program","from_transition","group_id","id","init","into","log_span","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","check_valid_program_name","is_valid_field","is_valid_hash","is_valid_height_or_hash","is_valid_numerical_input","is_valid_transaction_id","is_valid_transition_id","LeoRemove","all","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","log_span","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoRun","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","compiler_options","deref","deref_mut","drop","file","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","handle_run","init","inputs","into","log_span","name","prelude","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","LeoUpdate","apply","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","init","into","list","log_span","prelude","quiet","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Context","home","path","recursive","LeoDebug","block_height","compiler_options","paths","tui","Deploy","fee_options","no_build","options","recursive","wait","ExampleVariant","LeoExample","Lottery","TicTacToe","Token","endpoint","name","network","LeoExecute","broadcast","compiler_options","fee_options","file","inputs","local","name","no_build","program","context","logger","updater","Context","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","dir","dotenv_endpoint","dotenv_network","dotenv_private_key","drop","from","get_endpoint","get_network","get_private_key","home","","init","into","local_dependency_paths","new","open_manifest","parent_dir","path","recursive","to_owned","try_from","try_into","type_id","vzip","Format","START","ansi","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","display_level","display_target","display_thread_id","display_thread_name","drop","fmt","format","format_event","from","init","init_logger","into","timer","to_owned","try_from","try_into","type_id","vzip","with_ansi","with_level","with_target","with_thread_ids","with_thread_names","with_timer","without_time","LEO_BIN_NAME","LEO_CACHE_LAST_CHECK_FILE","LEO_CACHE_VERSION_FILE","LEO_REPO_NAME","LEO_REPO_OWNER","LEO_UPDATE_CHECK_INTERVAL","Updater","borrow","borrow_mut","check_for_updates","deref","deref_mut","drop","from","get_cache_dir","get_cli_string","get_current_time","get_version_file_path","init","into","print_cli","read_latest_version","should_check_for_updates","show_available_releases","try_from","try_into","type_id","update_available","update_check_files","update_to_latest_release","vzip","Format","ansi","display_level","display_target","display_thread_id","display_thread_name","format","init_logger","timer","LeoNew","endpoint","name","network","Block","Committee","LeoBlock","LeoCommittee","LeoMempool","LeoPeers","LeoProgram","LeoQuery","LeoTransaction","Mempool","Peers","Program","QueryCommands","StateRoot","Stateroot","Transaction","block","command","committee","confirmed","count","endpoint","from_io","from_program","from_transition","id","","latest","latest_hash","latest_height","mapping_value","mappings","mempool","metrics","name","network","peers","program","range","state_root","to_height","transaction","transactions","","transmissions","command","","","","","","","LeoBlock","id","latest","latest_hash","latest_height","range","to_height","transactions","LeoCommittee","LeoMempool","transactions","transmissions","LeoPeers","count","metrics","LeoProgram","mapping_value","mappings","name","StateRoot","LeoTransaction","confirmed","from_io","from_program","from_transition","id","LeoRemove","all","name","LeoRun","compiler_options","file","inputs","name","LeoUpdate","list","quiet","Updater"],"q":[[0,"leo_lang"],[1,"leo_lang::cli"],[117,"leo_lang::cli::Account"],[137,"leo_lang::cli::account"],[142,"leo_lang::cli::account::Account"],[162,"leo_lang::cli::add"],[167,"leo_lang::cli::build"],[169,"leo_lang::cli::clean"],[170,"leo_lang::cli::cli"],[236,"leo_lang::cli::cli::Commands"],[249,"leo_lang::cli::commands"],[369,"leo_lang::cli::commands::account"],[406,"leo_lang::cli::commands::account::Account"],[426,"leo_lang::cli::commands::add"],[456,"leo_lang::cli::commands::build"],[485,"leo_lang::cli::commands::clean"],[511,"leo_lang::cli::commands::debug"],[542,"leo_lang::cli::commands::deploy"],[575,"leo_lang::cli::commands::example"],[638,"leo_lang::cli::commands::execute"],[676,"leo_lang::cli::commands::new"],[705,"leo_lang::cli::commands::query"],[780,"leo_lang::cli::commands::query::QueryCommands"],[787,"leo_lang::cli::commands::query::block"],[820,"leo_lang::cli::commands::query::committee"],[846,"leo_lang::cli::commands::query::mempool"],[874,"leo_lang::cli::commands::query::peers"],[902,"leo_lang::cli::commands::query::program"],[931,"leo_lang::cli::commands::query::state_root"],[957,"leo_lang::cli::commands::query::transaction"],[988,"leo_lang::cli::commands::query::utils"],[995,"leo_lang::cli::commands::remove"],[1023,"leo_lang::cli::commands::run"],[1054,"leo_lang::cli::commands::update"],[1082,"leo_lang::cli::context"],[1086,"leo_lang::cli::debug"],[1091,"leo_lang::cli::deploy"],[1097,"leo_lang::cli::example"],[1105,"leo_lang::cli::execute"],[1115,"leo_lang::cli::helpers"],[1118,"leo_lang::cli::helpers::context"],[1150,"leo_lang::cli::helpers::logger"],[1186,"leo_lang::cli::helpers::updater"],[1217,"leo_lang::cli::logger"],[1226,"leo_lang::cli::new"],[1230,"leo_lang::cli::query"],[1275,"leo_lang::cli::query::QueryCommands"],[1282,"leo_lang::cli::query::block"],[1290,"leo_lang::cli::query::committee"],[1291,"leo_lang::cli::query::mempool"],[1294,"leo_lang::cli::query::peers"],[1297,"leo_lang::cli::query::program"],[1301,"leo_lang::cli::query::state_root"],[1302,"leo_lang::cli::query::transaction"],[1308,"leo_lang::cli::remove"],[1311,"leo_lang::cli::run"],[1316,"leo_lang::cli::update"],[1319,"leo_lang::cli::updater"],[1320,"leo_errors::errors"],[1321,"snarkvm_console_account::private_key"],[1322,"snarkvm_console_program::data::plaintext"],[1323,"snarkvm_console_program::data::record"],[1324,"snarkvm_console_network"],[1325,"clap_builder::builder::command"],[1326,"core::fmt"],[1327,"clap_builder::parser::matches::arg_matches"],[1328,"clap_builder"],[1329,"core::result"],[1330,"clap_builder::util::id"],[1331,"core::option"],[1332,"core::any"],[1333,"alloc::string"],[1334,"snarkvm_ledger_block::transaction"],[1335,"tracing::span"],[1336,"std::path"],[1337,"snarkvm_console_program::id"],[1338,"leo_errors::emitter"],[1339,"leo_span::symbol"],[1340,"leo_ast::stub"],[1341,"indexmap::map"],[1342,"leo_retriever::program_context::network_name"],[1343,"snarkvm_synthesizer_process"],[1344,"alloc::vec"],[1345,"snarkvm::file::manifest"],[1346,"core::clone"],[1347,"tracing_subscriber::fmt::format"],[1348,"tracing_subscriber::fmt::time"],[1349,"tracing_subscriber::fmt::fmt_layer"],[1350,"tracing_core::event"],[1351,"tracing_core::subscriber"],[1352,"tracing_subscriber::registry"],[1353,"leo_errors::errors::cli::cli_errors"],[1354,"self_update"]],"i":"```````Dff```````````10`11``Hb1CjElFh``Dh`AhFn`43HdCh7``3`070000000000Fd3Fl2``En884``684Hf89`8392<583624`1944Dj2`8;><<:`81<2```;``2>>>`5`Bf00`0`000000000>>00>0>0>0>>0>>0>0>0>0>0>0>0>`0>>0>0>>`>0>0>0>0>0>0KbKdKfKhKjKlKnL`LbLdLfLhLj`````f```````````0``0ChCj1001010```101010101010`10`1010110011111111111``2210101010`10`1010221`11`200`0``1022101010`1010100`Df000000000000`00000`0`000``00000`0``JjJlJn10K`32103100032321`Dh0000000000000000000000000000`Dj000000`00000000`00000000000`Ej000000000000000000000000`El0000000000000000`000000000000`En000000`000000000`00000000000000``Ff00Fd001101011110101010101001010101010101110001110110101010101`Fh00000000000`0000000`000`000000000000`Fl000000000000000000000000000G`0```````000``00Fn0011`010101001`0101010010101010`101010`0`0```0101010101`01LlLnM`MbMdMfMh`Gb0000000000000000000000000000000`Gd000000000000000000000000`Gf00000000000000000000000000`Gh00000000000000000000000000`Gj000000000000000000000000000`Gl000000000000000000000000`Gn00000000000000000000000000000````````Hb00000000000000000000000000`Hd0000000000000000`000000000000`Hf00000000000000000000000000`h00`El000`En0000``Ff00Fd00`Fh00000000````5555555555555555555555555555555``Hn000000000000000000`00000000000000Mj00000`000000000000000000000000`111111`1`Fl00G`0```````000``00`Fn`>Gh1???GbGn111Gj0`304``2`2`2Gf0LlLnM`MbMdMfMh`:::::::``77`;;`888``99999`Hb0`Hd000`Hf0`","f":"````````````````````````````{{{f{}{{b{c}}{d{e}}}}hc}{{j{e}}}{}{}}`````````````````````````````````````````{{{j{c}}}c{}}``````````````````````````{{{n{{l{c}}}}{n{A`}}}{{j{{Ad{c{Ab{c}}}}}}}Af}``{{{n{{f{}{{b{c}}{d{e}}}}}}h}{{j{c}}}{}{}}``````````{Ah{{j{Aj}}}}`````````````````````````````````````````````````````````````````````````{AlAl}000{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{}Al}0`00`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0{{{n{Ah}}{n{AnBb}}}Bd}{{{n{Bf}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{AhBj}}}}{{{n{Bh}}}{{Bl{BfBj}}}}{{{n{AnBh}}}{{Bl{AhBj}}}}{{{n{AnBh}}}{{Bl{BfBj}}}}{{}{{C`{Bn}}}}{{{j{c}}}c{}}{{{n{A`}}}Cb}`{{}B`}0{{}c{}}0``{Ah{{j{Aj}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnAh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnBf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnAh}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnBf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0`````````````````````````````````{{{f{}{{b{c}}{d{e}}}}hc}{{j{e}}}{}{}}{AlAl}000`{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0`{{{n{{l{c}}}}{n{A`}}{n{A`}}{n{h}}Cf}{{j{Aj}}}Af}`{{{n{Ch}}}Ch}{{{n{Cj}}}Cj}{{n{n{Anc}}}Aj{}}0{{nCl}Aj}0{{}Al}000```{{}Ch}{{}Cj}`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0`{B`Aj}0``````````````{{{f{}{{b{c}}{d{e}}}}h}{{j{e}}}{}{}}0{{{n{Ch}}{n{AnBb}}}Bd}{{{n{Cj}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{ChBj}}}}{{{n{Bh}}}{{Bl{CjBj}}}}{{{n{AnBh}}}{{Bl{ChBj}}}}{{{n{AnBh}}}{{Bl{CjBj}}}}{{{n{A`}}{n{A`}}{n{h}}}{{j{Cn}}}}{{}{{C`{Bn}}}}0{{{n{D`}}{Db{c}}{n{D`}}}{{j{Aj}}}Af}{{}B`}0{{}c{}}0{{{n{{f{}{{b{c}}{d{e}}}}}}}Dd{}{}}0````{{{n{{l{c}}}}{n{A`}}}{{j{{Ad{c{Ab{c}}}}}}}Af}{{{n{{f{}{{b{c}}{d{e}}}}}}h}{{j{c}}}{}{}}``````{nc{}}0{{{f{}{{b{c}}{d{e}}}}h}{{j{Aj}}}{}{}}0{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0`{{{n{AnCh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnCj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnCh}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnCj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0``````{{Dfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{{{n{A`}}{n{A`}}}{{j{Aj}}}}{B`Aj}{{{n{Df}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DfBj}}}}{{{n{AnBh}}}{{Bl{DfBj}}}}{{{C`{Cf}}CbCb{n{h}}D`}{{j{Aj}}}}{{{n{A`}}}Cb}{{{C`{D`}}CbCb{n{h}}D`}{{j{Aj}}}}{{}B`}{{}c{}}{{{n{Df}}h}{{j{c}}}{}}{{{l{c}}Cb}{{j{Aj}}}Af}{{D`Cb{C`{D`}}{C`{D`}}}{{j{D`}}}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDf}}{n{AnBh}}}{{Bl{AjBj}}}}{{D`D`D`Cb}{{j{D`}}}}{{}c{}}{{}Aj}{{{l{c}}{n{h}}D`}{{j{Aj}}}Af}`````````````````````{{Dhhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}`{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Dh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DhBj}}}}{{{n{AnBh}}}{{Bl{DhBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}`{{{n{Dh}}}Dd}``{{{n{Dh}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Djhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{{Dl{n{{Dn{c}}}}{n{E`}}{n{E`}}{n{Eb}}Ch{Eh{EdEf}}}{{j{Aj}}}Af}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Dj}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{DjBj}}}}{{{n{AnBh}}}{{Bl{DjBj}}}}{{}{{C`{Bn}}}}{{{n{Dj}}h}j}{{}B`}{{}c{}}{{{n{Dj}}}Dd}`{{{n{Dj}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnDj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnDj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Ejhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Ej}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{EjBj}}}}{{{n{AnBh}}}{{Bl{EjBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Ej}}}Dd}{{{n{Ej}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnEj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Elhc}{{j{e}}}{}{}}{AlAl}0`{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{El}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{ElBj}}}}{{{n{AnBh}}}{{Bl{ElBj}}}}{{}{{C`{Bn}}}}{{{n{El}}h}{{j{Aj}}}}{{}B`}{{}c{}}{{{n{El}}}Dd}`{{{n{El}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}`{nCd}{{{n{AnEl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Enhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{{{n{D`}}F`F`F`F`F`}{{j{Aj}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{En}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{EnBj}}}}{{{n{AnBh}}}{{Bl{EnBj}}}}{{}{{C`{Bn}}}}{{{n{En}}hFb{n{A`}}}j}{{}B`}{{}c{}}{{{n{En}}}Dd}``{{{n{En}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnEn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnEn}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}``````{{Fdhc}{{j{e}}}{}{}}{AlAl}000{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{{n{Ff}}}Ff}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{{}Al}000{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0`{{{n{Fd}}{n{AnBb}}}Bd}{{{n{Ff}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{FdBj}}}}{{{n{Bh}}}{{Bl{FfBj}}}}{{{n{AnBh}}}{{Bl{FdBj}}}}{{{n{AnBh}}}{{Bl{FfBj}}}}{{}{{C`{Bn}}}}{{{n{A`}}}Cb}{{}B`}0{{}c{}}0{{{n{Ff}}}D`}0``{{{n{Fd}}h}{{j{c}}}{}}11{nc{}}{c{{Bl{e}}}{}{}}0{{{n{A`}}}{{Bl{Ffc}}}{}}{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnFd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFd}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnFf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}0`{{Fhhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}`{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{D`}}F`F`F`F`}{{j{Aj}}}}``{{{n{Fh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{FhBj}}}}{{{n{AnBh}}}{{Bl{FhBj}}}}{{}{{C`{Bn}}}}{{FhhFb{n{A`}}}j}{{}B`}`{{}c{}}{{h{n{An{Fj{c}}}}{n{{Dn{c}}}}Fb{n{A`}}}{{j{Aj}}}Af}`{{{n{Fh}}}Dd}``{{{n{Fh}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnFh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Flhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{Fl}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{FlBj}}}}{{{n{AnBh}}}{{Bl{FlBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Fl}}}Dd}``{{{n{Fl}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnFl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}````````````````{{Fnhc}{{j{e}}}{}{}}{AlAl}000`{n{{n{c}}}{}}0{{{n{An}}}{{n{Anc}}}{}}0{{}Al}0`00`{B`{{n{c}}}{}}0{B`{{n{Anc}}}{}}0{B`Aj}0`{{{n{Fn}}{n{AnBb}}}Bd}{{{n{G`}}{n{AnBb}}}Bd}{cc{}}0{{{n{Bh}}}{{Bl{FnBj}}}}{{{n{Bh}}}{{Bl{G`Bj}}}}{{{n{AnBh}}}{{Bl{FnBj}}}}{{{n{AnBh}}}{{Bl{G`Bj}}}}{{}{{C`{Bn}}}}{{Fnh{n{A`}}{n{A`}}}j}{{{n{A`}}}Cb}{{}B`}0{{}c{}}0{{{n{Fn}}}Dd}```{{{n{Fn}}h}{{j{c}}}{}}```{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{nCd}0{{{n{AnFn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnG`}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnFn}}{n{AnBh}}}{{Bl{AjBj}}}}{{{n{AnG`}}{n{AnBh}}}{{Bl{AjBj}}}}`{{}c{}}0````````{{Gbhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gb}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GbBj}}}}{{{n{AnBh}}}{{Bl{GbBj}}}}{{}{{C`{Bn}}}}`{{}B`}{{}c{}}```{{{n{Gb}}}Dd}{{{n{Gb}}h}{{j{c}}}{}}```{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGb}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGb}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gdhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gd}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GdBj}}}}{{{n{AnBh}}}{{Bl{GdBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gd}}}Dd}{{{n{Gd}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGd}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gf}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GfBj}}}}{{{n{AnBh}}}{{Bl{GfBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gf}}}Dd}{{{n{Gf}}h}{{j{c}}}{}}``{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Ghhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gh}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GhBj}}}}{{{n{AnBh}}}{{Bl{GhBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gh}}}Dd}`{{{n{Gh}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGh}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGh}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gjhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gj}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GjBj}}}}{{{n{AnBh}}}{{Bl{GjBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gj}}}Dd}```{{{n{Gj}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGj}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGj}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Glhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gl}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GlBj}}}}{{{n{AnBh}}}{{Bl{GlBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Gl}}}Dd}{{{n{Gl}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGl}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGl}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Gnhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Gn}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{GnBj}}}}{{{n{AnBh}}}{{Bl{GnBj}}}}```{{}{{C`{Bn}}}}`{{}B`}{{}c{}}{{{n{Gn}}}Dd}{{{n{Gn}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnGn}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnGn}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}{D`D`}{{{n{A`}}}{{j{D`H`}}}}{{{n{A`}}}{{j{AjH`}}}}0000``{{Hbhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Hb}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HbBj}}}}{{{n{AnBh}}}{{Bl{HbBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}{{{n{Hb}}}Dd}`{{{n{Hb}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHb}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHb}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Hdhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0`{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}`{{{n{Hd}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HdBj}}}}{{{n{AnBh}}}{{Bl{HdBj}}}}{{}{{C`{Bn}}}}{{Hdh}j}{{}B`}`{{}c{}}{{{n{Hd}}}Dd}`{{{n{Hd}}h}{{j{c}}}{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHd}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHd}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`{{Hfhc}{{j{e}}}{}{}}{AlAl}0{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{}Al}0{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{{{n{Hf}}{n{AnBb}}}Bd}{cc{}}{{{n{Bh}}}{{Bl{HfBj}}}}{{{n{AnBh}}}{{Bl{HfBj}}}}{{}{{C`{Bn}}}}{{}B`}{{}c{}}`{{{n{Hf}}}Dd}{{{n{Hf}}h}{{j{c}}}{}}`{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{{n{AnHf}}{n{Bh}}}{{Bl{AjBj}}}}{{{n{AnHf}}{n{AnBh}}}{{Bl{AjBj}}}}{{}c{}}`````````````````````````````````````{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{{n{h}}}h}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{{{n{h}}}{{j{Dl}}}}{{{n{h}}}{{j{D`}}}}0{{{n{h}}}{{j{{l{c}}}}}Af}{B`Aj}{cc{}}{{{n{h}}{n{{C`{D`}}}}}{{j{D`}}}}0{{{n{h}}{n{{C`{D`}}}}}{{j{{l{c}}}}}Af}6`{{}B`}{{}c{}}{{{n{h}}}{{j{{Hj{{Hh{D`Dl}}}}}}}}{{{C`{Dl}}{C`{Dl}}Cb}{{j{h}}}}{{{n{h}}}{{j{{Hl{c}}}}}Af};``{nc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{}c{}}```{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{{{n{{Hn{ce}}}}}{{Hn{ce}}}I`I`}{{n{n{Anc}}}Aj{}}{{nCl}Aj}{{}{{Hn{IbId}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}````{B`Aj}{{{n{{Hn{ce}}}}{n{AnBb}}}BdIfIf}`{{{n{{Hn{Ibc}}}}{n{{Ih{eg}}}}Ij{n{Il}}}BdIn{J`Jb}Jd}{cc{}}{{}B`}{{{n{A`}}B`}{{j{Aj}}}}{{}c{}}`{nc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}{{}c{}}{{{Hn{ce}}Cb}{{Hn{ce}}}{}{}}0000{{{Hn{ce}}g}{{Hn{cg}}}{}{}{}}{{{Hn{ce}}}{{Hn{cAj}}}{}{}}```````{n{{n{c}}}{}}{{{n{An}}}{{n{Anc}}}{}}{Cb{{j{CbJf}}}}{B`{{n{c}}}{}}{B`{{n{Anc}}}{}}{B`Aj}{cc{}}{{}Dl}{{}{{j{{C`{D`}}Jf}}}}{{}{{j{CfJf}}}}2{{}B`}{{}c{}}{{}{{j{AjJf}}}}4{{{n{E`}}}{{j{CbJf}}}}{{}{{j{D`}}}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{nCd}3{{{n{E`}}{n{E`}}{n{E`}}{n{A`}}}{{j{AjJf}}}}{Cb{{j{Jh}}}}{{}c{}}```````{{{n{A`}}B`}{{j{Aj}}}}```````````````````````````````````````````````````````````````````````````````````````````````","D":"ANf","p":[[17,"Input"],[17,"Output"],[10,"Command",249],[5,"Context",1118],[8,"Result",1320],[5,"PrivateKey",1321],[1,"reference",null,null,1],[1,"str"],[6,"Plaintext",1322],[5,"Record",1323],[10,"Network",1324],[5,"CLI",170],[1,"unit"],[5,"Command",1325],[0,"mut"],[1,"usize"],[5,"Formatter",1326],[8,"Result",1326],[6,"Commands",170],[5,"ArgMatches",1327],[8,"Error",1328],[6,"Result",1329,null,1],[5,"Id",1330],[6,"Option",1331,null,1],[1,"bool"],[5,"TypeId",1332],[1,"u64"],[5,"BuildOptions",249],[5,"FeeOptions",249],[1,"u8"],[1,"u32"],[5,"String",1333],[6,"Transaction",1334],[5,"Span",1335],[6,"Account",369],[5,"LeoAdd",426],[5,"LeoBuild",456],[5,"PathBuf",1336],[5,"ProgramID",1337],[5,"Path",1336],[5,"Handler",1338],[5,"Symbol",1339],[5,"Stub",1340],[5,"IndexMap",1341],[5,"LeoClean",485],[5,"LeoDebug",511],[5,"Deploy",542],[1,"f64"],[6,"NetworkName",1342],[5,"LeoExample",575],[6,"ExampleVariant",575],[5,"LeoExecute",638],[5,"Process",1343],[5,"LeoNew",676],[5,"LeoQuery",705],[6,"QueryCommands",705],[5,"LeoBlock",787],[5,"LeoCommittee",820],[5,"LeoMempool",846],[5,"LeoPeers",874],[5,"LeoProgram",902],[5,"StateRoot",931],[5,"LeoTransaction",957],[6,"LeoError",1320],[5,"LeoRemove",995],[5,"LeoRun",1023],[5,"LeoUpdate",1054],[1,"tuple",null,null,1],[5,"Vec",1344],[5,"Manifest",1345],[5,"Format",1150],[10,"Clone",1346],[5,"Full",1347],[5,"SystemTime",1348],[10,"Debug",1326],[5,"FmtContext",1349],[5,"Writer",1347],[5,"Event",1350],[10,"FormatTime",1348],[10,"Subscriber",1351],[10,"LookupSpan",1352],[10,"FormatFields",1347],[6,"CliError",1353],[6,"Status",1354],[15,"Verify",406],[15,"New",406],[15,"Import",406],[15,"Sign",406],[15,"Account",236],[15,"New",236],[15,"Example",236],[15,"Run",236],[15,"Execute",236],[15,"Deploy",236],[15,"Query",236],[15,"Build",236],[15,"Debug",236],[15,"Add",236],[15,"Remove",236],[15,"Clean",236],[15,"Update",236],[15,"Block",780],[15,"Transaction",780],[15,"Program",780],[15,"Stateroot",780],[15,"Committee",780],[15,"Mempool",780],[15,"Peers",780],[5,"Updater",1186]],"r":[[1,369],[2,249],[3,170],[4,249],[5,542],[6,249],[9,426],[10,456],[11,485],[12,511],[13,575],[14,638],[15,676],[16,705],[17,995],[18,1023],[19,1054],[25,249],[26,249],[32,249],[33,249],[44,1115],[45,249],[47,249],[64,249],[65,249],[70,170],[78,1115],[90,249],[97,249],[104,249],[109,249],[110,249],[111,170],[113,249],[114,1115],[137,369],[162,426],[167,456],[169,485],[249,369],[252,542],[255,426],[256,456],[257,485],[258,511],[259,575],[260,638],[261,676],[262,705],[263,995],[264,1023],[265,1054],[707,787],[708,820],[709,846],[710,874],[711,902],[713,957],[718,931],[1082,1118],[1086,511],[1091,542],[1097,575],[1098,575],[1105,638],[1217,1150],[1224,1150],[1226,676],[1232,787],[1233,820],[1234,846],[1235,874],[1236,902],[1237,705],[1238,957],[1242,705],[1243,931],[1246,705],[1248,705],[1262,705],[1266,705],[1267,705],[1269,705],[1271,705],[1282,787],[1290,820],[1291,846],[1294,874],[1297,902],[1301,931],[1302,957],[1308,995],[1311,1023],[1316,1054],[1319,1186]],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADUEeAABAAAAFwAAABoAAgAeAC0ATQAUAGMAAQBmAAQAbAADAHEABAB5AAEAfQADAJIAAQCWAAMApAADAKkAAACrAAIArwAAALEAHgDSAAkA3gABAOEAGQD9AAAAAAEKAAwBAQAPATAAQgEBAEYBBgBOAQEAVAEDAFoBBwBkAQ0AdwEIAIEBAQCEAQUAiwELAJoBAQCeAQMArAELALkBAwC+AQoAygEGANIBAwDXAQQA3QEIAOcBCgDzAQMA+AEHAAECDAAPAgQAFQIJACACDAAuAgQANAILAEICGwBgAgcAagIUAIACDwCRAgUAmQILAKYCCwCzAgMAuAIQAMoCIADtAggA+AInACEDBAAnAw0ANgMKAEIDAwBHAxMAXAMDAGEDFgB5AwMAfgMIAIgDCgCUAwMAmQMKAKUDCgCxAwMAtgMHAL8DCwDMAwcA1QMOAOUDCwDyAwMA9wMIAAEEDAAPBAUAFgQIACAECgAsBAMAMgQBADUEBQBABAMARQQEAEwEBQBTBAsAYAQGAGsEAAByBAAAdQQAAHoEFwCTBAAAlgQFAKMECACtBAIAtQQAALsEAgDBBAcAygQAAMwEBQDTBAEA2AQDAN0ELQAMBQUAEwUCABgFBAAeBQEAIQUDACgFAAA=","P":[[28,"Command::Input,Command::Output"],[70,"T"],[97,"N"],[100,"Command::Input,Command::Output"],[111,""],[189,"T"],[193,""],[199,"T"],[203,""],[207,"T"],[209,""],[214,"T"],[215,""],[219,"U"],[223,""],[224,"U,T"],[226,"U"],[228,""],[234,"V"],[269,"Command::Input,Command::Output"],[270,""],[275,"T"],[280,"N"],[282,""],[284,"T"],[286,""],[298,"T"],[303,""],[319,"Command::Input,Command::Output"],[321,""],[323,"T"],[325,""],[332,"N"],[333,""],[335,"U"],[337,"Command::Input,Command::Output"],[343,"N"],[344,"Command::Input,Command::Output"],[351,"T"],[353,"Command::Input,Command::Output"],[355,"U,T"],[357,"U"],[359,""],[366,"V"],[374,"Command::Input,Command::Output"],[375,""],[377,"T"],[379,""],[381,"T"],[383,""],[386,"T"],[387,""],[393,"U"],[394,"Command::Input"],[395,"N"],[396,""],[397,"U,T"],[398,"U"],[399,""],[403,"V"],[404,""],[405,"N"],[427,"Command::Input,Command::Output"],[428,""],[430,"T"],[433,""],[435,"T"],[437,""],[439,"T"],[440,""],[444,"U"],[446,""],[449,"Command::Input"],[450,"U,T"],[451,"U"],[452,""],[455,"V"],[457,"Command::Input,Command::Output"],[458,""],[460,"T"],[462,""],[464,"N"],[465,"T"],[467,""],[469,"T"],[470,""],[475,"U"],[476,""],[478,"Command::Input"],[479,"U,T"],[480,"U"],[481,""],[484,"V"],[486,"Command::Input,Command::Output"],[487,""],[489,"T"],[491,""],[493,"T"],[495,""],[497,"T"],[498,""],[502,"U"],[503,""],[504,"Command::Input"],[505,"U,T"],[506,"U"],[507,""],[510,"V"],[512,"Command::Input,Command::Output"],[513,""],[516,"T"],[518,""],[521,"T"],[523,""],[525,"T"],[526,""],[531,"U"],[532,""],[534,"Command::Input"],[535,"U,T"],[536,"U"],[538,""],[541,"V"],[543,"Command::Input,Command::Output"],[544,""],[546,"T"],[548,""],[551,"T"],[553,""],[556,"T"],[557,""],[562,"U"],[563,""],[566,"Command::Input"],[568,"U,T"],[569,"U"],[570,""],[573,"V"],[580,"Command::Input,Command::Output"],[581,""],[585,"T"],[589,""],[590,"T"],[591,""],[596,"T"],[600,""],[605,"T"],[607,""],[615,"U"],[617,""],[621,"Command::Input"],[622,""],[624,"T"],[625,"U,T"],[627,"TryFrom::Error"],[628,"U"],[630,""],[636,"V"],[639,"Command::Input,Command::Output"],[640,""],[642,"T"],[645,""],[648,"T"],[650,""],[655,"T"],[656,""],[662,"U"],[663,"N"],[665,""],[668,"Command::Input"],[670,"U,T"],[671,"U"],[672,""],[675,"V"],[677,"Command::Input,Command::Output"],[678,""],[680,"T"],[682,""],[684,"T"],[686,""],[689,"T"],[690,""],[694,"U"],[695,""],[698,"Command::Input"],[699,"U,T"],[700,"U"],[701,""],[704,"V"],[721,"Command::Input,Command::Output"],[722,""],[727,"T"],[731,""],[737,"T"],[741,""],[746,"T"],[748,""],[757,"U"],[759,""],[763,"Command::Input"],[767,"U,T"],[769,"U"],[771,""],[778,"V"],[788,"Command::Input,Command::Output"],[789,""],[791,"T"],[793,""],[795,"T"],[797,""],[799,"T"],[800,""],[805,"U"],[809,""],[810,"Command::Input"],[814,"U,T"],[815,"U"],[816,""],[819,"V"],[821,"Command::Input,Command::Output"],[822,""],[824,"T"],[826,""],[828,"T"],[830,""],[832,"T"],[833,""],[837,"U"],[838,""],[839,"Command::Input"],[840,"U,T"],[841,"U"],[842,""],[845,"V"],[847,"Command::Input,Command::Output"],[848,""],[850,"T"],[852,""],[854,"T"],[856,""],[858,"T"],[859,""],[863,"U"],[864,""],[865,"Command::Input"],[868,"U,T"],[869,"U"],[870,""],[873,"V"],[875,"Command::Input,Command::Output"],[876,""],[878,"T"],[880,""],[883,"T"],[885,""],[887,"T"],[888,""],[892,"U"],[893,""],[895,"Command::Input"],[896,"U,T"],[897,"U"],[898,""],[901,"V"],[903,"Command::Input,Command::Output"],[904,""],[906,"T"],[908,""],[910,"T"],[912,""],[914,"T"],[915,""],[919,"U"],[920,""],[924,"Command::Input"],[925,"U,T"],[926,"U"],[927,""],[930,"V"],[932,"Command::Input,Command::Output"],[933,""],[935,"T"],[937,""],[939,"T"],[941,""],[943,"T"],[944,""],[948,"U"],[949,""],[950,"Command::Input"],[951,"U,T"],[952,"U"],[953,""],[956,"V"],[958,"Command::Input,Command::Output"],[959,""],[961,"T"],[963,""],[966,"T"],[968,""],[970,"T"],[971,""],[979,"U"],[980,""],[981,"Command::Input"],[982,"U,T"],[983,"U"],[984,""],[987,"V"],[988,""],[997,"Command::Input,Command::Output"],[998,""],[1000,"T"],[1002,""],[1004,"T"],[1006,""],[1008,"T"],[1009,""],[1013,"U"],[1014,""],[1016,"Command::Input"],[1017,"U,T"],[1018,"U"],[1019,""],[1022,"V"],[1024,"Command::Input,Command::Output"],[1025,""],[1027,"T"],[1029,""],[1032,"T"],[1034,""],[1037,"T"],[1038,""],[1044,"U"],[1045,""],[1047,"Command::Input"],[1048,"U,T"],[1049,"U"],[1050,""],[1053,"V"],[1055,"Command::Input,Command::Output"],[1056,""],[1058,"T"],[1060,""],[1062,"T"],[1064,""],[1066,"T"],[1067,""],[1071,"U"],[1073,""],[1074,"Command::Input"],[1076,"U,T"],[1077,"U"],[1078,""],[1081,"V"],[1119,"T"],[1121,""],[1122,"T"],[1123,""],[1124,"T"],[1126,""],[1129,"N"],[1130,""],[1131,"T"],[1132,""],[1134,"N"],[1135,""],[1138,"U"],[1139,""],[1141,"N"],[1142,""],[1145,"T"],[1146,"U,T"],[1147,"U"],[1148,""],[1149,"V"],[1153,"T"],[1155,"F,T"],[1156,"T"],[1157,""],[1159,"T"],[1165,""],[1166,"F,T"],[1168,"T,S,N"],[1169,"T"],[1170,""],[1172,"U"],[1174,"T"],[1175,"U,T"],[1176,"U"],[1177,""],[1178,"V"],[1179,"F,T"],[1184,"F,T,T2"],[1185,"F,T"],[1193,"T"],[1195,""],[1196,"T"],[1198,""],[1199,"T"],[1200,""],[1205,"U"],[1206,""],[1210,"U,T"],[1211,"U"],[1212,""],[1216,"V"],[1224,""]]}],["leo_package",{"t":"JJCCCCCHCCCJFNNNNNNNNNNNNNNNCJFNNNNNNNNNNNNNNNNCJFNNNNNNNNNNHNNNNJCCCCJPPPGFPNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNJFNNNNNNNNNNNONNNNNNNNNJFNNNNNNNNNNNONNNNNNNNNJFNNNNNNNNNNNNNNFNNNNNONNNNNNNNOOONNNNNONCCJFNNNNNNONNNNNNONNNNNNNNNNNNJFNNNNNNNNNNNNNNNNNNNCCJFNNNNNNNNNNNNNNNJFNNNNNNNNNNNNONNNNNNN","n":["LEO_FILE_EXTENSION","TEST_PRIVATE_KEY","build","imports","inputs","outputs","package","parse_file_paths","root","source","directory","BUILD_DIRECTORY_NAME","BuildDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","from","init","into","open","remove","try_from","try_into","type_id","vzip","directory","IMPORTS_DIRECTORY_NAME","ImportsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","files","from","init","into","is_empty","remove","try_from","try_into","type_id","vzip","directory","INPUTS_DIRECTORY_NAME","InputsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","files","from","init","into","parse_file_paths","try_from","try_into","type_id","vzip","MAIN_ALEO_FILE_NAME","ast_snapshot","checksum","circuit","directory","AST_SNAPSHOT_FILE_EXTENSION","Canonicalization","ImportsResolved","Initial","Snapshot","SnapshotFile","TypeInference","borrow","","borrow_mut","","deref","","deref_mut","","deserialize","","drop","","exists_at","fmt","from","","init","","into","","new","package_name","read_from","remove","snapshot","snapshot_file_path","take_from_value","","to_line","to_smolstr","to_span","to_string","to_text","try_from","","try_into","","try_to_compact_string","type_id","","vzip","","CHECKSUM_FILE_EXTENSION","ChecksumFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","package_name","read_from","remove","setup_file_path","take_from_value","try_from","try_into","type_id","vzip","write_to","CIRCUIT_FILE_EXTENSION","CircuitFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","package_name","read_from","remove","setup_file_path","take_from_value","try_from","try_into","type_id","vzip","write_to","OUTPUTS_DIRECTORY_NAME","OutputsDirectory","borrow","borrow_mut","create","deref","deref_mut","drop","from","init","into","remove","try_from","try_into","type_id","vzip","Package","borrow","borrow_mut","can_initialize","deref","deref_mut","description","deserialize","drop","from","init","initialize","into","is_aleo_name_valid","is_initialized","license","name","network","new","take_from_value","try_from","try_into","type_id","version","vzip","env","gitignore","ENV_FILENAME","Env","borrow","borrow_mut","deref","deref_mut","deserialize","drop","endpoint","exists_at","fmt","from","init","into","new","private_key","take_from_value","to_line","to_smolstr","to_span","to_string","to_text","try_from","try_into","try_to_compact_string","type_id","vzip","write_to","GITIGNORE_FILENAME","Gitignore","borrow","borrow_mut","default","deref","deref_mut","deserialize","drop","exists_at","from","init","into","new","take_from_value","template","try_from","try_into","type_id","vzip","write_to","directory","main","SOURCE_DIRECTORY_NAME","SourceDirectory","borrow","borrow_mut","check_files","create","deref","deref_mut","drop","files","from","init","into","try_from","try_into","type_id","vzip","MAIN_FILENAME","MainFile","borrow","borrow_mut","deref","deref_mut","deserialize","drop","exists_at","filename","from","init","into","new","package_name","take_from_value","template","try_from","try_into","type_id","vzip","write_to"],"q":[[0,"leo_package"],[10,"leo_package::build"],[11,"leo_package::build::directory"],[28,"leo_package::imports"],[29,"leo_package::imports::directory"],[47,"leo_package::inputs"],[48,"leo_package::inputs::directory"],[65,"leo_package::outputs"],[70,"leo_package::outputs::ast_snapshot"],[119,"leo_package::outputs::checksum"],[142,"leo_package::outputs::circuit"],[165,"leo_package::outputs::directory"],[181,"leo_package::package"],[206,"leo_package::root"],[208,"leo_package::root::env"],[236,"leo_package::root::gitignore"],[257,"leo_package::source"],[259,"leo_package::source::directory"],[276,"leo_package::source::main"],[298,"std::fs"],[299,"std::path"],[300,"alloc::vec"],[301,"leo_errors::errors"],[302,"alloc::string"],[303,"core::result"],[304,"core::any"],[305,"serde::de"],[306,"core::fmt"],[307,"alloc::borrow"],[308,"serde_json::value"],[309,"ratatui::text::line"],[310,"smol_str"],[311,"ratatui::text::span"],[312,"ratatui::text::text"],[313,"compact_str"],[314,"leo_retriever::program_context::network_name"],[315,"snarkvm_console_network"],[316,"snarkvm_console_account::private_key"],[317,"core::option"]],"i":"`````````````Dn00000000000000```E`000000000000000```Eb000000000`0000``````Al00``00B`1010101010011010100000001011111101011010``Ch00000000000000000000``Cj00000000000000000000``Ed0000000000000`Cl00000000000000000000000````D`0000000000000000000000000``Dh000000000000000000````Ef00000000000000``Dl0000000000000000000","f":"```````{{b{j{d{h{f}}}}}{{n{l}}}}`````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{A`}}}{{n{f}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{cc{}}{{}Ab}{{}c{}}6{{{j{A`}}}{{n{Ad}}}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}```=<;:98{{{j{A`}}}{{n{{h{f}}}}}}876{{{j{A`}}}{{n{Aj}}}}65432```?>{{{j{A`}}}{{n{l}}}}=<;2:98{{b{j{d{h{f}}}}}{{n{l}}}}7654````````````{j{{j{c}}}{}}0{{{j{d}}}{{j{dc}}}{}}0{Ab{{j{c}}}{}}0{Ab{{j{dc}}}{}}0{c{{Af{Al}}}An}{c{{Af{B`}}}An}{Abl}0{{{j{B`}}{j{A`}}}Aj}{{{j{Al}}{j{dBb}}}Bd}{cc{}}0{{}Ab}0{{}c{}}0{{{j{Bf}}Al}B`}`{{{j{B`}}{j{A`}}}{{n{Ad}}}}{{{j{B`}}{j{A`}}}{{n{Aj}}}}`{{{j{B`}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}0{jBl}{jBn}{jC`}{jAd}{jCb}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{j{{Af{CdCf}}}}{jAh}0{{}c{}}0``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{Ch}}}An}{Abl}{{{j{Ch}}{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}{{{j{Bf}}}Ch}`{{{j{Ch}}{j{A`}}}{{n{Ad}}}}{{{j{Ch}}{j{A`}}}{{n{Aj}}}}{{{j{Ch}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{{j{Ch}}{j{A`}}Ad}{{n{l}}}}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{Cj}}}An}{Abl}{{{j{Cj}}{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}{{{j{Bf}}}Cj}`{{{j{Cj}}{j{A`}}}{{n{Ad}}}}{{{j{Cj}}{j{A`}}}{{n{Aj}}}}{{{j{Cj}}{j{A`}}}{{Bh{A`}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{{j{Cj}}{j{A`}}Ad}{{n{l}}}}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{A`}}}{{n{f}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{cc{}}{{}Ab}{{}c{}}{{{j{A`}}}{{n{Ad}}}}>=<;`98{{{j{Bf}}{j{A`}}}Aj}76`{c{{Af{Cl}}}An}654{{{j{Bf}}{j{A`}}Ad}{{n{l}}}}4{{{j{Bf}}}Aj}3```{{{j{Bf}}Cn}{{n{Cl}}}}{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}`{{}c{}}````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{{D`{e}}}}}AnDb}{Abl}`{{{j{A`}}}Aj}{{{j{{D`{c}}}}{j{dBb}}}BdDb}{cc{}}{{}Ab}{{}c{}}{{{Df{{Dd{c}}}}Ad}{{n{{D`{c}}}}}Db}`{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{jBl}{jBn}{jC`}{jAd}{jCb}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{j{{Af{CdCf}}}}{jAh}{{}c{}}{{{D`{c}}{j{A`}}}{{n{l}}}Db}``{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{}Dh}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{c{{Af{Dh}}}An}{Abl}{{{j{A`}}}Aj}{cc{}}{{}Ab}{{}c{}}8{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{{{j{Dh}}}Ad}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{Dh{j{A`}}}{{n{l}}}}````{j{{j{c}}}{}}{{{j{d}}}{{j{dc}}}{}}{{{j{{Dj{f}}}}}{{n{l}}}}{{{j{A`}}}{{n{l}}}}{Ab{{j{c}}}{}}{Ab{{j{dc}}}{}}{Abl}{{{j{A`}}}{{n{{h{f}}}}}}{cc{}}{{}Ab}{{}c{}}?>=<``:965{c{{Af{Dl}}}An}5{{{j{A`}}}Aj}{{}Ad}543{{{j{Bf}}}Dl}`{{{j{dBj}}{j{Bf}}}{{Af{c}}}{}}{{{j{Dl}}}Ad}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{jAh}{{}c{}}{{Dl{j{A`}}}{{n{l}}}}","D":"Gj","p":[[5,"ReadDir",298],[0,"mut"],[5,"PathBuf",299],[5,"Vec",300],[1,"reference",null,null,1],[1,"unit"],[8,"Result",301],[5,"Path",299],[1,"usize"],[5,"String",302],[6,"Result",303,null,1],[5,"TypeId",304],[1,"bool"],[6,"Snapshot",70],[10,"Deserializer",305],[5,"SnapshotFile",70],[5,"Formatter",306],[8,"Result",306],[1,"str"],[6,"Cow",307],[6,"Value",308],[5,"Line",309],[5,"SmolStr",310],[5,"Span",311],[5,"Text",312],[5,"CompactString",313],[6,"ToCompactStringError",313],[5,"ChecksumFile",119],[5,"CircuitFile",142],[5,"Package",181],[6,"NetworkName",314],[5,"Env",208],[10,"Network",315],[5,"PrivateKey",316],[6,"Option",317,null,1],[5,"Gitignore",236],[1,"slice"],[5,"MainFile",276],[5,"BuildDirectory",11],[5,"ImportsDirectory",29],[5,"InputsDirectory",48],[5,"OutputsDirectory",165],[5,"SourceDirectory",259]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO0AKAABAA4AEQACABUAAAAZAAgAIwACACgAAAAsAAgANgACADsAAAA9AAUARgAEAE0ADgBeAAEAYgABAGYAGgCCAAAAhAABAIgABQCPAAgAmQAAAJsAAQCfAAUApgADAKsAAgCvAAAAsgAGALoABADAAAAAxQAJANEACgDdAAAA3wAXAPgAAAD6AAgABAEDAAoBAgAPAQAAEQENACABAAAiAQgA","P":[[13,"T"],[15,""],[16,"T"],[18,""],[19,"T"],[20,""],[21,"U"],[22,""],[24,"U,T"],[25,"U"],[26,""],[27,"V"],[31,"T"],[33,""],[34,"T"],[36,""],[38,"T"],[39,""],[40,"U"],[41,""],[43,"U,T"],[44,"U"],[45,""],[46,"V"],[50,"T"],[52,""],[53,"T"],[55,""],[57,"T"],[58,""],[59,"U"],[60,""],[61,"U,T"],[62,"U"],[63,""],[64,"V"],[77,"T"],[85,"__D"],[87,""],[91,"T"],[93,""],[95,"U"],[97,""],[103,"T"],[105,""],[110,"U,T"],[112,"U"],[114,""],[117,"V"],[121,"T"],[125,"__D"],[126,""],[128,"T"],[129,""],[130,"U"],[131,""],[136,"T"],[137,"U,T"],[138,"U"],[139,""],[140,"V"],[141,""],[144,"T"],[148,"__D"],[149,""],[151,"T"],[152,""],[153,"U"],[154,""],[159,"T"],[160,"U,T"],[161,"U"],[162,""],[163,"V"],[164,""],[167,"T"],[169,""],[170,"T"],[172,""],[173,"T"],[174,""],[175,"U"],[176,""],[177,"U,T"],[178,"U"],[179,""],[180,"V"],[182,"T"],[184,""],[185,"T"],[188,"__D"],[189,""],[190,"T"],[191,""],[193,"U"],[194,""],[200,"T"],[201,"U,T"],[202,"U"],[203,""],[205,"V"],[210,"T"],[214,"__D,N"],[215,""],[218,"N"],[219,"T"],[220,""],[221,"U"],[222,"N"],[224,"T"],[225,""],[230,"U,T"],[231,"U"],[232,""],[234,"V"],[235,"N"],[238,"T"],[240,""],[241,"T"],[243,"__D"],[244,""],[246,"T"],[247,""],[248,"U"],[249,""],[250,"T"],[251,""],[252,"U,T"],[253,"U"],[254,""],[255,"V"],[256,""],[261,"T"],[263,""],[265,"T"],[267,""],[269,"T"],[270,""],[271,"U"],[272,"U,T"],[273,"U"],[274,""],[275,"V"],[278,"T"],[282,"__D"],[283,""],[286,"T"],[287,""],[288,"U"],[289,""],[291,"T"],[292,""],[293,"U,T"],[294,"U"],[295,""],[296,"V"],[297,""]]}],["leo_parser",{"t":"SHCCCCCHHHCCSFNNNNNNNNNONNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNSHSSECCHHFNNNNNNNNNNHHNNNNNHNONNNNONNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPSPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["KEYWORD_TOKENS","parse_ast","parser","tokenizer","context","expression","file","parse","parse_expression","parse_statement","statement","type_","DUMMY_EOF","ParserContext","bin_expr","borrow","borrow_mut","bump","check","check_identifier","check_int","deref","deref_mut","disallow_struct_construction","drop","eat","eat_any","eat_bin_op","eat_group_partial","eat_identifier","eat_whole_number","emit_err","emit_warning","expect","expect_any","expect_identifier","from","handler","has_next","init","into","look_ahead","mk_ident_prev","new","node_builder","parse_additive_expression","parse_annotation","parse_array_expression","parse_assert_statement","parse_assign_statement","parse_associated_access_expression","parse_bin_expr","parse_bitwise_and_expression","parse_bitwise_exclusive_or_expression","parse_bitwise_inclusive_or_expression","parse_block","parse_boolean_and_expression","parse_boolean_or_expression","parse_bracket_comma_list","parse_cast_expression","parse_conditional_expression","parse_conditional_statement","parse_console_statement","parse_const_declaration_statement","parse_definition_statement","parse_equality_expression","parse_exponential_expression","parse_expr_tuple","parse_expression","parse_external_resource","parse_function","parse_import","parse_input","parse_list","parse_loop_statement","parse_mapping","parse_member_variable_declaration","parse_method_call_expression","parse_mode","parse_multiplicative_expression","parse_ordering_expression","parse_output","parse_paren_comma_list","parse_postfix_expression","parse_primary_expression","parse_primitive_type","parse_program","parse_program_scope","parse_return_statement","parse_shift_expression","parse_statement","parse_struct","parse_struct_init_expression","parse_struct_member","parse_struct_members","parse_tuple_expression","parse_type","parse_typed_ident","parse_unary_expression","peek_group_coordinate","peek_is_left_par","phantom","prev_token","program_name","token","token_to_int_type","tokens","try_from","try_into","type_id","unexpected","unexpected_item","vzip","INT_TYPES","assert_no_whitespace","ASSIGN_TOKENS","TYPE_TOKENS","KEYWORD_TOKENS","lexer","token","tokenize","tokenize_iter","SpannedToken","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","dummy","eat_identifier","ensure_no_bidi_override","fmt","","from","init","into","is_bidi_override","serialize","span","take_from_value","to_owned","to_smolstr","to_string","token","try_from","try_into","type_id","vzip","Add","AddAssign","Address","AddressLit","Aleo","And","AndAssign","Arrow","As","Assert","AssertEq","AssertNeq","Assign","Async","At","BigArrow","BitAnd","BitAndAssign","BitOr","BitOrAssign","BitXor","BitXorAssign","Block","Bool","Brace","Bracket","Colon","Comma","CommentBlock","CommentLine","Console","Const","Constant","Delimiter","Div","DivAssign","Dot","DotDot","DoubleColon","Else","Eof","Eq","False","Field","Fn","For","Function","Future","Group","Gt","GtEq","I128","I16","I32","I64","I8","Identifier","If","Import","In","Inline","Integer","KEYWORD_TOKENS","LeftCurly","LeftParen","LeftSquare","Leo","Let","Lt","LtEq","Mapping","Mul","MulAssign","Network","Not","NotEq","Or","OrAssign","Parenthesis","Pow","PowAssign","Private","Program","Public","Question","Record","Rem","RemAssign","Return","RightCurly","RightParen","RightSquare","Scalar","SelfLower","Semicolon","Shl","ShlAssign","Shr","ShrAssign","Signature","StaticString","String","Struct","Sub","SubAssign","Token","Transition","True","U128","U16","U32","U64","U8","Underscore","WhiteSpace","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","drop","","eat","eat_integer","eq","equivalent","","","","fmt","","from","","init","","into","","is_keyword","keyword_to_symbol","open_close_pair","serialize","take_from_value","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","vzip",""],"q":[[0,"leo_parser"],[4,"leo_parser::parser"],[12,"leo_parser::parser::context"],[113,"leo_parser::parser::expression"],[115,"leo_parser::parser::statement"],[116,"leo_parser::parser::type_"],[117,"leo_parser::tokenizer"],[122,"leo_parser::tokenizer::lexer"],[152,"leo_parser::tokenizer::token"],[316,"leo_errors::emitter"],[317,"leo_ast::common::node_builder"],[318,"leo_span::span"],[319,"leo_ast"],[320,"leo_errors::errors"],[321,"leo_ast::program"],[322,"leo_ast::expressions"],[323,"leo_ast::statement"],[324,"leo_ast::expressions::binary"],[325,"snarkvm_console_network"],[326,"leo_ast::common::identifier"],[327,"core::option"],[328,"leo_ast::groups::group_literal"],[329,"leo_ast::common::positive_number"],[330,"leo_errors::errors::parser::parser_errors"],[331,"leo_errors::errors::parser::parser_warnings"],[332,"core::ops::function"],[333,"leo_span::symbol"],[334,"alloc::vec"],[335,"leo_ast::functions::annotation"],[336,"leo_ast::statement::block"],[337,"leo_ast::statement::conditional"],[338,"leo_ast::statement::console::console_statement"],[339,"leo_ast::statement::const_"],[340,"leo_ast::statement::definition"],[341,"leo_ast::functions"],[342,"leo_ast::functions::input"],[343,"leo_ast::statement::iteration"],[344,"leo_ast::mapping"],[345,"leo_ast::struct::member"],[346,"leo_ast::functions::mode"],[347,"leo_ast::functions::output"],[348,"leo_ast::types::type_"],[349,"leo_ast::program::program_scope"],[350,"leo_ast::statement::return_"],[351,"leo_ast::struct"],[352,"leo_ast::expressions::struct_init"],[353,"leo_ast::groups::group_coordinate"],[354,"leo_ast::types::integer_type"],[355,"core::result"],[356,"core::any"],[357,"core::fmt"],[358,"core::iter::traits::iterator"],[359,"serde::de"],[360,"core::iter::adapters::peekable"],[361,"alloc::string"],[362,"serde::ser"],[363,"serde_json::value"],[364,"smol_str"]],"i":"``````````````Aj00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``````````Ch000000000``00000`00000000000B`00000000000000000000000Ed01111111`1111111111111111111111111111`111111111111111011111111111111111111111111`1111111111010101010101011011111111110101011011101110101010","f":"`{{{d{b}}{d{f}}{d{h}}j}{{n{l}}}}`````{{{d{b}}{d{f}}{d{h}}j}{{n{A`}}}}{{{d{b}}{d{f}}{d{h}}j}{{n{Ab}}}}{{{d{b}}{d{f}}{d{h}}j}{{n{Ad}}}}````{{{d{f}}AbAbAf}Ab}{d{{d{c}}}{}}{{{d{Ah}}}{{d{Ahc}}}{}}{{{d{Ah{Aj{c}}}}}AlAn}{{{d{{Aj{c}}}}{d{B`}}}BbAn}{{{d{{Aj{c}}}}{d{Bd}}}AlAn}{{{d{{Aj{c}}}}}BbAn}{Bf{{d{c}}}{}}{Bf{{d{Ahc}}}{}}`{BfAl}{{{d{Ah{Aj{c}}}}{d{B`}}}BbAn}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}BbAn}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}{{Bj{Af}}}An}{{{d{Ah{Aj{c}}}}}{{Bj{{n{Bl}}}}}An}{{{d{Ah{Aj{c}}}}}{{Bj{Bd}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{BnC`}}}}}An}{{{d{{Aj{c}}}}Cd}AlAn}{{{d{{Aj{c}}}}Cf}AlAn}{{{d{Ah{Aj{c}}}}{d{B`}}}{{n{C`}}}An}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}}{{n{C`}}}An}{{{d{Ah{Aj{c}}}}}{{n{Bd}}}An}{cc{}}`?{{}Bf}{{}c{}}{{{d{{Aj{c}}}}Bfg}eAn{}{{Cl{{d{Ch}}}{{Cj{e}}}}}}{{{d{{Aj{c}}}}Cn}BdAn}{{{d{b}}{d{f}}{D`{Ch}}}{{Aj{c}}}An}`{{{d{Ah{Aj{c}}}}}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{Db}}}An}1{{{d{Ah{Aj{c}}}}}{{n{Ad}}}An}0{{{d{Ah{Aj{c}}}}Ab}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}{d{{Bh{B`}}}}e}{{n{Ab}}}An{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{Ab}}}}}}}}444{{{d{Ah{Aj{c}}}}}{{n{Df}}}An}55{{{d{Ah{Aj{c}}}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}66{{{d{Ah{Aj{c}}}}}{{n{Dh}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dj}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dl}}}An}{{{d{Ah{Aj{c}}}}}{{n{Dn}}}An}::{{{d{Ah{Aj{c}}}}}{{n{{Cb{{D`{Ab}}BbC`}}}}}An};{{{d{Ah{Aj{c}}}}AbC`}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnE`}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{Cn{Cb{A`C`}}}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{Eb}}}An}{{{d{Ah{Aj{c}}}}Ed{Bj{B`}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}{{{d{Ah{Aj{c}}}}}{{n{Ef}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnEh}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{Ej}}}An}{{{d{Ah{Aj{c}}}}AbBd}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{El}}}An}{{{d{Ah{Aj{c}}}}}{{n{Ab}}}An}0{{{d{Ah{Aj{c}}}}}{{n{En}}}An}{{{d{Ah{Aj{c}}}}g}{{n{{Cb{{D`{e}}BbC`}}}}}An{}{{Dd{{d{Ah{Aj{c}}}}}{{Cj{{n{{Bj{e}}}}}}}}}}22{{{d{Ah{Aj{c}}}}}{{n{{Cb{F`C`}}}}}An}{{{d{Ah{Aj{c}}}}}{{n{A`}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fb}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fd}}}An}6{{{d{Ah{Aj{c}}}}}{{n{Ad}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{CnFf}}}}}An}{{{d{Ah{Aj{c}}}}Bd}{{n{Ab}}}An}{{{d{Ah{Aj{c}}}}}{{n{Fh}}}An}{{{d{Ah{Aj{c}}}}}{{n{{Cb{{D`{Ej}}C`}}}}}An};8{{{d{Ah{Aj{c}}}}}{{n{{Cb{BdF`C`}}}}}An}<{{{d{{Aj{c}}}}{d{AhBf}}}{{Bj{Fj}}}An}{{{d{{Aj{c}}}}}BbAn}````{{{d{B`}}}{{Bj{Fl}}}}`{c{{Fn{e}}}{}{}}{{}{{Fn{c}}}{}}{dG`}{{{d{{Aj{c}}}}e}{{n{g}}}AnGb{}}{{{d{Ch}}{d{{Bh{B`}}}}}Cd}{{}c{}}`{{C`C`{d{h}}{d{h}}}{{n{Al}}}}`````{{{d{h}}j}{{n{{D`{Ch}}}}}}{{{d{h}}j}{{`{{Gf{}{{Gd{{n{Ch}}}}}}}}}}`{d{{d{c}}}{}}{{{d{Ah}}}{{d{Ahc}}}{}}{{{d{Ch}}}Ch}{{d{d{Ahc}}}Al{}}{{dGh}Al}{Bf{{d{c}}}{}}{Bf{{d{Ahc}}}{}}{c{{Fn{Ch}}}Gj}{BfAl}{{}Ch}{{{d{Ah{Gl{c}}}}}{{Bj{Gn}}}{{Gf{}{{Gd{H`}}}}}}{{{d{h}}}{{n{Al}}}}{{{d{Ch}}{d{AhHb}}}Hd}0{cc{}}{{}Bf}{{}c{}}{H`Bb}{{{d{Ch}}c}FnHf}`{{{d{AhHh}}{d{h}}}{{Fn{c}}}{}}{dc{}}{dHj}{dGn}`{c{{Fn{e}}}{}{}}{{}{{Fn{c}}}{}}{dG`}{{}c{}}```````````````````````````````````````````````````````````````````````````````````````````````````````````````````{d{{d{c}}}{}}0{{{d{Ah}}}{{d{Ahc}}}{}}0{{{d{B`}}}B`}{{{d{Ed}}}Ed}{{d{d{Ahc}}}Al{}}0{{dGh}Al}0{Bf{{d{c}}}{}}0{Bf{{d{Ahc}}}{}}0{c{{Fn{B`}}}Gj}{BfAl}0{{{d{h}}}{{n{{Cb{BfB`}}}}}}{{{d{Ah{Gl{c}}}}}{{n{{Cb{BfB`}}}}}{{Gf{}{{Gd{H`}}}}}}{{{d{B`}}{d{B`}}}Bb}{{d{d{c}}}Bb{}}000{{{d{B`}}{d{AhHb}}}Hd}0{cc{}}0{{}Bf}0{{}c{}}0{{{d{B`}}}Bb}{{{d{B`}}}{{Bj{Cn}}}}{Ed{{Cb{B`B`}}}}{{{d{B`}}c}FnHf}{{{d{AhHh}}{d{h}}}{{Fn{c}}}{}}{dc{}}0{dHj}{dGn}{c{{Fn{e}}}{}{}}0{{}{{Fn{c}}}{}}0{dG`}0{{}c{}}0","D":"Nj","p":[[5,"Handler",316],[1,"reference",null,null,1],[5,"NodeBuilder",317],[1,"str"],[5,"BytePos",318],[5,"Ast",319],[8,"Result",320],[5,"Program",321],[6,"Expression",322],[6,"Statement",323],[6,"BinaryOperation",324],[0,"mut"],[5,"ParserContext",12],[1,"unit"],[10,"Network",325],[6,"Token",152],[1,"bool"],[5,"Identifier",326],[1,"usize"],[1,"slice"],[6,"Option",327,null,1],[5,"GroupTuple",328],[5,"NonNegativeNumber",329],[5,"Span",318],[1,"tuple",null,null,1],[6,"ParserError",330],[6,"ParserWarning",331],[5,"SpannedToken",122],[17,"Output"],[10,"FnOnce",332],[5,"Symbol",333],[5,"Vec",334],[5,"Annotation",335],[10,"FnMut",332],[5,"Block",336],[5,"ConditionalStatement",337],[5,"ConsoleStatement",338],[5,"ConstDeclaration",339],[5,"DefinitionStatement",340],[5,"Function",341],[5,"Input",342],[6,"Delimiter",152],[5,"IterationStatement",343],[5,"Mapping",344],[5,"Member",345],[6,"Mode",346],[5,"Output",347],[6,"Type",348],[5,"ProgramScope",349],[5,"ReturnStatement",350],[5,"Composite",351],[5,"StructVariableInitializer",352],[6,"GroupCoordinate",353],[6,"IntegerType",354],[6,"Result",355,null,1],[5,"TypeId",356],[10,"Display",357],[17,"Item"],[10,"Iterator",358],[1,"u8"],[10,"Deserializer",359],[5,"Peekable",360],[5,"String",361],[1,"char"],[5,"Formatter",357],[8,"Result",357],[10,"Serializer",362],[6,"Value",363],[5,"SmolStr",364]],"r":[[0,152],[117,152]],"b":[[135,"impl-Display-for-SpannedToken"],[136,"impl-Debug-for-SpannedToken"],[291,"impl-Debug-for-Token"],[292,"impl-Display-for-Token"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMcAFgAFAAIACQADABAAAQAWAAEAGQAAACgAAABeAAAAZgAAAGwAAgBwAAgAewAJAIgAAQCLAAAAjgAiALMABgC7ABsA2AAOAOgAGQADARkAHwEGACgBAQAvAQ0A","P":[[15,"T"],[17,"N"],[21,"T"],[24,""],[25,"N"],[36,"T"],[38,"N"],[39,""],[40,"U"],[41,"N,R,"],[42,"N"],[51,"N,"],[52,"N"],[58,"N,T,"],[59,"N"],[73,"N,T,"],[74,"N"],[82,"N,T,"],[83,"N"],[105,""],[107,"U,T"],[108,"U"],[109,""],[110,"N,,T"],[111,""],[112,"V"],[114,""],[123,"T"],[125,""],[126,"T"],[127,""],[128,"T"],[130,"__D"],[131,""],[133,""],[134,""],[137,"T"],[138,""],[139,"U"],[140,""],[141,"__S"],[143,"T"],[145,""],[148,"U,T"],[149,"U"],[150,""],[151,"V"],[267,"T"],[271,""],[273,"T"],[275,""],[277,"T"],[281,"__D"],[282,""],[285,""],[286,""],[287,"K"],[291,""],[293,"T"],[295,""],[297,"U"],[299,""],[302,"__S"],[303,"T"],[306,""],[308,"U,T"],[310,"U"],[312,""],[314,"V"]]}],["leo_passes",{"t":"FFFOOOOCCOOCCCCCOOOCOCOOCCOOOCCOCCCCCFONNOOONNNNONONNNOOOOOONNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSECCCCCCCFFNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNIPFGIKINNNNNNNNNNNNNOOOONNNNNNNNNNNNNNOOOONNNNNNNNNNFNNNNNNNNNNNNNNNNONNNNNONONNNNNNFNNNNNNNNNNONNNNPFFPFFPFFGONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNHONNNNNNOOOOOOONNNONNNNNNNNNNNNOONNNNNNNOOOOCNNNNNNNNONNNONNNPFFPPFGNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNOOONNNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNIKFNNNNNOONOONNNOONNNNNNNNNNNNNNNNFNNNNNNNNNNNNNONNNNNNNEFONNOOCCCCNNNNNNNNNNHHFONNOONNNNNNONNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNOHNCCCCFNNNNNNNNNOONONNNNNNNNNNNNNNNNONCCCCFONNNNNNNNNONONNNNNNNNNNNNONONCCCCPPFGPGPPONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNNNNONONNNNNNNNNNNNNNONNNNOOCCCCCFONNNNNNNNNONNNNNNNNNONNNNFONNONNNNNNNONOONNNNNNNNNNONNNONFNNNNNCNNNOOCNNNCCCNFNNNNNHNNNNONNNNONNNNGPPKFNNNNOONNNNNNONNNNNNNNNNNNNNNNNNFNNONNNNNNONNNOOONONNNNNNNONNNONNNRRKMCCCCCCFNNONNONNNNNNNONNNOOONNNOONNNNNNFNNNNNNONNNNNONNNOONNNNPPPFPPGPPNNNNNNNNNNNNNNNNNNHONNNNNNNNNNNONNNNNNNNCCCCFONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONONONONNNONNFNNNNNNNONNONOOONNNNNNNNNNNNCCCCCFFNNNNNNNNNNNOONNNNONNNNONNNNNNNNNNNNNNONNNNNNNNONOOONNNOONONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNNOOOONNNOOONNONNNON","n":["ConstPropagator","ConstPropagatorOutput","SymbolTableCreator","array_index_not_evaluated","","changed","","code_generation","common","const_not_evaluated","","const_propagation","dead_code_elimination","destructuring","flattening","function_inlining","handler","","is_stub","loop_unrolling","node_builder","pass","program","program_name","static_analysis","static_single_assignment","structs","symbol_table","","symbol_table_creation","type_checking","type_table","generator","visit_expressions","visit_program","visit_statements","visit_type","CodeGenerator","_call_graph","borrow","borrow_mut","composite_mapping","conditional_depth","current_function","deref","deref_mut","do_pass","drop","finalize_caller","from","global_mapping","init","into","new","next_label","next_register","program","program_id","struct_graph","symbol_table","try_from","try_into","type_id","type_table","variable_mapping","variant","visit_access","visit_array","visit_array_access","visit_assert","visit_assign","visit_associated_constant","visit_associated_function","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_with","visit_identifier","visit_iteration","visit_locator","visit_mapping","visit_member_access","visit_program","visit_record","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_or_record","visit_ternary","visit_tuple","visit_type","visit_type_with_visibility","visit_unary","visit_unit","visit_value","vzip","EXPECT_STR","ConditionalTreeNode","assigner","graph","rename_table","replacer","symbol_table","tree_node","type_table","Assigner","AssignerInner","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","counter","default","","deref","","deref_mut","","drop","","fmt","","from","","init","","inner","into","","simple_assign_statement","","to_owned","","try_from","","try_into","","type_id","","unique_symbol","","vzip","","CallGraph","CycleDetected","DiGraph","DiGraphError","ImportGraph","Node","StructGraph","add_edge","borrow","","borrow_mut","","contains_cycle_from","contains_node","deref","","deref_mut","","drop","","edges","","","","eq","equivalent","","","","fmt","","from","","init","","into","","new","nodes","","","","post_order","retain_nodes","try_from","","try_into","","type_id","","vzip","","RenameTable","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","eq","equivalent","","","","fmt","from","ids","init","into","local_names","lookup","lookup_id","names","new","parent","to_owned","try_from","try_into","type_id","update","vzip","Replacer","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","new","reconstruct_identifier","replace","try_from","try_into","type_id","vzip","Const","Finalizer","FunctionSymbol","Input","LocalTable","LocalTableInner","Mut","SymbolTable","VariableSymbol","VariableType","all_locals","attach_finalizer","borrow","","","borrow_mut","","","check_shadow_global","check_shadow_variable","clone","","clone_into","","clone_to_uninit","","consts","declaration","default","","","deref","","","deref_mut","","","drop","","","dup","enter_parent","enter_scope","enter_scope_duped","eq_struct","finalizer","fmt","","","from","","","function","functions","future_inputs","global_consts","globals","id","inferred_inputs","init","","","inner","insert_const","insert_function","insert_global","insert_record","insert_struct","insert_variable","into","","","iter_functions","iter_records","iter_structs","local","location","lookup_const","lookup_function","lookup_global","lookup_record","lookup_struct","lookup_variable","new","parent","records","span","structs","symbols","to_owned","","try_from","","","try_into","","","type_","type_id","","","variables","vzip","","","Const","Finalizer","FunctionSymbol","Input","Mut","VariableSymbol","VariableType","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","declaration","deref","","","","deref_mut","","","","deserialize","","","drop","","","","eq","","","equivalent","","","","","","","","finalizer","fmt","","","","","","from","","","","function","future_inputs","inferred_inputs","init","","","","into","","","","location","serialize","","","span","take_from_value","","","to_line","","to_owned","","","","to_smolstr","","to_span","","to_string","","to_text","","try_from","","","","try_into","","","","try_to_compact_string","","type_","type_id","","","","vzip","","","","ConditionalTreeNode","Node","TreeNode","borrow","borrow_mut","clone","clone_into","clone_to_uninit","counter","","create_child","depth","","deref","deref_mut","drop","elements","","eq","equivalent","","","","fmt","from","init","into","new","remove_element","to_owned","try_from","try_into","type_id","vzip","TypeTable","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","fmt","from","get","init","inner","insert","into","to_owned","try_from","try_into","type_id","vzip","ConstPropagator","ConstPropagatorOutput","array_index_not_evaluated","borrow","borrow_mut","changed","const_not_evaluated","const_propagate_expression","const_propagate_program","const_propagate_statement","const_propagator","deref","deref_mut","drop","from","init","into","try_from","try_into","type_id","vzip","empty_statement","is_empty_statement","ConstPropagator","array_index_not_evaluated","borrow","borrow_mut","changed","const_not_evaluated","deref","deref_mut","do_pass","drop","emit_err","from","handler","in_scope","init","into","new","node_builder","program","reconstruct_access","reconstruct_array","reconstruct_array_access","reconstruct_assert","reconstruct_assign","reconstruct_associated_constant","reconstruct_associated_function","reconstruct_binary","reconstruct_block","reconstruct_call","reconstruct_cast","reconstruct_conditional","reconstruct_console","reconstruct_const","reconstruct_definition","reconstruct_err","reconstruct_expression","reconstruct_expression_statement","reconstruct_function","reconstruct_identifier","reconstruct_iteration","reconstruct_literal","reconstruct_locator","reconstruct_member_access","reconstruct_program_scope","reconstruct_return","reconstruct_struct_init","reconstruct_ternary","reconstruct_tuple","reconstruct_tuple_access","reconstruct_unary","reconstruct_unit","symbol_table","try_from","try_into","type_id","type_table","value_to_expression","vzip","dead_code_eliminator","eliminate_expression","eliminate_program","eliminate_statement","DeadCodeEliminator","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","init","into","is_async","is_necessary","new","node_builder","reconstruct_assert","reconstruct_assign","reconstruct_associated_function","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_expression_statement","reconstruct_function","reconstruct_identifier","reconstruct_iteration","reconstruct_return","reconstruct_struct_init","try_from","try_into","type_id","used_variables","vzip","destructure_expression","destructure_program","destructure_statement","destructurer","Destructurer","assigner","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","init","into","is_async","new","node_builder","reconstruct_assign","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_function","reconstruct_iteration","reconstruct_return","reconstruct_tuple_access","simple_assign_statement","try_from","try_into","tuples","type_id","type_table","vzip","flatten_expression","flatten_program","flatten_statement","flattener","Constructed","","Flattener","Guard","None","ReturnGuard","Unconstructed","","assigner","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","condition_stack","construct_early_return_guard","construct_guard","deref","","","deref_mut","","","do_pass","drop","","","fold_guards","fold_returns","from","","","identifier","init","","","into","","","is_async","new","node_builder","program","reconstruct_assert","reconstruct_assign","reconstruct_block","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_function","reconstruct_iteration","reconstruct_program_scope","reconstruct_return","reconstruct_struct_init","reconstruct_ternary","returns","simple_assign_statement","symbol_table","ternary_array","ternary_struct","ternary_tuple","to_owned","","try_from","","","try_into","","","type_id","","","type_table","unique_simple_assign_statement","vzip","","","any_return","plain","assignment_renamer","function_inliner","inline_expression","inline_program","inline_statement","AssignmentRenamer","assigner","borrow","borrow_mut","clear","deref","deref_mut","drop","from","init","into","is_lhs","load","new","reconstruct_assign","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_identifier","reconstruct_iteration","reconstruct_struct_init","rename_table","try_from","try_into","type_id","vzip","FunctionInliner","assignment_renamer","borrow","borrow_mut","call_graph","deref","deref_mut","do_pass","drop","from","init","into","is_async","new","node_builder","program","reconstruct_assign","reconstruct_block","reconstruct_call","reconstruct_conditional","reconstruct_console","reconstruct_definition","reconstruct_expression_statement","reconstruct_function","reconstruct_iteration","reconstruct_program_scope","reconstructed_functions","try_from","try_into","type_id","type_table","vzip","UnrollerOutput","borrow","borrow_mut","deref","deref_mut","drop","duplicate","from","init","into","loop_not_unrolled","loop_unrolled","range_iterator","try_from","try_into","type_id","unroll_program","unroll_statement","unroller","vzip","Duplicator","borrow","borrow_mut","deref","deref_mut","drop","duplicate","from","in_scope_duped","init","into","node_builder","reconstruct_block","reconstruct_conditional","reconstruct_iteration","reconstruct_statement","symbol_table","try_from","try_into","type_id","vzip","Clusivity","Exclusive","Inclusive","LoopBound","RangeIterator","borrow","","borrow_mut","","clusivity","current","deref","","deref_mut","","drop","","end","from","","init","","into","","into_iter","new","next","progress_with","try_from","","try_into","","type_id","","vzip","","Unroller","borrow","borrow_mut","current_program","deref","deref_mut","do_pass","drop","emit_err","from","handler","in_scope","init","into","is_unrolling","loop_not_unrolled","loop_unrolled","new","node_builder","reconstruct_block","reconstruct_const","reconstruct_definition","reconstruct_function","reconstruct_iteration","reconstruct_program_scope","reconstruct_stub","symbol_table","try_from","try_into","type_id","type_table","unroll_iteration_statement","unroll_single_iteration","vzip","Input","Output","Pass","do_pass","analyze_expression","analyze_program","analyze_statement","analyzer","await_checker","future_checker","StaticAnalyzer","assert_future_await","assert_simple_async_transition_call","await_checker","borrow","borrow_mut","current_program","deref","deref_mut","do_pass","drop","emit_err","emit_warning","from","handler","init","into","new","non_async_external_call_seen","phantom","symbol_table","try_from","try_into","type_id","type_table","variant","visit_access","visit_call","visit_conditional","visit_function","visit_program_scope","vzip","AwaitChecker","borrow","borrow_mut","create_then_scope","deref","deref_mut","drop","enabled","exit_statement_scope","exit_then_scope","from","init","into","max_depth","new","remove","set_futures","static_to_await","to_await","try_from","try_into","type_id","vzip","Await","Definition","FunctionArgument","FutureChecker","LastTupleLiteral","Misc","Position","Return","TupleAccess","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deref","","deref_mut","","drop","","emit_err","fmt","from","","future_check_function","handler","init","","into","","to_owned","try_from","","try_into","","type_id","","type_table","visit_access","visit_call","visit_definition","visit_expression","visit_return","visit_tuple","vzip","","rename_expression","rename_program","rename_statement","static_single_assigner","StaticSingleAssigner","assigner","borrow","borrow_mut","consume_access","consume_array","consume_assert","consume_assign","consume_binary","consume_block","consume_call","consume_cast","consume_conditional","consume_console","consume_const","consume_definition","consume_expression_statement","consume_function","consume_identifier","consume_iteration","consume_literal","consume_locator","consume_program","consume_program_scope","consume_return","consume_struct","consume_struct_init","consume_ternary","consume_tuple","consume_unary","consume_unit","deref","deref_mut","do_pass","drop","from","init","into","is_lhs","new","node_builder","pop","program","push","rename_table","simple_assign_statement","symbol_table","try_from","try_into","type_id","type_table","unique_simple_assign_statement","vzip","SymbolTableCreator","borrow","borrow_mut","deref","deref_mut","do_pass","drop","from","handler","init","into","is_stub","new","program_name","structs","symbol_table","try_from","try_into","type_id","visit_function","visit_function_stub","visit_import","visit_mapping","visit_program_scope","visit_struct","visit_struct_stub","visit_stub","vzip","check_expressions","check_program","check_statements","checker","scope_state","NetworkLimits","TypeChecker","assert_and_return_type","assert_array_type","assert_bool_int_type","assert_field_group_int_type","assert_field_int_type","assert_int_type","assert_mapping_type","assert_member_is_not_record","assert_type","assert_type_is_valid","assert_unsigned_type","async_function_callers","async_function_input_types","borrow","","borrow_mut","","call_graph","check_access_allowed","check_core_function_call","check_eq_types","check_function_signature","conditional_scopes","deref","","deref_mut","","do_pass","drop","","emit_err","emit_warning","eq_user","from","","get_core_constant","get_core_function_call","handler","in_conditional_scope","in_scope","init","","insert_symbol_conditional_scope","insert_variable","into","","limits","lookup_struct","max_array_elements","max_functions","max_mappings","maybe_assert_type","merge_types","new","scope_state","struct_graph","symbol_in_conditional_scope","symbol_table","try_from","","try_into","","type_id","","type_table","used_structs","visit_access","visit_array","visit_assert","visit_assign","visit_binary","visit_block","visit_call","visit_cast","visit_conditional","visit_console","visit_const","visit_definition","visit_err","visit_expression","visit_expression_statement","visit_function","visit_function_stub","visit_identifier","visit_iteration","visit_literal","visit_locator","visit_mapping","visit_program","visit_program_scope","visit_return","visit_statement","visit_struct","visit_struct_init","visit_struct_stub","visit_stub","visit_ternary","visit_tuple","visit_unary","visit_unit","vzip","","ScopeState","borrow","borrow_mut","call_location","deref","deref_mut","drop","from","function","futures","has_called_finalize","has_return","init","initialize_function_state","into","is_call","is_conditional","is_stub","location","new","program_name","try_from","try_into","type_id","variant","vzip"],"q":[[0,"leo_passes"],[32,"leo_passes::code_generation"],[37,"leo_passes::code_generation::generator"],[105,"leo_passes::code_generation::visit_program"],[106,"leo_passes::common"],[114,"leo_passes::common::assigner"],[158,"leo_passes::common::graph"],[210,"leo_passes::common::rename_table"],[242,"leo_passes::common::replacer"],[258,"leo_passes::common::symbol_table"],[363,"leo_passes::common::symbol_table::symbols"],[480,"leo_passes::common::tree_node"],[514,"leo_passes::common::type_table"],[536,"leo_passes::const_propagation"],[557,"leo_passes::const_propagation::const_propagate_statement"],[559,"leo_passes::const_propagation::const_propagator"],[617,"leo_passes::dead_code_elimination"],[621,"leo_passes::dead_code_elimination::dead_code_eliminator"],[653,"leo_passes::destructuring"],[657,"leo_passes::destructuring::destructurer"],[687,"leo_passes::flattening"],[691,"leo_passes::flattening::flattener"],[775,"leo_passes::flattening::flattener::ReturnGuard"],[777,"leo_passes::function_inlining"],[782,"leo_passes::function_inlining::assignment_renamer"],[808,"leo_passes::function_inlining::function_inliner"],[840,"leo_passes::loop_unrolling"],[860,"leo_passes::loop_unrolling::duplicate"],[881,"leo_passes::loop_unrolling::range_iterator"],[917,"leo_passes::loop_unrolling::unroller"],[951,"leo_passes::pass"],[955,"leo_passes::static_analysis"],[961,"leo_passes::static_analysis::analyzer"],[993,"leo_passes::static_analysis::await_checker"],[1016,"leo_passes::static_analysis::future_checker"],[1065,"leo_passes::static_single_assignment"],[1069,"leo_passes::static_single_assignment::static_single_assigner"],[1122,"leo_passes::symbol_table_creation"],[1150,"leo_passes::type_checking"],[1155,"leo_passes::type_checking::checker"],[1259,"leo_passes::type_checking::scope_state"],[1285,"leo_ast::program"],[1286,"core::result"],[1287,"core::any"],[1288,"leo_ast::expressions::access"],[1289,"alloc::string"],[1290,"leo_ast::expressions::array"],[1291,"leo_ast::access::array_access"],[1292,"leo_ast::statement::assert"],[1293,"leo_ast::statement::assign"],[1294,"leo_ast::access::associated_constant_access"],[1295,"leo_ast::access::associated_function_access"],[1296,"leo_ast::expressions::binary"],[1297,"leo_ast::statement::block"],[1298,"leo_ast::expressions::call"],[1299,"leo_ast::expressions::cast"],[1300,"leo_ast::statement::conditional"],[1301,"leo_ast::statement::console::console_statement"],[1302,"leo_ast::statement::definition"],[1303,"leo_ast::expressions::err"],[1304,"leo_ast::expressions"],[1305,"leo_ast::statement::expression"],[1306,"leo_ast::functions"],[1307,"leo_ast::common::location"],[1308,"leo_ast::common::identifier"],[1309,"leo_ast::statement::iteration"],[1310,"leo_ast::expressions::locator"],[1311,"leo_ast::mapping"],[1312,"leo_ast::access::member_access"],[1313,"leo_ast::struct"],[1314,"leo_ast::statement::return_"],[1315,"leo_ast::statement"],[1316,"leo_ast::expressions::struct_init"],[1317,"leo_ast::expressions::ternary"],[1318,"leo_ast::expressions::tuple"],[1319,"leo_ast::types::type_"],[1320,"leo_ast::functions::mode"],[1321,"leo_ast::expressions::unary"],[1322,"leo_ast::expressions::unit"],[1323,"leo_ast::expressions::literal"],[1324,"core::fmt"],[1325,"leo_ast::common::node"],[1326,"leo_span::symbol"],[1327,"indexmap::set"],[1328,"core::option"],[1329,"core::cmp"],[1330,"core::iter::traits::iterator"],[1331,"alloc::boxed"],[1332,"core::ops::function"],[1333,"alloc::vec"],[1334,"leo_errors::errors"],[1335,"leo_span::span"],[1336,"serde::de"],[1337,"serde::ser"],[1338,"serde_json::value"],[1339,"ratatui::text::line"],[1340,"smol_str"],[1341,"ratatui::text::span"],[1342,"ratatui::text::text"],[1343,"compact_str"],[1344,"core::clone"],[1345,"leo_errors::errors::static_analyzer::static_analyzer_error"],[1346,"leo_errors::emitter"],[1347,"leo_ast::common::node_builder"],[1348,"leo_ast::statement::const_"],[1349,"leo_ast::program::program_scope"],[1350,"leo_ast::access::tuple_access"],[1351,"leo_interpreter::value"],[1352,"leo_ast::types::array"],[1353,"leo_ast::types::tuple"],[1354,"indicatif::progress_bar"],[1355,"indicatif::iter"],[1356,"leo_errors::errors::loop_unroller::loop_unroller_errors"],[1357,"leo_ast::stub"],[1358,"snarkvm_console_network"],[1359,"leo_errors::errors::static_analyzer::static_analyzer_warning"],[1360,"leo_ast::stub::function_stub"],[1361,"leo_ast::functions::core_function"],[1362,"leo_errors::errors::type_checker::type_checker_error"],[1363,"leo_errors::errors::type_checker::type_checker_warning"],[1364,"leo_ast::types::core_constant"],[1365,"leo_ast::functions::variant"]],"i":"```L`AAj10``10`````1A@f0`2`20``020``2``````Ad000000000000000000000000000000000000000000000000000000000000000000```````````FfFh1010101001010101010101011010101010101010`Hb`````Gf101000101010nA`AAl33333343434343321033343434343`Hf000000000000000000000000000000`Hn00000000000000Jb``0``0```j00IjIl210221010100In3213213213212333`J`43243204Jd553054345555555435555055555543525`43543543254335436``66``62106210621062106210262106210620621062066662222166221062101006210621006202620626210626262626210621062262106210```Kj0000On1101111011111111111111111`l00000000000000000000``AAj0000````0000000000```L`000000000000000000000000000000000000000000000000000000`0`````Mb000000000000000000000000000000`````Md0000000000000000000000000000````MfMh``0`10Mj021021212121000021021002100021202102100000000000000000000002102102102100021AAn0``````N`000000000000000000000000`Nb000000000000000000000000000000`AB`0000`00000`000```0`Nd0000`00000000000000`Nf0``0Nh10001010100101010000010101010`O`00000000000000000000000000000000ABb0`0```````Of000000000000000000000000000000`Ol000000000000000000000A@`00`00`00A@b10111110101010101`001011010101000000001`````A@d000000000000000000000000000000000000000000000000000`A@f00000000000000000000000000```````A@j000000000000AAd1011111110101101111011111101110111000111111101010111111111111111111111111111111111111101`AAf000000000000000000000000","f":"```````````````````````````````````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}```{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}`{cc{}}`{{}f}{{}c{}}{{{b{j}}{b{l}}{b{n}}{b{A`}}{b{Ab}}}Ad}``````{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}```{{{b{dAd}}{b{Aj}}}{{An{AlAl}}}}{{{b{dAd}}{b{B`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bd}}}Al}{{{b{dAd}}{b{Bf}}}Al}{{{b{dAd}}{b{Bh}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bl}}}{{An{AlAl}}}}{{{b{dAd}}{b{Bn}}}Al}{{{b{dAd}}{b{C`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cd}}}Al}{{{b{dAd}}{b{Cf}}}Al}{{{b{dAd}}{b{Ch}}}Al}{{{b{dAd}}{b{Cj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cl}}}{{An{AlAl}}}}{{{b{dAd}}{b{Cn}}}Al}{{{b{dAd}}{b{D`}}}Al}{{{b{dAd}}{b{D`}}{b{{Dd{Db}}}}}Al}{{{b{dAd}}{b{Df}}}{{An{AlAl}}}}{{{b{dAd}}{b{Dh}}}Al}{{{b{dAd}}{b{Dj}}}{{An{AlAl}}}}{{{b{dAd}}{b{Dl}}}Al}{{{b{dAd}}{b{Dn}}}{{An{AlAl}}}}{{{b{dAd}}{b{Ab}}}Al}{{{b{dAd}}{b{E`}}}Al}{{{b{dAd}}{b{Eb}}}Al}{{{b{dAd}}{b{Ed}}}Al}2{{{b{dAd}}{b{Ef}}}{{An{AlAl}}}}3{{{b{dAd}}{b{Eh}}}{{An{AlAl}}}}{{{b{dAd}}{b{Ej}}}{{An{AlAl}}}}{{{b{El}}}Al}{{{b{Ad}}{b{El}}En}Al}{{{b{dAd}}{b{F`}}}{{An{AlAl}}}}{{{b{dAd}}{b{Fb}}}{{An{AlAl}}}}{{{b{dAd}}{b{Fd}}}{{An{AlAl}}}}{{}c{}}```````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Ff}}}Ff}{{{b{Fh}}}Fh}{{b{b{dc}}}h{}}0{{bFj}h}0`{{}Ff}{{}Fh}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{Ff}}{b{dFl}}}Fn}{{{b{Fh}}{b{dFl}}}Fn}{cc{}}0{{}f}0`{{}c{}}0{{{b{Ff}}DfClG`}Ed}{{{b{dFh}}DfClG`}Ed}{bc{}}0{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0{{{b{Ff}}ce}GbGdGd}{{{b{dFh}}ce}GbGdGd}{{}c{}}0```````{{{b{d{Gf{c}}}}cc}hGh}{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{{Gf{c}}}}c{b{d{Gj{c}}}}{b{d{Gj{c}}}}}{{Gl{c}}}Gh}{{{b{{Gf{c}}}}c}GnGh}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0````{{{b{{Gf{c}}}}{b{{Gf{c}}}}}Gn{H`Gh}}{{b{b{c}}}Gn{}}000{{{b{{Hb{c}}}}{b{dFl}}}Fn{HdGh}}{{{b{{Gf{c}}}}{b{dFl}}}Fn{HdGh}}{cc{}}0{{}f}0{{}c{}}0{{{Gj{c}}}{{Gf{c}}}Gh}````{{{b{{Gf{c}}}}}{{Af{{Gj{c}}{Hb{c}}}}}Gh}{{{b{d{Gf{c}}}}{b{{Gj{c}}}}}hGh}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0{{}c{}}0`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Hf}}}Hf}{{b{b{dc}}}h{}}{{bFj}h}{{}Hf}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{Hf}}{b{Hf}}}Gn}{{b{b{c}}}Gn{}}000{{{b{Hf}}{b{dFl}}}Fn}{cc{}}`{{}f}{{}c{}}{{{b{Hf}}}{{`{{Hj{}{{Hh{{b{Gb}}}}}}}}}}{{{b{Hf}}Gb}{{Gl{{b{Gb}}}}}}{{{b{Hf}}{b{Gb}}}{{Gl{{b{G`}}}}}}`{{{Gl{{Hl{Hf}}}}}Hf}`{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{{b{dHf}}GbGbG`}h}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}{{}f}{{}c{}}{c{{Hn{c}}}{{Ib{{b{Df}}}{{I`{Cl}}}}}}{{{b{d{Hn{c}}}}Df}{{An{Cle}}}{{Ib{{b{Df}}}{{I`{Cl}}}}}{}}`>=<:```````````{{{b{dj}}DbDb{Id{Db}}{Id{El}}}{{If{h}}}}:::999{{{b{j}}DbIh}{{If{h}}}}{{{b{j}}GbGbIh}{{If{h}}}}{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{b{b{dc}}}h{}}0{{bFj}h}0``{{}j}{{}Ij}{{}Il}{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{fh}00{{{b{Ij}}G`}Ij}{{{b{dj}}}h}{{{b{dj}}{Gl{G`}}}h}{{{b{dj}}G`G`}h}{{{b{E`}}{b{E`}}}Gn}`{{{b{j}}{b{dFl}}}Fn}{{{b{Ij}}{b{dFl}}}Fn}{{{b{Il}}{b{dFl}}}Fn}{cc{}}00```````{{}f}00`{{{b{dj}}GbGbCl}h}{{{b{dj}}DbD`}{{If{h}}}}{{{b{dj}}DbIn}{{If{h}}}}{{{b{dj}}DbE`}{{If{h}}}}{{{b{dj}}GbGbE`}{{If{h}}}}{{{b{dj}}GbGbIn}{{If{h}}}}{{}c{}}00{{{b{j}}}{{`{{Hj{}{{Hh{{An{Db{b{J`}}}}}}}}}}}}{{{b{j}}}{{`{{Hj{}{{Hh{{An{Db{b{E`}}}}}}}}}}}}{{{b{j}}}{{`{{Hj{}{{Hh{{An{Gb{b{E`}}}}}}}}}}}}``{{{b{j}}GbGb}{{Gl{Cl}}}}{{{b{j}}Db}{{Gl{{b{J`}}}}}}{{{b{j}}Db}{{Gl{{b{In}}}}}}{{{b{j}}Db}{{Gl{{b{E`}}}}}}{{{b{j}}Gb}{{Gl{{b{E`}}}}}}{{{b{j}}GbGb}{{Gl{In}}}}{{G`{Gl{G`}}}Ij}`````{bc{}}0{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00`{bAh}00`{{}c{}}00```````{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{Jb}}}Jb}{{{b{In}}}In}{{{b{J`}}}J`}{{{b{Jd}}}Jd}{{b{b{dc}}}h{}}000{{bFj}h}000`{f{{b{c}}}{}}000{f{{b{dc}}}{}}000{c{{Af{Jb}}}Jf}{c{{Af{In}}}Jf}{c{{Af{Jd}}}Jf}{fh}000{{{b{Jb}}{b{Jb}}}Gn}{{{b{In}}{b{In}}}Gn}{{{b{Jd}}{b{Jd}}}Gn}{{b{b{c}}}Gn{}}0000000`{{{b{Jb}}{b{dFl}}}Fn}0{{{b{In}}{b{dFl}}}Fn}0{{{b{J`}}{b{dFl}}}Fn}{{{b{Jd}}{b{dFl}}}Fn}{cc{}}000```{{}f}000{{}c{}}000`{{{b{Jb}}c}AfJh}{{{b{In}}c}AfJh}{{{b{Jd}}c}AfJh}`{{{b{dJj}}{b{Jl}}}{{Af{c}}}{}}00{bJn}0{bc{}}000{bK`}0{bKb}0{bAl}0{bKd}0{c{{Af{e}}}{}{}}000{{}{{Af{c}}}{}}000{b{{Af{KfKh}}}}0`{bAh}000{{}c{}}000```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{{Kj{c}}}}}{{Kj{c}}}{KlKn}}{{b{b{dc}}}h{}}{{bFj}h}``{{{b{d{Kj{c}}}}}{{Kj{c}}}Kn}``{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}``{{{b{{Kj{c}}}}{b{{Kj{c}}}}}Gn{H`Kn}}{{b{b{c}}}Gn{}}000{{{b{{Kj{c}}}}{b{dFl}}}Fn{HdKn}}{cc{}}{{}f}{{}c{}}{{{Gj{c}}}{{Kj{c}}}Kn}{{{b{d{Kj{c}}}}{b{c}}}GnKn}{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{l}}}l}{{b{b{dc}}}h{}}{{bFj}h}{{}l}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{l}}{b{dFl}}}Fn}{cc{}}{{{b{l}}{b{G`}}}{{Gl{El}}}}{{}f}`{{{b{l}}G`El}h}{{}c{}}{bc{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}```{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}``````?>=;975432{{}Ed}{{{b{Ed}}}Gn}``32``{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{{{b{L`}}Lb}h}{cc{}}`{{{b{dL`}}G`e}c{}{{Ld{{b{dL`}}}{{I`{c}}}}}}{{}f}{{}c{}}{{{b{Lf}}{b{dj}}{b{l}}{b{Lh}}}L`}``{{{b{dL`}}Aj}{{An{Clc}}}{}}{{{b{dL`}}B`}{{An{Clc}}}{}}{{{b{dL`}}Bb}{{An{Clc}}}{}}{{{b{dL`}}Bd}{{An{Edc}}}{}}{{{b{dL`}}Bf}{{An{Edc}}}{}}{{{b{dL`}}Bh}{{An{Clc}}}{}}{{{b{dL`}}Bj}{{An{Clc}}}{}}{{{b{dL`}}Bl}{{An{Clc}}}{}}{{{b{dL`}}Bn}{{An{Bnc}}}{}}{{{b{dL`}}C`}{{An{Clc}}}{}}{{{b{dL`}}Cb}{{An{Clc}}}{}}{{{b{dL`}}Cd}{{An{Edc}}}{}}{{{b{dL`}}Cf}{{An{Edc}}}{}}{{{b{dL`}}Lj}{{An{Edc}}}{}}{{{b{dL`}}Ch}{{An{Edc}}}{}}{{{b{dL`}}Cj}{{An{Clc}}}{}}{{{b{dL`}}Cl}{{An{Clc}}}{}}{{{b{dL`}}Cn}{{An{Edc}}}{}}{{{b{dL`}}D`}D`}{{{b{dL`}}Df}{{An{Clc}}}{}}{{{b{dL`}}Dh}{{An{Edc}}}{}}{{{b{dL`}}Fd}{{An{Clc}}}{}}{{{b{dL`}}Dj}{{An{Clc}}}{}}{{{b{dL`}}Dn}{{An{Clc}}}{}}{{{b{dL`}}Ll}Ll}{{{b{dL`}}Eb}{{An{Edc}}}{}}{{{b{dL`}}Ef}{{An{Clc}}}{}}{{{b{dL`}}Eh}{{An{Clc}}}{}}{{{b{dL`}}Ej}{{An{Clc}}}{}}{{{b{dL`}}Ln}{{An{Clc}}}{}}{{{b{dL`}}F`}{{An{Clc}}}{}}{{{b{dL`}}Fb}{{An{Clc}}}{}}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{{b{M`}}Ih{b{Lh}}}Cl}{{}c{}}`````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}``{{{b{Lh}}}Mb}`{{{b{dMb}}Bd}{{An{Edc}}}{}}{{{b{dMb}}Bf}{{An{Edc}}}{}}{{{b{dMb}}Bj}{{An{Clc}}}{}}{{{b{dMb}}Bn}{{An{Bnc}}}{}}{{{b{dMb}}Cd}{{An{Edc}}}{}}{{{b{dMb}}Cf}{{An{Edc}}}{}}{{{b{dMb}}Ch}{{An{Edc}}}{}}{{{b{dMb}}Cn}{{An{Edc}}}{}}{{{b{dMb}}D`}D`}{{{b{dMb}}Df}{{An{Clc}}}{}}{{{b{dMb}}Dh}{{An{Edc}}}{}}{{{b{dMb}}Eb}{{An{Edc}}}{}}{{{b{dMb}}Ef}{{An{Clc}}}{}}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{}c{}}``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{l}}{b{Lh}}{b{Ff}}}Md}`{{{b{dMd}}Bf}{{An{Edc}}}{}}{{{b{dMd}}Bn}{{An{Bnc}}}{}}{{{b{dMd}}Cd}{{An{Edc}}}{}}{{{b{dMd}}Cf}{{An{Edc}}}{}}{{{b{dMd}}Ch}{{An{Edc}}}{}}{{{b{dMd}}D`}D`}{{{b{dMd}}Dh}{{An{Edc}}}{}}{{{b{dMd}}Eb}{{An{Edc}}}{}}{{{b{dMd}}Ln}{{An{Clc}}}{}}{{{b{dMd}}DfCl}Ed}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}`{bAh}`{{}c{}}`````````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Mf}}}Mf}{{{b{Mh}}}Mh}{{b{b{dc}}}h{}}0{{bFj}h}0`{{{b{dMj}}}{{Gl{{An{Df{Id{Ed}}}}}}}}0{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{ce{}{}}{fh}00{{{b{dMj}}{b{Jl}}{Id{{An{{Gl{Cl}}Cl}}}}}{{An{Cl{Id{Ed}}}}}}{{{b{dMj}}{b{dBn}}{Id{{An{{Gl{Cl}}Eb}}}}}h}{cc{}}00{MfDf}{{}f}00{{}c{}}00`{{{b{j}}{b{l}}{b{Lh}}{b{Ff}}}Mj}``{{{b{dMj}}Bd}{{An{Edc}}}{}}{{{b{dMj}}Bf}{{An{Edc}}}{}}{{{b{dMj}}Bn}{{An{Bnc}}}{}}{{{b{dMj}}Cd}{{An{Edc}}}{}}{{{b{dMj}}Cf}{{An{Edc}}}{}}{{{b{dMj}}Ch}{{An{Edc}}}{}}{{{b{dMj}}D`}D`}{{{b{dMj}}Dh}{{An{Edc}}}{}}{{{b{dMj}}Ll}Ll}{{{b{dMj}}Eb}{{An{Edc}}}{}}{{{b{dMj}}Ef}{{An{Clc}}}{}}{{{b{dMj}}Eh}{{An{Clc}}}{}}`{{{b{dMj}}DfCl}Ed}`{{{b{dMj}}{b{Ml}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{{{b{dMj}}{b{E`}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{{{b{dMj}}{b{Mn}}{b{Cl}}{b{Df}}{b{Df}}}{{An{Cl{Id{Ed}}}}}}{bc{}}0{c{{Af{e}}}{}{}}00{{}{{Af{c}}}{}}00{bAh}00`{{{b{dMj}}Cl}{{An{DfEd}}}}{{}c{}}00`````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dN`}}}h}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{dN`}}c}h{{Hj{}{{Hh{{An{GbGbG`}}}}}}}}{{{b{Ff}}}N`}{{{b{dN`}}Bf}{{An{Edc}}}{}}{{{b{dN`}}Cd}{{An{Edc}}}{}}{{{b{dN`}}Cf}{{An{Edc}}}{}}{{{b{dN`}}Ch}{{An{Edc}}}{}}{{{b{dN`}}Df}{{An{Clc}}}{}}{{{b{dN`}}Dh}{{An{Edc}}}{}}{{{b{dN`}}Ef}{{An{Clc}}}{}}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{Lh}}{b{A`}}{b{Ff}}{b{l}}}Nb}``{{{b{dNb}}Bf}{{An{Edc}}}{}}{{{b{dNb}}Bn}{{An{Bnc}}}{}}{{{b{dNb}}C`}{{An{Clc}}}{}}{{{b{dNb}}Cd}{{An{Edc}}}{}}{{{b{dNb}}Cf}{{An{Edc}}}{}}{{{b{dNb}}Ch}{{An{Edc}}}{}}{{{b{dNb}}Cn}{{An{Edc}}}{}}{{{b{dNb}}D`}D`}{{{b{dNb}}Dh}{{An{Edc}}}{}}{{{b{dNb}}Ll}Ll}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}`{cc{}}{{}f}{{}c{}}```;:9```8`76543{{Bn{b{dj}}{b{Lh}}}Bn}3{{{b{dNd}}G`G`e}c{}{{Ld{{b{dNd}}}{{I`{c}}}}}}32`{{{b{dNd}}Bn}{{An{Bnc}}}{}}{{{b{dNd}}Cd}{{An{Edc}}}{}}{{{b{dNd}}Dh}{{An{Edc}}}{}}{{{b{dNd}}Ed}{{An{Edc}}}{}}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0``{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0`{cc{}}0{{}f}0{{}c{}}0{{}c{}}{{ccNf}{{Nh{c}}}Nj}{{{b{d{Nh{c}}}}}{{Gl{e}}}Nj{}}{Nl{{Nn{c}}}{}}??>>==<<`;:`98{ce{}{}}8{{{b{O`}}Ob}h}8`{{{b{dO`}}G`e}c{}{{Ld{{b{dO`}}}{{I`{c}}}}}}87```{{{b{dj}}{b{l}}{b{Lf}}{b{Lh}}}O`}`{{{b{dO`}}Bn}{{An{Bnc}}}{}}{{{b{dO`}}Lj}{{An{Edc}}}{}}{{{b{dO`}}Ch}{{An{Edc}}}{}}{{{b{dO`}}D`}D`}{{{b{dO`}}Dh}{{An{Edc}}}{}}{{{b{dO`}}Ll}Ll}{{{b{dO`}}Od}Od}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{{b{dO`}}Dh}Ed}{{{b{dO`}}{b{Dh}}c}EdNj}{{}c{}}```{ce{}{}}```````{{{b{d{Of{c}}}}{b{{Gl{{b{Cl}}}}}}Ih}hOh}{{{b{{Of{c}}}}GbGbIh}hOh}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}6{fh}{{{b{{Of{c}}}}Lb}hOh}{{{b{{Of{c}}}}Oj}hOh}{cc{}}`{{}f}{{}c{}}{{{b{j}}{b{l}}{b{Lf}}fGn}{{Of{c}}}Oh}```{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}``{{{b{d{Of{c}}}}{b{Aj}}{b{e}}}gOh{}{}}{{{b{d{Of{c}}}}{b{C`}}{b{e}}}gOh{}{}}{{{b{d{Of{c}}}}{b{Cd}}}hOh}{{{b{d{Of{c}}}}{b{D`}}}hOh}{{{b{d{Of{c}}}}{b{Ll}}}hOh}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dOl}}GnIh}{{Af{{Id{On}}Oj}}}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}`{{{b{dOl}}Gn{Id{On}}}h}{{{b{dOl}}Gn{Id{On}}}{{Id{On}}}}{cc{}}{{}f}{{}c{}}`{{fGn}Ol}{{{b{dOl}}{b{Df}}}Gn}{{{b{dOl}}{Gj{Gb}}}h}``{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}{{}c{}}`````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{A@`}}}A@`}{{b{b{dc}}}h{}}{{bFj}h}{{}A@`}{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{A@b}}Lb}h}{{{b{A@`}}{b{dFl}}}Fn}{cc{}}0{{{b{D`}}{b{l}}{b{Lf}}}h}`{{}f}0{{}c{}}0{bc{}}{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0`{{{b{dA@b}}{b{Aj}}{b{c}}}e{}{}}{{{b{dA@b}}{b{C`}}{b{c}}}e{}{}}{{{b{dA@b}}{b{Ch}}}h}{{{b{dA@b}}{b{Cl}}{b{c}}}e{}{}}{{{b{dA@b}}{b{Eb}}}h}{{{b{dA@b}}{b{Ej}}{b{c}}}e{}{}}{{}c{}}0``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{dA@d}}Aj}c{}}{{{b{dA@d}}B`}c{}}{{{b{dA@d}}Bd}c{}}{{{b{dA@d}}Bf}c{}}{{{b{dA@d}}Bl}c{}}{{{b{dA@d}}Bn}c{}}{{{b{dA@d}}C`}c{}}{{{b{dA@d}}Cb}c{}}{{{b{dA@d}}Cd}c{}}{{{b{dA@d}}Cf}c{}}{{{b{dA@d}}Lj}c{}}{{{b{dA@d}}Ch}c{}}{{{b{dA@d}}Cn}c{}}{{{b{dA@d}}D`}c{}}{{{b{dA@d}}Df}c{}}{{{b{dA@d}}Dh}c{}}{{{b{dA@d}}Fd}c{}}{{{b{dA@d}}Dj}c{}}{{{b{dA@d}}Ab}c{}}{{{b{dA@d}}Ll}c{}}{{{b{dA@d}}Eb}c{}}{{{b{dA@d}}E`}c{}}{{{b{dA@d}}Ef}c{}}{{{b{dA@d}}Eh}c{}}{{{b{dA@d}}Ej}c{}}{{{b{dA@d}}F`}c{}}{{{b{dA@d}}Fb}c{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}{{}f}{{}c{}}`{{{b{Lh}}{b{j}}{b{l}}{b{Ff}}}A@d}`{{{b{dA@d}}}Hf}`{{{b{dA@d}}}h}`{{{b{dA@d}}DfCl}Ed}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`{{{b{dA@d}}Cl}{{An{DfEd}}}}{{}c{}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{ce{}{}}{fh}{cc{}}`{{}f}{{}c{}}`{{{b{Lf}}}A@f}```>=<{{{b{dA@f}}{b{D`}}}h}{{{b{dA@f}}{b{A@h}}}h}{{{b{dA@f}}{b{Ab}}}h}{{{b{dA@f}}{b{Dl}}}h}{{{b{dA@f}}{b{Ll}}}h}{{{b{dA@f}}{b{E`}}}h}0{{{b{dA@f}}{b{Od}}}h}{{}c{}}```````{{{b{dA@j}}El{b{{Gl{El}}}}Ih}El}{{{b{A@j}}{b{El}}Ih}h}00000{{{b{dA@j}}IhGb{b{El}}}h}{{{b{dA@j}}{b{El}}{b{El}}Ih}h}{{{b{dA@j}}{b{El}}Ih}h}3``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0`{{{b{dA@j}}{b{Jl}}GnIh}h}{{{b{dA@j}}A@l{b{{Dd{{An{ElIh}}}}}}Ih}El}{{{b{A@j}}{b{{Gl{El}}}}{b{{Gl{El}}}}Ih}h}{{{b{dA@j}}{b{D`}}Gn}h}`{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{ce{}{}}{fh}0{{{b{A@j}}A@n}h}{{{b{A@j}}AA`}h}{{{b{A@j}}{b{El}}{b{El}}}Gn}{cc{}}0{{{b{A@j}}{b{El}}{b{Df}}}{{Gl{AAb}}}}{{{b{A@j}}{b{Df}}{b{Df}}}{{Gl{A@l}}}}`{{{b{dA@j}}e}c{}{{Ld{{b{dA@j}}}{{I`{c}}}}}}{{{b{dA@j}}G`e}c{}{{Ld{{b{dA@j}}}{{I`{c}}}}}}{{}f}0{{{b{dA@j}}Gb}h}{{{b{dA@j}}{Gl{El}}{b{Df}}ElIh}h}{{}c{}}0`{{{b{dA@j}}{Gl{Gb}}Gb}{{Gl{E`}}}}```{{{b{dA@j}}{b{El}}{b{{Gl{El}}}}Ih}h}{{{b{A@j}}{b{dEl}}{b{El}}}h}{{{b{dj}}{b{l}}{b{Lf}}AAd}A@j}``{{{b{dA@j}}Gb}Gn}`{c{{Af{e}}}{}{}}0{{}{{Af{c}}}{}}0{bAh}0``{{{b{dA@j}}{b{Aj}}{b{c}}}e{}{}}{{{b{dA@j}}{b{B`}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Bd}}}h}{{{b{dA@j}}{b{Bf}}}h}{{{b{dA@j}}{b{Bl}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Bn}}}h}{{{b{dA@j}}{b{C`}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Cb}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Cd}}}h}{{{b{dA@j}}{b{Cf}}}h}{{{b{dA@j}}{b{Lj}}}h}{{{b{dA@j}}{b{Ch}}}h}{{{b{dA@j}}{b{Cj}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Cl}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Cn}}}h}{{{b{dA@j}}{b{D`}}}h}{{{b{dA@j}}{b{A@h}}}h}{{{b{dA@j}}{b{Df}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Dh}}}h}{{{b{dA@j}}{b{Fd}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Dj}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Dl}}}h}{{{b{dA@j}}{b{Ab}}}h}{{{b{dA@j}}{b{Ll}}}h}{{{b{dA@j}}{b{Eb}}}h}{{{b{dA@j}}{b{Ed}}}h}{{{b{dA@j}}{b{E`}}}h}{{{b{dA@j}}{b{Ef}}{b{c}}}e{}{}}1{{{b{dA@j}}{b{Od}}}h}{{{b{dA@j}}{b{Eh}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Ej}}{b{c}}}e{}{}}{{{b{dA@j}}{b{F`}}{b{c}}}e{}{}}{{{b{dA@j}}{b{Fb}}{b{c}}}e{}{}}{{}c{}}0`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}`{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{cc{}}````{{}f}{{{b{dAAf}}AAh}h}{{}c{}}```{{{b{AAf}}}Db}{{}AAf}`{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}`>","D":"CFd","p":[[1,"reference",null,null,1],[0,"mut"],[1,"usize"],[1,"unit"],[5,"SymbolTable",258],[5,"TypeTable",514],[8,"StructGraph",158],[8,"CallGraph",158],[5,"Program",1285],[5,"CodeGenerator",37],[6,"Result",1286,null,1],[5,"TypeId",1287],[6,"AccessExpression",1288],[5,"String",1289],[1,"tuple",null,null,1],[5,"ArrayExpression",1290],[5,"ArrayAccess",1291],[5,"AssertStatement",1292],[5,"AssignStatement",1293],[5,"AssociatedConstant",1294],[5,"AssociatedFunction",1295],[5,"BinaryExpression",1296],[5,"Block",1297],[5,"CallExpression",1298],[5,"CastExpression",1299],[5,"ConditionalStatement",1300],[5,"ConsoleStatement",1301],[5,"DefinitionStatement",1302],[5,"ErrExpression",1303],[6,"Expression",1304],[5,"ExpressionStatement",1305],[5,"Function",1306],[5,"Location",1307],[1,"slice"],[5,"Identifier",1308],[5,"IterationStatement",1309],[5,"LocatorExpression",1310],[5,"Mapping",1311],[5,"MemberAccess",1312],[5,"Composite",1313],[5,"ReturnStatement",1314],[6,"Statement",1315],[5,"StructExpression",1316],[5,"TernaryExpression",1317],[5,"TupleExpression",1318],[6,"Type",1319],[6,"Mode",1320],[5,"UnaryExpression",1321],[5,"UnitExpression",1322],[6,"Literal",1323],[5,"Assigner",114],[5,"AssignerInner",114],[1,"u8"],[5,"Formatter",1324],[8,"Result",1324],[8,"NodeID",1325],[5,"Symbol",1326],[10,"Display",1324],[5,"DiGraph",158],[10,"Node",158],[5,"IndexSet",1327],[6,"Option",1328,null,1],[1,"bool"],[10,"PartialEq",1329],[6,"DiGraphError",158],[10,"Debug",1324],[5,"RenameTable",210],[17,"Item"],[10,"Iterator",1330],[5,"Box",1331,null,1],[5,"Replacer",242],[17,"Output"],[10,"Fn",1332],[5,"Vec",1333],[8,"Result",1334],[5,"Span",1335],[5,"LocalTable",258],[5,"LocalTableInner",258],[5,"VariableSymbol",363],[5,"FunctionSymbol",363],[6,"VariableType",363],[5,"Finalizer",363],[10,"Deserializer",1336],[10,"Serializer",1337],[6,"Value",1338],[1,"str"],[5,"Line",1339],[5,"SmolStr",1340],[5,"Span",1341],[5,"Text",1342],[5,"CompactString",1343],[6,"ToCompactStringError",1343],[5,"TreeNode",480],[10,"Clone",1344],[10,"Node",480],[5,"ConstPropagator",559],[6,"StaticAnalyzerError",1345],[10,"FnOnce",1332],[5,"Handler",1346],[5,"NodeBuilder",1347],[5,"ConstDeclaration",1348],[5,"ProgramScope",1349],[5,"TupleAccess",1350],[6,"Value",1351],[5,"DeadCodeEliminator",621],[5,"Destructurer",657],[6,"Guard",691],[6,"ReturnGuard",691],[5,"Flattener",691],[5,"ArrayType",1352],[5,"TupleType",1353],[5,"AssignmentRenamer",782],[5,"FunctionInliner",808],[5,"Duplicator",860],[6,"Clusivity",881],[5,"RangeIterator",881],[10,"LoopBound",881],[5,"ProgressBar",1354],[5,"ProgressBarIter",1355],[5,"Unroller",917],[6,"LoopUnrollerError",1356],[5,"Stub",1357],[5,"StaticAnalyzer",961],[10,"Network",1358],[6,"StaticAnalyzerWarning",1359],[5,"AwaitChecker",993],[8,"ConditionalTreeNode",480],[6,"Position",1016],[5,"FutureChecker",1016],[5,"StaticSingleAssigner",1069],[5,"SymbolTableCreator",1122],[5,"FunctionStub",1360],[5,"TypeChecker",1155],[6,"CoreFunction",1361],[6,"TypeCheckerError",1362],[6,"TypeCheckerWarning",1363],[6,"CoreConstant",1364],[5,"NetworkLimits",1155],[5,"ScopeState",1259],[6,"Variant",1365],[5,"ConstPropagatorOutput",536],[8,"ImportGraph",158],[15,"Constructed",775],[5,"UnrollerOutput",840],[10,"Pass",951]],"r":[[0,559],[1,536],[2,1122],[106,480],[259,363],[260,363],[266,363],[267,363],[536,559]],"b":[[418,"impl-Display-for-VariableType"],[419,"impl-Debug-for-VariableType"],[420,"impl-Debug-for-VariableSymbol"],[421,"impl-Display-for-VariableSymbol"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFMDnAACAAEACAABAAwAAAAUAAAAFgAAABkAAAAeAAEAIQAFACgAAQAtAAMANAAAAD0AAgBDAC8AdQAJAIAACQCMAAEAkwAHAJ0AAQCnAAQArQAFALcABgDAAAEAywAHANQADgDlAAAA7QADAPIAAAD0AAQA+gAAAPwADQAPAQ0AHwEMAC8BBAA3AQAAPgEDAFYBAABbAQgAZQECAGkBBwBzARMAiAEgAK0BAACwAQMAuQECAL0BGgDZAQcA5AEEAO4BAgDzAQUA+gEAAP4BBAAEAgkAEAIAABQCBgAcAgEAIAIGACgCAAAqAgUAMgIBADYCAwA+AgAAQAIAAEMCHwBkAgIAaAIMAHYCAAB8AgAAhAIAAIcCAACJAgIAjQIFAJQCBQCbAgAAngIAAKECBQCqAgEArQIAAK8CBAC2AgAAuQIAAL0CCwDMAgkA2wIDAOMCAADqAgEA7QIAAPUCDQAFAwIACgMEABADAgAUAwIAGAMAABoDAAAkAwUAKwMBAC4DAwAzAwAAOwMAAEADAABCAwAARAMCAEgDBwBRAwAAVQMNAGUDAQBoAwkAcwMBAHcDDACGAwEAigMOAJoDAwChAwEApwMAAKkDBgCxAwIAtwMCALwDBgDGAwEAyQMDANEDAADVAwAA1wMCANwDCADmAwIA7QMAAPUDHAAVBAIAGgQUADAEAQA8BAAAQQQAAEQEAQBMBAQAUgQAAFsEAABdBAIAYgQFAGkEAABsBAAAbwQAAHMEEgCHBAQAjgQAAJAEAACTBAMAmAQAAJ0EBgCsBAQAtgQDAL4EAADABAUAyAQmAPAEAgD4BAAAAQUCAAUFAAA=","P":[[39,"T"],[46,"Pass::Input,Pass::Output"],[47,""],[49,"T"],[51,""],[52,"U"],[53,""],[60,"U,T"],[61,"U"],[62,""],[104,"V"],[116,"T"],[120,""],[122,"T"],[124,""],[129,"T"],[133,""],[137,"T"],[139,""],[142,"U"],[144,""],[146,"T"],[148,"U,T"],[150,"U"],[152,""],[154,","],[156,"V"],[165,"N"],[166,"T"],[170,"N"],[172,"T"],[176,""],[182,"N"],[183,"K"],[187,"N"],[189,"T"],[191,""],[193,"U"],[195,"N"],[202,"U,T"],[204,"U"],[206,""],[208,"V"],[211,"T"],[213,""],[214,"T"],[215,""],[217,"T"],[219,""],[221,"K"],[225,""],[226,"T"],[228,""],[229,"U"],[230,""],[236,"T"],[237,"U,T"],[238,"U"],[239,""],[241,"V"],[243,"T"],[247,""],[248,"T"],[249,""],[250,"U"],[251,"F"],[252,"F,ExpressionReconstructor::AdditionalOutput"],[254,"U,T"],[255,"U"],[256,""],[257,"V"],[269,""],[270,"T"],[276,""],[280,"T"],[282,""],[289,"T"],[295,""],[307,"T"],[317,""],[327,"U"],[330,""],[347,"T"],[349,"U,T"],[352,"U"],[356,""],[360,"V"],[370,"T"],[378,""],[382,"T"],[386,""],[391,"T"],[399,"__D"],[402,""],[409,"K"],[418,""],[424,"T"],[431,""],[435,"U"],[440,"__S"],[444,"T"],[447,""],[449,"T"],[453,""],[461,"U,T"],[465,"U"],[469,""],[476,"V"],[483,"T"],[485,"N"],[486,"T"],[487,""],[490,"N"],[493,"T"],[495,""],[498,"N"],[499,"K"],[503,"N"],[504,"T"],[505,""],[506,"U"],[507,"N"],[509,"T"],[510,"U,T"],[511,"U"],[512,""],[513,"V"],[515,"T"],[517,""],[518,"T"],[519,""],[521,"T"],[523,""],[525,"T"],[526,""],[530,"U"],[531,"T"],[532,"U,T"],[533,"U"],[534,""],[535,"V"],[539,"T"],[549,""],[550,"T"],[551,""],[552,"U"],[553,"U,T"],[554,"U"],[555,""],[556,"V"],[557,""],[561,"T"],[567,"Pass::Input,Pass::Output"],[568,""],[570,"T"],[572,"T,"],[573,""],[574,"U"],[575,""],[578,"ExpressionReconstructor::AdditionalOutput"],[596,""],[597,"ExpressionReconstructor::AdditionalOutput"],[602,""],[603,"ExpressionReconstructor::AdditionalOutput"],[611,"U,T"],[612,"U"],[613,""],[616,"V"],[622,"T"],[626,"Pass::Input,Pass::Output"],[627,""],[628,"T"],[629,""],[630,"U"],[633,""],[635,"ExpressionReconstructor::AdditionalOutput"],[643,""],[644,"ExpressionReconstructor::AdditionalOutput"],[648,"U,T"],[649,"U"],[650,""],[652,"V"],[659,"T"],[663,"Pass::Input,Pass::Output"],[664,""],[665,"T"],[666,""],[667,"U"],[669,""],[671,"ExpressionReconstructor::AdditionalOutput"],[676,""],[677,"ExpressionReconstructor::AdditionalOutput"],[680,""],[681,"U,T"],[682,"U"],[684,""],[686,"V"],[700,"T"],[706,""],[708,"T"],[710,""],[715,"T"],[721,"Pass::Input,Pass::Output"],[722,""],[727,"T"],[730,""],[734,"U"],[738,""],[741,"ExpressionReconstructor::AdditionalOutput"],[747,""],[748,"ExpressionReconstructor::AdditionalOutput"],[749,""],[750,"ExpressionReconstructor::AdditionalOutput"],[754,""],[759,"T"],[761,"U,T"],[764,"U"],[767,""],[772,"V"],[784,"T"],[786,""],[787,"T"],[789,""],[790,"T"],[791,""],[792,"U"],[794,""],[795,""],[796,"ExpressionReconstructor::AdditionalOutput"],[804,"U,T"],[805,"U"],[806,""],[807,"V"],[810,"T"],[815,"Pass::Input,Pass::Output"],[816,""],[817,"T"],[818,""],[819,"U"],[821,""],[824,"ExpressionReconstructor::AdditionalOutput"],[831,""],[832,"ExpressionReconstructor::AdditionalOutput"],[833,""],[835,"U,T"],[836,"U"],[837,""],[839,"V"],[841,"T"],[845,""],[847,"T"],[848,""],[849,"U"],[853,"U,T"],[854,"U"],[855,""],[859,"V"],[861,"T"],[865,""],[867,"T"],[868,"T,"],[869,""],[870,"U"],[872,"ExpressionReconstructor::AdditionalOutput"],[877,"U,T"],[878,"U"],[879,""],[880,"V"],[886,"T"],[896,""],[899,"T"],[901,""],[903,"U"],[905,"I"],[907,"I,Iterator::Item"],[908,"T"],[909,"U,T"],[911,"U"],[913,""],[915,"V"],[918,"T"],[923,"Pass::Input,Pass::Output"],[924,""],[926,"T"],[928,"T,"],[929,""],[930,"U"],[934,""],[936,"ExpressionReconstructor::AdditionalOutput"],[939,""],[940,"ExpressionReconstructor::AdditionalOutput"],[941,""],[944,"U,T"],[945,"U"],[946,""],[949,"I"],[950,"V"],[954,"Pass::Input,Pass::Output"],[962,"N"],[965,"T"],[970,"Pass::Input,Pass::Output"],[971,""],[972,"N"],[974,"T"],[976,""],[977,"U"],[978,"N"],[982,"U,T"],[983,"U"],[984,""],[987,"N,ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[989,"N"],[992,"V"],[994,"T"],[996,""],[997,"T"],[999,""],[1003,"T"],[1004,""],[1005,"U"],[1007,""],[1012,"U,T"],[1013,"U"],[1014,""],[1015,"V"],[1025,"T"],[1029,""],[1030,"T"],[1031,""],[1033,"T"],[1037,""],[1041,"T"],[1043,""],[1047,"U"],[1049,"T"],[1050,"U,T"],[1052,"U"],[1054,""],[1057,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1059,""],[1060,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1061,""],[1062,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1063,"V"],[1071,"T"],[1073,"ExpressionConsumer::Output"],[1075,"StatementConsumer::Output"],[1077,"ExpressionConsumer::Output"],[1078,"StatementConsumer::Output"],[1079,"ExpressionConsumer::Output"],[1081,"StatementConsumer::Output"],[1086,"FunctionConsumer::Output"],[1087,"ExpressionConsumer::Output"],[1088,"StatementConsumer::Output"],[1089,"ExpressionConsumer::Output"],[1091,"ProgramConsumer::Output"],[1092,"ProgramScopeConsumer::Output"],[1093,"StatementConsumer::Output"],[1094,"StructConsumer::Output"],[1095,"ExpressionConsumer::Output"],[1100,"T"],[1102,"Pass::Input,Pass::Output"],[1103,""],[1104,"T"],[1105,""],[1106,"U"],[1108,""],[1116,"U,T"],[1117,"U"],[1118,""],[1121,"V"],[1123,"T"],[1127,"Pass::Input,Pass::Output"],[1128,""],[1129,"T"],[1131,""],[1132,"U"],[1134,""],[1138,"U,T"],[1139,"U"],[1140,""],[1149,"V"],[1157,""],[1170,"T"],[1175,""],[1180,"T"],[1184,"Pass::Input,Pass::Output"],[1185,""],[1190,"T"],[1192,""],[1195,"T,"],[1197,""],[1201,"U"],[1204,""],[1215,"U,T"],[1217,"U"],[1219,""],[1223,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1225,""],[1227,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1228,""],[1229,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1231,""],[1235,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1237,""],[1240,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1241,""],[1242,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1244,""],[1250,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1251,""],[1253,"ExpressionVisitor::AdditionalInput,ExpressionVisitor::Output"],[1257,"V"],[1260,"T"],[1265,""],[1266,"T"],[1271,""],[1273,"U"],[1277,""],[1280,"U,T"],[1281,"U"],[1282,""],[1284,"V"]]}],["leo_retriever",{"t":"CCEFNNNNNNNNNONNNNONOCNNNNNNNONONNCNOCCNONOCNNONONONNNNNFNNNNNNNNNNNNNNNNNNNNONONONNONNNNNNNPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNONNNNNNNNNONOONONNNNNNNFNNNNNNNONNNONNNNNNNONNONNNNNNNNONNPPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNONNNOHNNNNONONNOONHHNNNHNN","n":["program_context","retriever","Location","ProgramContext","add_checksum","add_compiled_file_path","add_dependencies","add_full_path","add_post_order","add_stub","borrow","borrow_mut","checksum","","clone","clone_into","clone_to_uninit","compiled_file_path","","dependencies","","dependency","deref","deref_mut","drop","fmt","from","","full_name","","full_path","","init","into","location","","","lock_file_entry","manifest","name","","network","","network_name","new_main","path","","post_order","","stub","","to_owned","try_from","try_into","type_id","vzip","Dependency","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","location","","name","","network","","new","path","","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Git","Local","Location","Network","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","from","hash","init","into","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","LockFileEntry","borrow","borrow_mut","checksum","clone","clone_into","clone_to_uninit","dependencies","deref","deref_mut","deserialize","drop","fmt","from","","init","into","location","name","","network","path","","serialize","take_from_value","to_owned","try_from","try_into","type_id","vzip","Manifest","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","dependencies","","deref","deref_mut","description","","deserialize","drop","fmt","from","init","into","license","","new","program","","read_from_dir","serialize","take_from_value","to_owned","try_from","try_into","type_id","version","","vzip","write_to_dir","CanaryV0","MainnetV0","NetworkName","TestnetV0","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","eq","equivalent","","","","fmt","","from","hash","id","init","into","serialize","take_from_value","to_line","to_owned","to_smolstr","to_span","to_string","to_text","try_from","","","try_into","try_to_compact_string","type_id","vzip","Retriever","borrow","borrow_mut","contexts","deref","deref_mut","drop","endpoint","fetch_from_network","from","get_context","init","into","name","new","phantom","prepare_local","process_local","project_path","registry_path","retrieve","retrieve_from_network","retrieve_local","try_from","try_into","type_id","verify_valid_program","vzip","write_lock_file"],"q":[[0,"leo_retriever"],[2,"leo_retriever::program_context"],[56,"leo_retriever::program_context::dependency"],[92,"leo_retriever::program_context::location"],[122,"leo_retriever::program_context::lock_file_entry"],[152,"leo_retriever::program_context::manifest"],[187,"leo_retriever::program_context::network_name"],[227,"leo_retriever::retriever"],[256,"std::path"],[257,"leo_span::symbol"],[258,"alloc::vec"],[259,"indexmap::set"],[260,"leo_ast::stub"],[261,"alloc::string"],[262,"core::fmt"],[263,"core::result"],[264,"core::any"],[265,"serde::de"],[266,"core::hash"],[267,"core::option"],[268,"serde::ser"],[269,"serde_json::value"],[270,"leo_errors::errors::package::package_errors"],[271,"ratatui::text::line"],[272,"smol_str"],[273,"ratatui::text::span"],[274,"ratatui::text::text"],[275,"leo_errors::errors"],[276,"compact_str"],[277,"leo_errors::errors::utils::util_errors"],[278,"snarkvm_console_network"],[279,"indexmap::map"]],"i":"````d0000000000000000`000000000000`00``0000`000000000000`Bb0000000000000000000000000000000000Bd0`000000000000000000000000000`Ch0000000000000000000000000000`Cj000000000000000000000000000000000Bf0`0000000000000000000000000000000000000`E`000000`000000000000``000`00","f":"````{{{f{bd}}}h}{{{f{bd}}{f{j}}}h}{{{f{bd}}{n{l}}}h}1{{{f{bd}}{A`{l}}}h}{{{f{bd}}Ab}Ad}{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{d}}}{{f{Af}}}}`{{{f{d}}}d}{{f{f{bc}}}h{}}{{fAh}h}{{{f{d}}}{{f{Aj}}}}`{{{f{d}}}{{n{l}}}}``{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{Alh}{{{f{d}}{f{bAn}}}B`}{Bbd}{cc{}};`7`{{}Al}{{}c{}}`{{{f{d}}}{{f{Bd}}}}```{{{f{d}}}{{f{l}}}}`{{{f{d}}}{{f{Bf}}}}``{{lAj{n{Bb}}}d}=`{{{f{d}}}{{f{{A`{l}}}}}}`{{{f{d}}}{{f{Ab}}}}`{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bb}}}Bb}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bb}}}Bl}{Alh}{{{f{Bb}}{f{Bb}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bb}}{f{bAn}}}B`}{cc{}}{{{f{Bb}}{f{bc}}}hBn}{{}Al}{{}c{}}{{{f{Bb}}}{{f{Bd}}}}`{{{f{Bb}}}{{f{Af}}}}`{{{f{Bb}}}{{f{{C`{Bf}}}}}}`{{AfBd{C`{Bf}}{C`{Aj}}}Bb}{{{f{Bb}}}{{f{{C`{Aj}}}}}}`{{{f{Bb}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}````{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bd}}}Bd}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bd}}}Bl}{Alh}{{{f{Bd}}{f{Bd}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bd}}{f{bAn}}}B`}{cc{}}{{{f{Bd}}{f{bc}}}hBn}{{}Al}{{}c{}}{{{f{Bd}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}`{{{f{Ch}}}Ch}{{f{f{bc}}}h{}}{{fAh}h}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Ch}}}Bl}{Alh}{{{f{Ch}}{f{bAn}}}B`}{cc{}}{{{f{d}}}Ch}{{}Al}{{}c{}}`{{{f{Ch}}}{{f{Cf}}}}``{{{f{Ch}}}{{C`{{f{Aj}}}}}}`{{{f{Ch}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Cj}}}Cj}{{f{f{bc}}}h{}}{{fAh}h}{{{f{Cf}}}Cj}{{{f{Cj}}}{{f{{C`{{n{Bb}}}}}}}}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{{{f{Cj}}}{{f{Af}}}}`{c{{Bh{Cj}}}Bl}{Alh}{{{f{Cj}}{f{bAn}}}B`}{cc{}}{{}Al}{{}c{}}6`{{{f{Cf}}{f{Cf}}{f{Cf}}{f{Cf}}{C`{{n{Bb}}}}}Cj}7`{{{f{j}}}{{Bh{CjCl}}}}{{{f{Cj}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}>`{{}c{}}{{{f{Cj}}{f{j}}}{{Bh{hCl}}}}````{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}{{{f{Bf}}}Bf}{{f{f{bc}}}h{}}{{fAh}h}{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{c{{Bh{Bf}}}Bl}{Alh}{{{f{Bf}}{f{Bf}}}Ad}{{f{f{c}}}Ad{}}000{{{f{Bf}}{f{bAn}}}B`}0{cc{}}{{{f{Bf}}{f{bc}}}hBn}{{{f{Bf}}}Cn}{{}Al}{{}c{}}{{{f{Bf}}c}BhCb}{{{f{bCd}}{f{Cf}}}{{Bh{c}}}{}}{fD`}{fc{}}{fDb}{fDd}{fAf}{fDf}{Af{{Bh{BfDh}}}}{{{f{Cf}}}{{Bh{BfDh}}}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{f{{Bh{DjDl}}}}{fBj}{{}c{}}`{f{{f{c}}}{}}{{{f{b}}}{{f{bc}}}{}}`{Al{{f{c}}}{}}{Al{{f{bc}}}{}}{Alh}`{{{f{Cf}}}{{Bh{AfDn}}}}{cc{}}{{{f{{E`{c}}}}{f{l}}}{{f{d}}}Eb}{{}Al}{{}c{}}`{{l{f{Aj}}{f{j}}Af}{{Bh{{E`{c}}Dn}}}Eb}`{{{f{b{E`{c}}}}l}{{Bh{{Ef{Aj{Ed{lAb}}}}Dn}}}Eb}{{{f{b{E`{c}}}}lAd}{{Bh{hDn}}}Eb}``{{{f{b{E`{c}}}}}{{Bh{{n{l}}Dn}}}Eb}{{{f{j}}{f{j}}{f{Af}}{f{Af}}}{{Bh{{Ef{Ab{n{Bb}}}}Dn}}}}{{{f{Af}}{f{Aj}}}{{Bh{{n{Bb}}Dn}}}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{fBj}{{{f{Cf}}{f{Cf}}}{{Bh{hDn}}}}{{}c{}}{{{f{{E`{c}}}}{f{l}}}{{Bh{hDn}}}Eb}","D":"Al","p":[[0,"mut"],[5,"ProgramContext",2],[1,"reference",null,null,1],[1,"unit"],[5,"Path",256],[5,"Symbol",257],[5,"Vec",258],[5,"IndexSet",259],[5,"Stub",260],[1,"bool"],[5,"String",261],[1,"u8"],[5,"PathBuf",256],[1,"usize"],[5,"Formatter",262],[8,"Result",262],[5,"Dependency",56],[6,"Location",92],[6,"NetworkName",187],[6,"Result",263,null,1],[5,"TypeId",264],[10,"Deserializer",265],[10,"Hasher",266],[6,"Option",267,null,1],[10,"Serializer",268],[6,"Value",269],[1,"str"],[5,"LockFileEntry",122],[5,"Manifest",152],[6,"PackageError",270],[1,"u16"],[5,"Line",271],[5,"SmolStr",272],[5,"Span",273],[5,"Text",274],[6,"LeoError",275],[5,"CompactString",276],[6,"ToCompactStringError",276],[6,"UtilError",277],[5,"Retriever",227],[10,"Network",278],[5,"IndexMap",279],[1,"tuple",null,null,1]],"r":[[2,92]],"b":[[205,"impl-Debug-for-NetworkName"],[206,"impl-Display-for-NetworkName"],[220,"impl-TryFrom%3CString%3E-for-NetworkName"],[221,"impl-TryFrom%3C%26str%3E-for-NetworkName"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPIADwAAABsAHQAEACMAJQBKAAEATQAiAHEAAQB0ABMAiQABAIwAHACqAAAArAAjANEAAgDVABcA7gABAPEADwA=","P":[[10,"T"],[12,""],[15,"T"],[16,""],[22,"T"],[24,""],[27,"T"],[28,""],[33,"U"],[35,""],[51,"T"],[52,"U,T"],[53,"U"],[54,""],[55,"V"],[57,"T"],[59,""],[60,"T"],[61,""],[62,"T"],[64,"__D"],[65,""],[67,"K"],[71,""],[72,"T"],[73,"__H"],[74,""],[75,"U"],[76,""],[85,"__S"],[86,"T"],[88,"U,T"],[89,"U"],[90,""],[91,"V"],[96,"T"],[98,""],[99,"T"],[100,""],[101,"T"],[103,"__D"],[104,""],[106,"K"],[110,""],[111,"T"],[112,"__H"],[113,""],[114,"U"],[115,"__S"],[116,"T"],[118,"U,T"],[119,"U"],[120,""],[121,"V"],[123,"T"],[126,""],[127,"T"],[128,""],[130,"T"],[132,"__D"],[133,""],[135,"T"],[136,""],[138,"U"],[140,""],[145,"__S"],[146,"T"],[148,"U,T"],[149,"U"],[150,""],[151,"V"],[153,"T"],[155,""],[156,"T"],[157,""],[161,"T"],[163,""],[165,"__D"],[166,""],[168,"T"],[169,""],[170,"U"],[171,""],[177,"__S"],[178,"T"],[180,"U,T"],[181,"U"],[182,""],[185,"V"],[186,""],[191,"T"],[193,""],[194,"T"],[195,""],[196,"T"],[198,"__D"],[199,""],[201,"K"],[205,""],[207,"T"],[208,"__H"],[209,""],[211,"U"],[212,"__S"],[213,"T"],[214,""],[215,"T"],[216,""],[222,"U,T"],[223,"U"],[224,""],[226,"V"],[228,"T"],[233,""],[236,"T"],[237,"N"],[238,""],[239,"U"],[241,"N"],[248,""],[250,"U,T"],[251,"U"],[252,""],[254,"V"],[255,"N"]]}],["leo_span",{"t":"EECCCECPGFFPFFFFHNNNNNNNNNNNNNNNONNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNONNNNNNNHONOOONNNOONNHHOHOOONNOONNNNNNNNNNNNNNNNNNNNNNNNNOFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNOQNNNNNNNONNNNNNNNNNNMNNMNNNNNNNNNNNFNNNNHNNNNNNHNNNNFGFPSJFPFNNNNNNNNNNNNNNNNNNQHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNOOQCOQNNNNNNNNNNNNNNNNNHSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS","n":["Span","Symbol","source_map","span","span_json","sym","symbol","Custom","FileName","LineCol","MultiByteChar","Real","SourceFile","SourceMap","SourceMapInner","SpanLocation","analyze_source_file","borrow","","","","","","","borrow_mut","","","","","","","bytepos_to_file_charpos","bytes","clone","","clone_into","","clone_to_uninit","","col","col_start","col_stop","contents_of_span","","default","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dummy","end_pos","eq","equivalent","","","find_line_col","find_source_file","find_source_file_index","fmt","","from","","","","","","","init","","","","","","","inner","into","","","","","","","is_not_test_framework","line","line_contents_of_span","line_start","line_stop","lines","load_file","lookup_file_pos","lookup_line","multibyte_chars","name","new","new_source","normalize_newlines","normalize_src","pos","remove_bom","source_file","","source_files","span_to_location","span_to_string","src","start_pos","to_owned","","to_string","try_allocate_address_space","try_from","","","","","","","try_into","","","","","","","type_id","","","","","","","used_address_space","BytePos","CharPos","Pos","Span","add","","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","default","","deref","","","deref_mut","","","deserialize","","drop","","","dummy","eq","","","equivalent","","","","","","","","","fmt","","","","from","","","from_u32","","","from_usize","","","hash","","hi","impl_pos","init","","","into","","","is_dummy","lo","new","partial_cmp","","serialize","","sub","","to_owned","","","to_string","to_u32","","","to_usize","","","try_from","","","try_into","","","type_id","","","SpanMapVisitor","borrow","borrow_mut","deref","deref_mut","deserialize","drop","expecting","fmt","from","init","into","serialize","try_from","try_into","type_id","visit_map","InnerInterner","InternedStr","Interner","Owned","PRE_DEFINED","SESSION_GLOBALS","SessionGlobals","Static","Symbol","as_str","as_u32","borrow","","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","cmp","compare","consts","create_session_if_not_set_then","default","","deref","","","","","","deref_mut","","","","","deserialize","drop","","","","","eq","","equivalent","","","","","","fmt","","from","","","","","get","hash","","init","","","","","inner","intern","","into","","","","","new","partial_cmp","prefill","prefilled","serde_from_symbol","serde_to_symbol","serialize","set","source_map","strings","sym","symbol_interner","symbols","to_owned","to_string","try_from","","","","","try_into","","","","","type_id","","","","","with_session_globals","As","Await","BHP1024","BHP256","BHP512","BHP768","ChaCha","CheatCode","Const","Else","False","Fn","For","Future","GEN","If","In","Keccak256","Keccak384","Keccak512","Let","Mapping","Mod","Mut","Pedersen128","Pedersen64","Poseidon2","Poseidon4","Poseidon8","Return","SHA3_256","SHA3_384","SHA3_512","SelfLower","SelfUpper","Star","Struct","True","Type","_nonce","abs","abs_wrapped","add","add_wrapped","address","aleo","and","assert","assert_eq","assert_neq","block","bool","caller","commit_to_address","commit_to_field","commit_to_group","console","constant","contains","decrement","div","div_wrapped","double","eq","field","function","get","get_or_use","group","gt","gte","hash_to_address","hash_to_field","hash_to_group","hash_to_i128","hash_to_i16","hash_to_i32","hash_to_i64","hash_to_i8","hash_to_scalar","hash_to_u128","hash_to_u16","hash_to_u32","hash_to_u64","hash_to_u8","height","i128","i16","i32","i64","i8","id","import","increment","inline","input","inv","leo","lt","lte","main","mapping","mul","mul_wrapped","nand","neg","neq","network","nor","not","or","owner","pow","pow_wrapped","print_mapping","private","program","public","rand_address","rand_bool","rand_field","rand_group","rand_i128","rand_i16","rand_i32","rand_i64","rand_i8","rand_scalar","rand_u128","rand_u16","rand_u32","rand_u64","rand_u8","record","rem","rem_wrapped","remove","scalar","set","set_block_height","shl","shl_wrapped","shr","shr_wrapped","signature","signer","square","square_root","string","stub","sub","sub_wrapped","to_x_coordinate","to_y_coordinate","transition","u128","u16","u32","u64","u8","verify","xor"],"q":[[0,"leo_span"],[7,"leo_span::source_map"],[150,"leo_span::span"],[254,"leo_span::span_json"],[271,"leo_span::symbol"],[381,"leo_span::symbol::sym"],[543,"alloc::vec"],[544,"alloc::string"],[545,"core::option"],[546,"alloc::rc"],[547,"core::fmt"],[548,"std::path"],[549,"std::io::error"],[550,"core::result"],[551,"core::any"],[552,"core::cmp"],[553,"serde::de"],[554,"core::hash"],[555,"serde::ser"],[556,"core::ops::function"],[557,"core::num::nonzero"]],"i":"```````Ad```0`````A`BfBjAnBb5j5432160506060603445221543216054321605432160450000222605432160543216025432160`324452555552``0`431225560615432160543216054321601````Aj0fAb2102102102102101010212102102121022102221110002210210D`21021323`3213213332132213213021021321321321`Df000`000000`0000```Ed```0`Dl0DnElEf3442103433333``23210344210343210343433344433210340342103400321034330033312``2`33210342103421034```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````","f":"````````````````{{{d{b}}f}{{l{{h{f}}{h{j}}}}}}{d{{d{c}}}{}}000000{{{d{n}}}{{d{nc}}}{}}000000{{{d{A`}}f}Ab}`{{{d{Ad}}}Ad}{{{d{j}}}j}{{d{d{nc}}}Af{}}0{{dAh}Af}0```{{{d{A`}}Aj}Al}{{{d{An}}Aj}{{B`{Al}}}}{{}An}{{}Bb}{Bd{{d{c}}}{}}000000{Bd{{d{nc}}}{}}000000{BdAf}000000{{}Bf}`{{{d{j}}{d{j}}}Bh}{{d{d{c}}}Bh{}}00{{{d{An}}f}{{B`{Bj}}}}{{{d{An}}f}{{B`{{Bl{A`}}}}}}{{{d{An}}f}{{B`{Bd}}}}{{{d{Ad}}{d{nBn}}}C`}{{{d{j}}{d{nBn}}}C`}{cc{}}000000{{}Bd}000000`{{}c{}}000000{{}Bh}`{{{d{An}}Aj}{{B`{Al}}}}```{{{d{An}}{d{Cb}}}{{Cd{{Bl{A`}}}}}}{{{d{A`}}f}{{l{BdAb}}}}{{{d{A`}}f}{{B`{Bd}}}}``{{AdAlf}A`}{{{d{An}}{d{b}}Ad}{{Bl{A`}}}}{{{d{nAl}}}Af}0`0```{{{d{An}}Aj}{{B`{Bf}}}}{{{d{An}}Aj}Al}``{dc{}}0{dAl}{{{d{nBb}}Cf}{{B`{f}}}}{c{{Ch{e}}}{}{}}000000{{}{{Ch{c}}}{}}000000{dCj}000000`````{{{d{Aj}}{d{Aj}}}Aj}{{AjAj}Aj}{{ff}f}{{AbAb}Ab}{d{{d{c}}}{}}00{{{d{n}}}{{d{nc}}}{}}00{{{d{Aj}}}Aj}{{{d{f}}}f}{{{d{Ab}}}Ab}{{d{d{nc}}}Af{}}00{{dAh}Af}00{{{d{f}}{d{f}}}Cl}{{{d{Ab}}{d{Ab}}}Cl}{{d{d{c}}}Cl{}}0{{}Aj}{{}f}{Bd{{d{c}}}{}}00{Bd{{d{nc}}}{}}00{c{{Ch{Aj}}}Cn}{c{{Ch{f}}}Cn}{BdAf}006{{{d{Aj}}{d{Aj}}}Bh}{{{d{f}}{d{f}}}Bh}{{{d{Ab}}{d{Ab}}}Bh}{{d{d{c}}}Bh{}}00000000{{{d{Aj}}{d{nBn}}}C`}0{{{d{f}}{d{nBn}}}C`}{{{d{Ab}}{d{nBn}}}C`}{cc{}}00{CfD`}{Cff}{CfAb}{BdD`}{Bdf}{BdAb}{{{d{Aj}}{d{nc}}}AfDb}{{{d{f}}{d{nc}}}AfDb}``{{}Bd}00{{}c{}}00{{{d{Aj}}}Bh}`{{ff}Aj}{{{d{f}}{d{f}}}{{B`{Cl}}}}{{{d{Ab}}{d{Ab}}}{{B`{Cl}}}}{{{d{Aj}}c}ChDd}{{{d{f}}c}ChDd}{{ff}f}{{AbAb}Ab}{dc{}}00{dAl}{{{d{D`}}}Cf}{{{d{f}}}Cf}{{{d{Ab}}}Cf}{{{d{D`}}}Bd}{{{d{f}}}Bd}{{{d{Ab}}}Bd}{c{{Ch{e}}}{}{}}00{{}{{Ch{c}}}{}}00{dCj}00`{d{{d{c}}}{}}{{{d{n}}}{{d{nc}}}{}}{Bd{{d{c}}}{}}{Bd{{d{nc}}}{}}{c{{Ch{Aj}}}Cn}{BdAf}{{{d{Df}}{d{nBn}}}C`}{{d{d{nBn}}}{{Ch{AfDh}}}}{cc{}}{{}Bd}{{}c{}}{{{d{Aj}}c}ChDd}>=<{{Dfc}{{Ch{e}}}Dj{}}`````````{{Dl{d{Dn}}e}c{}{{Eb{{d{b}}}{{E`{c}}}}}}{DlCf}>>>>>{{{d{Ed}}}{{d{b}}}}>>>>>{{{d{Dl}}}Dl}{{d{d{nc}}}Af{}}{{dAh}Af}{{{d{Dl}}{d{Dl}}}Cl}{{d{d{c}}}Cl{}}`{ec{}{{Eb{{d{Dn}}}{{E`{c}}}}}}{{}Dn}{{}Dl}{Bd{{d{c}}}{}}0000{{{d{Ed}}}{{d{c}}}{}}{Bd{{d{nc}}}{}}0000{c{{Ch{Dl}}}Cn}{BdAf}0000{{{d{Dl}}{d{Dl}}}Bh}{{{d{Ed}}{d{Ed}}}Bh}{{d{d{c}}}Bh{}}00000{{{d{Dl}}{d{nBn}}}C`}0{cc{}}0000{{{d{Ef}}Dle}c{}{{Eb{{d{b}}}{{E`{c}}}}}}{{{d{Dl}}{d{nc}}}AfDb}{{{d{Ed}}{d{nc}}}AfDb}{{}Bd}0000`{{{d{Ef}}{d{b}}}Dl}{{{d{b}}}Dl}{{}c{}}0000{CfDl}{{{d{Dl}}{d{Dl}}}{{B`{Cl}}}}{{{d{{Eh{{d{b}}}}}}}Ef}{{}Ef}{{{d{Ej}}c}ChDd}{c{{Ch{Ej}}}Cn}{{{d{Dl}}c}ChDd}``````{dc{}}{dAl}{c{{Ch{e}}}{}{}}0000{{}{{Ch{c}}}{}}0000{dCj}0000{ec{}{{Eb{{d{Dn}}}{{E`{c}}}}}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````","D":"Nj","p":[[1,"str"],[1,"reference",null,null,1],[5,"BytePos",150],[5,"Vec",543],[5,"MultiByteChar",7],[1,"tuple",null,null,1],[0,"mut"],[5,"SourceFile",7],[5,"CharPos",150],[6,"FileName",7],[1,"unit"],[1,"u8"],[5,"Span",150],[5,"String",544],[5,"SourceMap",7],[6,"Option",545,null,1],[5,"SourceMapInner",7],[1,"usize"],[5,"SpanLocation",7],[1,"bool"],[5,"LineCol",7],[5,"Rc",546,null,1],[5,"Formatter",547],[8,"Result",547],[5,"Path",548],[8,"Result",549],[1,"u32"],[6,"Result",550,null,1],[5,"TypeId",551],[6,"Ordering",552],[10,"Deserializer",553],[10,"Pos",150],[10,"Hasher",554],[10,"Serializer",555],[5,"SpanMapVisitor",254],[5,"Error",547],[10,"MapAccess",553],[5,"Symbol",271],[5,"SessionGlobals",271],[17,"Output"],[10,"FnOnce",556],[6,"InternedStr",271],[5,"Interner",271],[1,"slice"],[8,"NonZeroU32",557],[5,"InnerInterner",271]],"r":[[0,150],[1,271],[5,271]],"b":[[154,"impl-Add-for-%26Span"],[155,"impl-Add-for-Span"],[203,"impl-Debug-for-Span"],[204,"impl-Display-for-Span"],[327,"impl-Debug-for-Symbol"],[328,"impl-Display-for-Symbol"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKoBHwAAAAIABgABABIADQAiAAUAKQABAC0AFgBGAAMATQABAFYABgBoAAEAdgAAAH0AAgCBABQAnQAhAMAADwDTAAcA3QACAOYAGAAAAQMABQECAAkBAAAMAQMAFAEBABsBDwAtARwAUAEHAGABAABjAQIAaQEAAGwBEAB+AaEA","P":[[17,"T"],[31,""],[35,"T"],[37,""],[46,"T"],[60,""],[70,"K"],[73,""],[78,"T"],[85,""],[93,"U"],[100,""],[124,"T"],[126,""],[128,"U,T"],[135,"U"],[142,""],[158,"T"],[164,""],[167,"T"],[170,""],[175,"K"],[177,""],[179,"T"],[185,"__D"],[187,""],[194,"K"],[203,""],[207,"T"],[210,""],[216,"__H"],[220,""],[223,"U"],[226,""],[231,"__S"],[233,""],[235,"T"],[238,""],[245,"U,T"],[248,"U"],[251,""],[255,"T"],[259,"D"],[260,""],[263,"T"],[264,""],[265,"U"],[266,"S"],[267,"U,T"],[268,"U"],[269,""],[270,"M,Visitor::Value"],[280,"R,"],[281,""],[282,"T"],[287,""],[288,"T"],[293,""],[294,"T"],[295,""],[297,"K"],[299,"R,"],[300,""],[302,"T"],[307,"Deref::Target"],[308,"T"],[313,"__D"],[314,""],[321,"K"],[327,""],[329,"T"],[334,"R,"],[335,"__H"],[336,"H"],[337,""],[345,"U"],[350,""],[354,"S"],[355,"D"],[356,"__S"],[363,"T"],[364,""],[365,"U,T"],[370,"U"],[375,""],[380,"R,"]]}],["leo_test_framework",{"t":"CCCCCPPPPPGFPPNNNNNNNNNNHONNNNNNNNONHNNNNNNOOOOOOOOOOOOOOOOHHHFNNNNNNNNNONNNOONNNNNPPKSGKFFPNNNNNNNNNOONNNNNNNNNNNNNOONNNNHNNNNNNHNNONMOONMMHHHONNNNNNNNNNPPPFGNNNNNNNNNNNNNNNNNNNNNNOOHNNNNNNNNONNNNNNNNNN","n":["error","fetch","output","runner","test","FailedAndShouldntHave","MismatchedTestExpectationLength","MissingTestConfig","Panicked","PassedAndShouldntHave","TestError","TestFailure","UnexpectedError","UnexpectedOutput","borrow","","borrow_mut","","deref","","deref_mut","","drop","","emit_errors","errors","fmt","","from","","init","","into","","path","to_string","toml_to_string","try_from","","try_into","","type_id","","error","","expected","","index","","","","","output","","test","","","","","find_tests","split_tests_one_line","split_tests_two_line","TestExpectation","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","expectation","from","init","into","namespace","outputs","serialize","to_owned","try_from","try_into","type_id","ContinuousLines","Line","Namespace","PROGRAM_DELIMITER","ParseType","Runner","Test","TestCases","Whole","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","config","content","deref","","","deref_mut","","","drop","","","eq","equivalent","","","expectation_category","fail_categories","fmt","from","","","get_benches","init","","","into","","","is_env_var_set","load_expectations","load_tests","name","new","parse_type","path","path_prefix","process_tests","resolve_namespace","run_test","run_tests","set_hook","take_hook","tests","to_owned","try_from","","","try_into","","","type_id","","","Fail","Pass","Skip","TestConfig","TestExpectationMode","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","deserialize","","drop","","eq","equivalent","","","expectation","extra","extract_test_config","fmt","","from","","init","","into","","namespace","serialize","","to_owned","","try_from","","try_into","","type_id",""],"q":[[0,"leo_test_framework"],[5,"leo_test_framework::error"],[43,"leo_test_framework::error::TestError"],[59,"leo_test_framework::fetch"],[62,"leo_test_framework::output"],[83,"leo_test_framework::runner"],[154,"leo_test_framework::test"],[203,"toml::value"],[204,"alloc::string"],[205,"core::result"],[206,"core::option"],[207,"core::fmt"],[208,"core::any"],[209,"std::path"],[210,"core::iter::traits::iterator"],[211,"alloc::vec"],[212,"serde::de"],[213,"serde::ser"],[214,"core::ops::function"],[215,"alloc::boxed"],[216,"std::sync::mutex"],[217,"alloc::sync"]],"i":"`````Af0000``00Dn101010101`01101010101`010101E`EbEdEf31Eh312142031````Bj0000000000000000000Cb0``````0DfCf2102222111021021022222002102`102102`0010Cn211Db1```24324324324Ab00``0Ch1010101010101010111100`1010101001010101010","f":"``````````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{fh}0{{{b{j}}{b{{A`{{A`{ln}}n}}}}{b{Ab}}{Ad{l}}f}{{Ad{Af}}}}`{{{b{Af}}{b{dAh}}}Aj}0{cc{}}0{{}f}0{{}c{}}0`{bn}{{{b{l}}}n}{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{bAl}0````````````````{{{b{An}}}{{`{{Bf{}{{B`{{Bd{Bbn}}}}}}}}}}{{{b{j}}}{{Bh{{b{j}}}}}}{{{b{j}}}{{Bh{n}}}}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Bj}}}Bj}{{b{b{dc}}}h{}}{{bBl}h}{f{{b{c}}}{}}{f{{b{dc}}}{}}{c{{A`{Bj}}}Bn}{fh}`{cc{}}{{}f}{{}c{}}``{{{b{Bj}}c}A`C`}{bc{}}{c{{A`{e}}}{}{}}{{}{{A`{c}}}{}}{bAl}`````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Cb}}}Cb}{{b{b{dc}}}h{}}{{bBl}h}``{f{{b{c}}}{}}00{f{{b{dc}}}{}}00???{{{b{Cb}}{b{Cb}}}Cd}{{b{b{c}}}Cd{}}00``{{{b{Cb}}{b{dAh}}}Aj}{cc{}}00{{}{{Bh{{Bd{nn}}}}}}{{}f}00{{}c{}}00{{{b{j}}}Cd}{{{b{Cf}}{b{An}}}{{Bd{Bb{Ad{Bj}}}}}}{{{b{dCf}}c}{{Bh{Ch}}}{{Cl{{b{Ch}}}{{Cj{Cd}}}}}}`{{{b{j}}c}{{Bd{Cf{Bh{Ch}}}}}{{Cl{{b{Ch}}}{{Cj{Cd}}}}}}{{{b{Cn}}}Cb}``{{{b{dCf}}{Bh{Ch}}e}{{Bh{c}}}{}{{D`{{b{dCf}}{Bd{{b{An}}{b{j}}{b{j}}Ch}}}{{Cj{c}}}}}}{{{b{Db}}{b{j}}}{{Ad{{Dd{Cn}}}}}}{{{b{Cn}}Df}{{A`{ln}}}}{{{b{c}}{b{j}}}hDb}{{}{{Dj{{Dh{{Ad{n}}}}}}}}{{{A`{{A`{ln}}{Dd{Dl}}}}{Dj{{Dh{{Ad{n}}}}}}}{{A`{{A`{ln}}n}}}}`{bc{}}{c{{A`{e}}}{}{}}00{{}{{A`{c}}}{}}00{bAl}00`````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Ab}}}Ab}{{{b{Ch}}}Ch}{{b{b{dc}}}h{}}0{{bBl}h}0{f{{b{c}}}{}}0{f{{b{dc}}}{}}0{c{{A`{Ab}}}Bn}{c{{A`{Ch}}}Bn}{fh}0{{{b{Ab}}{b{Ab}}}Cd}{{b{b{c}}}Cd{}}00``{{{b{j}}}{{Ad{Ch}}}}{{{b{Ab}}{b{dAh}}}Aj}{{{b{Ch}}{b{dAh}}}Aj}{cc{}}0{{}f}0{{}c{}}0`{{{b{Ab}}c}A`C`}{{{b{Ch}}c}A`C`}{bc{}}0{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{bAl}0","D":"Bl","p":[[1,"reference",null,null,1],[0,"mut"],[1,"usize"],[1,"unit"],[1,"str"],[6,"Value",203],[5,"String",204],[6,"Result",205,null,1],[6,"TestExpectationMode",154],[6,"Option",206,null,1],[6,"TestError",5],[5,"Formatter",207],[8,"Result",207],[5,"TypeId",208],[5,"Path",209],[17,"Item"],[5,"PathBuf",209],[1,"tuple",null,null,1],[10,"Iterator",210],[5,"Vec",211],[5,"TestExpectation",62],[1,"u8"],[10,"Deserializer",212],[10,"Serializer",213],[6,"ParseType",83],[1,"bool"],[5,"TestCases",83],[5,"TestConfig",154],[17,"Output"],[10,"Fn",214],[10,"Namespace",83],[10,"FnMut",214],[10,"Runner",83],[5,"Box",215,null,1],[5,"Test",83],[5,"Mutex",216],[5,"Arc",217,null,1],[10,"Any",208],[5,"TestFailure",5],[15,"Panicked",43],[15,"FailedAndShouldntHave",43],[15,"UnexpectedOutput",43],[15,"UnexpectedError",43],[15,"PassedAndShouldntHave",43]],"r":[],"b":[[26,"impl-Debug-for-TestError"],[27,"impl-Display-for-TestError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALUACwABABsAHwABACMAAQAmACMASwAAAE0AKgB8AAIAggAYAJ4AHAC9AAEAwQAKAA==","P":[[14,"T"],[22,""],[28,"T"],[30,""],[32,"U"],[35,""],[37,"U,T"],[39,"U"],[41,""],[63,"T"],[65,""],[66,"T"],[67,""],[68,"T"],[70,"__D"],[71,""],[73,"T"],[74,""],[75,"U"],[78,"__S"],[79,"T"],[80,"U,T"],[81,"U"],[82,""],[92,"T"],[98,""],[99,"T"],[100,""],[103,"T"],[109,""],[113,"K"],[118,""],[119,"T"],[122,""],[126,"U"],[129,""],[131,""],[134,""],[137,"O,P"],[138,""],[140,"T"],[141,""],[144,"T"],[145,"U,T"],[148,"U"],[151,""],[159,"T"],[163,""],[165,"T"],[167,""],[169,"T"],[173,"__D"],[175,""],[178,"K"],[183,""],[186,"T"],[188,""],[190,"U"],[193,"__S"],[195,"T"],[197,"U,T"],[199,"U"],[201,""]]}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[172,191,1329,96874,5838,734,37547,16738,41276,9779,12261,41172,8926,10646,6018]} \ No newline at end of file +//{"start":39,"fragment_lengths":[172,191,1329,97089,6116,734,37907,17972,41276,10167,12261,46658,9232,10657,6018]} \ No newline at end of file diff --git a/search.desc/leo_ast/leo_ast-desc-0-.js b/search.desc/leo_ast/leo_ast-desc-0-.js index 16d038c10b..53f556b345 100644 --- a/search.desc/leo_ast/leo_ast-desc-0-.js +++ b/search.desc/leo_ast/leo_ast-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("leo_ast", 0, "The abstract syntax tree (ast) for a Leo program.\nThe abstract syntax tree (AST) for a Leo program.\nReturns a reference to the inner program AST …\nReturns the argument unchanged.\nDeserializes the JSON string into a ast from a file.\nDeserializes the JSON string into a ast.\nCalls U::from(self).\nCreates a new AST from a given program tree.\nHelper function to normalize AST JSON into a form …\nThis module contains both a Reducer and Visitor design …\nA Leo program consists of import statements and program …\nHelper function to recursively filter keys from AST JSON\nA stub contains function templates as well as definitions …\nSerializes the ast into a JSON file.\nSerializes the ast into a JSON value and removes keys from …\nSerializes the ast into a JSON string.\nAn array access expression, e.g., foo[index].\nAn access expression to an struct constant., e.g. u8::MAX.\nAn access expression to an associated function in a …\nA struct member access expression inner.name to some …\nA tuple access expression, e.g., tuple.index.\nThe arguments passed to the function name.\nAn expression evaluating to some array type, e.g., …\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe index to access in the array expression. E.g., 0 for …\nThe index to access in the tuple expression. E.g., 0 for …\nThe inner struct that is being accessed.\nThe struct constant that is being accessed.\nThe static struct member function that is being accessed.\nThe name of the struct member to access.\nThe span for the entire expression foo[index].\nThe span for the entire expression Foo::bar().\nThe span for the entire expression Foo::bar().\nThe span covering all of inner.name.\nThe span for the entire expression tuple.index.\nAn expression evaluating to some tuple type, e.g., (5, 2).\nThe inner struct type.\nThe inner struct variant.\nAn array access expression, e.g., foo[index].\nAn expression evaluating to some array type, e.g., …\nReturns the argument unchanged.\nThe ID of the node.\nThe index to access in the array expression. E.g., 0 for …\nCalls U::from(self).\nThe span for the entire expression foo[index].\nAn access expression to an struct constant., e.g. u8::MAX.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe struct constant that is being accessed.\nThe span for the entire expression Foo::bar().\nThe inner struct type.\nAn access expression to an associated function in a …\nThe arguments passed to the function name.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe static struct member function that is being accessed.\nThe span for the entire expression Foo::bar().\nThe inner struct variant.\nA struct member access expression inner.name to some …\nReturns the argument unchanged.\nThe ID of the node.\nThe inner struct that is being accessed.\nCalls U::from(self).\nThe name of the struct member to access.\nThe span covering all of inner.name.\nA tuple access expression, e.g., tuple.index.\nReturns the argument unchanged.\nThe ID of the node.\nThe index to access in the tuple expression. E.g., 0 for …\nCalls U::from(self).\nThe span for the entire expression tuple.index.\nAn expression evaluating to some tuple type, e.g., (5, 2).\nAn identifier in a program.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCheck if the Identifier name matches the other name.\nThe symbol that the user wrote, e.g., foo.\nConstructs a new identifier with name and id and a default …\nA span locating where the identifier occurred in the …\nReturns the argument unchanged.\nCalls U::from(self).\nA node in the AST.\nA node ID.\nReturns the ID of the node.\nSets the ID of the node.\nSets the span of the node.\nReturns the span of the node.\nA counter that produces sequentially increasing NodeIDs.\nContains the actual data for Handler. Modeled this way to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe inner counter. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nReturns a new NodeCounter with the given NodeID as the …\nReturns a new NodeCounter with the given NodeID as the …\nThe next NodeID.\nReturns the next NodeID and increments the internal state.\nReturns the next NodeID and increments the internal state.\nA number string guaranteed to be non-negative.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if this number is zero.\nReturns the string representation of the non-negative …\nThe string representation of the non-negative number.\nReturns the numeric value of the non-negative number.\nThe numeric value of the non-negative number.\nReturns the argument unchanged.\nCalls U::from(self).\nAbsolute value checking for overflow, i.e. .abs().\nAbsolute value wrapping around at the boundary of the …\nA struct access expression, e.g. Foo.bar.\nAn access expressions, extracting a smaller part out of a …\nAddition, i.e. +, .add().\nWrapping addition, i.e. .add_wrapped().\nAn address literal, e.g., …\nLogical AND, i.e. &&.\nAn array[index] expression.\nAn array expression, e.g., [true, false, true, false].\nAn array expression, e.g., [true, false, true, false].\nAccess to an associated variable of a struct e.g u8::MAX.\nAccess to an associated function of a struct e.g …\nA binary expression, e.g., 42 + 24.\nA binary expression left op right of two operands …\nA binary operator.\nBitwise AND, i.e. &, .and().\nBitwise OR, i.e. |, .or().\nA boolean literal, either true or false.\nA call expression, e.g., my_fun(args).\nA function call expression, e.g.foo(args) or Foo::bar(args)…\nA cast expression, e.g., 42u32 as u8.\nA cast expression, e.g. 42u8 as u16.\nDivision, i.e. /, .div().\nWrapping division, i.e. .div_wrapped().\nDouble operation, i.e. .double().\nEquality relation, i.e. ==, .eq().\nAn expression of type “error”. Will result in a …\nRepresents a syntactically invalid expression.\nExpression that evaluates to a value.\nA field literal, e.g., 42field. A signed number followed …\nThis trait allows to parse integer literals of any type …\nA group literal, either product or affine. For example, …\nGreater-than relation, i.e. >, .gt().\nGreater-or-equal relation, i.e. >=, .gte().\nAn identifier.\nAn integer literal, e.g., 42.\nMultiplicative inverse, i.e. .inv().\nA literal.\nA literal expression.\nA locator expression, e.g., hello.aleo/foo.\nLesser-than relation, i.e. <, .lt().\nLesser-or-equal relation, i.e. <=, .lte().\nAn expression accessing a field in a structure, e.g., …\nArithmetic modulo, i.e. .mod()\nMultiplication, i.e. *, .mul().\nWrapping multiplication, i.e. .mul_wrapped().\nBoolean NAND, i.e. .nand().\nNegate operation, i.e. .neg().\nIn-equality relation, i.e. !=, .neq().\nBoolean NOR, i.e. .nor().\nBitwise NOT, i.e. !, .not().\nLogical OR, i.e. ||.\nExponentiation, i.e. ** in a ** b, .pow().\nWrapping exponentiation, i.e. .pow_wrapped().\nRemainder, i.e. %, .rem().\nWrapping remainder, i.e. .rem_wrapped().\nA scalar literal, e.g. 1scalar. An unsigned number …\nShift left operation, i.e. <<, .shl().\nWrapping shift left operation, i.e. .shl_wrapped().\nShift right operation, i.e. >>, .shr().\nWrapping shift right operation, i.e. .shr_wrapped().\nSquare operation, i.e. .square().\nSquare root operation, i.e. .sqrt().\nA string literal, e.g., "foobar".\nAn expression constructing a struct like …\nA struct initialization expression, e.g., …\nAn initializer for a single field / variable of a struct …\nSubtraction, i.e. -, .sub().\nWrapped subtraction, i.e. .sub_wrapped().\nA ternary conditional expression cond ? if_expr : else_expr…\nA ternary conditional expression, that is, …\nConverts a group element to its x-coordinate, i.e. …\nConverts a group element to its y-coordinate, i.e. …\nAccess to a tuple field using its position, e.g., tuple.1.\nA tuple expression e.g., (foo, 42, true).\nA tuple expression, e.g., (foo, false, 42).\nAn unary expression.\nAn unary expression applying an operator to an inner …\nA unary operator for a unary expression.\nA unit expression e.g. ()\nRepresents a unit expression.\nBitwise XOR, i.e. .xor().\nExpressions for the arguments passed to the functions …\nThe condition determining which branch to pick.\nThe elements of the array.\nThe elements of the tuple. In the example above, it would …\nThe expression to be casted, e.g.42u8 in 42u8 as u16.\nThe expression to initialize the field with. When None, a …\nReturns the argument unchanged.\nAn expression evaluating to a callable function, either a …\nThe ID of the node.\nThe ID of the expression.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe name of the field / variable to be initialized.\nThe branch the expression evaluates to if condition …\nThe branch the expression evaluates to if condition …\nCalls U::from(self).\nThe left operand of the expression.\nInitializer expressions for each of the fields in the …\nThe name of the structure type to initialize.\nThe operand defining the meaning of the resulting binary …\nThe unary operator to apply to inner.\nThe name of the parent program call, e.g.bar in bar.aleo.\nThe inner expression op is applied to.\nThe right operand of the expression.\nThe span from [ to ].\nThe span from left to right.\nSpan of the entire call function(arguments).\nSpan of the entire cast 42u8 as u16.\nThe span of the node.\nA span from name to }.\nThe span of the invalid expression.\nThe span from condition to if_false.\nThe span from ( to ).\nThe span covering op inner.\nThe span of the unit expression.\nThe type to be casted to, e.g. u16 in 42u8 as u16.\nAn access expressions, extracting a smaller part out of a …\nAn array[index] expression.\nAccess to an associated variable of a struct e.g u8::MAX.\nAccess to an associated function of a struct e.g …\nAn expression accessing a field in a structure, e.g., …\nAccess to a tuple field using its position, e.g., tuple.1.\nReturns the argument unchanged.\nCalls U::from(self).\nAn array expression, e.g., [true, false, true, false].\nThe elements of the array.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from [ to ].\nAddition, i.e. +, .add().\nWrapping addition, i.e. .add_wrapped().\nLogical AND, i.e. &&.\nA binary expression left op right of two operands …\nA binary operator.\nBitwise AND, i.e. &, .and().\nBitwise OR, i.e. |, .or().\nDivision, i.e. /, .div().\nWrapping division, i.e. .div_wrapped().\nEquality relation, i.e. ==, .eq().\nGreater-than relation, i.e. >, .gt().\nGreater-or-equal relation, i.e. >=, .gte().\nLesser-than relation, i.e. <, .lt().\nLesser-or-equal relation, i.e. <=, .lte().\nArithmetic modulo, i.e. .mod()\nMultiplication, i.e. *, .mul().\nWrapping multiplication, i.e. .mul_wrapped().\nBoolean NAND, i.e. .nand().\nIn-equality relation, i.e. !=, .neq().\nBoolean NOR, i.e. .nor().\nLogical OR, i.e. ||.\nExponentiation, i.e. ** in a ** b, .pow().\nWrapping exponentiation, i.e. .pow_wrapped().\nRemainder, i.e. %, .rem().\nWrapping remainder, i.e. .rem_wrapped().\nShift left operation, i.e. <<, .shl().\nWrapping shift left operation, i.e. .shl_wrapped().\nShift right operation, i.e. >>, .shr().\nWrapping shift right operation, i.e. .shr_wrapped().\nSubtraction, i.e. -, .sub().\nWrapped subtraction, i.e. .sub_wrapped().\nBitwise XOR, i.e. .xor().\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns a BinaryOperation from the given Symbol. This is …\nThe ID of the expression.\nCalls U::from(self).\nCalls U::from(self).\nThe left operand of the expression.\nThe operand defining the meaning of the resulting binary …\nThe right operand of the expression.\nThe span from left to right.\nA function call expression, e.g.foo(args) or Foo::bar(args)…\nExpressions for the arguments passed to the functions …\nReturns the argument unchanged.\nAn expression evaluating to a callable function, either a …\nThe ID of the node.\nCalls U::from(self).\nThe name of the parent program call, e.g.bar in bar.aleo.\nSpan of the entire call function(arguments).\nA cast expression, e.g. 42u8 as u16.\nThe expression to be casted, e.g.42u8 in 42u8 as u16.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nSpan of the entire cast 42u8 as u16.\nThe type to be casted to, e.g. u16 in 42u8 as u16.\nRepresents a syntactically invalid expression.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of the invalid expression.\nAn address literal, e.g., …\nA boolean literal, either true or false.\nA field literal, e.g., 42field. A signed number followed …\nThis trait allows to parse integer literals of any type …\nA group literal, either product or affine. For example, …\nAn integer literal, e.g., 42.\nA literal.\nA scalar literal, e.g. 1scalar. An unsigned number …\nA string literal, e.g., "foobar".\nFor displaying a literal as decimal, regardless of the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA locator that references an external resource.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCheck if the Locator name and program matches the other …\nThe name of the resource.\nConstructs a new Locator with name, program and id and a …\nThe program that the resource is in.\nA span indicating where the locator occurred in the source.\nA struct initialization expression, e.g., …\nAn initializer for a single field / variable of a struct …\nReturns true if the record has all required fields and …\nThe expression to initialize the field with. When None, a …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nThe ID of the node.\nThe name of the field / variable to be initialized.\nCalls U::from(self).\nCalls U::from(self).\nInitializer expressions for each of the fields in the …\nThe name of the structure type to initialize.\nThe span of the node.\nA span from name to }.\nReturns the struct as a record interface with visibility.\nA ternary conditional expression, that is, …\nThe condition determining which branch to pick.\nReturns the argument unchanged.\nThe ID of the node.\nThe branch the expression evaluates to if condition …\nThe branch the expression evaluates to if condition …\nCalls U::from(self).\nThe span from condition to if_false.\nA tuple expression, e.g., (foo, false, 42).\nThe elements of the tuple. In the example above, it would …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from ( to ).\nAbsolute value checking for overflow, i.e. .abs().\nAbsolute value wrapping around at the boundary of the …\nDouble operation, i.e. .double().\nMultiplicative inverse, i.e. .inv().\nNegate operation, i.e. .neg().\nBitwise NOT, i.e. !, .not().\nSquare operation, i.e. .square().\nSquare root operation, i.e. .sqrt().\nConverts a group element to its x-coordinate, i.e. …\nConverts a group element to its y-coordinate, i.e. …\nAn unary expression applying an operator to an inner …\nA unary operator for a unary expression.\nRepresents the opera.tor as a string.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns a UnaryOperation from the given Symbol.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe unary operator to apply to inner.\nThe inner expression op is applied to.\nThe span covering op inner.\nRepresents a unit expression.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of the unit expression.\nA function definition.\nAnnotations on the function.\nThe body of the function.\nPrivate formatting method used for optimizing fmt::Debug …\nReturns the argument unchanged.\nThe ID of the node.\nThe function identifier, e.g., foo in …\nThe function’s input parameters.\nCalls U::from(self).\nReturns function name.\nInitialize a new function.\nThe function’s output declarations.\nThe function’s output type.\nThe entire span of the function definition.\nIs this function a transition, inlined, or a regular …\nAn annotation, e.g. @program.\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the annotation.\nCalls U::from(self).\nA span locating where the annotation occurred in the …\nA core instruction that maps directly to an AVM bytecode …\nReturns the argument unchanged.\nReturns a CoreFunction from the given module and method …\nCalls U::from(self).\nReturns whether or not this function is finalize command.\nReturns the number of arguments required by the …\nA function parameter.\nReturns the argument unchanged.\nThe ID of the node.\nThe name the parameter is accessible as in the function’…\nCalls U::from(self).\nThe mode of the function parameter.\nThe parameters span from any annotations to its type.\nWhat’s the parameter’s type?\nThe mode associated with a type.\nReturns the argument unchanged.\nCalls U::from(self).\nA function output.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe mode of the function output.\nThe parameters span from any annotations to its type.\nThe type of the function output.\nFunctions are always one of five variants. A transition …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if the variant is async.\nReturns true if the variant is an async function.\nReturns true if the variant is a function.\nReturns true if the variant is a transition.\nA coordinate in a affine group literal.\nRecovery with an inferred value.\nA number, e.g., 42.\nA sign high recovery, i.e. +.\nA sign low recovery, i.e., -.\nReturns the argument unchanged.\nCalls U::from(self).\nA group literal.\nAn affine group literal, e.g., (42, 24)group.\nProduct group literal, e.g., 42group.\nAn affine group literal with (x, y) coordinates.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe span from ( to ).\nThe left component of the type, e.g., 42 in the case above.\nThe right component of the type, e.g., 24 in the case …\nA mapping declaration, e.g …\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the mapping.\nCalls U::from(self).\nThe type of the key.\nThe entire span of the mapping declaration.\nThe type of the value.\nThis module contains a Consumer trait for the AST. …\nThis module contains a Reconstructor trait for the AST. It …\nThis module contains Visitor trait implementations for the …\nA Consumer trait for expressions in the AST.\nA Consumer trait for functions in the AST.\nA Consumer trait for imported programs in the AST.\nA Consumer trait for mappings in the AST.\nA Consumer trait for the program represented by the AST.\nA Consumer trait for program scopes in the AST.\nA Consumer trait for statements in the AST.\nA Consumer trait for structs in the AST.\nA Reconstructor trait for expressions in the AST.\nA Reconstructor trait for the program represented by the …\nA Reconstructor trait for statements in the AST.\nA Visitor trait for expressions in the AST.\nA Visitor trait for the program represented by the AST.\nA Visitor trait for statements in the AST.\nStores the Leo program abstract syntax tree.\nConstructs an empty program node.\nReturns the argument unchanged.\nA map from import names to import definitions.\nCalls U::from(self).\nA Leo program scope consists of struct, function, and …\nA map from program names to program scopes.\nA map from program stub names to program stub scopes.\nAn identifier for a program that is eventually deployed to …\nReturns the argument unchanged.\nCalls U::from(self).\nThe name of the program.\nThe network associated with the program.\nStores the Leo program scope abstract syntax tree.\nA vector of const definitions\nReturns the argument unchanged.\nA vector of function definitions.\nCalls U::from(self).\nA vector of mapping definitions.\nThe program id of the program scope.\nThe span associated with the program scope.\nA vector of struct definitions.\nAn assert statement.\nAn assignment statement.\nA block statement.\nAn if statement.\nA console logging statement.\nA binding from identifier to constant value.\nA binding or set of bindings / variables to declare.\nAn expression statement\nA for statement.\nA return statement return expr;.\nProgram statement that defines some action (or expression) …\nReturns a dummy statement made from an empty block {}.\nReturns the argument unchanged.\nCalls U::from(self).\nA assert(expr) variant, asserting that the expression …\nA assert_eq(expr1, expr2) variant, asserting that the …\nA assert_neq(expr1, expr2) variant, asserting that the …\nAn assert statement, assert(<expr>), assert_eq(<expr>) or …\nA variant of an assert statement.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe span, excluding the semicolon.\nThe variant of the assert statement.\nAn assignment statement, assignee = value. Note that there …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe place to assign to. Note that place can either be an …\nThe span, excluding the semicolon.\nThe value to assign to the assignee.\nA block { [stmt]* } consisting of a list of statements to …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from { to }.\nThe list of statements to execute.\nAn if condition block (else next)? statement.\nThe bool-typed condition deciding what to evaluate.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe statement, if any, to evaluate when condition yields …\nThe span from if to next or to block.\nThe block to evaluate in case condition yields true.\nA console.assert(expr) call to invoke, asserting that the …\nA console.assert_eq(expr1, expr2) call to invoke, …\nA console.assert_neq(expr1, expr2) call to invoke, …\nA console logging function to invoke.\nReturns the argument unchanged.\nCalls U::from(self).\nA console logging statement like console.log(...);.\nReturns the argument unchanged.\nThe logging function to run.\nThe ID of the node.\nCalls U::from(self).\nThe span excluding the semicolon.\nA constant declaration statement.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe place to assign to. As opposed to DefinitionStatement, …\nThe span excluding the semicolon.\nThe type of the binding, if specified, or inferred …\nAn initializer value for the binding.\nThis is a const binding.\nThe sort of bindings to introduce, either let or const.\nA let or const declaration statement.\nThis is a let binding.\nWhat sort of declaration is this? let or const?.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe bindings / variable names to declare.\nThe span excluding the semicolon.\nThe types of the bindings, if specified, or inferred …\nAn initializer value for the bindings.\nThis is a const binding.\nThe sort of bindings to introduce, either let or const.\nThis is a let binding.\nReturns the argument unchanged.\nCalls U::from(self).\nAn expression statement, foo(a);.\nThe expression associated with the statement.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span.\nA bounded for loop statement …\nThe block to run on each iteration.\nReturns the argument unchanged.\nThe ID of the node.\nWhether stop is inclusive or not. Signified with = when …\nCalls U::from(self).\nThe span from for to block.\nThe start of the iteration.\nThe concrete value of start.\nThe end of the iteration, possibly inclusive.\nThe concrete value of stop.\nThe type of the iteration.\nThe binding / variable to introduce in the body block.\nA return statement return expression;.\nThe expression to return to the function caller.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of return expression excluding the semicolon.\nA composite type definition, e.g., …\nThe external program the struct is defined in.\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the type in the type system in this module.\nCalls U::from(self).\nWas this a record Foo { ... }? If so, it wasn’t a …\nThe fields, constant variables, and functions of this …\nReturns the composite name as a Symbol.\nThe entire span of the composite definition.\nA member of a structured data type, e.g foobar: u8 or …\nReturns the argument unchanged.\nThe ID of the node.\nThe identifier of the member.\nCalls U::from(self).\nThe mode of the member.\nReturns the name of the struct member without span.\nThe span of the member.\nThe type of the member.\nStores the Leo stub abstract syntax tree.\nA vector of const definitions.\nConstructs an empty program stub\nReturns the argument unchanged.\nA vector of function stub definitions.\nA vector of imported programs.\nCalls U::from(self).\nA vector of mapping definitions.\nThe span associated with the stub.\nA vector of struct definitions.\nThe stub id\nA function stub definition.\nAnnotations on the function.\nPrivate formatting method used for optimizing fmt::Debug …\nReturns the argument unchanged.\nConverts from snarkvm function type to leo FunctionStub, …\nThe ID of the node.\nThe function identifier, e.g., foo in …\nThe function’s input parameters.\nCalls U::from(self).\nReturns true if the function name is main.\nReturns function name.\nInitialize a new function.\nThe function’s output declarations.\nThe function’s output type.\nThe entire span of the function definition.\nIs this function a transition, inlined, or a regular …\nAn array type.\nReturns the base element type of the array.\nReturns the element type of the array.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the length of the array.\nCreates a new array type.\nA core constant that maps directly to an AVM bytecode …\nReturns the argument unchanged.\nReturns a CoreConstant from the given type and constant …\nCalls U::from(self).\nReturns the Type of the CoreConstant.\nA future type consisting of the type of the inputs.\nReturns the argument unchanged.\nReturns the inputs of the future type.\nCalls U::from(self).\nReturns the location of the future type.\nInitialize a new future type.\nExplicit integer type.\nReturns the argument unchanged.\nCalls U::from(self).\nIs the integer type a signed one?\nReturns the symbol for the integer type.\nA mapping type of a key and value type.\nReturns the argument unchanged.\nCalls U::from(self).\nA composite type of a identifier and external program name.\nReturns the argument unchanged.\nCalls U::from(self).\nA type list of at least two types.\nReturns the elements of the tuple type.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the length of the tuple type.\nCreates a new tuple type.\nThe address type.\nThe array type.\nThe bool type.\nThe struct type.\nPlaceholder for a type that could not be resolved or was …\nThe field type.\nThe future type.\nThe group type.\nA reference to a built in type.\nAn integer type.\nA mapping type.\nThe scalar type.\nThe signature type.\nThe string type.\nA static tuple of at least one type.\nExplicit type used for defining a variable or expression …\nThe unit type.\nReturns true if the self Type is equal to the other Type …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nConverts a literal to a value.") \ No newline at end of file +searchState.loadedDescShard("leo_ast", 0, "The abstract syntax tree (ast) for a Leo program.\nThe abstract syntax tree (AST) for a Leo program.\nReturns a reference to the inner program AST …\nReturns the argument unchanged.\nDeserializes the JSON string into a ast from a file.\nDeserializes the JSON string into a ast.\nCalls U::from(self).\nCreates a new AST from a given program tree.\nHelper function to normalize AST JSON into a form …\nThis module contains both a Reducer and Visitor design …\nA Leo program consists of import statements and program …\nHelper function to recursively filter keys from AST JSON\nA stub contains function templates as well as definitions …\nSerializes the ast into a JSON file.\nSerializes the ast into a JSON value and removes keys from …\nSerializes the ast into a JSON string.\nAn array access expression, e.g., foo[index].\nAn access expression to an struct constant., e.g. u8::MAX.\nAn access expression to an associated function in a …\nA struct member access expression inner.name to some …\nA tuple access expression, e.g., tuple.index.\nThe arguments passed to the function name.\nAn expression evaluating to some array type, e.g., …\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe index to access in the array expression. E.g., 0 for …\nThe index to access in the tuple expression. E.g., 0 for …\nThe inner struct that is being accessed.\nThe struct constant that is being accessed.\nThe static struct member function that is being accessed.\nThe name of the struct member to access.\nThe span for the entire expression foo[index].\nThe span for the entire expression Foo::bar().\nThe span for the entire expression Foo::bar().\nThe span covering all of inner.name.\nThe span for the entire expression tuple.index.\nAn expression evaluating to some tuple type, e.g., (5, 2).\nThe inner struct type.\nThe inner struct variant.\nAn array access expression, e.g., foo[index].\nAn expression evaluating to some array type, e.g., …\nReturns the argument unchanged.\nThe ID of the node.\nThe index to access in the array expression. E.g., 0 for …\nCalls U::from(self).\nThe span for the entire expression foo[index].\nAn access expression to an struct constant., e.g. u8::MAX.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe struct constant that is being accessed.\nThe span for the entire expression Foo::bar().\nThe inner struct type.\nAn access expression to an associated function in a …\nThe arguments passed to the function name.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe static struct member function that is being accessed.\nThe span for the entire expression Foo::bar().\nThe inner struct variant.\nA struct member access expression inner.name to some …\nReturns the argument unchanged.\nThe ID of the node.\nThe inner struct that is being accessed.\nCalls U::from(self).\nThe name of the struct member to access.\nThe span covering all of inner.name.\nA tuple access expression, e.g., tuple.index.\nReturns the argument unchanged.\nThe ID of the node.\nThe index to access in the tuple expression. E.g., 0 for …\nCalls U::from(self).\nThe span for the entire expression tuple.index.\nAn expression evaluating to some tuple type, e.g., (5, 2).\nAn identifier in a program.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCheck if the Identifier name matches the other name.\nThe symbol that the user wrote, e.g., foo.\nConstructs a new identifier with name and id and a default …\nA span locating where the identifier occurred in the …\nReturns the argument unchanged.\nCalls U::from(self).\nA node in the AST.\nA node ID.\nReturns the ID of the node.\nSets the ID of the node.\nSets the span of the node.\nReturns the span of the node.\nA counter that produces sequentially increasing NodeIDs.\nContains the actual data for Handler. Modeled this way to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe inner counter. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nReturns a new NodeCounter with the given NodeID as the …\nReturns a new NodeCounter with the given NodeID as the …\nThe next NodeID.\nReturns the next NodeID and increments the internal state.\nReturns the next NodeID and increments the internal state.\nA number string guaranteed to be non-negative.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if this number is zero.\nReturns the string representation of the non-negative …\nThe string representation of the non-negative number.\nReturns the numeric value of the non-negative number.\nThe numeric value of the non-negative number.\nReturns the argument unchanged.\nCalls U::from(self).\nAbsolute value checking for overflow, i.e. .abs().\nAbsolute value wrapping around at the boundary of the …\nA struct access expression, e.g. Foo.bar.\nAn access expressions, extracting a smaller part out of a …\nAddition, i.e. +, .add().\nWrapping addition, i.e. .add_wrapped().\nAn address literal, e.g., …\nLogical AND, i.e. &&.\nAn array[index] expression.\nAn array expression, e.g., [true, false, true, false].\nAn array expression, e.g., [true, false, true, false].\nAccess to an associated variable of a struct e.g u8::MAX.\nAccess to an associated function of a struct e.g …\nA binary expression, e.g., 42 + 24.\nA binary expression left op right of two operands …\nA binary operator.\nBitwise AND, i.e. &, .and().\nBitwise OR, i.e. |, .or().\nA boolean literal, either true or false.\nA call expression, e.g., my_fun(args).\nA function call expression, e.g.foo(args) or Foo::bar(args)…\nA cast expression, e.g., 42u32 as u8.\nA cast expression, e.g. 42u8 as u16.\nDivision, i.e. /, .div().\nWrapping division, i.e. .div_wrapped().\nDouble operation, i.e. .double().\nEquality relation, i.e. ==, .eq().\nAn expression of type “error”. Will result in a …\nRepresents a syntactically invalid expression.\nExpression that evaluates to a value.\nA field literal, e.g., 42field. A signed number followed …\nThis trait allows to parse integer literals of any type …\nA group literal, either product or affine. For example, …\nGreater-than relation, i.e. >, .gt().\nGreater-or-equal relation, i.e. >=, .gte().\nAn identifier.\nAn integer literal, e.g., 42.\nMultiplicative inverse, i.e. .inv().\nA literal.\nA literal expression.\nA locator expression, e.g., hello.aleo/foo.\nLesser-than relation, i.e. <, .lt().\nLesser-or-equal relation, i.e. <=, .lte().\nAn expression accessing a field in a structure, e.g., …\nArithmetic modulo, i.e. .mod()\nMultiplication, i.e. *, .mul().\nWrapping multiplication, i.e. .mul_wrapped().\nBoolean NAND, i.e. .nand().\nNegate operation, i.e. .neg().\nIn-equality relation, i.e. !=, .neq().\nBoolean NOR, i.e. .nor().\nBitwise NOT, i.e. !, .not().\nLogical OR, i.e. ||.\nExponentiation, i.e. ** in a ** b, .pow().\nWrapping exponentiation, i.e. .pow_wrapped().\nRemainder, i.e. %, .rem().\nWrapping remainder, i.e. .rem_wrapped().\nA scalar literal, e.g. 1scalar. An unsigned number …\nShift left operation, i.e. <<, .shl().\nWrapping shift left operation, i.e. .shl_wrapped().\nShift right operation, i.e. >>, .shr().\nWrapping shift right operation, i.e. .shr_wrapped().\nSquare operation, i.e. .square().\nSquare root operation, i.e. .sqrt().\nA string literal, e.g., "foobar".\nAn expression constructing a struct like …\nA struct initialization expression, e.g., …\nAn initializer for a single field / variable of a struct …\nSubtraction, i.e. -, .sub().\nWrapped subtraction, i.e. .sub_wrapped().\nA ternary conditional expression cond ? if_expr : else_expr…\nA ternary conditional expression, that is, …\nConverts a group element to its x-coordinate, i.e. …\nConverts a group element to its y-coordinate, i.e. …\nAccess to a tuple field using its position, e.g., tuple.1.\nA tuple expression e.g., (foo, 42, true).\nA tuple expression, e.g., (foo, false, 42).\nAn unary expression.\nAn unary expression applying an operator to an inner …\nA unary operator for a unary expression.\nA unit expression e.g. ()\nRepresents a unit expression.\nBitwise XOR, i.e. .xor().\nExpressions for the arguments passed to the functions …\nThe condition determining which branch to pick.\nThe elements of the array.\nThe elements of the tuple. In the example above, it would …\nThe expression to be casted, e.g.42u8 in 42u8 as u16.\nThe expression to initialize the field with. When None, a …\nReturns the argument unchanged.\nAn expression evaluating to a callable function, either a …\nThe ID of the node.\nThe ID of the expression.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe ID of the node.\nThe name of the field / variable to be initialized.\nThe branch the expression evaluates to if condition …\nThe branch the expression evaluates to if condition …\nCalls U::from(self).\nThe left operand of the expression.\nInitializer expressions for each of the fields in the …\nThe name of the structure type to initialize.\nThe operand defining the meaning of the resulting binary …\nThe unary operator to apply to inner.\nThe name of the parent program call, e.g.bar in bar.aleo.\nThe inner expression op is applied to.\nThe right operand of the expression.\nThe span from [ to ].\nThe span from left to right.\nSpan of the entire call function(arguments).\nSpan of the entire cast 42u8 as u16.\nThe span of the node.\nA span from name to }.\nThe span of the invalid expression.\nThe span from condition to if_false.\nThe span from ( to ).\nThe span covering op inner.\nThe span of the unit expression.\nThe type to be casted to, e.g. u16 in 42u8 as u16.\nAn access expressions, extracting a smaller part out of a …\nAn array[index] expression.\nAccess to an associated variable of a struct e.g u8::MAX.\nAccess to an associated function of a struct e.g …\nAn expression accessing a field in a structure, e.g., …\nAccess to a tuple field using its position, e.g., tuple.1.\nReturns the argument unchanged.\nCalls U::from(self).\nAn array expression, e.g., [true, false, true, false].\nThe elements of the array.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from [ to ].\nAddition, i.e. +, .add().\nWrapping addition, i.e. .add_wrapped().\nLogical AND, i.e. &&.\nA binary expression left op right of two operands …\nA binary operator.\nBitwise AND, i.e. &, .and().\nBitwise OR, i.e. |, .or().\nDivision, i.e. /, .div().\nWrapping division, i.e. .div_wrapped().\nEquality relation, i.e. ==, .eq().\nGreater-than relation, i.e. >, .gt().\nGreater-or-equal relation, i.e. >=, .gte().\nLesser-than relation, i.e. <, .lt().\nLesser-or-equal relation, i.e. <=, .lte().\nArithmetic modulo, i.e. .mod()\nMultiplication, i.e. *, .mul().\nWrapping multiplication, i.e. .mul_wrapped().\nBoolean NAND, i.e. .nand().\nIn-equality relation, i.e. !=, .neq().\nBoolean NOR, i.e. .nor().\nLogical OR, i.e. ||.\nExponentiation, i.e. ** in a ** b, .pow().\nWrapping exponentiation, i.e. .pow_wrapped().\nRemainder, i.e. %, .rem().\nWrapping remainder, i.e. .rem_wrapped().\nShift left operation, i.e. <<, .shl().\nWrapping shift left operation, i.e. .shl_wrapped().\nShift right operation, i.e. >>, .shr().\nWrapping shift right operation, i.e. .shr_wrapped().\nSubtraction, i.e. -, .sub().\nWrapped subtraction, i.e. .sub_wrapped().\nBitwise XOR, i.e. .xor().\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns a BinaryOperation from the given Symbol. This is …\nThe ID of the expression.\nCalls U::from(self).\nCalls U::from(self).\nThe left operand of the expression.\nThe operand defining the meaning of the resulting binary …\nThe right operand of the expression.\nThe span from left to right.\nA function call expression, e.g.foo(args) or Foo::bar(args)…\nExpressions for the arguments passed to the functions …\nReturns the argument unchanged.\nAn expression evaluating to a callable function, either a …\nThe ID of the node.\nCalls U::from(self).\nThe name of the parent program call, e.g.bar in bar.aleo.\nSpan of the entire call function(arguments).\nA cast expression, e.g. 42u8 as u16.\nThe expression to be casted, e.g.42u8 in 42u8 as u16.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nSpan of the entire cast 42u8 as u16.\nThe type to be casted to, e.g. u16 in 42u8 as u16.\nRepresents a syntactically invalid expression.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of the invalid expression.\nAn address literal, e.g., …\nA boolean literal, either true or false.\nA field literal, e.g., 42field. A signed number followed …\nThis trait allows to parse integer literals of any type …\nA group literal, either product or affine. For example, …\nAn integer literal, e.g., 42.\nA literal.\nA scalar literal, e.g. 1scalar. An unsigned number …\nA string literal, e.g., "foobar".\nFor displaying a literal as decimal, regardless of the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA locator that references an external resource.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCheck if the Locator name and program matches the other …\nThe name of the resource.\nConstructs a new Locator with name, program and id and a …\nThe program that the resource is in.\nA span indicating where the locator occurred in the source.\nA struct initialization expression, e.g., …\nAn initializer for a single field / variable of a struct …\nReturns true if the record has all required fields and …\nThe expression to initialize the field with. When None, a …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nThe ID of the node.\nThe name of the field / variable to be initialized.\nCalls U::from(self).\nCalls U::from(self).\nInitializer expressions for each of the fields in the …\nThe name of the structure type to initialize.\nThe span of the node.\nA span from name to }.\nReturns the struct as a record interface with visibility.\nA ternary conditional expression, that is, …\nThe condition determining which branch to pick.\nReturns the argument unchanged.\nThe ID of the node.\nThe branch the expression evaluates to if condition …\nThe branch the expression evaluates to if condition …\nCalls U::from(self).\nThe span from condition to if_false.\nA tuple expression, e.g., (foo, false, 42).\nThe elements of the tuple. In the example above, it would …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from ( to ).\nAbsolute value checking for overflow, i.e. .abs().\nAbsolute value wrapping around at the boundary of the …\nDouble operation, i.e. .double().\nMultiplicative inverse, i.e. .inv().\nNegate operation, i.e. .neg().\nBitwise NOT, i.e. !, .not().\nSquare operation, i.e. .square().\nSquare root operation, i.e. .sqrt().\nConverts a group element to its x-coordinate, i.e. …\nConverts a group element to its y-coordinate, i.e. …\nAn unary expression applying an operator to an inner …\nA unary operator for a unary expression.\nRepresents the operator as a string.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns a UnaryOperation from the given Symbol.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe unary operator to apply to inner.\nThe inner expression op is applied to.\nThe span covering op inner.\nRepresents a unit expression.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of the unit expression.\nA function definition.\nAnnotations on the function.\nThe body of the function.\nPrivate formatting method used for optimizing fmt::Debug …\nReturns the argument unchanged.\nThe ID of the node.\nThe function identifier, e.g., foo in …\nThe function’s input parameters.\nCalls U::from(self).\nReturns function name.\nInitialize a new function.\nThe function’s output declarations.\nThe function’s output type.\nThe entire span of the function definition.\nIs this function a transition, inlined, or a regular …\nAn annotation, e.g. @program.\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the annotation.\nCalls U::from(self).\nA span locating where the annotation occurred in the …\nA core instruction that maps directly to an AVM bytecode …\nReturns the argument unchanged.\nReturns a CoreFunction from the given module and method …\nCalls U::from(self).\nReturns whether or not this function is finalize command.\nReturns the number of arguments required by the …\nA function parameter.\nReturns the argument unchanged.\nThe ID of the node.\nThe name the parameter is accessible as in the function’…\nCalls U::from(self).\nThe mode of the function parameter.\nThe parameters span from any annotations to its type.\nWhat’s the parameter’s type?\nThe mode associated with a type.\nReturns the argument unchanged.\nCalls U::from(self).\nA function output.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe mode of the function output.\nThe parameters span from any annotations to its type.\nThe type of the function output.\nFunctions are always one of five variants. A transition …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns true if the variant is async.\nReturns true if the variant is an async function.\nReturns true if the variant is a function.\nReturns true if the variant is a transition.\nA coordinate in a affine group literal.\nRecovery with an inferred value.\nA number, e.g., 42.\nA sign high recovery, i.e. +.\nA sign low recovery, i.e., -.\nReturns the argument unchanged.\nCalls U::from(self).\nA group literal.\nAn affine group literal, e.g., (42, 24)group.\nProduct group literal, e.g., 42group.\nAn affine group literal with (x, y) coordinates.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe span from ( to ).\nThe left component of the type, e.g., 42 in the case above.\nThe right component of the type, e.g., 24 in the case …\nA mapping declaration, e.g …\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the mapping.\nCalls U::from(self).\nThe type of the key.\nThe entire span of the mapping declaration.\nThe type of the value.\nThis module contains a Consumer trait for the AST. …\nThis module contains a Reconstructor trait for the AST. It …\nThis module contains Visitor trait implementations for the …\nA Consumer trait for expressions in the AST.\nA Consumer trait for functions in the AST.\nA Consumer trait for imported programs in the AST.\nA Consumer trait for mappings in the AST.\nA Consumer trait for the program represented by the AST.\nA Consumer trait for program scopes in the AST.\nA Consumer trait for statements in the AST.\nA Consumer trait for structs in the AST.\nA Reconstructor trait for expressions in the AST.\nA Reconstructor trait for the program represented by the …\nA Reconstructor trait for statements in the AST.\nA Visitor trait for expressions in the AST.\nA Visitor trait for the program represented by the AST.\nA Visitor trait for statements in the AST.\nStores the Leo program abstract syntax tree.\nConstructs an empty program node.\nReturns the argument unchanged.\nA map from import names to import definitions.\nCalls U::from(self).\nA Leo program scope consists of struct, function, and …\nA map from program names to program scopes.\nA map from program stub names to program stub scopes.\nAn identifier for a program that is eventually deployed to …\nReturns the argument unchanged.\nCalls U::from(self).\nThe name of the program.\nThe network associated with the program.\nStores the Leo program scope abstract syntax tree.\nA vector of const definitions\nReturns the argument unchanged.\nA vector of function definitions.\nCalls U::from(self).\nA vector of mapping definitions.\nThe program id of the program scope.\nThe span associated with the program scope.\nA vector of struct definitions.\nAn assert statement.\nAn assignment statement.\nA block statement.\nAn if statement.\nA console logging statement.\nA binding from identifier to constant value.\nA binding or set of bindings / variables to declare.\nAn expression statement\nA for statement.\nA return statement return expr;.\nProgram statement that defines some action (or expression) …\nReturns a dummy statement made from an empty block {}.\nReturns the argument unchanged.\nCalls U::from(self).\nA assert(expr) variant, asserting that the expression …\nA assert_eq(expr1, expr2) variant, asserting that the …\nA assert_neq(expr1, expr2) variant, asserting that the …\nAn assert statement, assert(<expr>), assert_eq(<expr>) or …\nA variant of an assert statement.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nCalls U::from(self).\nThe span, excluding the semicolon.\nThe variant of the assert statement.\nAn assignment statement, assignee = value. Note that there …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe place to assign to. Note that place can either be an …\nThe span, excluding the semicolon.\nThe value to assign to the assignee.\nA block { [stmt]* } consisting of a list of statements to …\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span from { to }.\nThe list of statements to execute.\nAn if condition block (else next)? statement.\nThe bool-typed condition deciding what to evaluate.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe statement, if any, to evaluate when condition yields …\nThe span from if to next or to block.\nThe block to evaluate in case condition yields true.\nA console.assert(expr) call to invoke, asserting that the …\nA console.assert_eq(expr1, expr2) call to invoke, …\nA console.assert_neq(expr1, expr2) call to invoke, …\nA console logging function to invoke.\nReturns the argument unchanged.\nCalls U::from(self).\nA console logging statement like console.log(...);.\nReturns the argument unchanged.\nThe logging function to run.\nThe ID of the node.\nCalls U::from(self).\nThe span excluding the semicolon.\nA constant declaration statement.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe place to assign to. As opposed to DefinitionStatement, …\nThe span excluding the semicolon.\nThe type of the binding, if specified, or inferred …\nAn initializer value for the binding.\nThis is a const binding.\nThe sort of bindings to introduce, either let or const.\nA let or const declaration statement.\nThis is a let binding.\nWhat sort of declaration is this? let or const?.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe bindings / variable names to declare.\nThe span excluding the semicolon.\nThe types of the bindings, if specified, or inferred …\nAn initializer value for the bindings.\nThis is a const binding.\nThe sort of bindings to introduce, either let or const.\nThis is a let binding.\nReturns the argument unchanged.\nCalls U::from(self).\nAn expression statement, foo(a);.\nThe expression associated with the statement.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span.\nA bounded for loop statement …\nThe block to run on each iteration.\nReturns the argument unchanged.\nThe ID of the node.\nWhether stop is inclusive or not. Signified with = when …\nCalls U::from(self).\nThe span from for to block.\nThe start of the iteration.\nThe concrete value of start.\nThe end of the iteration, possibly inclusive.\nThe concrete value of stop.\nThe type of the iteration.\nThe binding / variable to introduce in the body block.\nA return statement return expression;.\nThe expression to return to the function caller.\nReturns the argument unchanged.\nThe ID of the node.\nCalls U::from(self).\nThe span of return expression excluding the semicolon.\nA composite type definition, e.g., …\nThe external program the struct is defined in.\nReturns the argument unchanged.\nThe ID of the node.\nThe name of the type in the type system in this module.\nCalls U::from(self).\nWas this a record Foo { ... }? If so, it wasn’t a …\nThe fields, constant variables, and functions of this …\nReturns the composite name as a Symbol.\nThe entire span of the composite definition.\nA member of a structured data type, e.g foobar: u8 or …\nReturns the argument unchanged.\nThe ID of the node.\nThe identifier of the member.\nCalls U::from(self).\nThe mode of the member.\nReturns the name of the struct member without span.\nThe span of the member.\nThe type of the member.\nStores the Leo stub abstract syntax tree.\nA vector of const definitions.\nConstructs an empty program stub\nReturns the argument unchanged.\nA vector of function stub definitions.\nA vector of imported programs.\nCalls U::from(self).\nA vector of mapping definitions.\nThe span associated with the stub.\nA vector of struct definitions.\nThe stub id\nA function stub definition.\nAnnotations on the function.\nPrivate formatting method used for optimizing fmt::Debug …\nReturns the argument unchanged.\nConverts from snarkvm function type to leo FunctionStub, …\nThe ID of the node.\nThe function identifier, e.g., foo in …\nThe function’s input parameters.\nCalls U::from(self).\nReturns true if the function name is main.\nReturns function name.\nInitialize a new function.\nThe function’s output declarations.\nThe function’s output type.\nThe entire span of the function definition.\nIs this function a transition, inlined, or a regular …\nAn array type.\nReturns the base element type of the array.\nReturns the element type of the array.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the length of the array.\nCreates a new array type.\nA core constant that maps directly to an AVM bytecode …\nReturns the argument unchanged.\nReturns a CoreConstant from the given type and constant …\nCalls U::from(self).\nReturns the Type of the CoreConstant.\nA future type consisting of the type of the inputs.\nReturns the argument unchanged.\nReturns the inputs of the future type.\nCalls U::from(self).\nReturns the location of the future type.\nInitialize a new future type.\nExplicit integer type.\nReturns the argument unchanged.\nCalls U::from(self).\nIs the integer type a signed one?\nReturns the symbol for the integer type.\nA mapping type of a key and value type.\nReturns the argument unchanged.\nCalls U::from(self).\nA composite type of a identifier and external program name.\nReturns the argument unchanged.\nCalls U::from(self).\nA type list of at least two types.\nReturns the elements of the tuple type.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the length of the tuple type.\nCreates a new tuple type.\nThe address type.\nThe array type.\nThe bool type.\nThe struct type.\nPlaceholder for a type that could not be resolved or was …\nThe field type.\nThe future type.\nThe group type.\nA reference to a built in type.\nAn integer type.\nA mapping type.\nThe scalar type.\nThe signature type.\nThe string type.\nA static tuple of at least one type.\nExplicit type used for defining a variable or expression …\nThe unit type.\nReturns true if the self Type is equal to the other Type …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nConverts a literal to a value.") \ No newline at end of file diff --git a/search.desc/leo_compiler/leo_compiler-desc-0-.js b/search.desc/leo_compiler/leo_compiler-desc-0-.js index 65d9e24e20..e7aaf96e51 100644 --- a/search.desc/leo_compiler/leo_compiler-desc-0-.js +++ b/search.desc/leo_compiler/leo_compiler-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("leo_compiler", 0, "leo-compiler\nThe abstract syntax tree (AST) for a Leo program.\nThe primary entry point of the Leo compiler.\nReturns a reference to the inner program AST …\nThe Assigner is used to construct (unique) assignment …\nThe AST for the program.\nWhether spans are enabled in the output ASTs.\nBuild options.\nThe compiler for Leo programs.\nOptions configuring compilation.\nMax depth to type check nested conditionals.\nIf enabled writes the AST after dead code elimination.\nWhether to enable dead code elimination.\nIf enabled writes the AST after destructuring.\nWhether to disable type checking for nested conditionals.\nIf enabled writes the AST after flattening.\nReturns the argument unchanged.\nDeserializes the JSON string into a ast from a file.\nDeserializes the JSON string into a ast.\nThe handler is used for error and warning emissions.\nThe stubs for imported programs. Produced by Retriever …\nIf enabled writes the AST after parsing.\nIf enabled writes the AST after inlining.\nCalls U::from(self).\nThe path to the main leo file.\nThe network name,\nCreates a new AST from a given program tree.\nThe NodeCounter used to generate sequentially increasing …\nOutput options.\nThe path to where the compiler outputs all generated files.\nThe program name,\nIf enabled writes the AST after static single assignment.\nSerializes the ast into a JSON file.\nSerializes the ast into a JSON value and removes keys from …\nSerializes the ast into a JSON string.\nThe type table.\nIf enabled writes the AST after loop unrolling.\nThe abstract syntax tree (AST) for a Leo program.\nThe primary entry point of the Leo compiler.\nMerges the dependencies defined in program.json with the …\nThe Assigner is used to construct (unique) assignment …\nThe AST for the program.\nReturns a SHA256 checksum of the program file.\nRuns the code generation pass.\nReturns a compiled Leo program.\nOptions configuring compilation.\nRuns the compiler stages.\nRuns the dead code elimination pass.\nRuns the destructuring pass.\nRuns the flattening pass.\nReturns the argument unchanged.\nRuns the function inlining pass.\nThe handler is used for error and warning emissions.\nThe stubs for imported programs. Produced by Retriever …\nCalls U::from(self).\nRuns the loop unrolling pass.\nThe path to the main leo file.\nThe network name,\nReturns a new Leo compiler.\nThe NodeCounter used to generate sequentially increasing …\nThe path to where the compiler outputs all generated files.\nParses and stores the main program file, constructs a …\nParses and stores a program file content from a string, …\nThe program name,\nRuns the static analysis pass.\nRuns the static single assignment pass.\nRuns the symbol table pass.\nRuns the type checker pass.\nThe type table.\nWrites the AST to a JSON file.\nWhether spans are enabled in the output ASTs.\nBuild options.\nMax depth to type check nested conditionals.\nIf enabled writes the AST after dead code elimination.\nWhether to enable dead code elimination.\nIf enabled writes the AST after destructuring.\nWhether to disable type checking for nested conditionals.\nIf enabled writes the AST after flattening.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIf enabled writes the AST after parsing.\nIf enabled writes the AST after inlining.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOutput options.\nIf enabled writes the AST after static single assignment.\nIf enabled writes the AST after loop unrolling.") \ No newline at end of file +searchState.loadedDescShard("leo_compiler", 0, "leo-compiler\nThe abstract syntax tree (AST) for a Leo program.\nThe primary entry point of the Leo compiler.\nReturns a reference to the inner program AST …\nThe Assigner is used to construct (unique) assignment …\nThe AST for the program.\nWhether spans are enabled in the output ASTs.\nBuild options.\nThe compiler for Leo programs.\nOptions configuring compilation.\nMax depth to type check nested conditionals.\nIf enabled writes the AST after dead code elimination.\nWhether to enable dead code elimination.\nIf enabled writes the AST after destructuring.\nWhether to disable type checking for nested conditionals.\nIf enabled writes the AST after flattening.\nReturns the argument unchanged.\nDeserializes the JSON string into a ast from a file.\nDeserializes the JSON string into a ast.\nThe handler is used for error and warning emissions.\nThe stubs for imported programs. Produced by Retriever …\nIf enabled writes the AST after parsing.\nIf enabled writes the AST after inlining.\nCalls U::from(self).\nThe path to the main leo file.\nThe network name,\nCreates a new AST from a given program tree.\nThe NodeCounter used to generate sequentially increasing …\nOutput options.\nThe path to where the compiler outputs all generated files.\nThe program name,\nIf enabled writes the AST after static single assignment.\nSerializes the ast into a JSON file.\nSerializes the ast into a JSON value and removes keys from …\nSerializes the ast into a JSON string.\nThe type table.\nIf enabled writes the AST after loop unrolling.\nThe abstract syntax tree (AST) for a Leo program.\nThe primary entry point of the Leo compiler.\nMerges the dependencies defined in program.json with the …\nThe Assigner is used to construct (unique) assignment …\nThe AST for the program.\nReturns a SHA256 checksum of the program file.\nRuns the code generation pass.\nReturns a compiled Leo program.\nOptions configuring compilation.\nRuns the compiler stages.\nRun const propagation and loop unrolling until we hit a …\nRuns the const propagation pass.\nRuns the dead code elimination pass.\nRuns the destructuring pass.\nRuns the flattening pass.\nReturns the argument unchanged.\nRuns the function inlining pass.\nThe handler is used for error and warning emissions.\nThe stubs for imported programs. Produced by Retriever …\nCalls U::from(self).\nRuns the loop unrolling pass.\nThe path to the main leo file.\nThe network name,\nReturns a new Leo compiler.\nThe NodeCounter used to generate sequentially increasing …\nThe path to where the compiler outputs all generated files.\nParses and stores the main program file, constructs a …\nParses and stores a program file content from a string, …\nThe program name,\nRuns the static analysis pass.\nRuns the static single assignment pass.\nRuns the symbol table pass.\nRuns the type checker pass.\nThe type table.\nWrites the AST to a JSON file.\nWhether spans are enabled in the output ASTs.\nBuild options.\nMax depth to type check nested conditionals.\nIf enabled writes the AST after dead code elimination.\nWhether to enable dead code elimination.\nIf enabled writes the AST after destructuring.\nWhether to disable type checking for nested conditionals.\nIf enabled writes the AST after flattening.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nIf enabled writes the AST after parsing.\nIf enabled writes the AST after inlining.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOutput options.\nIf enabled writes the AST after static single assignment.\nIf enabled writes the AST after loop unrolling.") \ No newline at end of file diff --git a/search.desc/leo_errors/leo_errors-desc-0-.js b/search.desc/leo_errors/leo_errors-desc-0-.js index 2c299ce249..f06a5ec710 100644 --- a/search.desc/leo_errors/leo_errors-desc-0-.js +++ b/search.desc/leo_errors/leo_errors-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("leo_errors", 0, "leo-errors\nContains the common functionalities for defining errors.\nA macro that given an enum, exit code mask, error code …\nContains traits and types for channels through which …\nContains the errors and warnings for the Leo language.\nThis module contains a backtraced error and its methods.\nThis module contains a formatted error and its methods.\nThis module contains the macros for making errors easily.\nThis module contains traits for making errors easily.\nBacktraced compiler output type undefined value x –> …\nThe indent for an error message.\nThe backtrace representing where the error occurred in Leo.\nThe error exit code.\nThe error leading digits identifier.\nIs this Backtrace a warning or error?\nGets a unique error identifier.\nGets the backtraced error exit code.\nReturns the argument unchanged.\nThe error help message if it exists.\nCalls U::from(self).\nThe error message.\nCreates a backtraced error from a backtrace.\nThe characters representing the type of error.\nGets a unique warning identifier.\nFormatted compiler error type undefined value x –> …\nThe backtrace to track where the Leo error originated.\nReturns an error identifier.\nCalls the backtraces error exit code.\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a backtraced error from a span and a backtrace.\nThe formatted error span information.\nReturns an warning identifier.\nMessageCode trait that all Errors should implement.\nThe LeoErrorCode which has a default code identifier of 037\nReturns the messages’s exit code mask, as to avoid …\nReturns the prefixed error identifier.\nReturns the error’s exit code for the program.\nReturns if the message is an error or warning.\nReturns the message’s code type for the program.\nReturns the prefixed warning identifier.\nA buffer of Ts.\nAn Emitter that collects into a list.\nTypes that are sinks for compiler errors.\nA buffer of LeoErrors.\nA handler deals with errors and other compiler output.\nContains the actual data for Handler. Modelled this way to …\nA trivial Emitter using the standard error.\nA buffer of LeoWarnings.\nEmit the error err.\nEmit the error err.\nEmit the error err.\nEmit the warning.\nEmit the error err.\nEmit the error err.\nThe sink through which errors will be emitted.\nThe number of errors thus far.\nNumber of errors emitted thus far.\nExtend handler with error given res = Err(error).\nExtracts all the errors collected in this emitter.\nExtracts all the errors collected in this emitter.\nEmits the error err. This will immediately abort …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDid we have any errors thus far?\nThe inner handler. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nExtract the underlying list of Ts.\nTracks last emitted error.\nGets the last emitted error’s exit code.\nLast entry to the buffer.\nGets the last emitted error’s exit code if it exists. …\nExit code of the last emitted error.\nConstruct a Handler using the given emitter.\nReturns a new buffered emitter.\nConstruct a Handler that will append to buf.\nPush x to the buffer.\nNumber of warnings emitted thus far.\nThe number of warnings thus far.\nRuns logic provided a handler that collects all errors …\nAnyhow errors.\nRepresents an AST Error in a Leo Error.\nRepresents a CLI Error in a Leo Error.\nRepresents a Compiler Error in a Leo Error.\nContains the error value\nRepresents a Flatten Error in a Leo Error.\nPurely for just exiting with the correct status code and …\nThe LeoError type that contains all sub error types. This …\nThe LeoWarning type that contains all sub warning types. …\nRepresents a Loop Unroller Error in a Leo Error.\nContains the success value\nRepresents a Package Error in a Leo Error.\nRepresents a Parser Error in a Leo Error.\nRepresents an Parser Warning in a Leo Warning.\nA global result type for all Leo crates, that defaults the …\nRepresents a Static Analyzer Error in a Leo Error.\nRepresents a Static Analyzer Warning in a Leo Warning.\nRepresents a Type Checker Error in a Leo Error.\nRepresents a Type Checker Warning in a Leo Warning.\nRepresents a Utils Error in a Leo Error.\nContains the AST error definitions.\nContains the CLI error definitions.\nContains the Compiler error definitions.\nImplement error code for each type of Error.\nImplement warning code for each type of Warning.\nImplement exit code for each type of Error.\nContains the Flattener error definitions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nContains the Loop Unroller error definitions.\nContains the Package error definitions.\nContains the Parser error definitions.\nContains the Static Analyzer error definitions.\nContains the Type Checker error definitions.\nContains the Utils error definitions.\nThis module contains the AST error definitions.\nAstError enum that represents all the errors for the …\nFor when the AST fails to be represented as a JSON string.\nFor when the AST fails to be represented as a JSON value.\nFor when the symbol table fails to be represented as a …\nFor when the symbol table fails to be represented as a …\nFor when the AST fails to create the AST JSON file.\nFor when the symbol table fails to create the symbol table …\nFor when the a JSON files fails to be represented as an …\nFor when the a JSON string fails to be represented as an …\nFor when the a JSON string fails to be represented as an …\nFor when the AST fails to write the AST JSON file.\nFor when the symbol table fails to write the symbol table …\nReturns the argument unchanged.\nCalls U::from(self).\nFor when a user shadows a function.\nFor when a user shadows a record.\nFor when a user shadows a struct.\nFor when a user shadows a variable.\nThis module contains the CLI error definitions.\nCliError enum that represents all the errors for the …\nFor when the CLI is given invalid user input.\nFor when the CLI experiences an IO error.\nFor when the CLI fails to run something\nFor when the CLI could not fetch the versions.\nFor when the CLI fails to enable ansi support.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when the CLI has an old release version.\nFor when the CLI fails to self update.\nFor when the CLI fails to self update.\nThis module contains the Compiler error definitions.\nCompilerError enum that represents all the errors for the …\nFor when the compiler can’t read a file from the …\nReturns the argument unchanged.\nFor when a user tries to assign to a struct static member.\nCalls U::from(self).\nThis module contains the Flattener error definitions.\nCliError enum that represents all the errors for the …\nFor when a constant operation would cause an overflow.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when a loop uses a negative value.\nGenerates the type name of a value.\nFor when a u128 value cannot be converted into an i128.\nFor when a constant operation would cause an overflow.\nRepresents the interpreter halting, which should not be …\nReturns the argument unchanged.\nCalls U::from(self).\nUser visible message.\nOptional Span where the halt occurred.\nThis module contains the Input error definitions.\nLoopUnrollerError enum that represents all the errors for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Package error definitions.\nPackageError enum that represents all the errors for the …\nFor when opening a directory failed.\nFor when creating a directory failed.\nFor when creating the inputs directory failed.\nFor when creating the source directory failed.\nFor when getting a input file entry failed.\nFor when getting the input file type failed.\nFor when getting a Leo file entry failed.\nFor when getting the source file extension failed.\nFor when the package failed to initialize.\nFor when reading the checksum file failed.\nFor when reading the struct file failed.\nFor when file could not be read.\nFor when reading the input file failed.\nFor when reading the input directory failed.\nFor when reading the snapshot file failed.\nFor when removing the checksum file failed.\nFor when removing the struct file failed.\nFor when removing a directory failed.\nFor when removing the snapshot file failed.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when getting the input file has an invalid file type.\nFor when the Leo file has an invalid extension.\nFor when the package has an invalid name.\nFor when the checksum file has an IO error.\nFor when the struct file has an IO error.\nFor when the environment file has an IO error.\nFor when the gitignore file has an IO error.\nFor when the input file has an IO error.\nFor when the main file has an IO error.\nThis module contains the Parser error definitions.\nThis module contains the Parser warning definitions.\nParserError enum that represents all the errors for the …\nEnforce that cannot use import in program scope\nFor when the parser encountered a member declaration not …\nWhen the lexer could not lex some text.\nReturns the argument unchanged.\nWhen the user tries to pass an implicit value.\nFor when a user specified more than one mode on a …\nCalls U::from(self).\nFor when the parser encountered an invalid address literal.\nFor when the parser encountered an empty import list.\nParsed an unknown method call on the type of an expression.\nFor when the lexer encountered a bidi override character\nWhen a block comment is not closed before end of file.\nWhen a block comment is empty.\nWhen more input was expected but not found.\nWhen an integer is started with a leading zero.\nWhen a hex number is provided.\nWhen a string is not properly closed.\nFor when the parser encountered a mix of commas and …\nFor when the parser encountered an unexpected spread in an …\nEnforce that tuple index must not have leading 0, or …\nFor when the parser encountered an unexpected list of …\nFor when the parser encountered an unexpected End of File.\nFor when the parser encountered an unexpected identifier.\nFor when the parser encountered an unexpected statement.\nFor when the parser encountered an unexpected string.\nFor when the parser encountered an unexpected token.\nFor when the parser encountered an unexpected whitespace.\nParserWarning enum that represents all the warnings for …\nFor when a user used const on a parameter or input instead …\nFor when a keyword is deprecated but could be used as a …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the static analysis error definitions.\nStaticAnalyzer enum that represents all the errors for …\nReturns the argument unchanged.\nCalls U::from(self).\nParserWarning enum that represents all the warnings for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Input error definitions.\nInputError enum that represents all the errors for the …\nFor when the user tries to assign to a const input.\nFor when the user tries to assign to a const input.\nFor when a struct is created with the same name as a core …\nFor when the type checker cannot determine the type of an …\nAttempted to define more that one record variable with the …\nAttempted to define more that one struct member with the …\nFor when one of the following types was expected.\nReturns the argument unchanged.\nFor when a function doesn’t have a return statement.\nFor when the user tries calls a function with the …\nFor when the user tries initialize a struct with the …\nCalls U::from(self).\nFor when the parser encountered an invalid assignment …\nA call to an invalid associated constant is made e.g., …\nFor when an invalid field of block is called.\nFor when an invalid core constant is called.\nFor when an invalid core function is used.\nAn invalid access call is made e.g., `SHA256::hash()\nFor when an integer is not in a valid range.\nAttempted to access an invalid struct variable.\nFor when the user is missing a struct member during …\nFor when the user tries to assign to a const input.\nFor when the user tries to assign to a const input.\nAttempted to access an invalid struct.\nFor when the user tries to return a unknown variable.\nParserWarning enum that represents all the warnings for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Input error definitions.\nInputError enum that represents all the errors for the …\nReturns the argument unchanged.\nCalls U::from(self).") \ No newline at end of file +searchState.loadedDescShard("leo_errors", 0, "leo-errors\nContains the common functionalities for defining errors.\nA macro that given an enum, exit code mask, error code …\nContains traits and types for channels through which …\nContains the errors and warnings for the Leo language.\nThis module contains a backtraced error and its methods.\nThis module contains a formatted error and its methods.\nThis module contains the macros for making errors easily.\nThis module contains traits for making errors easily.\nBacktraced compiler output type undefined value x –> …\nThe indent for an error message.\nThe backtrace representing where the error occurred in Leo.\nThe error exit code.\nThe error leading digits identifier.\nIs this Backtrace a warning or error?\nGets a unique error identifier.\nGets the backtraced error exit code.\nReturns the argument unchanged.\nThe error help message if it exists.\nCalls U::from(self).\nThe error message.\nCreates a backtraced error from a backtrace.\nThe characters representing the type of error.\nGets a unique warning identifier.\nFormatted compiler error type undefined value x –> …\nThe backtrace to track where the Leo error originated.\nReturns an error identifier.\nCalls the backtraces error exit code.\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a backtraced error from a span and a backtrace.\nThe formatted error span information.\nReturns an warning identifier.\nMessageCode trait that all Errors should implement.\nThe LeoErrorCode which has a default code identifier of 037\nReturns the messages’s exit code mask, as to avoid …\nReturns the prefixed error identifier.\nReturns the error’s exit code for the program.\nReturns if the message is an error or warning.\nReturns the message’s code type for the program.\nReturns the prefixed warning identifier.\nA buffer of Ts.\nAn Emitter that collects into a list.\nTypes that are sinks for compiler errors.\nA buffer of LeoErrors.\nA handler deals with errors and other compiler output.\nContains the actual data for Handler. Modelled this way to …\nA trivial Emitter using the standard error.\nA buffer of LeoWarnings.\nEmit the error err.\nEmit the error err.\nEmit the error err.\nEmit the warning.\nEmit the error err.\nEmit the error err.\nThe sink through which errors will be emitted.\nThe number of errors thus far.\nNumber of errors emitted thus far.\nExtend handler with error given res = Err(error).\nExtracts all the errors collected in this emitter.\nExtracts all the errors collected in this emitter.\nEmits the error err. This will immediately abort …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDid we have any errors thus far?\nThe inner handler. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nExtract the underlying list of Ts.\nTracks last emitted error.\nGets the last emitted error’s exit code.\nLast entry to the buffer.\nGets the last emitted error’s exit code if it exists. …\nExit code of the last emitted error.\nConstruct a Handler using the given emitter.\nReturns a new buffered emitter.\nConstruct a Handler that will append to buf.\nPush x to the buffer.\nNumber of warnings emitted thus far.\nThe number of warnings thus far.\nRuns logic provided a handler that collects all errors …\nAnyhow errors.\nRepresents an AST Error in a Leo Error.\nRepresents a CLI Error in a Leo Error.\nRepresents a Compiler Error in a Leo Error.\nContains the error value\nRepresents a Flatten Error in a Leo Error.\nPurely for just exiting with the correct status code and …\nThe LeoError type that contains all sub error types. This …\nThe LeoWarning type that contains all sub warning types. …\nRepresents a Loop Unroller Error in a Leo Error.\nContains the success value\nRepresents a Package Error in a Leo Error.\nRepresents a Parser Error in a Leo Error.\nRepresents an Parser Warning in a Leo Warning.\nA global result type for all Leo crates, that defaults the …\nRepresents a Static Analyzer Error in a Leo Error.\nRepresents a Static Analyzer Warning in a Leo Warning.\nRepresents a Type Checker Error in a Leo Error.\nRepresents a Type Checker Warning in a Leo Warning.\nRepresents a Utils Error in a Leo Error.\nContains the AST error definitions.\nContains the CLI error definitions.\nContains the Compiler error definitions.\nImplement error code for each type of Error.\nImplement warning code for each type of Warning.\nImplement exit code for each type of Error.\nContains the Flattener error definitions.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nContains the Loop Unroller error definitions. This module …\nContains the Package error definitions.\nContains the Parser error definitions.\nContains the Static Analyzer error definitions.\nContains the Type Checker error definitions.\nContains the Utils error definitions.\nThis module contains the AST error definitions.\nAstError enum that represents all the errors for the …\nFor when the AST fails to be represented as a JSON string.\nFor when the AST fails to be represented as a JSON value.\nFor when the symbol table fails to be represented as a …\nFor when the symbol table fails to be represented as a …\nFor when the AST fails to create the AST JSON file.\nFor when the symbol table fails to create the symbol table …\nFor when the a JSON files fails to be represented as an …\nFor when the a JSON string fails to be represented as an …\nFor when the a JSON string fails to be represented as an …\nFor when the AST fails to write the AST JSON file.\nFor when the symbol table fails to write the symbol table …\nReturns the argument unchanged.\nCalls U::from(self).\nFor when a user shadows a function.\nFor when a user shadows a record.\nFor when a user shadows a struct.\nFor when a user shadows a variable.\nThis module contains the CLI error definitions.\nCliError enum that represents all the errors for the …\nFor when the CLI is given invalid user input.\nFor when the CLI experiences an IO error.\nFor when the CLI fails to run something\nFor when the CLI could not fetch the versions.\nFor when the CLI fails to enable ansi support.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when the CLI has an old release version.\nFor when the CLI fails to self update.\nFor when the CLI fails to self update.\nThis module contains the Compiler error definitions.\nCompilerError enum that represents all the errors for the …\nFor when the compiler can’t read a file from the …\nReturns the argument unchanged.\nFor when a user tries to assign to a struct static member.\nCalls U::from(self).\nThis module contains the Flattener error definitions.\nCliError enum that represents all the errors for the …\nFor when a constant operation would cause an overflow.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when a loop uses a negative value.\nGenerates the type name of a value.\nFor when a u128 value cannot be converted into an i128.\nFor when a constant operation would cause an overflow.\nRepresents the interpreter halting, which should not be …\nReturns the argument unchanged.\nCalls U::from(self).\nUser visible message.\nOptional Span where the halt occurred.\nLoopUnrollerError enum that represents all the errors for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Package error definitions.\nPackageError enum that represents all the errors for the …\nFor when opening a directory failed.\nFor when creating a directory failed.\nFor when creating the inputs directory failed.\nFor when creating the source directory failed.\nFor when getting a input file entry failed.\nFor when getting the input file type failed.\nFor when getting a Leo file entry failed.\nFor when getting the source file extension failed.\nFor when the package failed to initialize.\nFor when reading the checksum file failed.\nFor when reading the struct file failed.\nFor when file could not be read.\nFor when reading the input file failed.\nFor when reading the input directory failed.\nFor when reading the snapshot file failed.\nFor when removing the checksum file failed.\nFor when removing the struct file failed.\nFor when removing a directory failed.\nFor when removing the snapshot file failed.\nReturns the argument unchanged.\nCalls U::from(self).\nFor when getting the input file has an invalid file type.\nFor when the Leo file has an invalid extension.\nFor when the package has an invalid name.\nFor when the checksum file has an IO error.\nFor when the struct file has an IO error.\nFor when the environment file has an IO error.\nFor when the gitignore file has an IO error.\nFor when the input file has an IO error.\nFor when the main file has an IO error.\nThis module contains the Parser error definitions.\nThis module contains the Parser warning definitions.\nParserError enum that represents all the errors for the …\nEnforce that cannot use import in program scope\nFor when the parser encountered a member declaration not …\nWhen the lexer could not lex some text.\nReturns the argument unchanged.\nWhen the user tries to pass an implicit value.\nFor when a user specified more than one mode on a …\nCalls U::from(self).\nFor when the parser encountered an invalid address literal.\nFor when the parser encountered an empty import list.\nParsed an unknown method call on the type of an expression.\nFor when the lexer encountered a bidi override character\nWhen a block comment is not closed before end of file.\nWhen a block comment is empty.\nWhen more input was expected but not found.\nWhen an integer is started with a leading zero.\nWhen a hex number is provided.\nWhen a string is not properly closed.\nFor when the parser encountered a mix of commas and …\nFor when the parser encountered an unexpected spread in an …\nEnforce that tuple index must not have leading 0, or …\nFor when the parser encountered an unexpected list of …\nFor when the parser encountered an unexpected End of File.\nFor when the parser encountered an unexpected identifier.\nFor when the parser encountered an unexpected statement.\nFor when the parser encountered an unexpected string.\nFor when the parser encountered an unexpected token.\nFor when the parser encountered an unexpected whitespace.\nParserWarning enum that represents all the warnings for …\nFor when a user used const on a parameter or input instead …\nFor when a keyword is deprecated but could be used as a …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the static analysis error definitions.\nStaticAnalyzer enum that represents all the errors for …\nReturns the argument unchanged.\nCalls U::from(self).\nParserWarning enum that represents all the warnings for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Input error definitions.\nInputError enum that represents all the errors for the …\nFor when the user tries to assign to a const input.\nFor when the user tries to assign to a const input.\nFor when a struct is created with the same name as a core …\nFor when the type checker cannot determine the type of an …\nAttempted to define more that one record variable with the …\nAttempted to define more that one struct member with the …\nFor when one of the following types was expected.\nReturns the argument unchanged.\nFor when a function doesn’t have a return statement.\nFor when the user tries calls a function with the …\nFor when the user tries initialize a struct with the …\nCalls U::from(self).\nFor when the parser encountered an invalid assignment …\nA call to an invalid associated constant is made e.g., …\nFor when an invalid field of block is called.\nFor when an invalid core constant is called.\nFor when an invalid core function is used.\nAn invalid access call is made e.g., `SHA256::hash()\nFor when an integer is not in a valid range.\nAttempted to access an invalid struct variable.\nFor when the user is missing a struct member during …\nFor when the user tries to assign to a const input.\nFor when the user tries to assign to a const input.\nAttempted to access an invalid struct.\nFor when the user tries to return a unknown variable.\nParserWarning enum that represents all the warnings for …\nReturns the argument unchanged.\nCalls U::from(self).\nThis module contains the Input error definitions.\nInputError enum that represents all the errors for the …\nReturns the argument unchanged.\nCalls U::from(self).") \ No newline at end of file diff --git a/search.desc/leo_interpreter/leo_interpreter-desc-0-.js b/search.desc/leo_interpreter/leo_interpreter-desc-0-.js index 2bae2c9b74..d900359fc3 100644 --- a/search.desc/leo_interpreter/leo_interpreter-desc-0-.js +++ b/search.desc/leo_interpreter/leo_interpreter-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("leo_interpreter", 0, "Load all the Leo source files indicated and open the …\nA Leo block.\nA stack of contexts, building with the function call stack.\nTracks the current execution state - a cursor into the …\nA Leo construct to be evauated.\nA Leo expression.\nA frame of execution, keeping track of the Element next to …\nNames associated to values in a function being executed.\nGlobal values - such as mappings, functions, etc - are …\nA Leo statement.\nEvaluate a binary operation.\nEvaluate a unary operation.\nHas this element completely finished running?\nStack of execution frames, with the one currently to be …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAll functions (or transitions or inlines) in any program …\nGet the future accumulated by awaiting futures in the …\nConsts are stored here.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAre we currently in an async function?\nreally_async indicates we should really delay execution of …\nStep over the current Element.\nExecute one step of the current element.\nFor each struct type, we only need to remember the names …\nIf the element was an expression, here’s its value.\nStack of values from evaluated expressions.\nExecute the whole step of the current Element.\nReturns the argument unchanged.\nCalls U::from(self).\nContains the state of interpretation, in the form of the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns false if there was no saved cursor to restore.\nReturns true if any watchpoints changed.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nA Leo value of any type.\nConvert to the given type if possible under Aleo casting …\nAre the values equal, according to SnarkVM?\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the group generator.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDoesn’t correspond to Aleo’s shl, because it does not …") \ No newline at end of file +searchState.loadedDescShard("leo_interpreter", 0, "A context in which we can evaluate core functions.\nA Leo value of any type.\nEvaluate a binary operation.\nEvaluate a unary operation.\nLoad all the Leo source files indicated and open the …\nA context in which we can evaluate core functions.\nA Leo block.\nA stack of contexts, building with the function call stack.\nTracks the current execution state - a cursor into the …\nA Leo construct to be evauated.\nA Leo expression.\nA frame of execution, keeping track of the Element next to …\nNames associated to values in a function being executed.\nGlobal values - such as mappings, functions, etc - are …\nA Leo statement.\nEvaluate a binary operation.\nEvaluate a unary operation.\nHas this element completely finished running?\nStack of execution frames, with the one currently to be …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAll functions (or transitions or inlines) in any program …\nGet the future accumulated by awaiting futures in the …\nConsts are stored here.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAre we currently in an async function?\nreally_async indicates we should really delay execution of …\nStep over the current Element.\nExecute one step of the current element.\nFor each struct type, we only need to remember the names …\nIf the element was an expression, here’s its value.\nStack of values from evaluated expressions.\nExecute the whole step of the current Element.\nReturns the argument unchanged.\nCalls U::from(self).\nContains the state of interpretation, in the form of the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns false if there was no saved cursor to restore.\nReturns true if any watchpoints changed.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nA Leo value of any type.\nConvert to the given type if possible under Aleo casting …\nAre the values equal, according to SnarkVM?\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturn the group generator.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDoesn’t correspond to Aleo’s shl, because it does not …") \ No newline at end of file diff --git a/search.desc/leo_passes/leo_passes-desc-0-.js b/search.desc/leo_passes/leo_passes-desc-0-.js index 9b30161ae0..b9755d3de9 100644 --- a/search.desc/leo_passes/leo_passes-desc-0-.js +++ b/search.desc/leo_passes/leo_passes-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("leo_passes", 0, "leo-passes\nThe Dead Code Elimination pass traverses the AST and …\nThe destructuring pass traverses the AST and destructures …\nThe flattening pass traverses the AST after the SSA pass …\nThe Function Inlining pass traverses the AST and inlines …\nThe error handler.\nWhether or not traversing stub.\nThe current program name.\nThe Static Single Assignment pass traverses the AST and …\nThe set of local structs that have been successfully …\nThe SymbolTable constructed by this compiler pass.\nThe call graph for the program.\nMapping of composite names to a tuple containing metadata …\nThe depth of the current conditional block.\nReference to the current function.\nA reference to the finalize caller.\nReturns the argument unchanged.\nMapping of global identifiers to their associated names.\nCalls U::from(self).\nInitializes a new CodeGenerator.\nA counter to track the next available label.\nA counter to track the next available register.\nA reference to program. This is needed to look up external …\nThe program ID of the current program.\nThe struct dependency graph for the program.\nThe symbol table for the program.\nA mapping between expressions and their types.\nMapping of variables to registers.\nThe variant of the function we are currently traversing.\nA struct used to create assignment statements.\nContains the actual data for Assigner. Modeled this way to …\nA strictly increasing counter, used to ensure that new …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe inner counter. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nConstructs the assignment statement place = expr;. This …\nConstructs the assignment statement place = expr;. This …\nReturn a new unique Symbol from a &str.\nReturn a new unique Symbol from a &str.\nA call graph.\nAn error that is emitted when a cycle is detected in the …\nA directed graph.\nErrors in directed graph operations.\nAn import dependency graph.\nA node in a graph.\nA struct dependency graph.\nAdds an edge to the graph.\nReturns true if the graph contains the given node.\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nInitializes a new DiGraph from a vector of source nodes.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nReturns the post-order ordering of the graph. Detects if …\nRetains a subset of the nodes, and removes all edges in …\nRenameTable tracks the names assigned by static single …\nReturns the argument unchanged.\nThe mapping from symbols to node IDs. These are used to …\nCalls U::from(self).\nReturns the symbols that were renamed in the current scope.\nLooks up the new name for symbol, recursively checking the …\nLooks up the node ID for symbol, recursively checking the …\nThe mapping from names in the original AST to new names in …\nCreate a new RenameTable with the given parent.\nThe RenameTable of the parent scope.\nUpdates self.mapping with the desired entry. Creates a new …\nA Replacer applies replacer to all Identifiers in an AST. …\nReturns the argument unchanged.\nCalls U::from(self).\nMaps global and local symbols to information about them.\nAn entry for a variable in the symbol table.\nAn enumeration of the different types of variable type.\nLocal tables index by the NodeID of the function, …\nAttach a finalizer to a function.\nThe consts we’ve evaluated in this scope.\nThe type of declaration for the variable.\nEnther the parent scope of the current scope (or the …\nEnter the scope of this NodeID, creating a table if it …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFunctions indexed by location.\nThe locations of the futures passed to the async function …\nConsts that have been successfully evaluated.\nGlobal variables indexed by location.\nThe NodeID of the function, iteration, or block this table …\nThe types passed to the async function called by this …\nInsert an evaluated const into the current scope.\nInsert a function at this location.\nInsert a global at this location.\nInsert a record at this location.\nInsert a struct at this name.\nInsert a variable into the current scope.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterator over all the functions in this program.\nIterator over all the records in this program.\nIterator over all the structs (not records) in this …\nThe current LocalTable we’re looking at.\nThe name of the async function this async transition calls.\nFind the evaluated const accessible by the given name in …\nAccess the function at this location if it exists.\nAccess the global at this location if it exists.\nAccess the record at this location if it exists.\nAccess the struct by this name if it exists.\nAccess the variable accessible by this name in the current …\nThe parent NodeID of this scope, if it exists.\nRecords indexed by location.\nThe Span associated with the variable.\nStructs indexed by location.\nThe Type of the variable.\nVariables in this scope, indexed by name.\nAn entry for a variable in the symbol table.\nAn enumeration of the different types of variable type.\nThe type of declaration for the variable.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe locations of the futures passed to the async function …\nThe types passed to the async function called by this …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe name of the async function this async transition calls.\nThe Span associated with the variable.\nThe Type of the variable.\nA binary search tree to store all paths through nested …\nA node in a graph.\nA node in a tree.\nA counter.\nA counter.\nAdds a child to the current node.\nThe current depth.\nThe current depth.\nThe current node.\nThe current node.\nReturns the argument unchanged.\nCalls U::from(self).\nInitializes a new TreeNode from a vector of starting …\nRemoves an element from the current node. If the element …\nA mapping between node IDs and their types.\nReturns the argument unchanged.\nGets an entry from the table.\nThe inner table. RefCell is used here to avoid &mut all …\nInserts an entry into the table.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nWhether or not the variables are necessary.\nInitializes a new DeadCodeEliminator.\nA counter to generate unique node IDs.\nReconstruct an assignment statement by eliminating any …\nReconstructs the associated function access expression.\nReconstructs the statements inside a basic block, …\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nReconstructs expression statements by eliminating any dead …\nMarks identifiers as used. This is necessary to determine …\nLoop unrolling unrolls and removes iteration statements …\nReconstruct the components of the struct init expression. …\nThe set of used variables in the current function body.\nA struct used to construct (unique) assignment statements.\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nA counter used to generate unique node IDs.\nFlattens an assign statement, if necessary. Marks …\nReconstructs\nReplaces a tuple access expression with the appropriate …\nA wrapper around assigner.simple_assign_statement that …\nA mapping between variables and flattened tuple …\nA mapping between node IDs and their types.\nA Constructed guard is one which as been Anded with all …\nThere was a chain of conditionals on the path to this …\nAn expression representing a conditional to reach the …\nThere were no conditionals on the path to this return …\nAn Unconstructed guard is one representing a single …\nThere was a chain of conditionals on the path to this …\nA struct used to construct (unique) assignment statements.\nA stack of condition Expressions visited up to the current …\nConstruct an early return guard.\nConstruct a guard from the current state of the condition …\nFold guards and expressions into a single expression. Note …\nFolds a list of return statements into a single return …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the function is an async function.\nA counter used to generate unique node IDs.\nThe program name.\nRewrites an assert statement into a flattened form. Assert …\nFlattens an assign statement, if necessary. Marks …\nFlattens the statements inside a basic block. The …\nFlatten a conditional statement into a list of statements.\nFlattens a function’s body\nFlattens a program scope.\nTransforms a return statement into an empty block …\nReconstructs a struct init expression, flattening any …\nReconstructs ternary expressions over arrays, structs, and …\nA list containing tuples of guards and expressions …\nA wrapper around assigner.simple_assign_statement that …\nThe symbol table associated with the program.\nA mapping between node IDs and their types.\nA wrapper around assigner.unique_simple_assign_statement …\nTrue iff any of the guards to return statements so far …\nTrue iff the conditionals on the path to this return …\nAn AssignmentRenamer renames the left-hand side of all …\nClear the internal rename table.\nReturns the argument unchanged.\nCalls U::from(self).\nLoad the internal rename table with a set of entries.\nInitialize a new AssignmentRenamer.\nRename the left-hand side of the assignment statement.\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nRename the identifier if it is the left-hand side of an …\nLoop unrolling unrolls and removes iteration statements …\nRename the variable initializers in the struct expression.\nA wrapper around an Assigner used to create unique …\nThe call graph for the program.\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nInitializes a new FunctionInliner.\nA counter used to create unique NodeIDs.\nThe main program.\nReconstruct an assignment statement by inlining any …\nReconstructs the statements inside a basic block, …\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nReconstructs expression statements by inlining any …\nLoop unrolling unrolls and removes iteration statements …\nA map of reconstructed functions in the current program …\nA mapping between node IDs and their types.\nWhether or not a bound is inclusive or exclusive.\nA trait for whose implementors are concrete values for …\nAn iterator over a range of values.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe current program name.\nEmits a Loop Unrolling Error\nReturns the argument unchanged.\nAn error handler used for any errors found during …\nCalls U::from(self).\nAre we in the midst of unrolling a loop?\nA counter used to generate unique node IDs.\nThe symbol table for the function being processed.\nA mapping from node IDs to their types.\nUnrolls an IterationStatement.\nA helper function to unroll a single iteration an …\nA compiler pass consuming Self::Input and returning …\nRuns the compiler pass.\nType checks the awaiting of a future.\nAssert that an async call is a “simple” one. Simple is …\nStruct to store the state relevant to checking all futures …\nThe current program name.\nEmits a type checker error.\nEmits a type checker warning\nReturns the argument unchanged.\nThe error handler.\nCalls U::from(self).\nReturns a new static analyzer given a symbol table and …\nWhether or not a non-async external call has been seen in …\nThe symbol table for the program.\nThe type table for the program.\nThe variant of the function that we are currently …\nEnter scope for then branch of conditional.\nWhether or not to do full tree search for await checking.\nExit scope for conditional statement at current depth.\nExit scope for then branch of conditional.\nReturns the argument unchanged.\nCalls U::from(self).\nMaximum nesting depth to search for await checking.\nInitializes a new AwaitChecker.\nRemove from list. Returns true if there was a path where …\nInitialize futures.\nStatically updated set of futures to await.\nAll possible subsets of futures that must be awaited.\nReturns the argument unchanged.\nReturns the argument unchanged.\nError if futures are used improperly.\nCalls U::from(self).\nCalls U::from(self).\nA struct used to construct (unique) assignment statements.\nConsumes an access expression, accumulating any statements …\nConsumes an array expression, accumulating any statements …\nConsumes the expressions in an AssertStatement, returning …\nConsume all AssignStatements, renaming as necessary.\nConsumes a binary expression, accumulating any statements …\nConsumes a Block, flattening its constituent …\nConsumes a call expression without visiting the function …\nConsumes a cast expression, accumulating any statements …\nConsumes a ConditionalStatement, producing phi functions …\nParsing guarantees that console statements are not present …\nConsumes the DefinitionStatement into an AssignStatement, …\nConsumes the expressions associated with …\nReconstructs the Functions in the Program, while …\nProduces a new Identifier with a unique name.\nConsumes and returns the literal without making any …\nConsumes and returns the locator expression without making …\nReconstructs the expression associated with the return …\nReconstructs records in the program, ordering its fields …\nConsumes a struct initialization expression with renamed …\nConsumes a ternary expression, accumulating any statements …\nConsumes a tuple expression, accumulating any statements …\nConsumes a unary expression, accumulating any statements …\nReturns the argument unchanged.\nCalls U::from(self).\nA flag to determine whether or not the traversal is on the …\nInitializes a new StaticSingleAssigner with an empty …\nA counter used to generate unique node IDs.\nIf the RenameTable has a parent, then self.rename_table is …\nThe main program name.\nPushes a new scope, setting the current scope as the new …\nThe RenameTable for the current basic block in the AST\nThe SymbolTable of the program.\nA mapping from node IDs to their types.\nConstructs a simple assign statement for expr with a …\nRuns the compiler pass.\nReturns the argument unchanged.\nThe error handler.\nCalls U::from(self).\nWhether or not traversing stub.\nThe current program name.\nThe set of local structs that have been successfully …\nThe SymbolTable constructed by this compiler pass.\nUse this method when you know the actual type. Emits an …\nEmits an error if the type is not a mapping.\nEmits an error if the struct member is a record type.\nEmits an error if the type or its constituent types is not …\nMapping from async function name to the names of async …\nMapping from async function stub name to the inferred …\nThe call graph for the program.\nType checks the inputs to a core function call and returns …\nEmits an error if the two given types are not equal.\nHelper function to check that the input and output of …\nFor detecting the error …\nEmits a type checker error.\nEmits a type checker warning\nAre the types considered equal as far as the Leo user is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nType checks the inputs to an associated constant and …\nEmits an error if the struct is not a core library struct. …\nThe error handler.\nInserts variable to symbol table.\nCalls U::from(self).\nCalls U::from(self).\nSo we can check if we exceed limits on array size, number …\nWrapper around lookup_struct that additionally records all …\nMerge inferred types into lhs.\nReturns a new type checker given a symbol table and error …\nThe state of the current scope being traversed.\nA dependency graph of the structs in program.\nThe symbol table for the program.\nA mapping from node IDs to their types.\nThe set of used composites.\nLocation of most recent external call that produced a …\nReturns the argument unchanged.\nThe name of the function that we are currently traversing.\nThe futures that must be propagated to an async function.\nWhether the finalize caller has called the finalize …\nWhether or not the function that we are currently …\nInitialize state variables for new function.\nCalls U::from(self).\nWhether the current function is a call.\nWhether currently traversing a conditional statement.\nWhether or not we are currently traversing a stub.\nGet the current location.\nInitializes a new ScopeState.\nCurrent program name.\nThe variant of the function that we are currently …") \ No newline at end of file +searchState.loadedDescShard("leo_passes", 0, "leo-passes\nA pass to perform const propagation and folding.\nAn array index which was not able to be evaluated.\nAn array index which was not able to be evaluated.\nHave we actually modified the progam at all?\nSomething about the program was actually changed during …\nThe RHS of a const declaration we were not able to …\nA const declaration whose RHS was not able to be evaluated.\nThe Dead Code Elimination pass traverses the AST and …\nThe destructuring pass traverses the AST and destructures …\nThe flattening pass traverses the AST after the SSA pass …\nThe Function Inlining pass traverses the AST and inlines …\nThe error handler.\nThe error handler.\nWhether or not traversing stub.\nA counter used to generate unique node IDs.\nThe program name.\nThe current program name.\nThe Static Single Assignment pass traverses the AST and …\nThe set of local structs that have been successfully …\nThe symbol table associated with the program.\nThe SymbolTable constructed by this compiler pass.\nA mapping between node IDs and their types.\nThe call graph for the program.\nMapping of composite names to a tuple containing metadata …\nThe depth of the current conditional block.\nReference to the current function.\nA reference to the finalize caller.\nReturns the argument unchanged.\nMapping of global identifiers to their associated names.\nCalls U::from(self).\nInitializes a new CodeGenerator.\nA counter to track the next available label.\nA counter to track the next available register.\nA reference to program. This is needed to look up external …\nThe program ID of the current program.\nThe struct dependency graph for the program.\nThe symbol table for the program.\nA mapping between expressions and their types.\nMapping of variables to registers.\nThe variant of the function we are currently traversing.\nA struct used to create assignment statements.\nContains the actual data for Assigner. Modeled this way to …\nA strictly increasing counter, used to ensure that new …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe inner counter. RefCell is used here to avoid &mut all …\nCalls U::from(self).\nCalls U::from(self).\nConstructs the assignment statement place = expr;. This …\nConstructs the assignment statement place = expr;. This …\nReturn a new unique Symbol from a &str.\nReturn a new unique Symbol from a &str.\nA call graph.\nAn error that is emitted when a cycle is detected in the …\nA directed graph.\nErrors in directed graph operations.\nAn import dependency graph.\nA node in a graph.\nA struct dependency graph.\nAdds an edge to the graph.\nReturns true if the graph contains the given node.\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nThe directed edges in the graph. Each entry in the map is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nInitializes a new DiGraph from a vector of source nodes.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nThe set of nodes in the graph.\nReturns the post-order ordering of the graph. Detects if …\nRetains a subset of the nodes, and removes all edges in …\nRenameTable tracks the names assigned by static single …\nReturns the argument unchanged.\nThe mapping from symbols to node IDs. These are used to …\nCalls U::from(self).\nReturns the symbols that were renamed in the current scope.\nLooks up the new name for symbol, recursively checking the …\nLooks up the node ID for symbol, recursively checking the …\nThe mapping from names in the original AST to new names in …\nCreate a new RenameTable with the given parent.\nThe RenameTable of the parent scope.\nUpdates self.mapping with the desired entry. Creates a new …\nA Replacer applies replacer to all Identifiers in an AST. …\nReturns the argument unchanged.\nCalls U::from(self).\nMaps global and local symbols to information about them.\nAn entry for a variable in the symbol table.\nAn enumeration of the different types of variable type.\nLocal tables index by the NodeID of the function, …\nAttach a finalizer to a function.\nThe consts we’ve evaluated in this scope.\nThe type of declaration for the variable.\nEnther the parent scope of the current scope (or the …\nEnter the scope of this NodeID, creating a table if it …\nEnter the new scope with id new_id, duplicating its local …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nFunctions indexed by location.\nThe locations of the futures passed to the async function …\nConsts that have been successfully evaluated.\nGlobal variables indexed by location.\nThe NodeID of the function, iteration, or block this table …\nThe types passed to the async function called by this …\nInsert an evaluated const into the current scope.\nInsert a function at this location.\nInsert a global at this location.\nInsert a record at this location.\nInsert a struct at this name.\nInsert a variable into the current scope.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterator over all the functions in this program.\nIterator over all the records in this program.\nIterator over all the structs (not records) in this …\nThe current LocalTable we’re looking at.\nThe name of the async function this async transition calls.\nFind the evaluated const accessible by the given name in …\nAccess the function at this location if it exists.\nAccess the global at this location if it exists.\nAccess the record at this location if it exists.\nAccess the struct by this name if it exists.\nAccess the variable accessible by this name in the current …\nThe parent NodeID of this scope, if it exists.\nRecords indexed by location.\nThe Span associated with the variable.\nStructs indexed by location.\nThe Type of the variable.\nVariables in this scope, indexed by name.\nAn entry for a variable in the symbol table.\nAn enumeration of the different types of variable type.\nThe type of declaration for the variable.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe locations of the futures passed to the async function …\nThe types passed to the async function called by this …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe name of the async function this async transition calls.\nThe Span associated with the variable.\nThe Type of the variable.\nA binary search tree to store all paths through nested …\nA node in a graph.\nA node in a tree.\nA counter.\nA counter.\nAdds a child to the current node.\nThe current depth.\nThe current depth.\nThe current node.\nThe current node.\nReturns the argument unchanged.\nCalls U::from(self).\nInitializes a new TreeNode from a vector of starting …\nRemoves an element from the current node. If the element …\nA mapping between node IDs and their types.\nReturns the argument unchanged.\nGets an entry from the table.\nThe inner table. RefCell is used here to avoid &mut all …\nInserts an entry into the table.\nCalls U::from(self).\nAn array index which was not able to be evaluated.\nSomething about the program was actually changed during …\nA const declaration whose RHS was not able to be evaluated.\nReturns the argument unchanged.\nCalls U::from(self).\nA pass to perform const propagation and folding.\nAn array index which was not able to be evaluated.\nHave we actually modified the progam at all?\nThe RHS of a const declaration we were not able to …\nEmit a StaticAnalyzerError.\nReturns the argument unchanged.\nThe error handler.\nEnter the symbol table’s scope id, execute func, and …\nCalls U::from(self).\nA counter used to generate unique node IDs.\nThe program name.\nThe symbol table associated with the program.\nA mapping between node IDs and their types.\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nWhether or not the variables are necessary.\nInitializes a new DeadCodeEliminator.\nA counter to generate unique node IDs.\nReconstruct an assignment statement by eliminating any …\nReconstructs the associated function access expression.\nReconstructs the statements inside a basic block, …\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nReconstructs expression statements by eliminating any dead …\nMarks identifiers as used. This is necessary to determine …\nLoop unrolling unrolls and removes iteration statements …\nReconstruct the components of the struct init expression. …\nThe set of used variables in the current function body.\nA struct used to construct (unique) assignment statements.\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nA counter used to generate unique node IDs.\nFlattens an assign statement, if necessary. Marks …\nReconstructs\nReplaces a tuple access expression with the appropriate …\nA wrapper around assigner.simple_assign_statement that …\nA mapping between variables and flattened tuple …\nA mapping between node IDs and their types.\nA Constructed guard is one which as been Anded with all …\nThere was a chain of conditionals on the path to this …\nAn expression representing a conditional to reach the …\nThere were no conditionals on the path to this return …\nAn Unconstructed guard is one representing a single …\nThere was a chain of conditionals on the path to this …\nA struct used to construct (unique) assignment statements.\nA stack of condition Expressions visited up to the current …\nConstruct an early return guard.\nConstruct a guard from the current state of the condition …\nFold guards and expressions into a single expression. Note …\nFolds a list of return statements into a single return …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the function is an async function.\nA counter used to generate unique node IDs.\nThe program name.\nRewrites an assert statement into a flattened form. Assert …\nFlattens an assign statement, if necessary. Marks …\nFlattens the statements inside a basic block. The …\nFlatten a conditional statement into a list of statements.\nFlattens a function’s body\nFlattens a program scope.\nTransforms a return statement into an empty block …\nReconstructs a struct init expression, flattening any …\nReconstructs ternary expressions over arrays, structs, and …\nA list containing tuples of guards and expressions …\nA wrapper around assigner.simple_assign_statement that …\nThe symbol table associated with the program.\nA mapping between node IDs and their types.\nA wrapper around assigner.unique_simple_assign_statement …\nTrue iff any of the guards to return statements so far …\nTrue iff the conditionals on the path to this return …\nAn AssignmentRenamer renames the left-hand side of all …\nClear the internal rename table.\nReturns the argument unchanged.\nCalls U::from(self).\nLoad the internal rename table with a set of entries.\nInitialize a new AssignmentRenamer.\nRename the left-hand side of the assignment statement.\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nRename the identifier if it is the left-hand side of an …\nLoop unrolling unrolls and removes iteration statements …\nRename the variable initializers in the struct expression.\nA wrapper around an Assigner used to create unique …\nThe call graph for the program.\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not we are currently traversing an async …\nInitializes a new FunctionInliner.\nA counter used to create unique NodeIDs.\nThe main program.\nReconstruct an assignment statement by inlining any …\nReconstructs the statements inside a basic block, …\nFlattening removes conditional statements from the program.\nParsing guarantees that console statements are not present …\nStatic single assignment replaces definition statements …\nReconstructs expression statements by inlining any …\nLoop unrolling unrolls and removes iteration statements …\nA map of reconstructed functions in the current program …\nA mapping between node IDs and their types.\nReturns the argument unchanged.\nCalls U::from(self).\nIf we encountered a loop that was not unrolled, here’s it…\nDid we unroll any loop?\nDuplicate this block, recursively giving new NodeIDs into …\nReturns the argument unchanged.\nCalls U::from(self).\nWhether or not a bound is inclusive or exclusive.\nA trait for whose implementors are concrete values for …\nAn iterator over a range of values.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe current program name.\nEmits a Loop Unrolling Error\nReturns the argument unchanged.\nAn error handler used for any errors found during …\nCalls U::from(self).\nAre we in the midst of unrolling a loop?\nIf we’ve encountered a loop that was not unrolled, here…\nHave we unrolled any loop?\nA counter used to generate unique node IDs.\nThe symbol table for the function being processed.\nA mapping from node IDs to their types.\nUnrolls an IterationStatement.\nA helper function to unroll a single iteration an …\nA compiler pass consuming Self::Input and returning …\nRuns the compiler pass.\nType checks the awaiting of a future.\nAssert that an async call is a “simple” one. Simple is …\nStruct to store the state relevant to checking all futures …\nThe current program name.\nEmits a type checker error.\nEmits a type checker warning\nReturns the argument unchanged.\nThe error handler.\nCalls U::from(self).\nReturns a new static analyzer given a symbol table and …\nWhether or not a non-async external call has been seen in …\nThe symbol table for the program.\nThe type table for the program.\nThe variant of the function that we are currently …\nEnter scope for then branch of conditional.\nWhether or not to do full tree search for await checking.\nExit scope for conditional statement at current depth.\nExit scope for then branch of conditional.\nReturns the argument unchanged.\nCalls U::from(self).\nMaximum nesting depth to search for await checking.\nInitializes a new AwaitChecker.\nRemove from list. Returns true if there was a path where …\nInitialize futures.\nStatically updated set of futures to await.\nAll possible subsets of futures that must be awaited.\nReturns the argument unchanged.\nReturns the argument unchanged.\nError if futures are used improperly.\nCalls U::from(self).\nCalls U::from(self).\nA struct used to construct (unique) assignment statements.\nConsumes an access expression, accumulating any statements …\nConsumes an array expression, accumulating any statements …\nConsumes the expressions in an AssertStatement, returning …\nConsume all AssignStatements, renaming as necessary.\nConsumes a binary expression, accumulating any statements …\nConsumes a Block, flattening its constituent …\nConsumes a call expression without visiting the function …\nConsumes a cast expression, accumulating any statements …\nConsumes a ConditionalStatement, producing phi functions …\nParsing guarantees that console statements are not present …\nConsumes the DefinitionStatement into an AssignStatement, …\nConsumes the expressions associated with …\nReconstructs the Functions in the Program, while …\nProduces a new Identifier with a unique name.\nConsumes and returns the literal without making any …\nConsumes and returns the locator expression without making …\nReconstructs the expression associated with the return …\nReconstructs records in the program, ordering its fields …\nConsumes a struct initialization expression with renamed …\nConsumes a ternary expression, accumulating any statements …\nConsumes a tuple expression, accumulating any statements …\nConsumes a unary expression, accumulating any statements …\nReturns the argument unchanged.\nCalls U::from(self).\nA flag to determine whether or not the traversal is on the …\nInitializes a new StaticSingleAssigner with an empty …\nA counter used to generate unique node IDs.\nIf the RenameTable has a parent, then self.rename_table is …\nThe main program name.\nPushes a new scope, setting the current scope as the new …\nThe RenameTable for the current basic block in the AST\nThe SymbolTable of the program.\nA mapping from node IDs to their types.\nConstructs a simple assign statement for expr with a …\nRuns the compiler pass.\nReturns the argument unchanged.\nThe error handler.\nCalls U::from(self).\nWhether or not traversing stub.\nThe current program name.\nThe set of local structs that have been successfully …\nThe SymbolTable constructed by this compiler pass.\nUse this method when you know the actual type. Emits an …\nEmits an error if the type is not a mapping.\nEmits an error if the struct member is a record type.\nEmits an error if the type or its constituent types is not …\nMapping from async function name to the names of async …\nMapping from async function stub name to the inferred …\nThe call graph for the program.\nType checks the inputs to a core function call and returns …\nEmits an error if the two given types are not equal.\nHelper function to check that the input and output of …\nFor detecting the error …\nEmits a type checker error.\nEmits a type checker warning\nAre the types considered equal as far as the Leo user is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nType checks the inputs to an associated constant and …\nEmits an error if the struct is not a core library struct. …\nThe error handler.\nInserts variable to symbol table.\nCalls U::from(self).\nCalls U::from(self).\nSo we can check if we exceed limits on array size, number …\nWrapper around lookup_struct that additionally records all …\nMerge inferred types into lhs.\nReturns a new type checker given a symbol table and error …\nThe state of the current scope being traversed.\nA dependency graph of the structs in program.\nThe symbol table for the program.\nA mapping from node IDs to their types.\nThe set of used composites.\nLocation of most recent external call that produced a …\nReturns the argument unchanged.\nThe name of the function that we are currently traversing.\nThe futures that must be propagated to an async function.\nWhether the finalize caller has called the finalize …\nWhether or not the function that we are currently …\nInitialize state variables for new function.\nCalls U::from(self).\nWhether the current function is a call.\nWhether currently traversing a conditional statement.\nWhether or not we are currently traversing a stub.\nGet the current location.\nInitializes a new ScopeState.\nCurrent program name.\nThe variant of the function that we are currently …") \ No newline at end of file diff --git a/src-files.js b/src-files.js index 14a897b342..489d0d207f 100644 --- a/src-files.js +++ b/src-files.js @@ -1,3 +1,3 @@ -var srcIndex = new Map(JSON.parse('[["errcov",["",[],["errcov.rs"]]],["leo",["",[],["main.rs"]]],["leo_abnf",["",[],["main.rs"]]],["leo_ast",["",[["access",[],["array_access.rs","associated_constant_access.rs","associated_function_access.rs","member_access.rs","mod.rs","tuple_access.rs"]],["common",[],["identifier.rs","imported_modules.rs","location.rs","mod.rs","node.rs","node_builder.rs","positive_number.rs","static_string.rs"]],["expressions",[],["access.rs","array.rs","binary.rs","call.rs","cast.rs","err.rs","literal.rs","locator.rs","mod.rs","struct_init.rs","ternary.rs","tuple.rs","unary.rs","unit.rs"]],["functions",[],["annotation.rs","core_function.rs","input.rs","mod.rs","mode.rs","output.rs","variant.rs"]],["groups",[],["group_coordinate.rs","group_literal.rs","mod.rs"]],["mapping",[],["mod.rs"]],["passes",[],["consumer.rs","mod.rs","reconstructor.rs","visitor.rs"]],["program",[],["mod.rs","program_id.rs","program_scope.rs"]],["statement",[["console",[],["console_function.rs","console_statement.rs","mod.rs"]],["definition",[],["declaration_type.rs","mod.rs"]]],["assert.rs","assign.rs","block.rs","conditional.rs","const_.rs","expression.rs","iteration.rs","mod.rs","return_.rs"]],["struct",[],["member.rs","mod.rs"]],["stub",[],["function_stub.rs","mod.rs"]],["types",[],["array.rs","core_constant.rs","future.rs","integer_type.rs","mapping.rs","mod.rs","struct_type.rs","tuple.rs","type_.rs"]],["value",[],["mod.rs"]]],["lib.rs"]]],["leo_compiler",["",[],["compiler.rs","lib.rs","options.rs"]]],["leo_disassembler",["",[],["lib.rs"]]],["leo_errors",["",[["common",[],["backtraced.rs","formatted.rs","macros.rs","mod.rs","traits.rs"]],["emitter",[],["mod.rs"]],["errors",[["ast",[],["ast_errors.rs","mod.rs"]],["cli",[],["cli_errors.rs","mod.rs"]],["compiler",[],["compiler_errors.rs","mod.rs"]],["flattener",[],["flattener_errors.rs","mod.rs"]],["loop_unroller",[],["loop_unroller_errors.rs","mod.rs"]],["package",[],["mod.rs","package_errors.rs"]],["parser",[],["mod.rs","parser_errors.rs","parser_warnings.rs"]],["static_analyzer",[],["mod.rs","static_analyzer_error.rs","static_analyzer_warning.rs"]],["type_checker",[],["mod.rs","type_checker_error.rs","type_checker_warning.rs"]],["utils",[],["mod.rs","util_errors.rs"]]],["interpreter_halt.rs","mod.rs"]]],["lib.rs"]]],["leo_interpreter",["",[],["cursor.rs","cursor_aleo.rs","dialoguer_input.rs","interpreter.rs","lib.rs","ratatui_ui.rs","ui.rs","util.rs","value.rs"]]],["leo_lang",["",[["cli",[["commands",[["query",[],["block.rs","committee.rs","mempool.rs","mod.rs","peers.rs","program.rs","state_root.rs","transaction.rs","utils.rs"]]],["account.rs","add.rs","build.rs","clean.rs","debug.rs","deploy.rs","example.rs","execute.rs","mod.rs","new.rs","remove.rs","run.rs","update.rs"]],["helpers",[],["context.rs","logger.rs","mod.rs","updater.rs"]]],["cli.rs","mod.rs"]]],["lib.rs"]]],["leo_package",["",[["build",[],["directory.rs","mod.rs"]],["imports",[],["directory.rs","mod.rs"]],["inputs",[],["directory.rs","mod.rs"]],["outputs",[],["ast_snapshot.rs","checksum.rs","circuit.rs","directory.rs","mod.rs"]],["root",[],["env.rs","gitignore.rs","mod.rs"]],["source",[],["directory.rs","main.rs","mod.rs"]]],["lib.rs","package.rs"]]],["leo_parser",["",[["parser",[],["context.rs","expression.rs","file.rs","mod.rs","statement.rs","type_.rs"]],["tokenizer",[],["lexer.rs","mod.rs","token.rs"]]],["lib.rs"]]],["leo_passes",["",[["code_generation",[],["generator.rs","mod.rs","visit_expressions.rs","visit_program.rs","visit_statements.rs","visit_type.rs"]],["common",[["assigner",[],["mod.rs"]],["graph",[],["mod.rs"]],["rename_table",[],["mod.rs"]],["replacer",[],["mod.rs"]],["symbol_table",[],["mod.rs","symbols.rs"]],["tree_node",[],["mod.rs"]],["type_table",[],["mod.rs"]]],["mod.rs"]],["dead_code_elimination",[],["dead_code_eliminator.rs","eliminate_expression.rs","eliminate_program.rs","eliminate_statement.rs","mod.rs"]],["destructuring",[],["destructure_expression.rs","destructure_program.rs","destructure_statement.rs","destructurer.rs","mod.rs"]],["flattening",[],["flatten_expression.rs","flatten_program.rs","flatten_statement.rs","flattener.rs","mod.rs"]],["function_inlining",[],["assignment_renamer.rs","function_inliner.rs","inline_expression.rs","inline_program.rs","inline_statement.rs","mod.rs"]],["loop_unrolling",[],["mod.rs","range_iterator.rs","unroll_expression.rs","unroll_program.rs","unroll_statement.rs","unroller.rs"]],["static_analysis",[],["analyze_expression.rs","analyze_program.rs","analyze_statement.rs","analyzer.rs","await_checker.rs","future_checker.rs","mod.rs"]],["static_single_assignment",[],["mod.rs","rename_expression.rs","rename_program.rs","rename_statement.rs","static_single_assigner.rs"]],["symbol_table_creation",[],["mod.rs"]],["type_checking",[],["check_expressions.rs","check_program.rs","check_statements.rs","checker.rs","mod.rs","scope_state.rs"]]],["lib.rs","pass.rs"]]],["leo_retriever",["",[["program_context",[],["dependency.rs","location.rs","lock_file_entry.rs","manifest.rs","mod.rs","network_name.rs"]],["retriever",[],["mod.rs"]]],["lib.rs"]]],["leo_span",["",[],["lib.rs","source_map.rs","span.rs","span_json.rs","symbol.rs"]]],["leo_test_framework",["",[],["error.rs","fetch.rs","lib.rs","output.rs","runner.rs","test.rs"]]]]')); +var srcIndex = new Map(JSON.parse('[["errcov",["",[],["errcov.rs"]]],["leo",["",[],["main.rs"]]],["leo_abnf",["",[],["main.rs"]]],["leo_ast",["",[["access",[],["array_access.rs","associated_constant_access.rs","associated_function_access.rs","member_access.rs","mod.rs","tuple_access.rs"]],["common",[],["identifier.rs","imported_modules.rs","location.rs","mod.rs","node.rs","node_builder.rs","positive_number.rs","static_string.rs"]],["expressions",[],["access.rs","array.rs","binary.rs","call.rs","cast.rs","err.rs","literal.rs","locator.rs","mod.rs","struct_init.rs","ternary.rs","tuple.rs","unary.rs","unit.rs"]],["functions",[],["annotation.rs","core_function.rs","input.rs","mod.rs","mode.rs","output.rs","variant.rs"]],["groups",[],["group_coordinate.rs","group_literal.rs","mod.rs"]],["mapping",[],["mod.rs"]],["passes",[],["consumer.rs","mod.rs","reconstructor.rs","visitor.rs"]],["program",[],["mod.rs","program_id.rs","program_scope.rs"]],["statement",[["console",[],["console_function.rs","console_statement.rs","mod.rs"]],["definition",[],["declaration_type.rs","mod.rs"]]],["assert.rs","assign.rs","block.rs","conditional.rs","const_.rs","expression.rs","iteration.rs","mod.rs","return_.rs"]],["struct",[],["member.rs","mod.rs"]],["stub",[],["function_stub.rs","mod.rs"]],["types",[],["array.rs","core_constant.rs","future.rs","integer_type.rs","mapping.rs","mod.rs","struct_type.rs","tuple.rs","type_.rs"]],["value",[],["mod.rs"]]],["lib.rs"]]],["leo_compiler",["",[],["compiler.rs","lib.rs","options.rs"]]],["leo_disassembler",["",[],["lib.rs"]]],["leo_errors",["",[["common",[],["backtraced.rs","formatted.rs","macros.rs","mod.rs","traits.rs"]],["emitter",[],["mod.rs"]],["errors",[["ast",[],["ast_errors.rs","mod.rs"]],["cli",[],["cli_errors.rs","mod.rs"]],["compiler",[],["compiler_errors.rs","mod.rs"]],["flattener",[],["flattener_errors.rs","mod.rs"]],["loop_unroller",[],["loop_unroller_errors.rs","mod.rs"]],["package",[],["mod.rs","package_errors.rs"]],["parser",[],["mod.rs","parser_errors.rs","parser_warnings.rs"]],["static_analyzer",[],["mod.rs","static_analyzer_error.rs","static_analyzer_warning.rs"]],["type_checker",[],["mod.rs","type_checker_error.rs","type_checker_warning.rs"]],["utils",[],["mod.rs","util_errors.rs"]]],["interpreter_halt.rs","mod.rs"]]],["lib.rs"]]],["leo_interpreter",["",[],["core_functions.rs","cursor.rs","cursor_aleo.rs","dialoguer_input.rs","interpreter.rs","lib.rs","ratatui_ui.rs","ui.rs","util.rs","value.rs"]]],["leo_lang",["",[["cli",[["commands",[["query",[],["block.rs","committee.rs","mempool.rs","mod.rs","peers.rs","program.rs","state_root.rs","transaction.rs","utils.rs"]]],["account.rs","add.rs","build.rs","clean.rs","debug.rs","deploy.rs","example.rs","execute.rs","mod.rs","new.rs","remove.rs","run.rs","update.rs"]],["helpers",[],["context.rs","logger.rs","mod.rs","updater.rs"]]],["cli.rs","mod.rs"]]],["lib.rs"]]],["leo_package",["",[["build",[],["directory.rs","mod.rs"]],["imports",[],["directory.rs","mod.rs"]],["inputs",[],["directory.rs","mod.rs"]],["outputs",[],["ast_snapshot.rs","checksum.rs","circuit.rs","directory.rs","mod.rs"]],["root",[],["env.rs","gitignore.rs","mod.rs"]],["source",[],["directory.rs","main.rs","mod.rs"]]],["lib.rs","package.rs"]]],["leo_parser",["",[["parser",[],["context.rs","expression.rs","file.rs","mod.rs","statement.rs","type_.rs"]],["tokenizer",[],["lexer.rs","mod.rs","token.rs"]]],["lib.rs"]]],["leo_passes",["",[["code_generation",[],["generator.rs","mod.rs","visit_expressions.rs","visit_program.rs","visit_statements.rs","visit_type.rs"]],["common",[["assigner",[],["mod.rs"]],["graph",[],["mod.rs"]],["rename_table",[],["mod.rs"]],["replacer",[],["mod.rs"]],["symbol_table",[],["mod.rs","symbols.rs"]],["tree_node",[],["mod.rs"]],["type_table",[],["mod.rs"]]],["mod.rs"]],["const_propagation",[],["const_propagate_expression.rs","const_propagate_program.rs","const_propagate_statement.rs","const_propagator.rs","mod.rs"]],["dead_code_elimination",[],["dead_code_eliminator.rs","eliminate_expression.rs","eliminate_program.rs","eliminate_statement.rs","mod.rs"]],["destructuring",[],["destructure_expression.rs","destructure_program.rs","destructure_statement.rs","destructurer.rs","mod.rs"]],["flattening",[],["flatten_expression.rs","flatten_program.rs","flatten_statement.rs","flattener.rs","mod.rs"]],["function_inlining",[],["assignment_renamer.rs","function_inliner.rs","inline_expression.rs","inline_program.rs","inline_statement.rs","mod.rs"]],["loop_unrolling",[],["duplicate.rs","mod.rs","range_iterator.rs","unroll_program.rs","unroll_statement.rs","unroller.rs"]],["static_analysis",[],["analyze_expression.rs","analyze_program.rs","analyze_statement.rs","analyzer.rs","await_checker.rs","future_checker.rs","mod.rs"]],["static_single_assignment",[],["mod.rs","rename_expression.rs","rename_program.rs","rename_statement.rs","static_single_assigner.rs"]],["symbol_table_creation",[],["mod.rs"]],["type_checking",[],["check_expressions.rs","check_program.rs","check_statements.rs","checker.rs","mod.rs","scope_state.rs"]]],["lib.rs","pass.rs"]]],["leo_retriever",["",[["program_context",[],["dependency.rs","location.rs","lock_file_entry.rs","manifest.rs","mod.rs","network_name.rs"]],["retriever",[],["mod.rs"]]],["lib.rs"]]],["leo_span",["",[],["lib.rs","source_map.rs","span.rs","span_json.rs","symbol.rs"]]],["leo_test_framework",["",[],["error.rs","fetch.rs","lib.rs","output.rs","runner.rs","test.rs"]]]]')); createSrcSidebar(); -//{"start":36,"fragment_lengths":[32,28,33,1330,63,40,740,151,417,350,173,1524,181,85,98]} \ No newline at end of file +//{"start":36,"fragment_lengths":[32,28,33,1330,63,40,740,171,417,350,173,1666,181,85,98]} \ No newline at end of file diff --git a/src/leo_ast/common/identifier.rs.html b/src/leo_ast/common/identifier.rs.html index 2fd29144f1..6a6851d88e 100644 --- a/src/leo_ast/common/identifier.rs.html +++ b/src/leo_ast/common/identifier.rs.html @@ -202,7 +202,7 @@ /// Attention - When adding or removing fields from this struct, /// please remember to update its Serialize and Deserialize implementation /// to reflect the new struct instantiation. -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct Identifier { /// The symbol that the user wrote, e.g., `foo`. pub name: Symbol, diff --git a/src/leo_ast/expressions/err.rs.html b/src/leo_ast/expressions/err.rs.html index bd27c0d457..b459d51daf 100644 --- a/src/leo_ast/expressions/err.rs.html +++ b/src/leo_ast/expressions/err.rs.html @@ -51,7 +51,7 @@ use super::*; /// Represents a syntactically invalid expression. -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct ErrExpression { /// The span of the invalid expression. pub span: Span, diff --git a/src/leo_ast/expressions/mod.rs.html b/src/leo_ast/expressions/mod.rs.html index 8c2955f594..16e6351ef8 100644 --- a/src/leo_ast/expressions/mod.rs.html +++ b/src/leo_ast/expressions/mod.rs.html @@ -196,7 +196,13 @@ 195 196 197 -198

        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +198
        +199
        +200
        +201
        +202
        +203
        +204
        // Copyright (C) 2019-2025 Aleo Systems Inc.
         // This file is part of the Leo library.
         
         // The Leo library is free software: you can redistribute it and/or modify
        @@ -291,6 +297,12 @@
             Unit(UnitExpression),
         }
         
        +impl Default for Expression {
        +    fn default() -> Self {
        +        Expression::Err(Default::default())
        +    }
        +}
        +
         impl Node for Expression {
             fn span(&self) -> Span {
                 use Expression::*;
        diff --git a/src/leo_ast/expressions/unary.rs.html b/src/leo_ast/expressions/unary.rs.html
        index 72ad67aecf..dc0e7d29a5 100644
        --- a/src/leo_ast/expressions/unary.rs.html
        +++ b/src/leo_ast/expressions/unary.rs.html
        @@ -97,7 +97,13 @@
         96
         97
         98
        -99

        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +99
        +100
        +101
        +102
        +103
        +104
        +105
        // Copyright (C) 2019-2025 Aleo Systems Inc.
         // This file is part of the Leo library.
         
         // The Leo library is free software: you can redistribute it and/or modify
        @@ -159,7 +165,7 @@
                 })
             }
         
        -    /// Represents the opera.tor as a string.
        +    /// Represents the operator as a string.
             fn as_str(self) -> &'static str {
                 match self {
                     Self::Abs => "abs",
        @@ -176,6 +182,12 @@
             }
         }
         
        +impl fmt::Display for UnaryOperation {
        +    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        +        write!(f, "{}", self.as_str())
        +    }
        +}
        +
         /// An unary expression applying an operator to an inner expression.
         #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
         pub struct UnaryExpression {
        @@ -191,7 +203,7 @@
         
         impl fmt::Display for UnaryExpression {
             fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        -        write!(f, "{}{}", self.op.as_str(), self.receiver)
        +        write!(f, "({}).{}()", self.receiver, self.op)
             }
         }
         
        diff --git a/src/leo_ast/functions/mod.rs.html b/src/leo_ast/functions/mod.rs.html
        index 154edbcae8..611bd1cfa3 100644
        --- a/src/leo_ast/functions/mod.rs.html
        +++ b/src/leo_ast/functions/mod.rs.html
        @@ -189,7 +189,7 @@
         use std::fmt;
         
         /// A function definition.
        -#[derive(Clone, Serialize, Deserialize)]
        +#[derive(Clone, Default, Serialize, Deserialize)]
         pub struct Function {
             /// Annotations on the function.
             pub annotations: Vec<Annotation>,
        diff --git a/src/leo_ast/functions/variant.rs.html b/src/leo_ast/functions/variant.rs.html
        index 4c90b215ff..a2bbf4de1b 100644
        --- a/src/leo_ast/functions/variant.rs.html
        +++ b/src/leo_ast/functions/variant.rs.html
        @@ -52,7 +52,8 @@
         51
         52
         53
        -54
        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +54
        +55
        // Copyright (C) 2019-2025 Aleo Systems Inc.
         // This file is part of the Leo library.
         
         // The Leo library is free software: you can redistribute it and/or modify
        @@ -76,9 +77,10 @@
         /// A regular function is not permitted to manipulate records.
         /// An asynchronous function contains on-chain operations.
         /// An inline function is directly copied at the call site.
        -#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
        +#[derive(Copy, Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]
         pub enum Variant {
        -    Inline,
        +    #[default]
        +    Inline,
             Function,
             Transition,
             AsyncTransition,
        diff --git a/src/leo_ast/program/program_scope.rs.html b/src/leo_ast/program/program_scope.rs.html
        index 092a6f3569..ad3f1e857b 100644
        --- a/src/leo_ast/program/program_scope.rs.html
        +++ b/src/leo_ast/program/program_scope.rs.html
        @@ -71,7 +71,10 @@
         70
         71
         72
        -73
        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +73
        +74
        +75
        +76
        // Copyright (C) 2019-2025 Aleo Systems Inc.
         // This file is part of the Leo library.
         
         // The Leo library is free software: you can redistribute it and/or modify
        @@ -132,6 +135,9 @@
         impl fmt::Display for ProgramScope {
             fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
                 writeln!(f, "program {} {{", self.program_id)?;
        +        for (_, const_decl) in self.consts.iter() {
        +            writeln!(f, "    {const_decl}")?;
        +        }
                 for (_, struct_) in self.structs.iter() {
                     writeln!(f, "    {struct_}")?;
                 }
        diff --git a/src/leo_ast/statement/assign.rs.html b/src/leo_ast/statement/assign.rs.html
        index d187bc1cff..58f2adc347 100644
        --- a/src/leo_ast/statement/assign.rs.html
        +++ b/src/leo_ast/statement/assign.rs.html
        @@ -81,7 +81,7 @@
         
         impl fmt::Display for AssignStatement {
             fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        -        write!(f, "{} = {};", self.place, self.value)
        +        write!(f, "{} = {}", self.place, self.value)
             }
         }
         
        diff --git a/src/leo_ast/statement/block.rs.html b/src/leo_ast/statement/block.rs.html
        index 5ad5e528d2..9ccce9e39e 100644
        --- a/src/leo_ast/statement/block.rs.html
        +++ b/src/leo_ast/statement/block.rs.html
        @@ -83,7 +83,7 @@
                 if self.statements.is_empty() {
                     writeln!(f, "\t")?;
                 } else {
        -            self.statements.iter().try_for_each(|statement| writeln!(f, "\t{statement}"))?;
        +            self.statements.iter().try_for_each(|statement| writeln!(f, "\t{statement};"))?;
                 }
                 write!(f, "}}")
             }
        diff --git a/src/leo_ast/statement/const_.rs.html b/src/leo_ast/statement/const_.rs.html
        index 6cb4a33d7a..da09e12efc 100644
        --- a/src/leo_ast/statement/const_.rs.html
        +++ b/src/leo_ast/statement/const_.rs.html
        @@ -42,9 +42,7 @@
         41
         42
         43
        -44
        -45
        -46
        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +44
        // Copyright (C) 2019-2025 Aleo Systems Inc.
         // This file is part of the Leo library.
         
         // The Leo library is free software: you can redistribute it and/or modify
        @@ -67,7 +65,7 @@
         use std::fmt;
         
         /// A constant declaration statement.
        -#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
        +#[derive(Clone, Default, PartialEq, Eq, Serialize, Deserialize, Debug)]
         pub struct ConstDeclaration {
             /// The place to assign to. As opposed to `DefinitionStatement`, this can only be an identifier
             pub place: Identifier,
        @@ -83,9 +81,7 @@
         
         impl fmt::Display for ConstDeclaration {
             fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        -        write!(f, "{}", self.place)?;
        -        write!(f, ": {}", self.type_)?;
        -        write!(f, " = {};", self.value)
        +        write!(f, "const {}: {} = {}", self.place, self.type_, self.value)
             }
         }
         
        diff --git a/src/leo_ast/statement/definition/mod.rs.html b/src/leo_ast/statement/definition/mod.rs.html
        index cece6e381b..90a5e836cd 100644
        --- a/src/leo_ast/statement/definition/mod.rs.html
        +++ b/src/leo_ast/statement/definition/mod.rs.html
        @@ -47,10 +47,7 @@
         46
         47
         48
        -49
        -50
        -51
        -52
        // Copyright (C) 2019-2025 Aleo Systems Inc.
        +49
      // Copyright (C) 2019-2025 Aleo Systems Inc.
       // This file is part of the Leo library.
       
       // The Leo library is free software: you can redistribute it and/or modify
      @@ -94,10 +91,7 @@
       
       impl fmt::Display for DefinitionStatement {
           fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
      -        write!(f, "{} ", self.declaration_type)?;
      -        write!(f, "{}", self.place)?;
      -        write!(f, ": {}", self.type_)?;
      -        write!(f, " = {};", self.value)
      +        write!(f, "{} {}: {} = {}", self.declaration_type, self.place, self.type_, self.value)
           }
       }
       
      diff --git a/src/leo_compiler/compiler.rs.html b/src/leo_compiler/compiler.rs.html
      index 1a9e92db20..31345cde65 100644
      --- a/src/leo_compiler/compiler.rs.html
      +++ b/src/leo_compiler/compiler.rs.html
      @@ -370,7 +370,54 @@
       369
       370
       371
      -372
      // Copyright (C) 2019-2025 Aleo Systems Inc.
      +372
      +373
      +374
      +375
      +376
      +377
      +378
      +379
      +380
      +381
      +382
      +383
      +384
      +385
      +386
      +387
      +388
      +389
      +390
      +391
      +392
      +393
      +394
      +395
      +396
      +397
      +398
      +399
      +400
      +401
      +402
      +403
      +404
      +405
      +406
      +407
      +408
      +409
      +410
      +411
      +412
      +413
      +414
      +415
      +416
      +417
      +418
      +419
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -522,14 +569,14 @@
         }
     
         /// Runs the type checker pass.
    -    pub fn type_checker_pass(&'a self, symbol_table: SymbolTable) -> Result<(SymbolTable, StructGraph, CallGraph)> {
    -        let (symbol_table, struct_graph, call_graph) =
    +    pub fn type_checker_pass(&'a self, symbol_table: &mut SymbolTable) -> Result<(StructGraph, CallGraph)> {
    +        let (struct_graph, call_graph) =
                 TypeChecker::do_pass((&self.ast, self.handler, symbol_table, &self.type_table, NetworkLimits {
                     max_array_elements: N::MAX_ARRAY_ELEMENTS,
                     max_mappings: N::MAX_MAPPINGS,
                     max_functions: N::MAX_FUNCTIONS,
                 }))?;
    -        Ok((symbol_table, struct_graph, call_graph))
    +        Ok((struct_graph, call_graph))
         }
     
         /// Runs the static analysis pass.
    @@ -544,22 +591,70 @@
             ))
         }
     
    +    /// Run const propagation and loop unrolling until we hit a fixed point or find an error.
    +    pub fn const_propagation_and_unroll_loop(&mut self, symbol_table: &mut SymbolTable) -> Result<()> {
    +        const LARGE_LOOP_BOUND: usize = 1024usize;
    +
    +        for _ in 0..LARGE_LOOP_BOUND {
    +            let loop_unroll_output = self.loop_unrolling_pass(symbol_table)?;
    +
    +            let const_prop_output = self.const_propagation_pass(symbol_table)?;
    +
    +            if !const_prop_output.changed && !loop_unroll_output.loop_unrolled {
    +                // We've got a fixed point, so see if we have any errors.
    +                if let Some(not_evaluated_span) = const_prop_output.const_not_evaluated {
    +                    return Err(CompilerError::const_not_evaluated(not_evaluated_span).into());
    +                }
    +
    +                if let Some(not_evaluated_span) = const_prop_output.array_index_not_evaluated {
    +                    return Err(CompilerError::array_index_not_evaluated(not_evaluated_span).into());
    +                }
    +
    +                if let Some(not_unrolled_span) = loop_unroll_output.loop_not_unrolled {
    +                    return Err(CompilerError::loop_bounds_not_evaluated(not_unrolled_span).into());
    +                }
    +
    +                if self.compiler_options.output.unrolled_ast {
    +                    self.write_ast_to_json("unrolled_ast.json")?;
    +                }
    +
    +                return Ok(());
    +            }
    +        }
    +
    +        // Note that it's challenging to write code in practice that demonstrates this error, because Leo code
    +        // with many nested loops or operations will blow the stack in the compiler before this bound is hit.
    +        Err(CompilerError::const_prop_unroll_many_loops(LARGE_LOOP_BOUND, Default::default()).into())
    +    }
    +
    +    /// Runs the const propagation pass.
    +    pub fn const_propagation_pass(&mut self, symbol_table: &mut SymbolTable) -> Result<ConstPropagatorOutput> {
    +        let (ast, output) = ConstPropagator::do_pass((
    +            std::mem::take(&mut self.ast),
    +            self.handler,
    +            symbol_table,
    +            &self.type_table,
    +            &self.node_builder,
    +        ))?;
    +
    +        self.ast = ast;
    +
    +        Ok(output)
    +    }
    +
         /// Runs the loop unrolling pass.
    -    pub fn loop_unrolling_pass(&mut self, symbol_table: SymbolTable) -> Result<SymbolTable> {
    -        let (ast, symbol_table) = Unroller::do_pass((
    +    pub fn loop_unrolling_pass(&mut self, symbol_table: &mut SymbolTable) -> Result<UnrollerOutput> {
    +        let (ast, output) = Unroller::do_pass((
                 std::mem::take(&mut self.ast),
                 self.handler,
                 &self.node_builder,
                 symbol_table,
                 &self.type_table,
             ))?;
    -        self.ast = ast;
     
    -        if self.compiler_options.output.unrolled_ast {
    -            self.write_ast_to_json("unrolled_ast.json")?;
    -        }
    +        self.ast = ast;
     
    -        Ok(symbol_table)
    +        Ok(output)
         }
     
         /// Runs the static single assignment pass.
    @@ -655,14 +750,13 @@
     
         /// Runs the compiler stages.
         pub fn compiler_stages(&mut self) -> Result<(SymbolTable, StructGraph, CallGraph)> {
    -        let st = self.symbol_table_pass()?;
    +        let mut st = self.symbol_table_pass()?;
     
    -        let (st, struct_graph, call_graph) = self.type_checker_pass(st)?;
    +        let (struct_graph, call_graph) = self.type_checker_pass(&mut st)?;
     
             self.static_analysis_pass(&st)?;
     
    -        // TODO: Make this pass optional.
    -        let st = self.loop_unrolling_pass(st)?;
    +        self.const_propagation_and_unroll_loop(&mut st)?;
     
             self.static_single_assignment_pass(&st)?;
     
    diff --git a/src/leo_errors/errors/compiler/compiler_errors.rs.html b/src/leo_errors/errors/compiler/compiler_errors.rs.html
    index 4880a65305..21bd92ec9f 100644
    --- a/src/leo_errors/errors/compiler/compiler_errors.rs.html
    +++ b/src/leo_errors/errors/compiler/compiler_errors.rs.html
    @@ -78,7 +78,35 @@
     77
     78
     79
    -80
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -157,5 +185,33 @@
             msg: format!("`{main_program_name}` imports `{dependency_name}.aleo`, but `{dependency_name}.aleo` is not found in program manifest. Use `leo add --help` for more information on how to add a dependency."),
             help: None,
         }
    +
    +    @formatted
    +    const_not_evaluated {
    +        args: (),
    +        msg: "The value of this const could not be determined at compile time.".to_string(),
    +        help: None,
    +    }
    +
    +    @formatted
    +    loop_bounds_not_evaluated {
    +        args: (),
    +        msg: "This loop bound could not be determined at compile time.".to_string(),
    +        help: None,
    +    }
    +
    +    @formatted
    +    array_index_not_evaluated {
    +        args: (),
    +        msg: "This array index could not be determined at compile time.".to_string(),
    +        help: None,
    +    }
    +
    +    @formatted
    +    const_prop_unroll_many_loops {
    +        args: (bound: usize),
    +        msg: format!("The const propagation and loop unrolling passes ran {bound} times without reaching a fixed point."),
    +        help: Some("This should only happen with a pathological Leo program containing numerous nested loops or nested operations. Otherwise, this may be a bug in the Leo compiler.".to_string()),
    +    }
     );
     

    \ No newline at end of file diff --git a/src/leo_errors/errors/loop_unroller/loop_unroller_errors.rs.html b/src/leo_errors/errors/loop_unroller/loop_unroller_errors.rs.html index c602f1c637..321a8ab26d 100644 --- a/src/leo_errors/errors/loop_unroller/loop_unroller_errors.rs.html +++ b/src/leo_errors/errors/loop_unroller/loop_unroller_errors.rs.html @@ -37,7 +37,8 @@ 36 37 38 -39
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +39
    +40
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -69,7 +70,8 @@
             help: None,
         }
     
    -    @formatted
    +    // TODO This error is unused. Remove it in a future version.
    +    @formatted
         variable_array_access {
             args: (),
             msg: format!("The array index must be constant."),
    diff --git a/src/leo_errors/errors/loop_unroller/mod.rs.html b/src/leo_errors/errors/loop_unroller/mod.rs.html
    index ebfa7ce0cf..69341c1110 100644
    --- a/src/leo_errors/errors/loop_unroller/mod.rs.html
    +++ b/src/leo_errors/errors/loop_unroller/mod.rs.html
    @@ -17,7 +17,8 @@
     16
     17
     18
    -19
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +19
    +20
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -33,7 +34,8 @@
     // You should have received a copy of the GNU General Public License
     // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
     
    -/// This module contains the Input error definitions.
    +//! This module contains the loop unroller error definitions.
    +
     pub mod loop_unroller_errors;
     pub use self::loop_unroller_errors::*;
     
    \ No newline at end of file diff --git a/src/leo_errors/errors/static_analyzer/static_analyzer_error.rs.html b/src/leo_errors/errors/static_analyzer/static_analyzer_error.rs.html index 151f86feb1..941f8ba1db 100644 --- a/src/leo_errors/errors/static_analyzer/static_analyzer_error.rs.html +++ b/src/leo_errors/errors/static_analyzer/static_analyzer_error.rs.html @@ -67,7 +67,42 @@ 66 67 68 -69
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -135,5 +170,40 @@
             msg: "A future may not be used in this way".to_string(),
             help: Some("Futures should be created, assigned to a variable, and consumed without being moved or reassigned.".to_string()),
         }
    +
    +    @formatted
    +    compile_time_unary_op {
    +        args: (value: impl Display, op: impl Display, err: impl Display),
    +        msg: format!("Unary operation `{value}.{op}()` failed at compile time: {err}."),
    +        help: None,
    +    }
    +
    +    @formatted
    +    compile_time_binary_op {
    +        args: (value_lhs: impl Display, value_rhs: impl Display, op: impl Display, err: impl Display),
    +        msg: format!("Binary operation `{value_lhs} {op} {value_rhs}` failed at compile time: {err}."),
    +        help: None,
    +    }
    +
    +    @formatted
    +    compile_time_cast {
    +        args: (value: impl Display, type_: impl Display),
    +        msg: format!("Compile time cast failure: `{value} as {type_}`."),
    +        help: None,
    +    }
    +
    +    @formatted
    +    compile_core_function {
    +        args: (err: impl Display),
    +        msg: format!("Error during compile time evaluation of this core function: {err}."),
    +        help: None,
    +    }
    +
    +    @formatted
    +    array_bounds {
    +        args: (index: impl Display, len: impl Display),
    +        msg: format!("Array index {index} out of bounds (array length is {len})."),
    +        help: None,
    +    }
     );
     
    \ No newline at end of file diff --git a/src/leo_errors/errors/type_checker/type_checker_error.rs.html b/src/leo_errors/errors/type_checker/type_checker_error.rs.html index cbcce0f3b9..c1599ba7c3 100644 --- a/src/leo_errors/errors/type_checker/type_checker_error.rs.html +++ b/src/leo_errors/errors/type_checker/type_checker_error.rs.html @@ -995,7 +995,9 @@ 994 995 996 -997
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +997
    +998
    +999
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -1584,14 +1586,16 @@
             help: None,
         }
     
    -    @formatted
    +    // TODO This error is unused. Remove it in a future version.
    +    @formatted
         const_declaration_must_be_literal_or_tuple_of_literals {
             args: (),
             msg: format!("The value of a const declaration must be a literal"),
             help: None,
         }
     
    -    @formatted
    +    // TODO This error is unused. Remove it in a future version.
    +    @formatted
         loop_bound_must_be_literal_or_const {
             args: (),
             msg: format!("The loop bound must be a literal or a const"),
    diff --git a/src/leo_errors/lib.rs.html b/src/leo_errors/lib.rs.html
    index d3c53679c4..7125912d0e 100644
    --- a/src/leo_errors/lib.rs.html
    +++ b/src/leo_errors/lib.rs.html
    @@ -49,7 +49,7 @@
     // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
     
     #![forbid(unsafe_code)]
    -#![deny(clippy::all, clippy::missing_docs_in_private_items)]
    +#![deny(clippy::all)]
     #![doc = include_str!("../README.md")]
     
     #[macro_use]
    diff --git a/src/leo_interpreter/core_functions.rs.html b/src/leo_interpreter/core_functions.rs.html
    new file mode 100644
    index 0000000000..0b6c7e615f
    --- /dev/null
    +++ b/src/leo_interpreter/core_functions.rs.html
    @@ -0,0 +1,2325 @@
    +core_functions.rs - source

    leo_interpreter/
    core_functions.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +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
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +199
    +200
    +201
    +202
    +203
    +204
    +205
    +206
    +207
    +208
    +209
    +210
    +211
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +220
    +221
    +222
    +223
    +224
    +225
    +226
    +227
    +228
    +229
    +230
    +231
    +232
    +233
    +234
    +235
    +236
    +237
    +238
    +239
    +240
    +241
    +242
    +243
    +244
    +245
    +246
    +247
    +248
    +249
    +250
    +251
    +252
    +253
    +254
    +255
    +256
    +257
    +258
    +259
    +260
    +261
    +262
    +263
    +264
    +265
    +266
    +267
    +268
    +269
    +270
    +271
    +272
    +273
    +274
    +275
    +276
    +277
    +278
    +279
    +280
    +281
    +282
    +283
    +284
    +285
    +286
    +287
    +288
    +289
    +290
    +291
    +292
    +293
    +294
    +295
    +296
    +297
    +298
    +299
    +300
    +301
    +302
    +303
    +304
    +305
    +306
    +307
    +308
    +309
    +310
    +311
    +312
    +313
    +314
    +315
    +316
    +317
    +318
    +319
    +320
    +321
    +322
    +323
    +324
    +325
    +326
    +327
    +328
    +329
    +330
    +331
    +332
    +333
    +334
    +335
    +336
    +337
    +338
    +339
    +340
    +341
    +342
    +343
    +344
    +345
    +346
    +347
    +348
    +349
    +350
    +351
    +352
    +353
    +354
    +355
    +356
    +357
    +358
    +359
    +360
    +361
    +362
    +363
    +364
    +365
    +366
    +367
    +368
    +369
    +370
    +371
    +372
    +373
    +374
    +375
    +376
    +377
    +378
    +379
    +380
    +381
    +382
    +383
    +384
    +385
    +386
    +387
    +388
    +389
    +390
    +391
    +392
    +393
    +394
    +395
    +396
    +397
    +398
    +399
    +400
    +401
    +402
    +403
    +404
    +405
    +406
    +407
    +408
    +409
    +410
    +411
    +412
    +413
    +414
    +415
    +416
    +417
    +418
    +419
    +420
    +421
    +422
    +423
    +424
    +425
    +426
    +427
    +428
    +429
    +430
    +431
    +432
    +433
    +434
    +435
    +436
    +437
    +438
    +439
    +440
    +441
    +442
    +443
    +444
    +445
    +446
    +447
    +448
    +449
    +450
    +451
    +452
    +453
    +454
    +455
    +456
    +457
    +458
    +459
    +460
    +461
    +462
    +463
    +464
    +465
    +466
    +467
    +468
    +469
    +470
    +471
    +472
    +473
    +474
    +475
    +476
    +477
    +478
    +479
    +480
    +481
    +482
    +483
    +484
    +485
    +486
    +487
    +488
    +489
    +490
    +491
    +492
    +493
    +494
    +495
    +496
    +497
    +498
    +499
    +500
    +501
    +502
    +503
    +504
    +505
    +506
    +507
    +508
    +509
    +510
    +511
    +512
    +513
    +514
    +515
    +516
    +517
    +518
    +519
    +520
    +521
    +522
    +523
    +524
    +525
    +526
    +527
    +528
    +529
    +530
    +531
    +532
    +533
    +534
    +535
    +536
    +537
    +538
    +539
    +540
    +541
    +542
    +543
    +544
    +545
    +546
    +547
    +548
    +549
    +550
    +551
    +552
    +553
    +554
    +555
    +556
    +557
    +558
    +559
    +560
    +561
    +562
    +563
    +564
    +565
    +566
    +567
    +568
    +569
    +570
    +571
    +572
    +573
    +574
    +575
    +576
    +577
    +578
    +579
    +580
    +581
    +582
    +583
    +584
    +585
    +586
    +587
    +588
    +589
    +590
    +591
    +592
    +593
    +594
    +595
    +596
    +597
    +598
    +599
    +600
    +601
    +602
    +603
    +604
    +605
    +606
    +607
    +608
    +609
    +610
    +611
    +612
    +613
    +614
    +615
    +616
    +617
    +618
    +619
    +620
    +621
    +622
    +623
    +624
    +625
    +626
    +627
    +628
    +629
    +630
    +631
    +632
    +633
    +634
    +635
    +636
    +637
    +638
    +639
    +640
    +641
    +642
    +643
    +644
    +645
    +646
    +647
    +648
    +649
    +650
    +651
    +652
    +653
    +654
    +655
    +656
    +657
    +658
    +659
    +660
    +661
    +662
    +663
    +664
    +665
    +666
    +667
    +668
    +669
    +670
    +671
    +672
    +673
    +674
    +675
    +676
    +677
    +678
    +679
    +680
    +681
    +682
    +683
    +684
    +685
    +686
    +687
    +688
    +689
    +690
    +691
    +692
    +693
    +694
    +695
    +696
    +697
    +698
    +699
    +700
    +701
    +702
    +703
    +704
    +705
    +706
    +707
    +708
    +709
    +710
    +711
    +712
    +713
    +714
    +715
    +716
    +717
    +718
    +719
    +720
    +721
    +722
    +723
    +724
    +725
    +726
    +727
    +728
    +729
    +730
    +731
    +732
    +733
    +734
    +735
    +736
    +737
    +738
    +739
    +740
    +741
    +742
    +743
    +744
    +745
    +746
    +747
    +748
    +749
    +750
    +751
    +752
    +753
    +754
    +755
    +756
    +757
    +758
    +759
    +760
    +761
    +762
    +763
    +764
    +765
    +766
    +767
    +768
    +769
    +770
    +771
    +772
    +773
    +774
    +775
    +776
    +777
    +778
    +779
    +780
    +781
    +782
    +783
    +784
    +785
    +786
    +787
    +788
    +789
    +790
    +791
    +792
    +793
    +794
    +795
    +796
    +797
    +798
    +799
    +800
    +801
    +802
    +803
    +804
    +805
    +806
    +807
    +808
    +809
    +810
    +811
    +812
    +813
    +814
    +815
    +816
    +817
    +818
    +819
    +820
    +821
    +822
    +823
    +824
    +825
    +826
    +827
    +828
    +829
    +830
    +831
    +832
    +833
    +834
    +835
    +836
    +837
    +838
    +839
    +840
    +841
    +842
    +843
    +844
    +845
    +846
    +847
    +848
    +849
    +850
    +851
    +852
    +853
    +854
    +855
    +856
    +857
    +858
    +859
    +860
    +861
    +862
    +863
    +864
    +865
    +866
    +867
    +868
    +869
    +870
    +871
    +872
    +873
    +874
    +875
    +876
    +877
    +878
    +879
    +880
    +881
    +882
    +883
    +884
    +885
    +886
    +887
    +888
    +889
    +890
    +891
    +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
    +986
    +987
    +988
    +989
    +990
    +991
    +992
    +993
    +994
    +995
    +996
    +997
    +998
    +999
    +1000
    +1001
    +1002
    +1003
    +1004
    +1005
    +1006
    +1007
    +1008
    +1009
    +1010
    +1011
    +1012
    +1013
    +1014
    +1015
    +1016
    +1017
    +1018
    +1019
    +1020
    +1021
    +1022
    +1023
    +1024
    +1025
    +1026
    +1027
    +1028
    +1029
    +1030
    +1031
    +1032
    +1033
    +1034
    +1035
    +1036
    +1037
    +1038
    +1039
    +1040
    +1041
    +1042
    +1043
    +1044
    +1045
    +1046
    +1047
    +1048
    +1049
    +1050
    +1051
    +1052
    +1053
    +1054
    +1055
    +1056
    +1057
    +1058
    +1059
    +1060
    +1061
    +1062
    +1063
    +1064
    +1065
    +1066
    +1067
    +1068
    +1069
    +1070
    +1071
    +1072
    +1073
    +1074
    +1075
    +1076
    +1077
    +1078
    +1079
    +1080
    +1081
    +1082
    +1083
    +1084
    +1085
    +1086
    +1087
    +1088
    +1089
    +1090
    +1091
    +1092
    +1093
    +1094
    +1095
    +1096
    +1097
    +1098
    +1099
    +1100
    +1101
    +1102
    +1103
    +1104
    +1105
    +1106
    +1107
    +1108
    +1109
    +1110
    +1111
    +1112
    +1113
    +1114
    +1115
    +1116
    +1117
    +1118
    +1119
    +1120
    +1121
    +1122
    +1123
    +1124
    +1125
    +1126
    +1127
    +1128
    +1129
    +1130
    +1131
    +1132
    +1133
    +1134
    +1135
    +1136
    +1137
    +1138
    +1139
    +1140
    +1141
    +1142
    +1143
    +1144
    +1145
    +1146
    +1147
    +1148
    +1149
    +1150
    +1151
    +1152
    +1153
    +1154
    +1155
    +1156
    +1157
    +1158
    +1159
    +1160
    +1161
    +1162
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use super::*;
    +
    +use leo_ast::{CoreFunction, Expression};
    +use leo_errors::Result;
    +use leo_span::{Span, Symbol};
    +
    +use snarkvm::prelude::{CastLossy as _, Network as _, TestnetV0, ToBits};
    +
    +use rand::Rng as _;
    +use rand_chacha::ChaCha20Rng;
    +
    +/// A context in which we can evaluate core functions.
    +///
    +/// This is intended to be implemented by `Cursor`, which will be used during
    +/// execution of the interpreter, and by `Vec<Value>`, which will be used
    +/// during compile time evaluation for constant folding.
    +///
    +/// The default implementations for `rng`, `set_block_height`, and mapping lookup
    +/// do nothing, as those features will not be available during compile time
    +/// evaluation.
    +pub trait CoreFunctionHelper {
    +    fn pop_value_impl(&mut self) -> Option<Value>;
    +
    +    fn pop_value(&mut self) -> Result<Value> {
    +        match self.pop_value_impl() {
    +            Some(v) => Ok(v),
    +            None => {
    +                Err(InterpreterHalt::new("value expected - this may be a bug in the Leo interpreter".to_string())
    +                    .into())
    +            }
    +        }
    +    }
    +
    +    fn set_block_height(&mut self, _height: u32) {}
    +
    +    fn lookup_mapping(&self, _program: Option<Symbol>, _name: Symbol) -> Option<&HashMap<Value, Value>> {
    +        None
    +    }
    +
    +    fn lookup_mapping_mut(&mut self, _program: Option<Symbol>, _name: Symbol) -> Option<&mut HashMap<Value, Value>> {
    +        None
    +    }
    +
    +    fn rng(&mut self) -> Option<&mut ChaCha20Rng> {
    +        None
    +    }
    +}
    +
    +impl CoreFunctionHelper for Vec<Value> {
    +    fn pop_value_impl(&mut self) -> Option<Value> {
    +        self.pop()
    +    }
    +}
    +
    +pub fn evaluate_core_function(
    +    helper: &mut dyn CoreFunctionHelper,
    +    core_function: CoreFunction,
    +    arguments: &[Expression],
    +    span: Span,
    +) -> Result<Option<Value>> {
    +    macro_rules! apply {
    +        ($func: expr, $value: ident, $to: ident) => {{
    +            let v = helper.pop_value()?;
    +            let bits = v.$to();
    +            Value::$value($func(&bits).expect_tc(span)?)
    +        }};
    +    }
    +
    +    macro_rules! apply_cast {
    +        ($func: expr, $value: ident, $to: ident) => {{
    +            let v = helper.pop_value()?;
    +            let bits = v.$to();
    +            let group = $func(&bits).expect_tc(span)?;
    +            let x = group.to_x_coordinate();
    +            Value::$value(x.cast_lossy())
    +        }};
    +    }
    +
    +    macro_rules! apply_cast_int {
    +        ($func: expr, $value: ident, $int_ty: ident, $to: ident) => {{
    +            let v = helper.pop_value()?;
    +            let bits = v.$to();
    +            let group = $func(&bits).expect_tc(span)?;
    +            let x = group.to_x_coordinate();
    +            let bits = x.to_bits_le();
    +            let mut result: $int_ty = 0;
    +            for bit in 0..std::cmp::min($int_ty::BITS as usize, bits.len()) {
    +                let setbit = (if bits[bit] { 1 } else { 0 }) << bit;
    +                result |= setbit;
    +            }
    +            Value::$value(result)
    +        }};
    +    }
    +
    +    macro_rules! apply_cast2 {
    +        ($func: expr, $value: ident) => {{
    +            let Value::Scalar(randomizer) = helper.pop_value()? else {
    +                tc_fail!();
    +            };
    +            let v = helper.pop_value()?;
    +            let bits = v.to_bits_le();
    +            let group = $func(&bits, &randomizer).expect_tc(span)?;
    +            let x = group.to_x_coordinate();
    +            Value::$value(x.cast_lossy())
    +        }};
    +    }
    +
    +    macro_rules! maybe_gen {
    +        () => {
    +            if let Some(rng) = helper.rng() {
    +                rng.gen()
    +            } else {
    +                return Ok(None);
    +            }
    +        };
    +    }
    +
    +    let value = match core_function {
    +        CoreFunction::BHP256CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp256, Address)
    +        }
    +        CoreFunction::BHP256CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp256, Field)
    +        }
    +        CoreFunction::BHP256CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp256, Group)
    +        }
    +        CoreFunction::BHP256HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp256, Address, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToField => apply!(TestnetV0::hash_bhp256, Field, to_bits_le),
    +        CoreFunction::BHP256HashToGroup => apply!(TestnetV0::hash_to_group_bhp256, Group, to_bits_le),
    +        CoreFunction::BHP256HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp256, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::BHP256HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp256, Scalar, to_bits_le)
    +        }
    +        CoreFunction::BHP512CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp512, Address)
    +        }
    +        CoreFunction::BHP512CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp512, Field)
    +        }
    +        CoreFunction::BHP512CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp512, Group)
    +        }
    +        CoreFunction::BHP512HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp512, Address, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToField => apply!(TestnetV0::hash_bhp512, Field, to_bits_le),
    +        CoreFunction::BHP512HashToGroup => apply!(TestnetV0::hash_to_group_bhp512, Group, to_bits_le),
    +        CoreFunction::BHP512HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp512, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::BHP512HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp512, Scalar, to_bits_le)
    +        }
    +        CoreFunction::BHP768CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp768, Address)
    +        }
    +        CoreFunction::BHP768CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp768, Field)
    +        }
    +        CoreFunction::BHP768CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp768, Group)
    +        }
    +        CoreFunction::BHP768HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp768, Address, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToField => apply!(TestnetV0::hash_bhp768, Field, to_bits_le),
    +        CoreFunction::BHP768HashToGroup => apply!(TestnetV0::hash_to_group_bhp768, Group, to_bits_le),
    +        CoreFunction::BHP768HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp768, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::BHP768HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp768, Scalar, to_bits_le)
    +        }
    +        CoreFunction::BHP1024CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp1024, Address)
    +        }
    +        CoreFunction::BHP1024CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp1024, Field)
    +        }
    +        CoreFunction::BHP1024CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_bhp1024, Group)
    +        }
    +        CoreFunction::BHP1024HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp1024, Address, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToField => apply!(TestnetV0::hash_bhp1024, Field, to_bits_le),
    +        CoreFunction::BHP1024HashToGroup => apply!(TestnetV0::hash_to_group_bhp1024, Group, to_bits_le),
    +        CoreFunction::BHP1024HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::BHP1024HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_bhp1024, Scalar, to_bits_le)
    +        }
    +        CoreFunction::Keccak256HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToGroup => {
    +            apply!(
    +                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +                Group,
    +                to_bits_le
    +            )
    +        }
    +        CoreFunction::Keccak256HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +
    +        CoreFunction::Keccak256HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak256HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToGroup => {
    +            apply!(
    +                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +                Group,
    +                to_bits_le
    +            )
    +        }
    +        CoreFunction::Keccak384HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak384HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToGroup => {
    +            apply!(
    +                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +                Group,
    +                to_bits_le
    +            )
    +        }
    +        CoreFunction::Keccak512HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::Keccak512HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::Pedersen64CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped64, Address)
    +        }
    +        CoreFunction::Pedersen64CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped64, Field)
    +        }
    +        CoreFunction::Pedersen64CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped64, Group)
    +        }
    +        CoreFunction::Pedersen64HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_ped64, Address, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToField => apply!(TestnetV0::hash_ped64, Field, to_bits_le),
    +        CoreFunction::Pedersen64HashToGroup => apply!(TestnetV0::hash_to_group_ped64, Group, to_bits_le),
    +        CoreFunction::Pedersen64HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::Pedersen64HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_ped64, Scalar, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_ped128, Address, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToField => {
    +            apply_cast!(TestnetV0::hash_to_group_ped128, Field, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToGroup => {
    +            apply_cast!(TestnetV0::hash_to_group_ped128, Group, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, I8, i8, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I16, i16, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, I32, i32, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, I64, i64, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, I128, i128, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, U8, u8, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U16, u16, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, U32, u32, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped64, U64, u64, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_ped128, U128, u128, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_ped128, Scalar, to_bits_le)
    +        }
    +        CoreFunction::Pedersen128CommitToAddress => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped128, Address)
    +        }
    +        CoreFunction::Pedersen128CommitToField => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped128, Field)
    +        }
    +        CoreFunction::Pedersen128CommitToGroup => {
    +            apply_cast2!(TestnetV0::commit_to_group_ped128, Group)
    +        }
    +        CoreFunction::Poseidon2HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_psd2, Address, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToField => {
    +            apply!(TestnetV0::hash_psd2, Field, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToGroup => {
    +            apply_cast!(TestnetV0::hash_to_group_psd2, Group, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, I8, i8, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, I16, i16, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, I32, i32, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, I64, i64, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, I128, i128, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, U8, u8, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, U16, u16, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, U32, u32, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, U64, u64, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd2, U128, u128, to_fields)
    +        }
    +        CoreFunction::Poseidon2HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_psd4, Scalar, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_psd4, Address, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToField => {
    +            apply!(TestnetV0::hash_psd4, Field, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToGroup => {
    +            apply_cast!(TestnetV0::hash_to_group_psd4, Group, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, I8, i8, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, I16, i16, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, I32, i32, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, I64, i64, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, I128, i128, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, U8, u8, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, U16, u16, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, U32, u32, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, U64, u64, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd4, U128, u128, to_fields)
    +        }
    +        CoreFunction::Poseidon4HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_psd4, Scalar, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToAddress => {
    +            apply_cast!(TestnetV0::hash_to_group_psd8, Address, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToField => {
    +            apply!(TestnetV0::hash_psd8, Field, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToGroup => {
    +            apply_cast!(TestnetV0::hash_to_group_psd8, Group, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToI8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, I8, i8, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToI16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, I16, i16, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToI32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, I32, i32, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToI64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, I64, i64, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToI128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, I128, i128, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToU8 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, U8, u8, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToU16 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, U16, u16, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToU32 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, U32, u32, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToU64 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, U64, u64, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToU128 => {
    +            apply_cast_int!(TestnetV0::hash_to_group_psd8, U128, u128, to_fields)
    +        }
    +        CoreFunction::Poseidon8HashToScalar => {
    +            apply_cast!(TestnetV0::hash_to_group_psd8, Scalar, to_fields)
    +        }
    +        CoreFunction::SHA3_256HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToGroup => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            Group,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_256HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToGroup => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            Group,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_384HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToAddress => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            Address,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToField => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            Field,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToGroup => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            Group,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToI8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            I8,
    +            i8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToI16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            I16,
    +            i16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToI32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            I32,
    +            i32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToI64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            I64,
    +            i64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToI128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            I128,
    +            i128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToU8 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            U8,
    +            u8,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToU16 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            U16,
    +            u16,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToU32 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            U32,
    +            u32,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToU64 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            U64,
    +            u64,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToU128 => apply_cast_int!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            U128,
    +            u128,
    +            to_bits_le
    +        ),
    +        CoreFunction::SHA3_512HashToScalar => apply_cast!(
    +            |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    +            Scalar,
    +            to_bits_le
    +        ),
    +        CoreFunction::GroupToXCoordinate => {
    +            let Value::Group(g) = helper.pop_value()? else {
    +                tc_fail!();
    +            };
    +            Value::Field(g.to_x_coordinate())
    +        }
    +        CoreFunction::GroupToYCoordinate => {
    +            let Value::Group(g) = helper.pop_value()? else {
    +                tc_fail!();
    +            };
    +            Value::Field(g.to_y_coordinate())
    +        }
    +        CoreFunction::ChaChaRandAddress => Value::Address(maybe_gen!()),
    +        CoreFunction::ChaChaRandBool => Value::Bool(maybe_gen!()),
    +        CoreFunction::ChaChaRandField => Value::Field(maybe_gen!()),
    +        CoreFunction::ChaChaRandGroup => Value::Group(maybe_gen!()),
    +        CoreFunction::ChaChaRandI8 => Value::I8(maybe_gen!()),
    +        CoreFunction::ChaChaRandI16 => Value::I16(maybe_gen!()),
    +        CoreFunction::ChaChaRandI32 => Value::I32(maybe_gen!()),
    +        CoreFunction::ChaChaRandI64 => Value::I64(maybe_gen!()),
    +        CoreFunction::ChaChaRandI128 => Value::I128(maybe_gen!()),
    +        CoreFunction::ChaChaRandU8 => Value::U8(maybe_gen!()),
    +        CoreFunction::ChaChaRandU16 => Value::U16(maybe_gen!()),
    +        CoreFunction::ChaChaRandU32 => Value::U32(maybe_gen!()),
    +        CoreFunction::ChaChaRandU64 => Value::U64(maybe_gen!()),
    +        CoreFunction::ChaChaRandU128 => Value::U128(maybe_gen!()),
    +        CoreFunction::ChaChaRandScalar => Value::Scalar(maybe_gen!()),
    +        CoreFunction::CheatCodePrintMapping => {
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            if let Some(mapping) = helper.lookup_mapping(program, name) {
    +                // TODO: What is the appropriate way to print this to the console.
    +                // Print the name of the mapping.
    +                println!(
    +                    "Mapping: {}",
    +                    if let Some(program) = program { format!("{}/{}", program, name) } else { name.to_string() }
    +                );
    +                // Print the contents of the mapping.
    +                for (key, value) in mapping {
    +                    println!("  {} -> {}", key, value);
    +                }
    +            } else {
    +                tc_fail!();
    +            }
    +            Value::Unit
    +        }
    +        CoreFunction::CheatCodeSetBlockHeight => {
    +            let Value::U32(height) = helper.pop_value()? else {
    +                tc_fail!();
    +            };
    +            helper.set_block_height(height);
    +            Value::Unit
    +        }
    +        CoreFunction::MappingGet => {
    +            let key = helper.pop_value().expect_tc(span)?;
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            match helper.lookup_mapping(program, name).and_then(|mapping| mapping.get(&key)) {
    +                Some(v) => v.clone(),
    +                None => halt!(span, "map lookup failure"),
    +            }
    +        }
    +        CoreFunction::MappingGetOrUse => {
    +            let use_value = helper.pop_value().expect_tc(span)?;
    +            let key = helper.pop_value().expect_tc(span)?;
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            match helper.lookup_mapping(program, name).and_then(|mapping| mapping.get(&key)) {
    +                Some(v) => v.clone(),
    +                None => use_value,
    +            }
    +        }
    +        CoreFunction::MappingSet => {
    +            let value = helper.pop_value()?;
    +            let key = helper.pop_value()?;
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            if let Some(mapping) = helper.lookup_mapping_mut(program, name) {
    +                mapping.insert(key, value);
    +            } else {
    +                tc_fail!();
    +            }
    +            Value::Unit
    +        }
    +        CoreFunction::MappingRemove => {
    +            let key = helper.pop_value()?;
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            if let Some(mapping) = helper.lookup_mapping_mut(program, name) {
    +                mapping.remove(&key);
    +            } else {
    +                tc_fail!();
    +            }
    +            Value::Unit
    +        }
    +        CoreFunction::MappingContains => {
    +            let key = helper.pop_value()?;
    +            let (program, name) = match &arguments[0] {
    +                Expression::Identifier(id) => (None, id.name),
    +                Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    +                _ => tc_fail!(),
    +            };
    +            if let Some(mapping) = helper.lookup_mapping_mut(program, name) {
    +                Value::Bool(mapping.contains_key(&key))
    +            } else {
    +                tc_fail!();
    +            }
    +        }
    +        CoreFunction::SignatureVerify => todo!(),
    +        CoreFunction::FutureAwait => panic!("await must be handled elsewhere"),
    +    };
    +
    +    Ok(Some(value))
    +}
    +
    \ No newline at end of file diff --git a/src/leo_interpreter/cursor.rs.html b/src/leo_interpreter/cursor.rs.html index 0fe42bcc91..439114111d 100644 --- a/src/leo_interpreter/cursor.rs.html +++ b/src/leo_interpreter/cursor.rs.html @@ -1719,1042 +1719,7 @@ 1718 1719 1720 -1721 -1722 -1723 -1724 -1725 -1726 -1727 -1728 -1729 -1730 -1731 -1732 -1733 -1734 -1735 -1736 -1737 -1738 -1739 -1740 -1741 -1742 -1743 -1744 -1745 -1746 -1747 -1748 -1749 -1750 -1751 -1752 -1753 -1754 -1755 -1756 -1757 -1758 -1759 -1760 -1761 -1762 -1763 -1764 -1765 -1766 -1767 -1768 -1769 -1770 -1771 -1772 -1773 -1774 -1775 -1776 -1777 -1778 -1779 -1780 -1781 -1782 -1783 -1784 -1785 -1786 -1787 -1788 -1789 -1790 -1791 -1792 -1793 -1794 -1795 -1796 -1797 -1798 -1799 -1800 -1801 -1802 -1803 -1804 -1805 -1806 -1807 -1808 -1809 -1810 -1811 -1812 -1813 -1814 -1815 -1816 -1817 -1818 -1819 -1820 -1821 -1822 -1823 -1824 -1825 -1826 -1827 -1828 -1829 -1830 -1831 -1832 -1833 -1834 -1835 -1836 -1837 -1838 -1839 -1840 -1841 -1842 -1843 -1844 -1845 -1846 -1847 -1848 -1849 -1850 -1851 -1852 -1853 -1854 -1855 -1856 -1857 -1858 -1859 -1860 -1861 -1862 -1863 -1864 -1865 -1866 -1867 -1868 -1869 -1870 -1871 -1872 -1873 -1874 -1875 -1876 -1877 -1878 -1879 -1880 -1881 -1882 -1883 -1884 -1885 -1886 -1887 -1888 -1889 -1890 -1891 -1892 -1893 -1894 -1895 -1896 -1897 -1898 -1899 -1900 -1901 -1902 -1903 -1904 -1905 -1906 -1907 -1908 -1909 -1910 -1911 -1912 -1913 -1914 -1915 -1916 -1917 -1918 -1919 -1920 -1921 -1922 -1923 -1924 -1925 -1926 -1927 -1928 -1929 -1930 -1931 -1932 -1933 -1934 -1935 -1936 -1937 -1938 -1939 -1940 -1941 -1942 -1943 -1944 -1945 -1946 -1947 -1948 -1949 -1950 -1951 -1952 -1953 -1954 -1955 -1956 -1957 -1958 -1959 -1960 -1961 -1962 -1963 -1964 -1965 -1966 -1967 -1968 -1969 -1970 -1971 -1972 -1973 -1974 -1975 -1976 -1977 -1978 -1979 -1980 -1981 -1982 -1983 -1984 -1985 -1986 -1987 -1988 -1989 -1990 -1991 -1992 -1993 -1994 -1995 -1996 -1997 -1998 -1999 -2000 -2001 -2002 -2003 -2004 -2005 -2006 -2007 -2008 -2009 -2010 -2011 -2012 -2013 -2014 -2015 -2016 -2017 -2018 -2019 -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -2035 -2036 -2037 -2038 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 -2071 -2072 -2073 -2074 -2075 -2076 -2077 -2078 -2079 -2080 -2081 -2082 -2083 -2084 -2085 -2086 -2087 -2088 -2089 -2090 -2091 -2092 -2093 -2094 -2095 -2096 -2097 -2098 -2099 -2100 -2101 -2102 -2103 -2104 -2105 -2106 -2107 -2108 -2109 -2110 -2111 -2112 -2113 -2114 -2115 -2116 -2117 -2118 -2119 -2120 -2121 -2122 -2123 -2124 -2125 -2126 -2127 -2128 -2129 -2130 -2131 -2132 -2133 -2134 -2135 -2136 -2137 -2138 -2139 -2140 -2141 -2142 -2143 -2144 -2145 -2146 -2147 -2148 -2149 -2150 -2151 -2152 -2153 -2154 -2155 -2156 -2157 -2158 -2159 -2160 -2161 -2162 -2163 -2164 -2165 -2166 -2167 -2168 -2169 -2170 -2171 -2172 -2173 -2174 -2175 -2176 -2177 -2178 -2179 -2180 -2181 -2182 -2183 -2184 -2185 -2186 -2187 -2188 -2189 -2190 -2191 -2192 -2193 -2194 -2195 -2196 -2197 -2198 -2199 -2200 -2201 -2202 -2203 -2204 -2205 -2206 -2207 -2208 -2209 -2210 -2211 -2212 -2213 -2214 -2215 -2216 -2217 -2218 -2219 -2220 -2221 -2222 -2223 -2224 -2225 -2226 -2227 -2228 -2229 -2230 -2231 -2232 -2233 -2234 -2235 -2236 -2237 -2238 -2239 -2240 -2241 -2242 -2243 -2244 -2245 -2246 -2247 -2248 -2249 -2250 -2251 -2252 -2253 -2254 -2255 -2256 -2257 -2258 -2259 -2260 -2261 -2262 -2263 -2264 -2265 -2266 -2267 -2268 -2269 -2270 -2271 -2272 -2273 -2274 -2275 -2276 -2277 -2278 -2279 -2280 -2281 -2282 -2283 -2284 -2285 -2286 -2287 -2288 -2289 -2290 -2291 -2292 -2293 -2294 -2295 -2296 -2297 -2298 -2299 -2300 -2301 -2302 -2303 -2304 -2305 -2306 -2307 -2308 -2309 -2310 -2311 -2312 -2313 -2314 -2315 -2316 -2317 -2318 -2319 -2320 -2321 -2322 -2323 -2324 -2325 -2326 -2327 -2328 -2329 -2330 -2331 -2332 -2333 -2334 -2335 -2336 -2337 -2338 -2339 -2340 -2341 -2342 -2343 -2344 -2345 -2346 -2347 -2348 -2349 -2350 -2351 -2352 -2353 -2354 -2355 -2356 -2357 -2358 -2359 -2360 -2361 -2362 -2363 -2364 -2365 -2366 -2367 -2368 -2369 -2370 -2371 -2372 -2373 -2374 -2375 -2376 -2377 -2378 -2379 -2380 -2381 -2382 -2383 -2384 -2385 -2386 -2387 -2388 -2389 -2390 -2391 -2392 -2393 -2394 -2395 -2396 -2397 -2398 -2399 -2400 -2401 -2402 -2403 -2404 -2405 -2406 -2407 -2408 -2409 -2410 -2411 -2412 -2413 -2414 -2415 -2416 -2417 -2418 -2419 -2420 -2421 -2422 -2423 -2424 -2425 -2426 -2427 -2428 -2429 -2430 -2431 -2432 -2433 -2434 -2435 -2436 -2437 -2438 -2439 -2440 -2441 -2442 -2443 -2444 -2445 -2446 -2447 -2448 -2449 -2450 -2451 -2452 -2453 -2454 -2455 -2456 -2457 -2458 -2459 -2460 -2461 -2462 -2463 -2464 -2465 -2466 -2467 -2468 -2469 -2470 -2471 -2472 -2473 -2474 -2475 -2476 -2477 -2478 -2479 -2480 -2481 -2482 -2483 -2484 -2485 -2486 -2487 -2488 -2489 -2490 -2491 -2492 -2493 -2494 -2495 -2496 -2497 -2498 -2499 -2500 -2501 -2502 -2503 -2504 -2505 -2506 -2507 -2508 -2509 -2510 -2511 -2512 -2513 -2514 -2515 -2516 -2517 -2518 -2519 -2520 -2521 -2522 -2523 -2524 -2525 -2526 -2527 -2528 -2529 -2530 -2531 -2532 -2533 -2534 -2535 -2536 -2537 -2538 -2539 -2540 -2541 -2542 -2543 -2544 -2545 -2546 -2547 -2548 -2549 -2550 -2551 -2552 -2553 -2554 -2555 -2556 -2557 -2558 -2559 -2560 -2561 -2562 -2563 -2564 -2565 -2566 -2567 -2568 -2569 -2570 -2571 -2572 -2573 -2574 -2575 -2576 -2577 -2578 -2579 -2580 -2581 -2582 -2583 -2584 -2585 -2586 -2587 -2588 -2589 -2590 -2591 -2592 -2593 -2594 -2595 -2596 -2597 -2598 -2599 -2600 -2601 -2602 -2603 -2604 -2605 -2606 -2607 -2608 -2609 -2610 -2611 -2612 -2613 -2614 -2615 -2616 -2617 -2618 -2619 -2620 -2621 -2622 -2623 -2624 -2625 -2626 -2627 -2628 -2629 -2630 -2631 -2632 -2633 -2634 -2635 -2636 -2637 -2638 -2639 -2640 -2641 -2642 -2643 -2644 -2645 -2646 -2647 -2648 -2649 -2650 -2651 -2652 -2653 -2654 -2655 -2656 -2657 -2658 -2659 -2660 -2661 -2662 -2663 -2664 -2665 -2666 -2667 -2668 -2669 -2670 -2671 -2672 -2673 -2674 -2675 -2676 -2677 -2678 -2679 -2680 -2681 -2682 -2683 -2684 -2685 -2686 -2687 -2688 -2689 -2690 -2691 -2692 -2693 -2694 -2695 -2696 -2697 -2698 -2699 -2700 -2701 -2702 -2703 -2704 -2705 -2706 -2707 -2708 -2709 -2710 -2711 -2712 -2713 -2714 -2715 -2716 -2717 -2718 -2719 -2720 -2721 -2722 -2723 -2724 -2725 -2726 -2727 -2728 -2729 -2730 -2731 -2732 -2733 -2734 -2735 -2736 -2737 -2738 -2739 -2740 -2741 -2742 -2743 -2744 -2745 -2746 -2747 -2748 -2749 -2750 -2751 -2752 -2753 -2754 -2755 -2756
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +1721
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -2780,6 +1745,7 @@
         CoreConstant,
         CoreFunction,
         Expression,
    +    FromStrRadix as _,
         Function,
         GroupLiteral,
         IntegerType,
    @@ -2793,23 +1759,19 @@
     use leo_span::{Span, Symbol, sym};
     
     use snarkvm::prelude::{
    -    CastLossy as _,
         Closure as SvmClosure,
         Double as _,
         Finalize as SvmFinalize,
         Function as SvmFunctionParam,
         Inverse as _,
    -    Network as _,
         Pow as _,
         ProgramID,
         Square as _,
         SquareRoot as _,
         TestnetV0,
    -    ToBits,
     };
     
     use indexmap::{IndexMap, IndexSet};
    -use rand::Rng as _;
     use rand_chacha::{ChaCha20Rng, rand_core::SeedableRng};
     use std::{cmp::Ordering, collections::HashMap, fmt, mem, str::FromStr as _};
     
    @@ -3023,6 +1985,28 @@
         pub program: Option<Symbol>,
     }
     
    +impl CoreFunctionHelper for Cursor<'_> {
    +    fn pop_value_impl(&mut self) -> Option<Value> {
    +        self.values.pop()
    +    }
    +
    +    fn set_block_height(&mut self, height: u32) {
    +        self.block_height = height;
    +    }
    +
    +    fn lookup_mapping(&self, program: Option<Symbol>, name: Symbol) -> Option<&HashMap<Value, Value>> {
    +        Cursor::lookup_mapping(self, program, name)
    +    }
    +
    +    fn lookup_mapping_mut(&mut self, program: Option<Symbol>, name: Symbol) -> Option<&mut HashMap<Value, Value>> {
    +        Cursor::lookup_mapping_mut(self, program, name)
    +    }
    +
    +    fn rng(&mut self) -> Option<&mut ChaCha20Rng> {
    +        Some(&mut self.rng)
    +    }
    +}
    +
     impl<'a> Cursor<'a> {
         /// `really_async` indicates we should really delay execution of async function calls until the user runs them.
         pub fn new(really_async: bool, signer: SvmAddress, block_height: u32) -> Self {
    @@ -3118,10 +2102,6 @@
             }
         }
     
    -    fn set_block_height(&mut self, block_height: u32) {
    -        self.block_height = block_height;
    -    }
    -
         /// Execute the whole step of the current Element.
         ///
         /// That is, perform a step, and then finish all statements and expressions that have been pushed,
    @@ -3480,13 +2460,25 @@
     
                     let span = function.span();
     
    -                let value = self.evaluate_core_function(core_function.clone(), &function.arguments, span)?;
    -
                     if let CoreFunction::FutureAwait = core_function {
    +                    let value = self.pop_value()?;
    +                    let Value::Future(future) = value else {
    +                        halt!(span, "Invalid value for await: {value}");
    +                    };
    +                    for async_execution in future.0 {
    +                        self.values.extend(async_execution.arguments.into_iter());
    +                        self.frames.push(Frame {
    +                            step: 0,
    +                            element: Element::DelayedCall(async_execution.function),
    +                            user_initiated: false,
    +                        });
    +                    }
                         // For an await, we have one extra step - first we must evaluate the delayed call.
                         None
                     } else {
    -                    Some(value)
    +                    let value = crate::evaluate_core_function(self, core_function.clone(), &function.arguments, span)?;
    +                    assert!(value.is_some());
    +                    value
                     }
                 }
                 Expression::Access(AccessExpression::AssociatedFunction(function)) if step == 2 => {
    @@ -3528,7 +2520,7 @@
                 Expression::Binary(binary) if step == 1 => {
                     let rhs = self.pop_value()?;
                     let lhs = self.pop_value()?;
    -                Some(evaluate_binary(binary.span, binary.op, lhs, rhs)?)
    +                Some(evaluate_binary(binary.span, binary.op, &lhs, &rhs)?)
                 }
                 Expression::Call(call) if step == 0 => {
                     call.arguments.iter().rev().for_each(push!());
    @@ -3577,34 +2569,7 @@
                 Expression::Identifier(identifier) if step == 0 => {
                     Some(self.lookup(identifier.name).expect_tc(identifier.span())?)
                 }
    -            Expression::Literal(literal) if step == 0 => Some(match literal {
    -                Literal::Boolean(b, ..) => Value::Bool(*b),
    -                Literal::Integer(IntegerType::U8, s, ..) => Value::U8(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::U16, s, ..) => Value::U16(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::U32, s, ..) => Value::U32(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::U64, s, ..) => Value::U64(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::U128, s, ..) => Value::U128(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::I8, s, ..) => Value::I8(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::I16, s, ..) => Value::I16(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::I32, s, ..) => Value::I32(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::I64, s, ..) => Value::I64(s.parse().expect_tc(literal.span())?),
    -                Literal::Integer(IntegerType::I128, s, ..) => Value::I128(s.parse().expect_tc(literal.span())?),
    -                Literal::Field(s, ..) => Value::Field(format!("{s}field").parse().expect_tc(literal.span())?),
    -                Literal::Group(group_literal) => match &**group_literal {
    -                    GroupLiteral::Single(s, ..) => Value::Group(format!("{s}group").parse().expect_tc(literal.span())?),
    -                    GroupLiteral::Tuple(_group_tuple) => todo!(),
    -                },
    -                Literal::Address(s, ..) => {
    -                    if s.ends_with(".aleo") {
    -                        let program_id = ProgramID::from_str(s)?;
    -                        Value::Address(program_id.to_address()?)
    -                    } else {
    -                        Value::Address(s.parse().expect_tc(literal.span())?)
    -                    }
    -                }
    -                Literal::Scalar(s, ..) => Value::Scalar(format!("{s}scalar").parse().expect_tc(literal.span())?),
    -                Literal::String(..) => tc_fail!(),
    -            }),
    +            Expression::Literal(literal) if step == 0 => Some(literal_to_value(literal)?),
                 Expression::Locator(_locator) => todo!(),
                 Expression::Struct(struct_) if step == 0 => {
                     struct_.members.iter().flat_map(|init| init.expression.as_ref()).for_each(push!());
    @@ -3663,7 +2628,7 @@
                 }
                 Expression::Unary(unary) if step == 1 => {
                     let value = self.pop_value()?;
    -                Some(evaluate_unary(unary.span, unary.op, value)?)
    +                Some(evaluate_unary(unary.span, unary.op, &value)?)
                 }
                 Expression::Unit(_) if step == 0 => Some(Value::Unit),
                 x => unreachable!("Unexpected expression {x}"),
    @@ -3856,1103 +2821,6 @@
     
             Ok(())
         }
    -
    -    pub fn evaluate_core_function(
    -        &mut self,
    -        core_function: CoreFunction,
    -        arguments: &[Expression],
    -        span: Span,
    -    ) -> Result<Value> {
    -        macro_rules! apply {
    -            ($func: expr, $value: ident, $to: ident) => {{
    -                let v = self.pop_value()?;
    -                let bits = v.$to();
    -                Value::$value($func(&bits).expect_tc(span)?)
    -            }};
    -        }
    -
    -        macro_rules! apply_cast {
    -            ($func: expr, $value: ident, $to: ident) => {{
    -                let v = self.pop_value()?;
    -                let bits = v.$to();
    -                let group = $func(&bits).expect_tc(span)?;
    -                let x = group.to_x_coordinate();
    -                Value::$value(x.cast_lossy())
    -            }};
    -        }
    -
    -        macro_rules! apply_cast_int {
    -            ($func: expr, $value: ident, $int_ty: ident, $to: ident) => {{
    -                let v = self.pop_value()?;
    -                let bits = v.$to();
    -                let group = $func(&bits).expect_tc(span)?;
    -                let x = group.to_x_coordinate();
    -                let bits = x.to_bits_le();
    -                let mut result: $int_ty = 0;
    -                for bit in 0..std::cmp::min($int_ty::BITS as usize, bits.len()) {
    -                    let setbit = (if bits[bit] { 1 } else { 0 }) << bit;
    -                    result |= setbit;
    -                }
    -                Value::$value(result)
    -            }};
    -        }
    -
    -        macro_rules! apply_cast2 {
    -            ($func: expr, $value: ident) => {{
    -                let Value::Scalar(randomizer) = self.pop_value()? else {
    -                    tc_fail!();
    -                };
    -                let v = self.pop_value()?;
    -                let bits = v.to_bits_le();
    -                let group = $func(&bits, &randomizer).expect_tc(span)?;
    -                let x = group.to_x_coordinate();
    -                Value::$value(x.cast_lossy())
    -            }};
    -        }
    -
    -        let value = match core_function {
    -            CoreFunction::BHP256CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp256, Address)
    -            }
    -            CoreFunction::BHP256CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp256, Field)
    -            }
    -            CoreFunction::BHP256CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp256, Group)
    -            }
    -            CoreFunction::BHP256HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp256, Address, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToField => apply!(TestnetV0::hash_bhp256, Field, to_bits_le),
    -            CoreFunction::BHP256HashToGroup => apply!(TestnetV0::hash_to_group_bhp256, Group, to_bits_le),
    -            CoreFunction::BHP256HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp256, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::BHP256HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp256, Scalar, to_bits_le)
    -            }
    -            CoreFunction::BHP512CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp512, Address)
    -            }
    -            CoreFunction::BHP512CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp512, Field)
    -            }
    -            CoreFunction::BHP512CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp512, Group)
    -            }
    -            CoreFunction::BHP512HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp512, Address, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToField => apply!(TestnetV0::hash_bhp512, Field, to_bits_le),
    -            CoreFunction::BHP512HashToGroup => apply!(TestnetV0::hash_to_group_bhp512, Group, to_bits_le),
    -            CoreFunction::BHP512HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp512, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::BHP512HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp512, Scalar, to_bits_le)
    -            }
    -            CoreFunction::BHP768CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp768, Address)
    -            }
    -            CoreFunction::BHP768CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp768, Field)
    -            }
    -            CoreFunction::BHP768CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp768, Group)
    -            }
    -            CoreFunction::BHP768HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp768, Address, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToField => apply!(TestnetV0::hash_bhp768, Field, to_bits_le),
    -            CoreFunction::BHP768HashToGroup => apply!(TestnetV0::hash_to_group_bhp768, Group, to_bits_le),
    -            CoreFunction::BHP768HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp768, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::BHP768HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp768, Scalar, to_bits_le)
    -            }
    -            CoreFunction::BHP1024CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp1024, Address)
    -            }
    -            CoreFunction::BHP1024CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp1024, Field)
    -            }
    -            CoreFunction::BHP1024CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_bhp1024, Group)
    -            }
    -            CoreFunction::BHP1024HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp1024, Address, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToField => apply!(TestnetV0::hash_bhp1024, Field, to_bits_le),
    -            CoreFunction::BHP1024HashToGroup => apply!(TestnetV0::hash_to_group_bhp1024, Group, to_bits_le),
    -            CoreFunction::BHP1024HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_bhp1024, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::BHP1024HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_bhp1024, Scalar, to_bits_le)
    -            }
    -            CoreFunction::ChaChaRandAddress => Value::Address(self.rng.gen()),
    -            CoreFunction::ChaChaRandBool => Value::Bool(self.rng.gen()),
    -            CoreFunction::ChaChaRandField => Value::Field(self.rng.gen()),
    -            CoreFunction::ChaChaRandGroup => Value::Group(self.rng.gen()),
    -            CoreFunction::ChaChaRandI8 => Value::I8(self.rng.gen()),
    -            CoreFunction::ChaChaRandI16 => Value::I16(self.rng.gen()),
    -            CoreFunction::ChaChaRandI32 => Value::I32(self.rng.gen()),
    -            CoreFunction::ChaChaRandI64 => Value::I64(self.rng.gen()),
    -            CoreFunction::ChaChaRandI128 => Value::I128(self.rng.gen()),
    -            CoreFunction::ChaChaRandU8 => Value::U8(self.rng.gen()),
    -            CoreFunction::ChaChaRandU16 => Value::U16(self.rng.gen()),
    -            CoreFunction::ChaChaRandU32 => Value::U32(self.rng.gen()),
    -            CoreFunction::ChaChaRandU64 => Value::U64(self.rng.gen()),
    -            CoreFunction::ChaChaRandU128 => Value::U128(self.rng.gen()),
    -            CoreFunction::ChaChaRandScalar => Value::Scalar(self.rng.gen()),
    -            CoreFunction::Keccak256HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToGroup => {
    -                apply!(
    -                    |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                    Group,
    -                    to_bits_le
    -                )
    -            }
    -            CoreFunction::Keccak256HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -
    -            CoreFunction::Keccak256HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak256HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_keccak256(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToGroup => {
    -                apply!(
    -                    |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                    Group,
    -                    to_bits_le
    -                )
    -            }
    -            CoreFunction::Keccak384HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak384HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak384(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToGroup => {
    -                apply!(
    -                    |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                    Group,
    -                    to_bits_le
    -                )
    -            }
    -            CoreFunction::Keccak512HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::Keccak512HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_keccak512(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::Pedersen64CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped64, Address)
    -            }
    -            CoreFunction::Pedersen64CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped64, Field)
    -            }
    -            CoreFunction::Pedersen64CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped64, Group)
    -            }
    -            CoreFunction::Pedersen64HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_ped64, Address, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToField => apply!(TestnetV0::hash_ped64, Field, to_bits_le),
    -            CoreFunction::Pedersen64HashToGroup => apply!(TestnetV0::hash_to_group_ped64, Group, to_bits_le),
    -            CoreFunction::Pedersen64HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::Pedersen64HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_ped64, Scalar, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_ped128, Address, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToField => {
    -                apply_cast!(TestnetV0::hash_to_group_ped128, Field, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToGroup => {
    -                apply_cast!(TestnetV0::hash_to_group_ped128, Group, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, I8, i8, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I16, i16, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, I32, i32, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, I64, i64, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, I128, i128, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, U8, u8, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U16, u16, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, U32, u32, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped64, U64, u64, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_ped128, U128, u128, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_ped128, Scalar, to_bits_le)
    -            }
    -            CoreFunction::Pedersen128CommitToAddress => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped128, Address)
    -            }
    -            CoreFunction::Pedersen128CommitToField => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped128, Field)
    -            }
    -            CoreFunction::Pedersen128CommitToGroup => {
    -                apply_cast2!(TestnetV0::commit_to_group_ped128, Group)
    -            }
    -            CoreFunction::Poseidon2HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_psd2, Address, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToField => {
    -                apply!(TestnetV0::hash_psd2, Field, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToGroup => {
    -                apply_cast!(TestnetV0::hash_to_group_psd2, Group, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, I8, i8, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, I16, i16, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, I32, i32, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, I64, i64, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, I128, i128, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, U8, u8, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, U16, u16, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, U32, u32, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, U64, u64, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd2, U128, u128, to_fields)
    -            }
    -            CoreFunction::Poseidon2HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_psd4, Scalar, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_psd4, Address, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToField => {
    -                apply!(TestnetV0::hash_psd4, Field, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToGroup => {
    -                apply_cast!(TestnetV0::hash_to_group_psd4, Group, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, I8, i8, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, I16, i16, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, I32, i32, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, I64, i64, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, I128, i128, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, U8, u8, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, U16, u16, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, U32, u32, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, U64, u64, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd4, U128, u128, to_fields)
    -            }
    -            CoreFunction::Poseidon4HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_psd4, Scalar, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToAddress => {
    -                apply_cast!(TestnetV0::hash_to_group_psd8, Address, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToField => {
    -                apply!(TestnetV0::hash_psd8, Field, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToGroup => {
    -                apply_cast!(TestnetV0::hash_to_group_psd8, Group, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToI8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, I8, i8, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToI16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, I16, i16, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToI32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, I32, i32, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToI64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, I64, i64, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToI128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, I128, i128, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToU8 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, U8, u8, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToU16 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, U16, u16, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToU32 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, U32, u32, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToU64 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, U64, u64, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToU128 => {
    -                apply_cast_int!(TestnetV0::hash_to_group_psd8, U128, u128, to_fields)
    -            }
    -            CoreFunction::Poseidon8HashToScalar => {
    -                apply_cast!(TestnetV0::hash_to_group_psd8, Scalar, to_fields)
    -            }
    -            CoreFunction::SHA3_256HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToGroup => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                Group,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_256HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp256(&TestnetV0::hash_sha3_256(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToGroup => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                Group,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_384HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_384(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToAddress => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                Address,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToField => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                Field,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToGroup => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                Group,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToI8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                I8,
    -                i8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToI16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                I16,
    -                i16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToI32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                I32,
    -                i32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToI64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                I64,
    -                i64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToI128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                I128,
    -                i128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToU8 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                U8,
    -                u8,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToU16 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                U16,
    -                u16,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToU32 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                U32,
    -                u32,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToU64 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                U64,
    -                u64,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToU128 => apply_cast_int!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                U128,
    -                u128,
    -                to_bits_le
    -            ),
    -            CoreFunction::SHA3_512HashToScalar => apply_cast!(
    -                |v| TestnetV0::hash_to_group_bhp512(&TestnetV0::hash_sha3_512(v).expect_tc(span)?),
    -                Scalar,
    -                to_bits_le
    -            ),
    -            CoreFunction::MappingGet => {
    -                let key = self.values.pop().expect_tc(span)?;
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                match self.lookup_mapping(program, name).and_then(|mapping| mapping.get(&key)) {
    -                    Some(v) => v.clone(),
    -                    None => halt!(span, "map lookup failure"),
    -                }
    -            }
    -            CoreFunction::MappingGetOrUse => {
    -                let use_value = self.values.pop().expect_tc(span)?;
    -                let key = self.values.pop().expect_tc(span)?;
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                match self.lookup_mapping(program, name).and_then(|mapping| mapping.get(&key)) {
    -                    Some(v) => v.clone(),
    -                    None => use_value,
    -                }
    -            }
    -            CoreFunction::MappingSet => {
    -                let value = self.pop_value()?;
    -                let key = self.pop_value()?;
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                if let Some(mapping) = self.lookup_mapping_mut(program, name) {
    -                    mapping.insert(key, value);
    -                } else {
    -                    tc_fail!();
    -                }
    -                Value::Unit
    -            }
    -            CoreFunction::MappingRemove => {
    -                let key = self.pop_value()?;
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                if let Some(mapping) = self.lookup_mapping_mut(program, name) {
    -                    mapping.remove(&key);
    -                } else {
    -                    tc_fail!();
    -                }
    -                Value::Unit
    -            }
    -            CoreFunction::MappingContains => {
    -                let key = self.pop_value()?;
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                if let Some(mapping) = self.lookup_mapping_mut(program, name) {
    -                    Value::Bool(mapping.contains_key(&key))
    -                } else {
    -                    tc_fail!();
    -                }
    -            }
    -            CoreFunction::GroupToXCoordinate => {
    -                let Value::Group(g) = self.pop_value()? else {
    -                    tc_fail!();
    -                };
    -                Value::Field(g.to_x_coordinate())
    -            }
    -            CoreFunction::GroupToYCoordinate => {
    -                let Value::Group(g) = self.pop_value()? else {
    -                    tc_fail!();
    -                };
    -                Value::Field(g.to_y_coordinate())
    -            }
    -            CoreFunction::SignatureVerify => todo!(),
    -            CoreFunction::FutureAwait => {
    -                let value = self.pop_value()?;
    -                let Value::Future(future) = value else {
    -                    halt!(span, "Invalid value for await: {value}");
    -                };
    -                for async_execution in future.0 {
    -                    self.values.extend(async_execution.arguments.into_iter());
    -                    self.frames.push(Frame {
    -                        step: 0,
    -                        element: Element::DelayedCall(async_execution.function),
    -                        user_initiated: false,
    -                    });
    -                }
    -                Value::Unit
    -            }
    -            CoreFunction::CheatCodePrintMapping => {
    -                let (program, name) = match &arguments[0] {
    -                    Expression::Identifier(id) => (None, id.name),
    -                    Expression::Locator(locator) => (Some(locator.program.name.name), locator.name),
    -                    _ => tc_fail!(),
    -                };
    -                if let Some(mapping) = self.lookup_mapping(program, name) {
    -                    // TODO: What is the appropriate way to print this to the console.
    -                    // Print the name of the mapping.
    -                    println!(
    -                        "Mapping: {}",
    -                        if let Some(program) = program { format!("{}/{}", program, name) } else { name.to_string() }
    -                    );
    -                    // Print the contents of the mapping.
    -                    for (key, value) in mapping {
    -                        println!("  {} -> {}", key, value);
    -                    }
    -                } else {
    -                    tc_fail!();
    -                }
    -                Value::Unit
    -            }
    -            CoreFunction::CheatCodeSetBlockHeight => {
    -                let Value::U32(height) = self.pop_value()? else {
    -                    tc_fail!();
    -                };
    -                self.set_block_height(height);
    -                Value::Unit
    -            }
    -        };
    -
    -        Ok(value)
    -    }
     }
     
     #[derive(Clone, Debug)]
    @@ -4965,23 +2833,23 @@
     }
     
     /// Evaluate a binary operation.
    -pub fn evaluate_binary(span: Span, op: BinaryOperation, lhs: Value, rhs: Value) -> Result<Value> {
    +pub fn evaluate_binary(span: Span, op: BinaryOperation, lhs: &Value, rhs: &Value) -> Result<Value> {
         let value = match op {
             BinaryOperation::Add => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_add(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_add(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_add(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_add(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_add(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_add(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_add(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_add(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_add(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_add(y).map(Value::I128),
    -                (Value::Group(x), Value::Group(y)) => Some(Value::Group(x + y)),
    -                (Value::Field(x), Value::Field(y)) => Some(Value::Field(x + y)),
    -                (Value::Scalar(x), Value::Scalar(y)) => Some(Value::Scalar(x + y)),
    +                (Value::U8(x), Value::U8(y)) => x.checked_add(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_add(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_add(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_add(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_add(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_add(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_add(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_add(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_add(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_add(*y).map(Value::I128),
    +                (Value::Group(x), Value::Group(y)) => Some(Value::Group(*x + *y)),
    +                (Value::Field(x), Value::Field(y)) => Some(Value::Field(*x + *y)),
    +                (Value::Scalar(x), Value::Scalar(y)) => Some(Value::Scalar(*x + *y)),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "add overflow");
    @@ -4989,20 +2857,20 @@
                 value
             }
             BinaryOperation::AddWrapped => match (lhs, rhs) {
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_add(y)),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_add(y)),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_add(y)),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_add(y)),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_add(y)),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_add(y)),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_add(y)),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_add(y)),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_add(y)),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_add(y)),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_add(*y)),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_add(*y)),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_add(*y)),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_add(*y)),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_add(*y)),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_add(*y)),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_add(*y)),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_add(*y)),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_add(*y)),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_add(*y)),
                 _ => halt!(span, "Type error"),
             },
             BinaryOperation::And => match (lhs, rhs) {
    -            (Value::Bool(x), Value::Bool(y)) => Value::Bool(x && y),
    +            (Value::Bool(x), Value::Bool(y)) => Value::Bool(*x && *y),
                 _ => halt!(span, "Type error"),
             },
             BinaryOperation::BitwiseAnd => match (lhs, rhs) {
    @@ -5021,17 +2889,17 @@
             },
             BinaryOperation::Div => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_div(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_div(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_div(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_div(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_div(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_div(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_div(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_div(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_div(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_div(y).map(Value::I128),
    -                (Value::Field(x), Value::Field(y)) => y.inverse().map(|y| Value::Field(x * y)).ok(),
    +                (Value::U8(x), Value::U8(y)) => x.checked_div(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_div(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_div(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_div(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_div(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_div(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_div(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_div(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_div(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_div(*y).map(Value::I128),
    +                (Value::Field(x), Value::Field(y)) => y.inverse().map(|y| Value::Field(*x * y)).ok(),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "div overflow");
    @@ -5049,35 +2917,35 @@
                 | (Value::I32(_), Value::I32(0))
                 | (Value::I64(_), Value::I64(0))
                 | (Value::I128(_), Value::I128(0)) => halt!(span, "divide by 0"),
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_div(y)),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_div(y)),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_div(y)),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_div(y)),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_div(y)),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_div(y)),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_div(y)),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_div(y)),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_div(y)),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_div(y)),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_div(*y)),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_div(*y)),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_div(*y)),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_div(*y)),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_div(*y)),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_div(*y)),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_div(*y)),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_div(*y)),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_div(*y)),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_div(*y)),
                 _ => halt!(span, "Type error"),
             },
    -        BinaryOperation::Eq => Value::Bool(lhs.eq(&rhs)?),
    -        BinaryOperation::Gte => Value::Bool(lhs.gte(&rhs)?),
    -        BinaryOperation::Gt => Value::Bool(lhs.gt(&rhs)?),
    -        BinaryOperation::Lte => Value::Bool(lhs.lte(&rhs)?),
    -        BinaryOperation::Lt => Value::Bool(lhs.lt(&rhs)?),
    +        BinaryOperation::Eq => Value::Bool(lhs.eq(rhs)?),
    +        BinaryOperation::Gte => Value::Bool(lhs.gte(rhs)?),
    +        BinaryOperation::Gt => Value::Bool(lhs.gt(rhs)?),
    +        BinaryOperation::Lte => Value::Bool(lhs.lte(rhs)?),
    +        BinaryOperation::Lt => Value::Bool(lhs.lt(rhs)?),
             BinaryOperation::Mod => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_rem(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_rem(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_rem(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_rem(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_rem(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_rem(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_rem(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_rem(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_rem(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_rem(y).map(Value::I128),
    +                (Value::U8(x), Value::U8(y)) => x.checked_rem(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_rem(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_rem(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_rem(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_rem(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_rem(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_rem(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_rem(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_rem(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_rem(*y).map(Value::I128),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "mod overflow");
    @@ -5086,19 +2954,19 @@
             }
             BinaryOperation::Mul => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_mul(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_mul(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_mul(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_mul(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_mul(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_mul(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_mul(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_mul(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_mul(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_mul(y).map(Value::I128),
    -                (Value::Field(x), Value::Field(y)) => Some(Value::Field(x * y)),
    -                (Value::Group(x), Value::Scalar(y)) => Some(Value::Group(x * y)),
    -                (Value::Scalar(x), Value::Group(y)) => Some(Value::Group(x * y)),
    +                (Value::U8(x), Value::U8(y)) => x.checked_mul(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_mul(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_mul(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_mul(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_mul(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_mul(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_mul(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_mul(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_mul(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_mul(*y).map(Value::I128),
    +                (Value::Field(x), Value::Field(y)) => Some(Value::Field(*x * *y)),
    +                (Value::Group(x), Value::Scalar(y)) => Some(Value::Group(*x * *y)),
    +                (Value::Scalar(x), Value::Group(y)) => Some(Value::Group(*x * *y)),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "mul overflow");
    @@ -5106,17 +2974,16 @@
                 value
             }
             BinaryOperation::MulWrapped => match (lhs, rhs) {
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_mul(y)),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_mul(y)),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_mul(y)),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_mul(y)),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_mul(y)),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_mul(y)),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_mul(y)),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_mul(y)),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_mul(y)),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_mul(y)),
    -            (Value::Field(_), Value::Field(_)) => todo!(),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_mul(*y)),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_mul(*y)),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_mul(*y)),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_mul(*y)),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_mul(*y)),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_mul(*y)),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_mul(*y)),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_mul(*y)),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_mul(*y)),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_mul(*y)),
                 _ => halt!(span, "Type error"),
             },
     
    @@ -5124,7 +2991,7 @@
                 (Value::Bool(x), Value::Bool(y)) => Value::Bool(!(x & y)),
                 _ => halt!(span, "Type error"),
             },
    -        BinaryOperation::Neq => Value::Bool(lhs.neq(&rhs)?),
    +        BinaryOperation::Neq => Value::Bool(lhs.neq(rhs)?),
             BinaryOperation::Nor => match (lhs, rhs) {
                 (Value::Bool(x), Value::Bool(y)) => Value::Bool(!(x | y)),
                 _ => halt!(span, "Type error"),
    @@ -5152,9 +3019,9 @@
                     Value::Field(x.pow(y))
                 } else {
                     let rhs: u32 = match rhs {
    -                    Value::U8(y) => y.into(),
    -                    Value::U16(y) => y.into(),
    -                    Value::U32(y) => y,
    +                    Value::U8(y) => (*y).into(),
    +                    Value::U16(y) => (*y).into(),
    +                    Value::U32(y) => *y,
                         _ => tc_fail!(),
                     };
     
    @@ -5178,9 +3045,9 @@
             }
             BinaryOperation::PowWrapped => {
                 let rhs: u32 = match rhs {
    -                Value::U8(y) => y.into(),
    -                Value::U16(y) => y.into(),
    -                Value::U32(y) => y,
    +                Value::U8(y) => (*y).into(),
    +                Value::U16(y) => (*y).into(),
    +                Value::U32(y) => *y,
                     _ => halt!(span, "Type error"),
                 };
     
    @@ -5200,16 +3067,16 @@
             }
             BinaryOperation::Rem => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_rem(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_rem(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_rem(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_rem(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_rem(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_rem(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_rem(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_rem(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_rem(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_rem(y).map(Value::I128),
    +                (Value::U8(x), Value::U8(y)) => x.checked_rem(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_rem(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_rem(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_rem(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_rem(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_rem(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_rem(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_rem(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_rem(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_rem(*y).map(Value::I128),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "rem error");
    @@ -5227,23 +3094,23 @@
                 | (Value::I32(_), Value::I32(0))
                 | (Value::I64(_), Value::I64(0))
                 | (Value::I128(_), Value::I128(0)) => halt!(span, "rem by 0"),
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_rem(y)),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_rem(y)),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_rem(y)),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_rem(y)),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_rem(y)),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_rem(y)),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_rem(y)),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_rem(y)),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_rem(y)),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_rem(y)),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_rem(*y)),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_rem(*y)),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_rem(*y)),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_rem(*y)),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_rem(*y)),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_rem(*y)),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_rem(*y)),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_rem(*y)),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_rem(*y)),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_rem(*y)),
                 _ => halt!(span, "Type error"),
             },
             BinaryOperation::Shl => {
                 let rhs: u32 = match rhs {
    -                Value::U8(y) => y.into(),
    -                Value::U16(y) => y.into(),
    -                Value::U32(y) => y,
    +                Value::U8(y) => (*y).into(),
    +                Value::U16(y) => (*y).into(),
    +                Value::U32(y) => *y,
                     _ => halt!(span, "Type error"),
                 };
                 match lhs {
    @@ -5267,9 +3134,9 @@
     
             BinaryOperation::ShlWrapped => {
                 let rhs: u32 = match rhs {
    -                Value::U8(y) => y.into(),
    -                Value::U16(y) => y.into(),
    -                Value::U32(y) => y,
    +                Value::U8(y) => (*y).into(),
    +                Value::U16(y) => (*y).into(),
    +                Value::U32(y) => *y,
                     _ => halt!(span, "Type error"),
                 };
                 match lhs {
    @@ -5289,9 +3156,9 @@
     
             BinaryOperation::Shr => {
                 let rhs: u32 = match rhs {
    -                Value::U8(y) => y.into(),
    -                Value::U16(y) => y.into(),
    -                Value::U32(y) => y,
    +                Value::U8(y) => (*y).into(),
    +                Value::U16(y) => (*y).into(),
    +                Value::U32(y) => *y,
                     _ => halt!(span, "Type error"),
                 };
     
    @@ -5309,9 +3176,9 @@
     
             BinaryOperation::ShrWrapped => {
                 let rhs: u32 = match rhs {
    -                Value::U8(y) => y.into(),
    -                Value::U16(y) => y.into(),
    -                Value::U32(y) => y,
    +                Value::U8(y) => (*y).into(),
    +                Value::U16(y) => (*y).into(),
    +                Value::U32(y) => *y,
                     _ => halt!(span, "Type error"),
                 };
     
    @@ -5332,18 +3199,18 @@
     
             BinaryOperation::Sub => {
                 let Some(value) = (match (lhs, rhs) {
    -                (Value::U8(x), Value::U8(y)) => x.checked_sub(y).map(Value::U8),
    -                (Value::U16(x), Value::U16(y)) => x.checked_sub(y).map(Value::U16),
    -                (Value::U32(x), Value::U32(y)) => x.checked_sub(y).map(Value::U32),
    -                (Value::U64(x), Value::U64(y)) => x.checked_sub(y).map(Value::U64),
    -                (Value::U128(x), Value::U128(y)) => x.checked_sub(y).map(Value::U128),
    -                (Value::I8(x), Value::I8(y)) => x.checked_sub(y).map(Value::I8),
    -                (Value::I16(x), Value::I16(y)) => x.checked_sub(y).map(Value::I16),
    -                (Value::I32(x), Value::I32(y)) => x.checked_sub(y).map(Value::I32),
    -                (Value::I64(x), Value::I64(y)) => x.checked_sub(y).map(Value::I64),
    -                (Value::I128(x), Value::I128(y)) => x.checked_sub(y).map(Value::I128),
    -                (Value::Group(x), Value::Group(y)) => Some(Value::Group(x - y)),
    -                (Value::Field(x), Value::Field(y)) => Some(Value::Field(x - y)),
    +                (Value::U8(x), Value::U8(y)) => x.checked_sub(*y).map(Value::U8),
    +                (Value::U16(x), Value::U16(y)) => x.checked_sub(*y).map(Value::U16),
    +                (Value::U32(x), Value::U32(y)) => x.checked_sub(*y).map(Value::U32),
    +                (Value::U64(x), Value::U64(y)) => x.checked_sub(*y).map(Value::U64),
    +                (Value::U128(x), Value::U128(y)) => x.checked_sub(*y).map(Value::U128),
    +                (Value::I8(x), Value::I8(y)) => x.checked_sub(*y).map(Value::I8),
    +                (Value::I16(x), Value::I16(y)) => x.checked_sub(*y).map(Value::I16),
    +                (Value::I32(x), Value::I32(y)) => x.checked_sub(*y).map(Value::I32),
    +                (Value::I64(x), Value::I64(y)) => x.checked_sub(*y).map(Value::I64),
    +                (Value::I128(x), Value::I128(y)) => x.checked_sub(*y).map(Value::I128),
    +                (Value::Group(x), Value::Group(y)) => Some(Value::Group(*x - *y)),
    +                (Value::Field(x), Value::Field(y)) => Some(Value::Field(*x - *y)),
                     _ => halt!(span, "Type error"),
                 }) else {
                     halt!(span, "sub overflow");
    @@ -5352,31 +3219,31 @@
             }
     
             BinaryOperation::SubWrapped => match (lhs, rhs) {
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_sub(y)),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_sub(y)),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_sub(y)),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_sub(y)),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_sub(y)),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_sub(y)),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_sub(y)),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_sub(y)),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_sub(y)),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_sub(y)),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(x.wrapping_sub(*y)),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(x.wrapping_sub(*y)),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(x.wrapping_sub(*y)),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(x.wrapping_sub(*y)),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(x.wrapping_sub(*y)),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(x.wrapping_sub(*y)),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(x.wrapping_sub(*y)),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(x.wrapping_sub(*y)),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(x.wrapping_sub(*y)),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(x.wrapping_sub(*y)),
                 _ => halt!(span, "Type error"),
             },
     
             BinaryOperation::Xor => match (lhs, rhs) {
    -            (Value::Bool(x), Value::Bool(y)) => Value::Bool(x ^ y),
    -            (Value::U8(x), Value::U8(y)) => Value::U8(x ^ y),
    -            (Value::U16(x), Value::U16(y)) => Value::U16(x ^ y),
    -            (Value::U32(x), Value::U32(y)) => Value::U32(x ^ y),
    -            (Value::U64(x), Value::U64(y)) => Value::U64(x ^ y),
    -            (Value::U128(x), Value::U128(y)) => Value::U128(x ^ y),
    -            (Value::I8(x), Value::I8(y)) => Value::I8(x ^ y),
    -            (Value::I16(x), Value::I16(y)) => Value::I16(x ^ y),
    -            (Value::I32(x), Value::I32(y)) => Value::I32(x ^ y),
    -            (Value::I64(x), Value::I64(y)) => Value::I64(x ^ y),
    -            (Value::I128(x), Value::I128(y)) => Value::I128(x ^ y),
    +            (Value::Bool(x), Value::Bool(y)) => Value::Bool(*x ^ *y),
    +            (Value::U8(x), Value::U8(y)) => Value::U8(*x ^ *y),
    +            (Value::U16(x), Value::U16(y)) => Value::U16(*x ^ *y),
    +            (Value::U32(x), Value::U32(y)) => Value::U32(*x ^ *y),
    +            (Value::U64(x), Value::U64(y)) => Value::U64(*x ^ *y),
    +            (Value::U128(x), Value::U128(y)) => Value::U128(*x ^ *y),
    +            (Value::I8(x), Value::I8(y)) => Value::I8(*x ^ *y),
    +            (Value::I16(x), Value::I16(y)) => Value::I16(*x ^ *y),
    +            (Value::I32(x), Value::I32(y)) => Value::I32(*x ^ *y),
    +            (Value::I64(x), Value::I64(y)) => Value::I64(*x ^ *y),
    +            (Value::I128(x), Value::I128(y)) => Value::I128(*x ^ *y),
                 _ => halt!(span, "Type error"),
             },
         };
    @@ -5384,39 +3251,39 @@
     }
     
     /// Evaluate a unary operation.
    -pub fn evaluate_unary(span: Span, op: UnaryOperation, value: Value) -> Result<Value> {
    +pub fn evaluate_unary(span: Span, op: UnaryOperation, value: &Value) -> Result<Value> {
         let value_result = match op {
             UnaryOperation::Abs => match value {
                 Value::I8(x) => {
    -                if x == i8::MIN {
    +                if *x == i8::MIN {
                         halt!(span, "abs overflow");
                     } else {
                         Value::I8(x.abs())
                     }
                 }
                 Value::I16(x) => {
    -                if x == i16::MIN {
    +                if *x == i16::MIN {
                         halt!(span, "abs overflow");
                     } else {
                         Value::I16(x.abs())
                     }
                 }
                 Value::I32(x) => {
    -                if x == i32::MIN {
    +                if *x == i32::MIN {
                         halt!(span, "abs overflow");
                     } else {
                         Value::I32(x.abs())
                     }
                 }
                 Value::I64(x) => {
    -                if x == i64::MIN {
    +                if *x == i64::MIN {
                         halt!(span, "abs overflow");
                     } else {
                         Value::I64(x.abs())
                     }
                 }
                 Value::I128(x) => {
    -                if x == i128::MIN {
    +                if *x == i128::MIN {
                         halt!(span, "abs overflow");
                     } else {
                         Value::I128(x.abs())
    @@ -5467,8 +3334,8 @@
                     None => halt!(span, "negation overflow"),
                     Some(y) => Value::I128(y),
                 },
    -            Value::Group(x) => Value::Group(-x),
    -            Value::Field(x) => Value::Field(-x),
    +            Value::Group(x) => Value::Group(-*x),
    +            Value::Field(x) => Value::Field(-*x),
                 _ => halt!(span, "Type error"),
             },
             UnaryOperation::Not => match value {
    @@ -5510,4 +3377,67 @@
     
         Ok(value_result)
     }
    +
    +pub fn literal_to_value(literal: &Literal) -> Result<Value> {
    +    let value = match literal {
    +        Literal::Boolean(b, ..) => Value::Bool(*b),
    +        Literal::Integer(IntegerType::U8, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::U8(u8::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::U16, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::U16(u16::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::U32, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::U32(u32::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::U64, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::U64(u64::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::U128, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::U128(u128::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::I8, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::I8(i8::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::I16, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::I16(i16::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::I32, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::I32(i32::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::I64, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::I64(i64::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Integer(IntegerType::I128, s, ..) => {
    +            let s = s.replace("_", "");
    +            Value::I128(i128::from_str_by_radix(&s).expect("Parsing guarantees this works."))
    +        }
    +        Literal::Field(s, ..) => Value::Field(format!("{s}field").parse().expect_tc(literal.span())?),
    +        Literal::Group(group_literal) => match &**group_literal {
    +            GroupLiteral::Single(s, ..) => Value::Group(format!("{s}group").parse().expect_tc(literal.span())?),
    +            GroupLiteral::Tuple(_group_tuple) => todo!(),
    +        },
    +        Literal::Address(s, ..) => {
    +            if s.ends_with(".aleo") {
    +                let program_id = ProgramID::from_str(s)?;
    +                Value::Address(program_id.to_address()?)
    +            } else {
    +                Value::Address(s.parse().expect_tc(literal.span())?)
    +            }
    +        }
    +        Literal::Scalar(s, ..) => Value::Scalar(format!("{s}scalar").parse().expect_tc(literal.span())?),
    +        Literal::String(..) => tc_fail!(),
    +    };
    +
    +    Ok(value)
    +}
     
    \ No newline at end of file diff --git a/src/leo_interpreter/cursor_aleo.rs.html b/src/leo_interpreter/cursor_aleo.rs.html index 07745e932d..fe5efb5879 100644 --- a/src/leo_interpreter/cursor_aleo.rs.html +++ b/src/leo_interpreter/cursor_aleo.rs.html @@ -1229,7 +1229,7 @@ macro_rules! unary { ($svm_op: expr, $op: ident) => {{ let operand = self.operand_value(&$svm_op.operands()[0]); - let value = evaluate_unary(Default::default(), UnaryOperation::$op, operand)?; + let value = evaluate_unary(Default::default(), UnaryOperation::$op, &operand)?; self.increment_instruction_index(); (value, $svm_op.destinations()[0].clone()) }}; @@ -1239,7 +1239,7 @@ ($svm_op: expr, $op: ident) => {{ let operand0 = self.operand_value(&$svm_op.operands()[0]); let operand1 = self.operand_value(&$svm_op.operands()[1]); - let value = evaluate_binary(Default::default(), BinaryOperation::$op, operand0, operand1)?; + let value = evaluate_binary(Default::default(), BinaryOperation::$op, &operand0, &operand1)?; self.increment_instruction_index(); (value, $svm_op.destinations()[0].clone()) }}; @@ -1262,9 +1262,9 @@ let operand_value = self.operand_value(&$commit.operands()[1]); self.values.push(randomizer_value); self.values.push(operand_value); - let value = self.evaluate_core_function(core_function, &[], Span::default())?; + let value = crate::evaluate_core_function(self, core_function, &[], Span::default())?; self.increment_instruction_index(); - (value, $commit.destinations()[0].clone()) + (value.expect("Evaluation should work"), $commit.destinations()[0].clone()) }}; } @@ -1304,9 +1304,9 @@ }; let operand_value = self.operand_value(&$hash.operands()[0]); self.values.push(operand_value); - let value = self.evaluate_core_function(core_function, &[], Span::default())?; + let value = crate::evaluate_core_function(self, core_function, &[], Span::default())?; self.increment_instruction_index(); - (value, $hash.destinations()[0].clone()) + (value.expect("Evaluation should work"), $hash.destinations()[0].clone()) }}; } diff --git a/src/leo_interpreter/lib.rs.html b/src/leo_interpreter/lib.rs.html index c47f6662da..ad87f7711b 100644 --- a/src/leo_interpreter/lib.rs.html +++ b/src/leo_interpreter/lib.rs.html @@ -265,7 +265,12 @@ 264 265 266 -267
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +267
    +268
    +269
    +270
    +271
    +272
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -300,8 +305,12 @@
     mod util;
     use util::*;
     
    +mod core_functions;
    +pub use core_functions::{CoreFunctionHelper, evaluate_core_function};
    +
     mod cursor;
     use cursor::*;
    +pub use cursor::{evaluate_binary, evaluate_unary, literal_to_value};
     
     mod interpreter;
     use interpreter::*;
    @@ -309,6 +318,7 @@
     mod cursor_aleo;
     
     mod value;
    +pub use value::Value;
     use value::*;
     
     mod ui;
    diff --git a/src/leo_interpreter/value.rs.html b/src/leo_interpreter/value.rs.html
    index 8ec64d57d6..706f47d767 100644
    --- a/src/leo_interpreter/value.rs.html
    +++ b/src/leo_interpreter/value.rs.html
    @@ -877,22 +877,22 @@
         }
     
         /// Convert to the given type if possible under Aleo casting rules.
    -    pub fn cast(self, cast_type: &Type) -> Option<Value> {
    +    pub fn cast(&self, cast_type: &Type) -> Option<Value> {
             match self {
    -            Value::Bool(b) => really_cast(SvmBoolean::new(b), cast_type),
    -            Value::U8(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::U16(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::U32(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::U64(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::U128(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::I8(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::I16(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::I32(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::I64(x) => really_cast(SvmInteger::new(x), cast_type),
    -            Value::I128(x) => really_cast(SvmInteger::new(x), cast_type),
    +            Value::Bool(b) => really_cast(SvmBoolean::new(*b), cast_type),
    +            Value::U8(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::U16(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::U32(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::U64(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::U128(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::I8(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::I16(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::I32(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::I64(x) => really_cast(SvmInteger::new(*x), cast_type),
    +            Value::I128(x) => really_cast(SvmInteger::new(*x), cast_type),
                 Value::Group(g) => really_cast(g.to_x_coordinate(), cast_type),
    -            Value::Field(f) => really_cast(f, cast_type),
    -            Value::Scalar(s) => really_cast(s, cast_type),
    +            Value::Field(f) => really_cast(*f, cast_type),
    +            Value::Scalar(s) => really_cast(*s, cast_type),
                 Value::Address(a) => really_cast(a.to_group().to_x_coordinate(), cast_type),
                 _ => None,
             }
    diff --git a/src/leo_passes/common/symbol_table/mod.rs.html b/src/leo_passes/common/symbol_table/mod.rs.html
    index 43de88eb7e..fc8aa659c2 100644
    --- a/src/leo_passes/common/symbol_table/mod.rs.html
    +++ b/src/leo_passes/common/symbol_table/mod.rs.html
    @@ -290,7 +290,26 @@
     289
     290
     291
    -292
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +292
    +293
    +294
    +295
    +296
    +297
    +298
    +299
    +300
    +301
    +302
    +303
    +304
    +305
    +306
    +307
    +308
    +309
    +310
    +311
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -374,6 +393,12 @@
                 })),
             }
         }
    +
    +    fn dup(&self, new_id: NodeID) -> Self {
    +        let mut inner = self.inner.borrow().clone();
    +        inner.id = new_id;
    +        LocalTable { inner: Rc::new(RefCell::new(inner)) }
    +    }
     }
     
     impl SymbolTable {
    @@ -431,10 +456,23 @@
             self.local = id.map(|id| {
                 let parent = self.local.as_ref().map(|table| table.inner.borrow().id);
                 let new_local_table = self.all_locals.entry(id).or_insert_with(|| LocalTable::new(id, parent));
    +            assert_eq!(parent, new_local_table.inner.borrow().parent, "Entered scopes out of order.");
                 new_local_table.clone()
             });
         }
     
    +    /// Enter the new scope with id `new_id`, duplicating its local symbol table from the scope at `old_id`.
    +    ///
    +    /// This is useful for a pass like loop unrolling, in which the loop body must be duplicated multiple times.
    +    pub fn enter_scope_duped(&mut self, new_id: NodeID, old_id: NodeID) {
    +        let old_local_table = self.all_locals.get(&old_id).expect("Must have an old scope to dup from.");
    +        let new_local_table = old_local_table.dup(new_id);
    +        let parent = self.local.as_ref().map(|table| table.inner.borrow().id);
    +        new_local_table.inner.borrow_mut().parent = parent;
    +        self.all_locals.insert(new_id, new_local_table.clone());
    +        self.local = Some(new_local_table);
    +    }
    +
         /// Enther the parent scope of the current scope (or the global scope if there is no local parent scope).
         pub fn enter_parent(&mut self) {
             let parent: Option<NodeID> = self.local.as_ref().and_then(|table| table.inner.borrow().parent);
    diff --git a/src/leo_passes/const_propagation/const_propagate_expression.rs.html b/src/leo_passes/const_propagation/const_propagate_expression.rs.html
    new file mode 100644
    index 0000000000..ba8f81522f
    --- /dev/null
    +++ b/src/leo_passes/const_propagation/const_propagate_expression.rs.html
    @@ -0,0 +1,671 @@
    +const_propagate_expression.rs - source

    leo_passes/const_propagation/
    const_propagate_expression.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +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
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +199
    +200
    +201
    +202
    +203
    +204
    +205
    +206
    +207
    +208
    +209
    +210
    +211
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +220
    +221
    +222
    +223
    +224
    +225
    +226
    +227
    +228
    +229
    +230
    +231
    +232
    +233
    +234
    +235
    +236
    +237
    +238
    +239
    +240
    +241
    +242
    +243
    +244
    +245
    +246
    +247
    +248
    +249
    +250
    +251
    +252
    +253
    +254
    +255
    +256
    +257
    +258
    +259
    +260
    +261
    +262
    +263
    +264
    +265
    +266
    +267
    +268
    +269
    +270
    +271
    +272
    +273
    +274
    +275
    +276
    +277
    +278
    +279
    +280
    +281
    +282
    +283
    +284
    +285
    +286
    +287
    +288
    +289
    +290
    +291
    +292
    +293
    +294
    +295
    +296
    +297
    +298
    +299
    +300
    +301
    +302
    +303
    +304
    +305
    +306
    +307
    +308
    +309
    +310
    +311
    +312
    +313
    +314
    +315
    +316
    +317
    +318
    +319
    +320
    +321
    +322
    +323
    +324
    +325
    +326
    +327
    +328
    +329
    +330
    +331
    +332
    +333
    +334
    +335
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use leo_ast::{
    +    AccessExpression,
    +    CoreFunction,
    +    Expression,
    +    ExpressionReconstructor,
    +    Node,
    +    StructExpression,
    +    TernaryExpression,
    +    Type,
    +};
    +use leo_errors::StaticAnalyzerError;
    +use leo_interpreter::Value;
    +use leo_span::sym;
    +
    +use crate::ConstPropagator;
    +
    +use super::const_propagator::value_to_expression;
    +
    +impl ExpressionReconstructor for ConstPropagator<'_> {
    +    type AdditionalOutput = Option<Value>;
    +
    +    fn reconstruct_expression(&mut self, input: Expression) -> (Expression, Self::AdditionalOutput) {
    +        let old_id = input.id();
    +        let (new_expr, opt_value) = match input {
    +            Expression::Access(access) => self.reconstruct_access(access),
    +            Expression::Array(array) => self.reconstruct_array(array),
    +            Expression::Binary(binary) => self.reconstruct_binary(binary),
    +            Expression::Call(call) => self.reconstruct_call(call),
    +            Expression::Cast(cast) => self.reconstruct_cast(cast),
    +            Expression::Struct(struct_) => self.reconstruct_struct_init(struct_),
    +            Expression::Err(err) => self.reconstruct_err(err),
    +            Expression::Identifier(identifier) => self.reconstruct_identifier(identifier),
    +            Expression::Literal(value) => self.reconstruct_literal(value),
    +            Expression::Locator(locator) => self.reconstruct_locator(locator),
    +            Expression::Ternary(ternary) => self.reconstruct_ternary(ternary),
    +            Expression::Tuple(tuple) => self.reconstruct_tuple(tuple),
    +            Expression::Unary(unary) => self.reconstruct_unary(unary),
    +            Expression::Unit(unit) => self.reconstruct_unit(unit),
    +        };
    +
    +        if old_id != new_expr.id() {
    +            self.changed = true;
    +            let old_type =
    +                self.type_table.get(&old_id).expect("Type checking guarantees that all expressions have a type.");
    +            self.type_table.insert(new_expr.id(), old_type);
    +        }
    +
    +        (new_expr, opt_value)
    +    }
    +
    +    fn reconstruct_struct_init(&mut self, mut input: StructExpression) -> (Expression, Self::AdditionalOutput) {
    +        for member in input.members.iter_mut() {
    +            if let Some(expr) = std::mem::take(&mut member.expression) {
    +                member.expression = Some(self.reconstruct_expression(expr).0);
    +            }
    +        }
    +        (Expression::Struct(input), Default::default())
    +    }
    +
    +    fn reconstruct_ternary(&mut self, mut input: TernaryExpression) -> (Expression, Self::AdditionalOutput) {
    +        let (cond, cond_value) = self.reconstruct_expression(*input.condition);
    +
    +        match cond_value {
    +            Some(Value::Bool(true)) => self.reconstruct_expression(*input.if_true),
    +            Some(Value::Bool(false)) => self.reconstruct_expression(*input.if_false),
    +            _ => {
    +                *input.condition = cond;
    +                *input.if_true = self.reconstruct_expression(*input.if_true).0;
    +                *input.if_false = self.reconstruct_expression(*input.if_false).0;
    +                (Expression::Ternary(input), None)
    +            }
    +        }
    +    }
    +
    +    fn reconstruct_access(&mut self, input: leo_ast::AccessExpression) -> (Expression, Self::AdditionalOutput) {
    +        match input {
    +            leo_ast::AccessExpression::Array(array) => self.reconstruct_array_access(array),
    +            leo_ast::AccessExpression::AssociatedConstant(constant) => self.reconstruct_associated_constant(constant),
    +            leo_ast::AccessExpression::AssociatedFunction(function) => self.reconstruct_associated_function(function),
    +            leo_ast::AccessExpression::Member(member) => self.reconstruct_member_access(member),
    +            leo_ast::AccessExpression::Tuple(tuple) => self.reconstruct_tuple_access(tuple),
    +        }
    +    }
    +
    +    fn reconstruct_array_access(&mut self, mut input: leo_ast::ArrayAccess) -> (Expression, Self::AdditionalOutput) {
    +        let span = input.span();
    +        *input.array = self.reconstruct_expression(*input.array).0;
    +        let (index_expr, opt_value) = self.reconstruct_expression(*input.index);
    +        if let Some(value) = opt_value {
    +            // We can perform compile time bounds checking.
    +
    +            let ty = self.type_table.get(&input.array.id());
    +            let Some(Type::Array(array_ty)) = ty else {
    +                panic!("Type checking guaranteed that this is an array.");
    +            };
    +            let len = array_ty.length();
    +
    +            macro_rules! err {
    +                ($x: expr) => {
    +                    // Only emit a bounds error if we have no other errors yet.
    +                    // This prevents a chain of redundant error messages when a loop is unrolled.
    +                    if !self.handler.had_errors() {
    +                        self.emit_err(StaticAnalyzerError::array_bounds($x, len, span));
    +                    }
    +                };
    +            }
    +
    +            match value {
    +                Value::U8(x) if x as usize >= len => err!(&x),
    +                Value::U16(x) if x as usize >= len => err!(&x),
    +                Value::U32(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::U64(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::U128(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::I8(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::I16(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::I32(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::I64(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                Value::I128(x) if x.try_into().unwrap_or(len) >= len => err!(&x),
    +                _ => {
    +                    // Type checking guarantees this is an integer, and none of the above cases matched,
    +                    // so we're in bounds and don't need to do anything.
    +                }
    +            };
    +        } else {
    +            self.array_index_not_evaluated = Some(index_expr.span());
    +        }
    +        *input.index = index_expr;
    +        (Expression::Access(leo_ast::AccessExpression::Array(input)), None)
    +    }
    +
    +    fn reconstruct_associated_constant(
    +        &mut self,
    +        input: leo_ast::AssociatedConstant,
    +    ) -> (Expression, Self::AdditionalOutput) {
    +        // Currently there is only one associated constant.
    +        let generator = Value::generator();
    +        let expr = value_to_expression(&generator, input.span(), self.node_builder);
    +        (expr, Some(generator))
    +    }
    +
    +    fn reconstruct_associated_function(
    +        &mut self,
    +        mut input: leo_ast::AssociatedFunction,
    +    ) -> (Expression, Self::AdditionalOutput) {
    +        let mut values = Vec::new();
    +        for argument in input.arguments.iter_mut() {
    +            let (new_argument, opt_value) = self.reconstruct_expression(std::mem::take(argument));
    +            *argument = new_argument;
    +            if let Some(value) = opt_value {
    +                values.push(value);
    +            }
    +        }
    +
    +        if values.len() == input.arguments.len() && !matches!(input.variant.name, sym::CheatCode | sym::Mapping) {
    +            // We've evaluated every argument, and this function isn't a cheat code or mapping
    +            // operation, so maybe we can compute the result at compile time.
    +            let core_function = CoreFunction::from_symbols(input.variant.name, input.name.name)
    +                .expect("Type checking guarantees this is valid.");
    +
    +            values.reverse();
    +
    +            match leo_interpreter::evaluate_core_function(&mut values, core_function, &[], input.span()) {
    +                Ok(Some(value)) => {
    +                    // Successful evaluation.
    +                    let expr = value_to_expression(&value, input.span(), self.node_builder);
    +                    return (expr, Some(value));
    +                }
    +                Ok(None) =>
    +                    // No errors, but we were unable to evaluate.
    +                    {}
    +                Err(err) => {
    +                    self.emit_err(StaticAnalyzerError::compile_core_function(err, input.span()));
    +                }
    +            }
    +        }
    +
    +        (Expression::Access(AccessExpression::AssociatedFunction(input)), Default::default())
    +    }
    +
    +    fn reconstruct_member_access(&mut self, mut input: leo_ast::MemberAccess) -> (Expression, Self::AdditionalOutput) {
    +        *input.inner = self.reconstruct_expression(*input.inner).0;
    +        (Expression::Access(leo_ast::AccessExpression::Member(input)), None)
    +    }
    +
    +    fn reconstruct_tuple_access(&mut self, input: leo_ast::TupleAccess) -> (Expression, Self::AdditionalOutput) {
    +        (
    +            Expression::Access(leo_ast::AccessExpression::Tuple(leo_ast::TupleAccess {
    +                tuple: Box::new(self.reconstruct_expression(*input.tuple).0),
    +                index: input.index,
    +                span: input.span,
    +                id: input.id,
    +            })),
    +            None,
    +        )
    +    }
    +
    +    fn reconstruct_array(&mut self, mut input: leo_ast::ArrayExpression) -> (Expression, Self::AdditionalOutput) {
    +        input.elements.iter_mut().for_each(|element| {
    +            *element = self.reconstruct_expression(std::mem::take(element)).0;
    +        });
    +        (Expression::Array(input), None)
    +    }
    +
    +    fn reconstruct_binary(&mut self, mut input: leo_ast::BinaryExpression) -> (Expression, Self::AdditionalOutput) {
    +        let span = input.span();
    +
    +        let (lhs_expr, lhs_opt_value) = self.reconstruct_expression(*input.left);
    +        let (rhs_expr, rhs_opt_value) = self.reconstruct_expression(*input.right);
    +
    +        if let (Some(lhs_value), Some(rhs_value)) = (lhs_opt_value, rhs_opt_value) {
    +            // We were able to evaluate both operands, so we can evaluate this expression.
    +            match leo_interpreter::evaluate_binary(span, input.op, &lhs_value, &rhs_value) {
    +                Ok(new_value) => {
    +                    let new_expr = value_to_expression(&new_value, span, self.node_builder);
    +                    return (new_expr, Some(new_value));
    +                }
    +                Err(err) => self
    +                    .emit_err(StaticAnalyzerError::compile_time_binary_op(lhs_value, rhs_value, input.op, err, span)),
    +            }
    +        }
    +
    +        *input.left = lhs_expr;
    +        *input.right = rhs_expr;
    +
    +        (Expression::Binary(input), None)
    +    }
    +
    +    fn reconstruct_call(&mut self, mut input: leo_ast::CallExpression) -> (Expression, Self::AdditionalOutput) {
    +        input.arguments.iter_mut().for_each(|arg| {
    +            *arg = self.reconstruct_expression(std::mem::take(arg)).0;
    +        });
    +        (Expression::Call(input), Default::default())
    +    }
    +
    +    fn reconstruct_cast(&mut self, mut input: leo_ast::CastExpression) -> (Expression, Self::AdditionalOutput) {
    +        let span = input.span();
    +
    +        let (expr, opt_value) = self.reconstruct_expression(*input.expression);
    +
    +        if let Some(value) = opt_value {
    +            if let Some(cast_value) = value.cast(&input.type_) {
    +                let expr = value_to_expression(&cast_value, span, self.node_builder);
    +                return (expr, Some(cast_value));
    +            } else {
    +                self.emit_err(StaticAnalyzerError::compile_time_cast(value, &input.type_, span));
    +            }
    +        }
    +        *input.expression = expr;
    +        (Expression::Cast(input), None)
    +    }
    +
    +    fn reconstruct_err(&mut self, _input: leo_ast::ErrExpression) -> (Expression, Self::AdditionalOutput) {
    +        panic!("`ErrExpression`s should not be in the AST at this phase of compilation.")
    +    }
    +
    +    fn reconstruct_identifier(&mut self, input: leo_ast::Identifier) -> (Expression, Self::AdditionalOutput) {
    +        // Substitute the identifier with the constant value if it is a constant that's been evaluated.
    +        if let Some(expression) = self.symbol_table.lookup_const(self.program, input.name) {
    +            let (expression, opt_value) = self.reconstruct_expression(expression);
    +            if opt_value.is_some() {
    +                return (expression, opt_value);
    +            }
    +        }
    +
    +        (Expression::Identifier(input), None)
    +    }
    +
    +    fn reconstruct_literal(&mut self, input: leo_ast::Literal) -> (Expression, Self::AdditionalOutput) {
    +        if let leo_ast::Literal::Group(boxed_gl) = &input {
    +            if matches!(&**boxed_gl, leo_ast::GroupLiteral::Tuple(..)) {
    +                // YYY - I don't know how to handle this.
    +                return (Expression::Literal(input), None);
    +            }
    +        }
    +        let value = leo_interpreter::literal_to_value(&input).expect("Should work");
    +        (Expression::Literal(input), Some(value))
    +    }
    +
    +    fn reconstruct_locator(&mut self, input: leo_ast::LocatorExpression) -> (Expression, Self::AdditionalOutput) {
    +        (Expression::Locator(input), Default::default())
    +    }
    +
    +    fn reconstruct_tuple(&mut self, mut input: leo_ast::TupleExpression) -> (Expression, Self::AdditionalOutput) {
    +        let mut values = Vec::with_capacity(input.elements.len());
    +        for expr in input.elements.iter_mut() {
    +            let (new_expr, opt_value) = self.reconstruct_expression(std::mem::take(expr));
    +            *expr = new_expr;
    +            if let Some(value) = opt_value {
    +                values.push(value);
    +            }
    +        }
    +
    +        let opt_value = if values.len() == input.elements.len() { Some(Value::Tuple(values)) } else { None };
    +
    +        (Expression::Tuple(input), opt_value)
    +    }
    +
    +    fn reconstruct_unary(&mut self, mut input: leo_ast::UnaryExpression) -> (Expression, Self::AdditionalOutput) {
    +        let (expr, opt_value) = self.reconstruct_expression(*input.receiver);
    +        let span = input.span;
    +
    +        if let Some(value) = opt_value {
    +            // We were able to evaluate the operand, so we can evaluate the expression.
    +            match leo_interpreter::evaluate_unary(span, input.op, &value) {
    +                Ok(new_value) => {
    +                    let new_expr = value_to_expression(&new_value, span, self.node_builder);
    +                    return (new_expr, Some(new_value));
    +                }
    +                Err(err) => self.emit_err(StaticAnalyzerError::compile_time_unary_op(value, input.op, err, span)),
    +            }
    +        }
    +        *input.receiver = expr;
    +        (Expression::Unary(input), None)
    +    }
    +
    +    fn reconstruct_unit(&mut self, input: leo_ast::UnitExpression) -> (Expression, Self::AdditionalOutput) {
    +        (Expression::Unit(input), None)
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/const_propagation/const_propagate_program.rs.html b/src/leo_passes/const_propagation/const_propagate_program.rs.html new file mode 100644 index 0000000000..c6e3237a87 --- /dev/null +++ b/src/leo_passes/const_propagation/const_propagate_program.rs.html @@ -0,0 +1,91 @@ +const_propagate_program.rs - source

    leo_passes/const_propagation/
    const_propagate_program.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use crate::ConstPropagator;
    +
    +use leo_ast::{Function, Node, ProgramReconstructor, ProgramScope, Statement, StatementReconstructor as _};
    +
    +impl ProgramReconstructor for ConstPropagator<'_> {
    +    fn reconstruct_program_scope(&mut self, mut input: ProgramScope) -> ProgramScope {
    +        self.program = input.program_id.name.name;
    +
    +        for (_sym, c) in input.consts.iter_mut() {
    +            let Statement::Const(declaration) = self.reconstruct_const(std::mem::take(c)).0 else {
    +                panic!("`reconstruct_const` always returns `Statement::Const`");
    +            };
    +            *c = declaration;
    +        }
    +
    +        for (_sym, f) in input.functions.iter_mut() {
    +            *f = self.reconstruct_function(std::mem::take(f));
    +        }
    +
    +        input
    +    }
    +
    +    fn reconstruct_function(&mut self, mut function: Function) -> Function {
    +        self.in_scope(function.id(), |slf| {
    +            function.block = slf.reconstruct_block(function.block).0;
    +            function
    +        })
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/const_propagation/const_propagate_statement.rs.html b/src/leo_passes/const_propagation/const_propagate_statement.rs.html new file mode 100644 index 0000000000..6b9a88b319 --- /dev/null +++ b/src/leo_passes/const_propagation/const_propagate_statement.rs.html @@ -0,0 +1,339 @@ +const_propagate_statement.rs - source

    leo_passes/const_propagation/
    const_propagate_statement.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +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
    +166
    +167
    +168
    +169
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use crate::ConstPropagator;
    +
    +use leo_ast::{
    +    AssertStatement,
    +    AssertVariant,
    +    AssignStatement,
    +    Block,
    +    ConditionalStatement,
    +    ConsoleStatement,
    +    ConstDeclaration,
    +    DeclarationType,
    +    DefinitionStatement,
    +    Expression,
    +    ExpressionReconstructor,
    +    ExpressionStatement,
    +    IterationStatement,
    +    Node,
    +    ReturnStatement,
    +    Statement,
    +    StatementReconstructor,
    +};
    +
    +fn empty_statement() -> Statement {
    +    Statement::Block(Block { statements: Vec::new(), span: Default::default(), id: Default::default() })
    +}
    +
    +fn is_empty_statement(stmt: &Statement) -> bool {
    +    let Statement::Block(block) = stmt else {
    +        return false;
    +    };
    +    block.statements.is_empty()
    +}
    +
    +impl StatementReconstructor for ConstPropagator<'_> {
    +    fn reconstruct_assert(&mut self, mut input: AssertStatement) -> (Statement, Self::AdditionalOutput) {
    +        // Catching asserts at compile time is not feasible here due to control flow, but could be done in
    +        // a later pass after loops are unrolled and conditionals are flattened.
    +        input.variant = match input.variant {
    +            AssertVariant::Assert(expr) => AssertVariant::Assert(self.reconstruct_expression(expr).0),
    +
    +            AssertVariant::AssertEq(lhs, rhs) => {
    +                AssertVariant::AssertEq(self.reconstruct_expression(lhs).0, self.reconstruct_expression(rhs).0)
    +            }
    +
    +            AssertVariant::AssertNeq(lhs, rhs) => {
    +                AssertVariant::AssertNeq(self.reconstruct_expression(lhs).0, self.reconstruct_expression(rhs).0)
    +            }
    +        };
    +
    +        (Statement::Assert(input), None)
    +    }
    +
    +    fn reconstruct_assign(&mut self, mut assign: AssignStatement) -> (Statement, Self::AdditionalOutput) {
    +        assign.value = self.reconstruct_expression(assign.value).0;
    +        (Statement::Assign(Box::new(assign)), None)
    +    }
    +
    +    fn reconstruct_block(&mut self, mut block: Block) -> (Block, Self::AdditionalOutput) {
    +        self.in_scope(block.id(), |slf| {
    +            block.statements.retain_mut(|statement| {
    +                let bogus_statement = empty_statement();
    +                let this_statement = std::mem::replace(statement, bogus_statement);
    +                *statement = slf.reconstruct_statement(this_statement).0;
    +                !is_empty_statement(statement)
    +            });
    +            (block, None)
    +        })
    +    }
    +
    +    fn reconstruct_conditional(
    +        &mut self,
    +        mut conditional: ConditionalStatement,
    +    ) -> (Statement, Self::AdditionalOutput) {
    +        conditional.condition = self.reconstruct_expression(conditional.condition).0;
    +        conditional.then = self.reconstruct_block(conditional.then).0;
    +        if let Some(mut otherwise) = conditional.otherwise {
    +            *otherwise = self.reconstruct_statement(*otherwise).0;
    +            conditional.otherwise = Some(otherwise);
    +        }
    +
    +        (Statement::Conditional(conditional), None)
    +    }
    +
    +    fn reconstruct_console(&mut self, _: ConsoleStatement) -> (Statement, Self::AdditionalOutput) {
    +        unreachable!("`ConsoleStatement`s should not be in the AST at this phase of compilation.")
    +    }
    +
    +    fn reconstruct_const(&mut self, mut input: ConstDeclaration) -> (Statement, Self::AdditionalOutput) {
    +        let span = input.span();
    +
    +        let (expr, opt_value) = self.reconstruct_expression(input.value);
    +
    +        if opt_value.is_some() {
    +            self.symbol_table.insert_const(self.program, input.place.name, expr.clone());
    +        } else {
    +            self.const_not_evaluated = Some(span);
    +        }
    +
    +        input.value = expr;
    +
    +        (Statement::Const(input), None)
    +    }
    +
    +    fn reconstruct_definition(&mut self, mut definition: DefinitionStatement) -> (Statement, Self::AdditionalOutput) {
    +        let span = definition.span();
    +
    +        let (expr, opt_value) = self.reconstruct_expression(definition.value);
    +
    +        if definition.declaration_type == DeclarationType::Const {
    +            if opt_value.is_some() {
    +                let Expression::Identifier(id) = &definition.place else {
    +                    panic!("Const definitions always have identifiers as the place.");
    +                };
    +                self.symbol_table.insert_const(self.program, id.name, expr.clone());
    +            } else {
    +                self.const_not_evaluated = Some(span);
    +            }
    +        }
    +
    +        definition.value = expr;
    +
    +        (Statement::Definition(definition), None)
    +    }
    +
    +    fn reconstruct_expression_statement(
    +        &mut self,
    +        mut input: ExpressionStatement,
    +    ) -> (Statement, Self::AdditionalOutput) {
    +        input.expression = self.reconstruct_expression(input.expression).0;
    +
    +        if matches!(&input.expression, Expression::Unit(..) | Expression::Literal(..)) {
    +            // We were able to evaluate this at compile time, but we need to get rid of this statement as
    +            // we can't have expression statements that aren't calls.
    +            (empty_statement(), Default::default())
    +        } else {
    +            (Statement::Expression(input), Default::default())
    +        }
    +    }
    +
    +    fn reconstruct_iteration(&mut self, mut iteration: IterationStatement) -> (Statement, Self::AdditionalOutput) {
    +        iteration.start = self.reconstruct_expression(iteration.start).0;
    +        iteration.stop = self.reconstruct_expression(iteration.stop).0;
    +        self.in_scope(iteration.id(), |slf| {
    +            iteration.block = slf.reconstruct_block(iteration.block).0;
    +            (Statement::Iteration(Box::new(iteration)), None)
    +        })
    +    }
    +
    +    fn reconstruct_return(&mut self, mut input: ReturnStatement) -> (Statement, Self::AdditionalOutput) {
    +        input.expression = self.reconstruct_expression(input.expression).0;
    +        (Statement::Return(input), Default::default())
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/const_propagation/const_propagator.rs.html b/src/leo_passes/const_propagation/const_propagator.rs.html new file mode 100644 index 0000000000..fc2ef93ecd --- /dev/null +++ b/src/leo_passes/const_propagation/const_propagator.rs.html @@ -0,0 +1,261 @@ +const_propagator.rs - source

    leo_passes/const_propagation/
    const_propagator.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use crate::{SymbolTable, TypeTable};
    +
    +use leo_ast::{Expression, IntegerType, Literal, NodeBuilder, NodeID, TupleExpression};
    +use leo_errors::{StaticAnalyzerError, emitter::Handler};
    +use leo_interpreter::Value;
    +use leo_span::{Span, Symbol};
    +
    +/// A pass to perform const propagation and folding.
    +///
    +/// This pass should be used in conjunction with the Unroller so that
    +/// loop bounds and consts in loop bodies can be evaluated.
    +///
    +/// Any of these expressions:
    +/// 1. unary operation,
    +/// 2. binary operation,
    +/// 3. core function other than cheat codes, mapping ops, or rand functions,
    +///
    +/// whose arguments are consts or literals will be subject to constant folding.
    +/// The ternary conditional operator will also be folded if its condition is
    +/// a constant or literal.
    +pub struct ConstPropagator<'a> {
    +    /// The symbol table associated with the program.
    +    pub(crate) symbol_table: &'a mut SymbolTable,
    +    /// A mapping between node IDs and their types.
    +    pub(crate) type_table: &'a TypeTable,
    +    /// A counter used to generate unique node IDs.
    +    pub(crate) node_builder: &'a NodeBuilder,
    +    /// The error handler.
    +    pub(crate) handler: &'a Handler,
    +    /// The program name.
    +    pub(crate) program: Symbol,
    +    /// Have we actually modified the progam at all?
    +    pub(crate) changed: bool,
    +    /// The RHS of a const declaration we were not able to evaluate.
    +    pub(crate) const_not_evaluated: Option<Span>,
    +    /// An array index which was not able to be evaluated.
    +    pub(crate) array_index_not_evaluated: Option<Span>,
    +}
    +
    +impl<'a> ConstPropagator<'a> {
    +    pub(crate) fn new(
    +        handler: &'a Handler,
    +        symbol_table: &'a mut SymbolTable,
    +        type_table: &'a TypeTable,
    +        node_builder: &'a NodeBuilder,
    +    ) -> Self {
    +        Self {
    +            handler,
    +            symbol_table,
    +            type_table,
    +            node_builder,
    +            program: Symbol::intern(""),
    +            changed: false,
    +            const_not_evaluated: None,
    +            array_index_not_evaluated: None,
    +        }
    +    }
    +
    +    /// Enter the symbol table's scope `id`, execute `func`, and then return to the parent scope.
    +    pub(crate) fn in_scope<T>(&mut self, id: NodeID, func: impl FnOnce(&mut Self) -> T) -> T {
    +        self.symbol_table.enter_scope(Some(id));
    +        let result = func(self);
    +        self.symbol_table.enter_parent();
    +        result
    +    }
    +
    +    /// Emit a `StaticAnalyzerError`.
    +    pub(crate) fn emit_err(&self, err: StaticAnalyzerError) {
    +        self.handler.emit_err(err);
    +    }
    +}
    +
    +pub(crate) fn value_to_expression(value: &Value, span: Span, node_builder: &NodeBuilder) -> Expression {
    +    use Value::*;
    +    let id = node_builder.next_id();
    +
    +    match value {
    +        Unit => Expression::Unit(leo_ast::UnitExpression { span, id }),
    +        Bool(x) => Expression::Literal(Literal::Boolean(*x, span, id)),
    +        U8(x) => Expression::Literal(Literal::Integer(IntegerType::U8, format!("{x}"), span, id)),
    +        U16(x) => Expression::Literal(Literal::Integer(IntegerType::U16, format!("{x}"), span, id)),
    +        U32(x) => Expression::Literal(Literal::Integer(IntegerType::U32, format!("{x}"), span, id)),
    +        U64(x) => Expression::Literal(Literal::Integer(IntegerType::U64, format!("{x}"), span, id)),
    +        U128(x) => Expression::Literal(Literal::Integer(IntegerType::U128, format!("{x}"), span, id)),
    +        I8(x) => Expression::Literal(Literal::Integer(IntegerType::I8, format!("{x}"), span, id)),
    +        I16(x) => Expression::Literal(Literal::Integer(IntegerType::I16, format!("{x}"), span, id)),
    +        I32(x) => Expression::Literal(Literal::Integer(IntegerType::I32, format!("{x}"), span, id)),
    +        I64(x) => Expression::Literal(Literal::Integer(IntegerType::I64, format!("{x}"), span, id)),
    +        I128(x) => Expression::Literal(Literal::Integer(IntegerType::I128, format!("{x}"), span, id)),
    +        Group(x) => {
    +            let mut s = format!("{x}");
    +            // Strip off the `group` suffix.
    +            s.truncate(s.len() - 5);
    +            Expression::Literal(Literal::Group(Box::new(leo_ast::GroupLiteral::Single(s, span, id))))
    +        }
    +        Field(x) => {
    +            let mut s = format!("{x}");
    +            // Strip off the `field` suffix.
    +            s.truncate(s.len() - 5);
    +            Expression::Literal(Literal::Field(s, span, id))
    +        }
    +        Scalar(x) => {
    +            let mut s = format!("{x}");
    +            // Strip off the `scalar` suffix.
    +            s.truncate(s.len() - 6);
    +            Expression::Literal(Literal::Scalar(s, span, id))
    +        }
    +        Tuple(x) => {
    +            let elements = x.iter().map(|val| value_to_expression(val, span, node_builder)).collect();
    +            Expression::Tuple(TupleExpression { elements, span, id })
    +        }
    +        _ => panic!("Can only evaluate literals and tuples."),
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/const_propagation/mod.rs.html b/src/leo_passes/const_propagation/mod.rs.html new file mode 100644 index 0000000000..f8e2dbf0f8 --- /dev/null +++ b/src/leo_passes/const_propagation/mod.rs.html @@ -0,0 +1,115 @@ +mod.rs - source

    leo_passes/const_propagation/
    mod.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use crate::{Pass, SymbolTable, TypeTable};
    +
    +use leo_ast::{Ast, NodeBuilder, ProgramReconstructor as _};
    +use leo_errors::{Result, emitter::Handler};
    +use leo_span::Span;
    +
    +mod const_propagate_expression;
    +
    +mod const_propagate_program;
    +
    +mod const_propagate_statement;
    +
    +mod const_propagator;
    +
    +pub use const_propagator::ConstPropagator;
    +
    +pub struct ConstPropagatorOutput {
    +    /// Something about the program was actually changed during the pass.
    +    pub changed: bool,
    +    /// A const declaration whose RHS was not able to be evaluated.
    +    pub const_not_evaluated: Option<Span>,
    +    /// An array index which was not able to be evaluated.
    +    pub array_index_not_evaluated: Option<Span>,
    +}
    +
    +impl<'a> Pass for ConstPropagator<'a> {
    +    type Input = (Ast, &'a Handler, &'a mut SymbolTable, &'a TypeTable, &'a NodeBuilder);
    +    type Output = Result<(Ast, ConstPropagatorOutput)>;
    +
    +    fn do_pass((ast, handler, symbol_table, type_table, node_builder): Self::Input) -> Self::Output {
    +        let mut reconstructor = ConstPropagator::new(handler, symbol_table, type_table, node_builder);
    +        let program = reconstructor.reconstruct_program(ast.into_repr());
    +        handler.last_err().map_err(|e| *e)?;
    +
    +        Ok((Ast::new(program), ConstPropagatorOutput {
    +            changed: reconstructor.changed,
    +            const_not_evaluated: reconstructor.const_not_evaluated,
    +            array_index_not_evaluated: reconstructor.array_index_not_evaluated,
    +        }))
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/lib.rs.html b/src/leo_passes/lib.rs.html index 956077f7a8..d66cfc1680 100644 --- a/src/leo_passes/lib.rs.html +++ b/src/leo_passes/lib.rs.html @@ -52,7 +52,10 @@ 51 52 53 -54
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +54
    +55
    +56
    +57
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -80,6 +83,9 @@
     pub mod common;
     pub use common::*;
     
    +mod const_propagation;
    +pub use const_propagation::*;
    +
     pub mod dead_code_elimination;
     pub use dead_code_elimination::*;
     
    diff --git a/src/leo_passes/loop_unrolling/duplicate.rs.html b/src/leo_passes/loop_unrolling/duplicate.rs.html
    new file mode 100644
    index 0000000000..3d43946cb0
    --- /dev/null
    +++ b/src/leo_passes/loop_unrolling/duplicate.rs.html
    @@ -0,0 +1,171 @@
    +duplicate.rs - source

    leo_passes/loop_unrolling/
    duplicate.rs

    +1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +// This file is part of the Leo library.
    +
    +// The Leo library is free software: you can redistribute it and/or modify
    +// it under the terms of the GNU General Public License as published by
    +// the Free Software Foundation, either version 3 of the License, or
    +// (at your option) any later version.
    +
    +// The Leo library is distributed in the hope that it will be useful,
    +// but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +// GNU General Public License for more details.
    +
    +// You should have received a copy of the GNU General Public License
    +// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    +
    +use leo_ast::{Block, ExpressionReconstructor, Statement, StatementReconstructor, *};
    +
    +use crate::SymbolTable;
    +
    +/// Duplicate this block, recursively giving new `NodeID`s into scopes, and duplicating the new scopes
    +/// in the `SymbolTable`.
    +pub fn duplicate(block: Block, symbol_table: &mut SymbolTable, node_builder: &NodeBuilder) -> Block {
    +    Duplicator { symbol_table, node_builder }.reconstruct_block(block).0
    +}
    +
    +struct Duplicator<'a> {
    +    symbol_table: &'a mut SymbolTable,
    +    node_builder: &'a NodeBuilder,
    +}
    +
    +impl Duplicator<'_> {
    +    fn in_scope_duped<T>(&mut self, new_id: NodeID, old_id: NodeID, func: impl FnOnce(&mut Self) -> T) -> T {
    +        self.symbol_table.enter_scope_duped(new_id, old_id);
    +        let result = func(self);
    +        self.symbol_table.enter_parent();
    +        result
    +    }
    +}
    +
    +impl ExpressionReconstructor for Duplicator<'_> {
    +    type AdditionalOutput = ();
    +}
    +
    +impl StatementReconstructor for Duplicator<'_> {
    +    fn reconstruct_statement(&mut self, input: Statement) -> (Statement, Self::AdditionalOutput) {
    +        match input {
    +            Statement::Block(stmt) => {
    +                let (stmt, output) = self.reconstruct_block(stmt);
    +                (Statement::Block(stmt), output)
    +            }
    +            Statement::Conditional(stmt) => self.reconstruct_conditional(stmt),
    +            Statement::Iteration(stmt) => self.reconstruct_iteration(*stmt),
    +            stmt => (stmt, Default::default()),
    +        }
    +    }
    +
    +    fn reconstruct_block(&mut self, mut input: Block) -> (Block, Self::AdditionalOutput) {
    +        let next_id = self.node_builder.next_id();
    +        self.in_scope_duped(next_id, input.id(), |slf| {
    +            input.id = next_id;
    +            input.statements = input.statements.into_iter().map(|stmt| slf.reconstruct_statement(stmt).0).collect();
    +            (input, Default::default())
    +        })
    +    }
    +
    +    fn reconstruct_conditional(&mut self, mut input: ConditionalStatement) -> (Statement, Self::AdditionalOutput) {
    +        input.then = self.reconstruct_block(input.then).0;
    +        if let Some(mut otherwise) = input.otherwise {
    +            *otherwise = self.reconstruct_statement(*otherwise).0;
    +            input.otherwise = Some(otherwise);
    +        }
    +
    +        (Statement::Conditional(input), Default::default())
    +    }
    +
    +    fn reconstruct_iteration(&mut self, mut input: IterationStatement) -> (Statement, Self::AdditionalOutput) {
    +        let next_id = self.node_builder.next_id();
    +        self.in_scope_duped(next_id, input.id(), |slf| {
    +            input.id = next_id;
    +            input.block = slf.reconstruct_block(input.block).0;
    +            (Statement::Iteration(Box::new(input)), Default::default())
    +        })
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/leo_passes/loop_unrolling/mod.rs.html b/src/leo_passes/loop_unrolling/mod.rs.html index 9a56f4b045..3fc5924ef0 100644 --- a/src/leo_passes/loop_unrolling/mod.rs.html +++ b/src/leo_passes/loop_unrolling/mod.rs.html @@ -43,7 +43,18 @@ 42 43 44 -45
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -59,14 +70,14 @@
     // You should have received a copy of the GNU General Public License
     // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
     
    -mod range_iterator;
    +mod duplicate;
    +
    +mod range_iterator;
     pub(crate) use range_iterator::*;
     
     pub mod unroller;
     pub use unroller::*;
     
    -pub mod unroll_expression;
    -
     pub mod unroll_program;
     
     pub mod unroll_statement;
    @@ -75,17 +86,28 @@
     
     use leo_ast::{Ast, NodeBuilder, ProgramReconstructor};
     use leo_errors::{Result, emitter::Handler};
    +use leo_span::Span;
    +
    +pub struct UnrollerOutput {
    +    /// If we encountered a loop that was not unrolled, here's it's spanned.
    +    pub loop_not_unrolled: Option<Span>,
    +    /// Did we unroll any loop?
    +    pub loop_unrolled: bool,
    +}
     
     impl<'a> Pass for Unroller<'a> {
    -    type Input = (Ast, &'a Handler, &'a NodeBuilder, SymbolTable, &'a TypeTable);
    -    type Output = Result<(Ast, SymbolTable)>;
    +    type Input = (Ast, &'a Handler, &'a NodeBuilder, &'a mut SymbolTable, &'a TypeTable);
    +    type Output = Result<(Ast, UnrollerOutput)>;
     
         fn do_pass((ast, handler, node_builder, symbol_table, tt): Self::Input) -> Self::Output {
             let mut reconstructor = Self::new(symbol_table, tt, handler, node_builder);
             let program = reconstructor.reconstruct_program(ast.into_repr());
             handler.last_err().map_err(|e| *e)?;
     
    -        Ok((Ast::new(program), reconstructor.symbol_table))
    +        Ok((Ast::new(program), UnrollerOutput {
    +            loop_not_unrolled: reconstructor.loop_not_unrolled,
    +            loop_unrolled: reconstructor.loop_unrolled,
    +        }))
         }
     }
     
    \ No newline at end of file diff --git a/src/leo_passes/loop_unrolling/unroll_expression.rs.html b/src/leo_passes/loop_unrolling/unroll_expression.rs.html deleted file mode 100644 index 38f59062bd..0000000000 --- a/src/leo_passes/loop_unrolling/unroll_expression.rs.html +++ /dev/null @@ -1,103 +0,0 @@ -unroll_expression.rs - source

    leo_passes/loop_unrolling/
    unroll_expression.rs

    -1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    -// This file is part of the Leo library.
    -
    -// The Leo library is free software: you can redistribute it and/or modify
    -// it under the terms of the GNU General Public License as published by
    -// the Free Software Foundation, either version 3 of the License, or
    -// (at your option) any later version.
    -
    -// The Leo library is distributed in the hope that it will be useful,
    -// but WITHOUT ANY WARRANTY; without even the implied warranty of
    -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    -// GNU General Public License for more details.
    -
    -// You should have received a copy of the GNU General Public License
    -// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
    -
    -use leo_ast::*;
    -use leo_errors::LoopUnrollerError;
    -
    -use crate::Unroller;
    -
    -impl ExpressionReconstructor for Unroller<'_> {
    -    type AdditionalOutput = bool;
    -
    -    fn reconstruct_array_access(&mut self, input: ArrayAccess) -> (Expression, Self::AdditionalOutput) {
    -        // Reconstruct the index.
    -        let index = self.reconstruct_expression(*input.index).0;
    -        // If the index is not a literal, then emit an error.
    -        if !matches!(index, Expression::Literal(_)) {
    -            self.emit_err(LoopUnrollerError::variable_array_access(input.span));
    -        }
    -
    -        (
    -            Expression::Access(AccessExpression::Array(ArrayAccess {
    -                array: Box::new(self.reconstruct_expression(*input.array).0),
    -                index: Box::new(index),
    -                span: input.span,
    -                id: input.id,
    -            })),
    -            Default::default(),
    -        )
    -    }
    -
    -    fn reconstruct_identifier(&mut self, input: Identifier) -> (Expression, Self::AdditionalOutput) {
    -        // Substitute the identifier with the constant value if it is a constant.
    -        if let Some(expr) = self.symbol_table.lookup_const(self.current_program.unwrap(), input.name) {
    -            return (expr, Default::default());
    -        }
    -        (Expression::Identifier(input), Default::default())
    -    }
    -}
    -
    \ No newline at end of file diff --git a/src/leo_passes/loop_unrolling/unroll_program.rs.html b/src/leo_passes/loop_unrolling/unroll_program.rs.html index 607b7e0b32..4e4c849e41 100644 --- a/src/leo_passes/loop_unrolling/unroll_program.rs.html +++ b/src/leo_passes/loop_unrolling/unroll_program.rs.html @@ -48,25 +48,7 @@ 47 48 49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +50
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -101,36 +83,18 @@
             }
         }
     
    -    fn reconstruct_program_scope(&mut self, input: ProgramScope) -> ProgramScope {
    +    fn reconstruct_program_scope(&mut self, mut input: ProgramScope) -> ProgramScope {
             // Set the current program.
             self.current_program = Some(input.program_id.name.name);
    -        // Don't need to reconstructed consts, just need to add them to constant propagation table
    -        input.consts.into_iter().for_each(|(_, c)| {
    -            self.reconstruct_const(c);
    -        });
    -        // Reconstruct the program scope
    -        ProgramScope {
    -            program_id: input.program_id,
    -            structs: input.structs,
    -            mappings: input.mappings,
    -            functions: input.functions.into_iter().map(|(i, f)| (i, self.reconstruct_function(f))).collect(),
    -            consts: Vec::new(),
    -            span: input.span,
    -        }
    +        input.functions = input.functions.into_iter().map(|(i, f)| (i, self.reconstruct_function(f))).collect();
    +        input
         }
     
         // Reconstruct the function body, entering the associated scopes as needed.
    -    fn reconstruct_function(&mut self, function: Function) -> Function {
    -        self.in_scope(function.id(), |slf| Function {
    -            annotations: function.annotations,
    -            variant: function.variant,
    -            identifier: function.identifier,
    -            input: function.input,
    -            output: function.output,
    -            output_type: function.output_type,
    -            block: slf.reconstruct_block(function.block).0,
    -            span: function.span,
    -            id: function.id,
    +    fn reconstruct_function(&mut self, mut function: Function) -> Function {
    +        self.in_scope(function.id(), |slf| {
    +            function.block = slf.reconstruct_block(function.block).0;
    +            function
             })
         }
     }
    diff --git a/src/leo_passes/loop_unrolling/unroll_statement.rs.html b/src/leo_passes/loop_unrolling/unroll_statement.rs.html
    index 97fac0f63b..3e442d8cf4 100644
    --- a/src/leo_passes/loop_unrolling/unroll_statement.rs.html
    +++ b/src/leo_passes/loop_unrolling/unroll_statement.rs.html
    @@ -95,114 +95,7 @@
     94
     95
     96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -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
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +97
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -218,141 +111,46 @@
     // You should have received a copy of the GNU General Public License
     // along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
     
    -use itertools::Itertools;
    -use leo_ast::{Expression::Literal, Type::Integer, *};
    +use leo_ast::{Expression::Literal, Type::Integer, *};
     use leo_errors::loop_unroller::LoopUnrollerError;
    -use leo_span::{Span, Symbol};
     
    -use crate::{VariableSymbol, VariableType, unroller::Unroller};
    +use crate::unroller::Unroller;
     
     impl StatementReconstructor for Unroller<'_> {
    -    fn reconstruct_block(&mut self, input: Block) -> (Block, Self::AdditionalOutput) {
    -        let id = if self.is_unrolling { self.node_builder.next_id() } else { input.id };
    +    fn reconstruct_block(&mut self, mut input: Block) -> (Block, Self::AdditionalOutput) {
    +        self.in_scope(input.id(), |slf| {
    +            input.statements = input.statements.into_iter().map(|stmt| slf.reconstruct_statement(stmt).0).collect();
     
    -        self.in_scope(id, |slf| {
    -            // Filter out the statements that have additional output = true
    -            let filtered_statements: Vec<_> = input
    -                .statements
    -                .into_iter()
    -                .filter_map(|s| {
    -                    let (reconstructed_statement, additional_output) = slf.reconstruct_statement(s);
    -                    if additional_output {
    -                        None // Exclude this statement from the block since it is a constant variable definition
    -                    } else {
    -                        Some(reconstructed_statement)
    -                    }
    -                })
    -                .collect();
    -
    -            let block = Block { statements: filtered_statements, span: input.span, id: input.id };
    -
    -            (block, Default::default())
    +            (input, Default::default())
             })
         }
     
         fn reconstruct_const(&mut self, input: ConstDeclaration) -> (Statement, Self::AdditionalOutput) {
    -        // Reconstruct the RHS expression to allow for constant propagation
    -        let reconstructed_value_expression = self.reconstruct_expression(input.value.clone()).0;
    -
    -        // Add to symbol table.
    -        self.symbol_table.insert_const(
    -            self.current_program.unwrap(),
    -            input.place.name,
    -            reconstructed_value_expression.clone(),
    -        );
    -
    -        (
    -            Statement::Const(ConstDeclaration {
    -                place: input.place,
    -                type_: input.type_,
    -                value: reconstructed_value_expression,
    -                span: input.span,
    -                id: input.id,
    -            }),
    -            true,
    -        )
    +        (Statement::Const(input), Default::default())
         }
     
         fn reconstruct_definition(&mut self, input: DefinitionStatement) -> (Statement, Self::AdditionalOutput) {
    -        if !self.is_unrolling {
    -            return (
    -                Statement::Definition(DefinitionStatement {
    -                    declaration_type: input.declaration_type,
    -                    place: input.place,
    -                    type_: input.type_,
    -                    value: self.reconstruct_expression(input.value).0,
    -                    span: input.span,
    -                    id: input.id,
    -                }),
    -                Default::default(),
    -            );
    -        }
    -
    -        // Helper function to add variables to symbol table
    -        let mut insert_variable = |symbol: Symbol, type_: Type, span: Span| {
    -            if let Err(err) = self.symbol_table.insert_variable(self.current_program.unwrap(), symbol, VariableSymbol {
    -                type_: type_.clone(),
    -                span,
    -                declaration: VariableType::Mut,
    -            }) {
    -                self.handler.emit_err(err);
    -            }
    -        };
    -
    -        // If we are unrolling a loop, then we need to repopulate the symbol table.
    -        match &input.place {
    -            Expression::Identifier(identifier) => {
    -                insert_variable(identifier.name, input.type_.clone(), input.span);
    -            }
    -            Expression::Tuple(tuple_expression) => {
    -                let tuple_type = match input.type_ {
    -                    Type::Tuple(ref tuple_type) => tuple_type,
    -                    _ => unreachable!(
    -                        "Type checking guarantees that if the lhs is a tuple, its associated type is also a tuple."
    -                    ),
    -                };
    -                tuple_expression.elements.iter().zip_eq(tuple_type.elements().iter()).for_each(|(expression, _type_)| {
    -                        let identifier = match expression {
    -                            Expression::Identifier(identifier) => identifier,
    -                            _ => unreachable!("Type checking guarantees that if the lhs is a tuple, all of its elements are identifiers.")
    -                        };
    -                        insert_variable(identifier.name, input.type_.clone(), input.span);
    -                    });
    -            }
    -            _ => unreachable!(
    -                "Type checking guarantees that the lhs of a `DefinitionStatement` is either an identifier or tuple."
    -            ),
    -        }
    -
    -        // Reconstruct the expression and return
    -        (
    -            Statement::Definition(DefinitionStatement {
    -                declaration_type: input.declaration_type,
    -                place: input.place,
    -                type_: input.type_,
    -                value: self.reconstruct_expression(input.value).0,
    -                span: input.span,
    -                id: self.node_builder.next_id(),
    -            }),
    -            Default::default(),
    -        )
    +        (Statement::Definition(input), Default::default())
         }
     
         fn reconstruct_iteration(&mut self, input: IterationStatement) -> (Statement, Self::AdditionalOutput) {
    -        // Reconstruct the bound expressions
    -        let (new_start, _) = self.reconstruct_expression(input.start);
    -        let (new_stop, _) = self.reconstruct_expression(input.stop);
    +        // There's no need to reconstruct the bound expressions - they must be constants
    +        // which can be evaluated through constant propagation.
     
    -        // Convert into values
    -        match (new_start.clone(), new_stop.clone()) {
    -            (Literal(start_lit), Literal(stop_lit)) => {
    -                input.start_value.replace(Some(Value::try_from(&start_lit).unwrap()));
    -                input.stop_value.replace(Some(Value::try_from(&stop_lit).unwrap()));
    -            }
    -            _ => unreachable!("Type checking guarantees that the loop bounds are literals."),
    +        let Literal(start_lit) = &input.start else {
    +            self.loop_not_unrolled = Some(input.start.span());
    +            return (Statement::Iteration(Box::new(input)), Default::default());
             };
     
    -        // Ensure loop bounds are increasing. This cannot be done in the type checker because constant propagation occurs in this pass.
    +        let Literal(stop_lit) = &input.stop else {
    +            self.loop_not_unrolled = Some(input.stop.span());
    +            return (Statement::Iteration(Box::new(input)), Default::default());
    +        };
    +
    +        input.start_value.replace(Some(Value::try_from(start_lit).unwrap()));
    +        input.stop_value.replace(Some(Value::try_from(stop_lit).unwrap()));
    +
    +        // Ensure loop bounds are increasing. This cannot be done in the type checker because constant propagation must happen first.
             if match (input.type_.clone(), input.start_value.borrow().as_ref(), input.stop_value.borrow().as_ref()) {
                 (Integer(IntegerType::I8), Some(Value::I8(lower_bound, _)), Some(Value::I8(upper_bound, _))) => {
                     lower_bound >= upper_bound
    @@ -386,24 +184,12 @@
                 }
                 _ => unreachable!("Type checking guarantees that the loop bounds have same type as loop variable."),
             } {
    -            self.emit_err(LoopUnrollerError::loop_range_decreasing(new_stop.span()));
    +            self.emit_err(LoopUnrollerError::loop_range_decreasing(input.stop.span()));
             }
     
    -        (
    -            self.unroll_iteration_statement::<i128>(IterationStatement {
    -                variable: input.variable,
    -                type_: input.type_,
    -                start: new_start,
    -                stop: new_stop,
    -                start_value: input.start_value.clone(),
    -                stop_value: input.stop_value.clone(),
    -                inclusive: false,
    -                block: input.block,
    -                span: input.span,
    -                id: input.id,
    -            }),
    -            Default::default(),
    -        )
    +        self.loop_unrolled = true;
    +
    +        (self.unroll_iteration_statement::<i128>(input), Default::default())
         }
     }
     
    \ No newline at end of file diff --git a/src/leo_passes/loop_unrolling/unroller.rs.html b/src/leo_passes/loop_unrolling/unroller.rs.html index d27b591a15..2f43cd621e 100644 --- a/src/leo_passes/loop_unrolling/unroller.rs.html +++ b/src/leo_passes/loop_unrolling/unroller.rs.html @@ -167,7 +167,14 @@ 166 167 168 -169
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -186,8 +193,10 @@
     use leo_ast::{
         Block,
         Expression,
    +    ExpressionReconstructor,
         IterationStatement,
         Literal,
    +    Node,
         NodeBuilder,
         NodeID,
         Statement,
    @@ -197,13 +206,13 @@
     };
     
     use leo_errors::{emitter::Handler, loop_unroller::LoopUnrollerError};
    -use leo_span::Symbol;
    +use leo_span::{Span, Symbol};
     
     use crate::{Clusivity, LoopBound, RangeIterator, SymbolTable, TypeTable};
     
     pub struct Unroller<'a> {
         /// The symbol table for the function being processed.
    -    pub(crate) symbol_table: SymbolTable,
    +    pub(crate) symbol_table: &'a mut SymbolTable,
         /// A mapping from node IDs to their types.
         pub(crate) type_table: &'a TypeTable,
         /// An error handler used for any errors found during unrolling.
    @@ -214,16 +223,29 @@
         pub(crate) is_unrolling: bool,
         /// The current program name.
         pub(crate) current_program: Option<Symbol>,
    +    /// If we've encountered a loop that was not unrolled, here's it's spanned.
    +    pub(crate) loop_not_unrolled: Option<Span>,
    +    /// Have we unrolled any loop?
    +    pub(crate) loop_unrolled: bool,
     }
     
     impl<'a> Unroller<'a> {
         pub(crate) fn new(
    -        symbol_table: SymbolTable,
    +        symbol_table: &'a mut SymbolTable,
             type_table: &'a TypeTable,
             handler: &'a Handler,
             node_builder: &'a NodeBuilder,
         ) -> Self {
    -        Self { symbol_table, type_table, handler, node_builder, is_unrolling: false, current_program: None }
    +        Self {
    +            symbol_table,
    +            type_table,
    +            handler,
    +            node_builder,
    +            is_unrolling: false,
    +            current_program: None,
    +            loop_not_unrolled: None,
    +            loop_unrolled: false,
    +        }
         }
     
         pub(crate) fn in_scope<T>(&mut self, id: NodeID, func: impl FnOnce(&mut Self) -> T) -> T {
    @@ -294,46 +316,38 @@
             // Update the type table.
             self.type_table.insert(const_id, input.type_.clone());
     
    -        let block_id = self.node_builder.next_id();
    +        let outer_block_id = self.node_builder.next_id();
     
             // Reconstruct `iteration_count` as a `Literal`.
             let Type::Integer(integer_type) = &input.type_ else {
                 unreachable!("Type checking enforces that the iteration variable is of integer type");
             };
     
    -        self.in_scope(block_id, |slf| {
    -            let prior_is_unrolling = slf.is_unrolling;
    -            slf.is_unrolling = true;
    -
    +        self.in_scope(outer_block_id, |slf| {
                 let value = Literal::Integer(*integer_type, iteration_count.to_string(), Default::default(), const_id);
     
    -            // Add the loop variable as a constant for the current scope
    +            // Add the loop variable as a constant for the current scope.
                 slf.symbol_table.insert_const(
                     slf.current_program.unwrap(),
                     input.variable.name,
    -                Expression::Literal(value.clone()),
    +                Expression::Literal(value),
                 );
     
    -            // Reconstruct the statements in the loop body.
    -            let statements: Vec<_> = input
    -                .block
    -                .statements
    -                .clone()
    -                .into_iter()
    -                .filter_map(|s| {
    -                    let (reconstructed_statement, additional_output) = slf.reconstruct_statement(s);
    -                    if additional_output {
    -                        None // Exclude this statement from the block since it is a constant variable definition
    -                    } else {
    -                        Some(reconstructed_statement)
    -                    }
    -                })
    -                .collect();
    +            let duplicated_body = super::duplicate::duplicate(input.block.clone(), slf.symbol_table, slf.node_builder);
    +
    +            let prior_is_unrolling = slf.is_unrolling;
    +            slf.is_unrolling = true;
    +
    +            let result = Statement::Block(slf.reconstruct_block(duplicated_body).0);
     
                 slf.is_unrolling = prior_is_unrolling;
     
    -            Statement::Block(Block { statements, span: input.block.span, id: block_id })
    +            Statement::Block(Block { statements: vec![result], span: input.span(), id: outer_block_id })
             })
         }
     }
    +
    +impl ExpressionReconstructor for Unroller<'_> {
    +    type AdditionalOutput = ();
    +}
     
    \ No newline at end of file diff --git a/src/leo_passes/static_single_assignment/rename_statement.rs.html b/src/leo_passes/static_single_assignment/rename_statement.rs.html index 7ed71562a5..6d2e4c030f 100644 --- a/src/leo_passes/static_single_assignment/rename_statement.rs.html +++ b/src/leo_passes/static_single_assignment/rename_statement.rs.html @@ -393,7 +393,8 @@ 392 393 394 -395
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +395
    +396
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -632,7 +633,8 @@
         }
     
         fn consume_const(&mut self, _: ConstDeclaration) -> Self::Output {
    -        unreachable!("Loop unrolling pass removes all constant declaration statements in the program.")
    +        // Constants have been propagated everywhere by this point, so we no longer need const declarations.
    +        Default::default()
         }
     
         /// Consumes the `DefinitionStatement` into an `AssignStatement`, renaming the left-hand-side as appropriate.
    @@ -765,7 +767,7 @@
                     }))
                 }
     
    -            _ => unreachable!("Type checking guarantees that expression statements are always function calls."),
    +            _ => panic!("Type checking guarantees that expression statements are always function calls."),
             }
     
             statements
    diff --git a/src/leo_passes/type_checking/check_statements.rs.html b/src/leo_passes/type_checking/check_statements.rs.html
    index 69ac855269..6047cbd6e2 100644
    --- a/src/leo_passes/type_checking/check_statements.rs.html
    +++ b/src/leo_passes/type_checking/check_statements.rs.html
    @@ -336,60 +336,7 @@
     335
     336
     337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +338
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -557,22 +504,6 @@
                 _ => (), // Do nothing
             }
     
    -        // Enforce that Constant variables have literal expressions on right-hand side
    -        match &input.value {
    -            Expression::Literal(_) => (),
    -            Expression::Tuple(tuple_expression) => match tuple_expression.elements.len() {
    -                0 | 1 => unreachable!("Parsing guarantees that tuple types have at least two elements."),
    -                _ => {
    -                    if tuple_expression.elements.iter().any(|expr| !matches!(expr, Expression::Literal(_))) {
    -                        self.emit_err(TypeCheckerError::const_declaration_must_be_literal_or_tuple_of_literals(
    -                            input.span,
    -                        ))
    -                    }
    -                }
    -            },
    -            _ => self.emit_err(TypeCheckerError::const_declaration_must_be_literal_or_tuple_of_literals(input.span())),
    -        }
    -
             // Check the expression on the right-hand side.
             self.visit_expression(&input.value, &Some(input.type_.clone()));
     
    @@ -616,7 +547,7 @@
             // Insert the variables into the symbol table.
             match &input.place {
                 Expression::Identifier(identifier) => {
    -                self.insert_variable(Some(inferred_type.clone()), identifier, input.type_.clone(), identifier.span)
    +                self.insert_variable(Some(inferred_type.clone()), identifier, input.type_.clone(), identifier.span);
                 }
                 Expression::Tuple(tuple_expression) => {
                     let tuple_type = match &input.type_ {
    @@ -697,46 +628,9 @@
                 slf.scope_state.has_called_finalize = prior_has_finalize;
             });
     
    -        // Check that the literal is valid.
    -        self.visit_expression(&input.start, &Some(input.type_.clone()));
    -
    -        // If `input.start` is a valid literal, instantiate it as a value.
    -        match &input.start {
    -            Expression::Literal(literal) => {
    -                // Note that this check is needed because the pass attempts to make progress, even though the literal may be invalid.
    -                if let Ok(value) = Value::try_from(literal) {
    -                    input.start_value.replace(Some(value));
    -                }
    -            }
    -            Expression::Identifier(id) => {
    -                if let Some(var) = self.symbol_table.lookup_variable(self.scope_state.program_name.unwrap(), id.name) {
    -                    if VariableType::Const != var.declaration {
    -                        self.emit_err(TypeCheckerError::loop_bound_must_be_literal_or_const(id.span));
    -                    }
    -                }
    -            }
    -            _ => self.emit_err(TypeCheckerError::loop_bound_must_be_literal_or_const(input.start.span())),
    -        }
    +        self.visit_expression(&input.start, &Some(input.type_.clone()));
     
             self.visit_expression(&input.stop, &Some(input.type_.clone()));
    -
    -        // If `input.stop` is a valid literal, instantiate it as a value.
    -        match &input.stop {
    -            Expression::Literal(literal) => {
    -                // Note that this check is needed because the pass attempts to make progress, even though the literal may be invalid.
    -                if let Ok(value) = Value::try_from(literal) {
    -                    input.stop_value.replace(Some(value));
    -                }
    -            }
    -            Expression::Identifier(id) => {
    -                if let Some(var) = self.symbol_table.lookup_variable(self.scope_state.program_name.unwrap(), id.name) {
    -                    if VariableType::Const != var.declaration {
    -                        self.emit_err(TypeCheckerError::loop_bound_must_be_literal_or_const(id.span));
    -                    }
    -                }
    -            }
    -            _ => self.emit_err(TypeCheckerError::loop_bound_must_be_literal_or_const(input.stop.span())),
    -        }
         }
     
         fn visit_return(&mut self, input: &'a ReturnStatement) {
    diff --git a/src/leo_passes/type_checking/checker.rs.html b/src/leo_passes/type_checking/checker.rs.html
    index 466a18ad5e..00e9c7782f 100644
    --- a/src/leo_passes/type_checking/checker.rs.html
    +++ b/src/leo_passes/type_checking/checker.rs.html
    @@ -1286,7 +1286,7 @@
     
     pub struct TypeChecker<'a> {
         /// The symbol table for the program.
    -    pub(crate) symbol_table: SymbolTable,
    +    pub(crate) symbol_table: &'a mut SymbolTable,
         /// A mapping from node IDs to their types.
         pub(crate) type_table: &'a TypeTable,
         /// A dependency graph of the structs in program.
    @@ -1312,7 +1312,7 @@
     impl<'a> TypeChecker<'a> {
         /// Returns a new type checker given a symbol table and error handler.
         pub fn new(
    -        symbol_table: SymbolTable,
    +        symbol_table: &'a mut SymbolTable,
             type_table: &'a TypeTable,
             handler: &'a Handler,
             limits: NetworkLimits,
    diff --git a/src/leo_passes/type_checking/mod.rs.html b/src/leo_passes/type_checking/mod.rs.html
    index 4e5e66acb2..71a9f3355b 100644
    --- a/src/leo_passes/type_checking/mod.rs.html
    +++ b/src/leo_passes/type_checking/mod.rs.html
    @@ -80,8 +80,8 @@
     use leo_errors::{Result, emitter::Handler};
     
     impl<'a> Pass for TypeChecker<'a> {
    -    type Input = (&'a Ast, &'a Handler, SymbolTable, &'a TypeTable, NetworkLimits);
    -    type Output = Result<(SymbolTable, StructGraph, CallGraph)>;
    +    type Input = (&'a Ast, &'a Handler, &'a mut SymbolTable, &'a TypeTable, NetworkLimits);
    +    type Output = Result<(StructGraph, CallGraph)>;
     
         fn do_pass((ast, handler, symbol_table, type_table, limits): Self::Input) -> Self::Output {
             let mut visitor = TypeChecker::new(symbol_table, type_table, handler, limits);
    @@ -91,7 +91,7 @@
             // Remove unused structs from the struct graph.
             // This prevents unused struct definitions from being included in the generated bytecode.
             visitor.struct_graph.retain_nodes(&visitor.used_structs);
    -        Ok((visitor.symbol_table, visitor.struct_graph, visitor.call_graph))
    +        Ok((visitor.struct_graph, visitor.call_graph))
         }
     }
     
    \ No newline at end of file diff --git a/src/leo_span/symbol.rs.html b/src/leo_span/symbol.rs.html index 59bce099c5..48e64c511a 100644 --- a/src/leo_span/symbol.rs.html +++ b/src/leo_span/symbol.rs.html @@ -458,7 +458,13 @@ 457 458 459 -460
    // Copyright (C) 2019-2025 Aleo Systems Inc.
    +460
    +461
    +462
    +463
    +464
    +465
    +466
    // Copyright (C) 2019-2025 Aleo Systems Inc.
     // This file is part of the Leo library.
     
     // The Leo library is free software: you can redistribute it and/or modify
    @@ -752,6 +758,12 @@
         NonZeroU32,
     );
     
    +impl Default for Symbol {
    +    fn default() -> Self {
    +        Symbol(NonZeroU32::MIN)
    +    }
    +}
    +
     impl Symbol {
         /// Returns the corresponding `Symbol` for the given `index`.
         pub const fn new(index: u32) -> Self {
    diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js
    index e64e361880..47fde24190 100644
    --- a/trait.impl/core/default/trait.Default.js
    +++ b/trait.impl/core/default/trait.Default.js
    @@ -1,9 +1,9 @@
     (function() {
    -    var implementors = Object.fromEntries([["leo_ast",[["impl Default for Type"],["impl Default for NodeBuilder"],["impl Default for StaticString"],["impl Default for Program"],["impl Default for Block"],["impl Default for Ast"],["impl Default for Stub"],["impl Default for FutureType"]]],["leo_compiler",[["impl Default for BuildOptions"],["impl Default for CompilerOptions"],["impl Default for OutputOptions"]]],["leo_errors",[["impl Default for Backtraced"],["impl Default for Formatted"],["impl Default for BufferEmitter"],["impl Default for Handler"],["impl<T> Default for Buffer<T>"]]],["leo_interpreter",[["impl Default for Value"],["impl Default for ContextStack"],["impl Default for DrawData"],["impl Default for Prompt"],["impl Default for Future"]]],["leo_lang",[["impl Default for BuildOptions"],["impl Default for FeeOptions"],["impl Default for Format<Full, SystemTime>"]]],["leo_package",[["impl Default for Gitignore"]]],["leo_passes",[["impl Default for Position"],["impl Default for Assigner"],["impl Default for AssignerInner"],["impl Default for RenameTable"],["impl Default for LocalTable"],["impl Default for LocalTableInner"],["impl Default for SymbolTable"],["impl Default for TypeTable"]]],["leo_span",[["impl Default for SourceMap"],["impl Default for SourceMapInner"],["impl Default for BytePos"],["impl Default for Span"],["impl Default for SessionGlobals"]]]]);
    +    var implementors = Object.fromEntries([["leo_ast",[["impl Default for Expression"],["impl Default for Variant"],["impl Default for Type"],["impl Default for Identifier"],["impl Default for NodeBuilder"],["impl Default for StaticString"],["impl Default for ErrExpression"],["impl Default for Function"],["impl Default for Program"],["impl Default for Block"],["impl Default for ConstDeclaration"],["impl Default for Ast"],["impl Default for Stub"],["impl Default for FutureType"]]],["leo_compiler",[["impl Default for BuildOptions"],["impl Default for CompilerOptions"],["impl Default for OutputOptions"]]],["leo_errors",[["impl Default for Backtraced"],["impl Default for Formatted"],["impl Default for BufferEmitter"],["impl Default for Handler"],["impl<T> Default for Buffer<T>"]]],["leo_interpreter",[["impl Default for Value"],["impl Default for ContextStack"],["impl Default for DrawData"],["impl Default for Prompt"],["impl Default for Future"]]],["leo_lang",[["impl Default for BuildOptions"],["impl Default for FeeOptions"],["impl Default for Format<Full, SystemTime>"]]],["leo_package",[["impl Default for Gitignore"]]],["leo_passes",[["impl Default for Position"],["impl Default for Assigner"],["impl Default for AssignerInner"],["impl Default for RenameTable"],["impl Default for LocalTable"],["impl Default for LocalTableInner"],["impl Default for SymbolTable"],["impl Default for TypeTable"]]],["leo_span",[["impl Default for SourceMap"],["impl Default for SourceMapInner"],["impl Default for BytePos"],["impl Default for Span"],["impl Default for SessionGlobals"],["impl Default for Symbol"]]]]);
         if (window.register_implementors) {
             window.register_implementors(implementors);
         } else {
             window.pending_implementors = implementors;
         }
     })()
    -//{"start":57,"fragment_lengths":[2289,937,1520,1489,943,324,2564,1447]}
    \ No newline at end of file
    +//{"start":57,"fragment_lengths":[4095,937,1520,1489,943,324,2564,1721]}
    \ No newline at end of file
    diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js
    index 69f9835408..d6b34945bf 100644
    --- a/trait.impl/core/fmt/trait.Display.js
    +++ b/trait.impl/core/fmt/trait.Display.js
    @@ -1,9 +1,9 @@
     (function() {
    -    var implementors = Object.fromEntries([["leo_ast",[["impl Display for AccessExpression"],["impl Display for BinaryOperation"],["impl Display for Expression"],["impl Display for Literal"],["impl Display for Mode"],["impl Display for GroupCoordinate"],["impl Display for GroupLiteral"],["impl Display for ConsoleFunction"],["impl Display for DeclarationType"],["impl Display for Statement"],["impl Display for IntegerType"],["impl Display for Type"],["impl Display for Value"],["impl Display for ArrayAccess"],["impl Display for AssociatedConstant"],["impl Display for AssociatedFunction"],["impl Display for MemberAccess"],["impl Display for TupleAccess"],["impl Display for Identifier"],["impl Display for NonNegativeNumber"],["impl Display for StaticString"],["impl Display for ArrayExpression"],["impl Display for BinaryExpression"],["impl Display for CallExpression"],["impl Display for CastExpression"],["impl Display for ErrExpression"],["impl Display for DisplayDecimal<'_>"],["impl Display for LocatorExpression"],["impl Display for StructExpression"],["impl Display for StructVariableInitializer"],["impl Display for TernaryExpression"],["impl Display for TupleExpression"],["impl Display for UnaryExpression"],["impl Display for UnitExpression"],["impl Display for Annotation"],["impl Display for Input"],["impl Display for Output"],["impl Display for Function"],["impl Display for Mapping"],["impl Display for ProgramId"],["impl Display for ProgramScope"],["impl Display for Program"],["impl Display for AssertStatement"],["impl Display for AssignStatement"],["impl Display for Block"],["impl Display for ConditionalStatement"],["impl Display for ConsoleStatement"],["impl Display for ConstDeclaration"],["impl Display for DefinitionStatement"],["impl Display for ExpressionStatement"],["impl Display for IterationStatement"],["impl Display for ReturnStatement"],["impl Display for Member"],["impl Display for Composite"],["impl Display for FunctionStub"],["impl Display for Stub"],["impl Display for ArrayType"],["impl Display for FutureType"],["impl Display for MappingType"],["impl Display for CompositeType"],["impl Display for TupleType"]]],["leo_errors",[["impl Display for AstError"],["impl Display for CliError"],["impl Display for CompilerError"],["impl Display for LeoError"],["impl Display for LeoWarning"],["impl Display for FlattenError"],["impl Display for LoopUnrollerError"],["impl Display for PackageError"],["impl Display for ParserError"],["impl Display for ParserWarning"],["impl Display for StaticAnalyzerError"],["impl Display for StaticAnalyzerWarning"],["impl Display for TypeCheckerError"],["impl Display for TypeCheckerWarning"],["impl Display for UtilError"],["impl Display for Backtraced"],["impl Display for Formatted"],["impl Display for InterpreterHalt"],["impl<T: Display> Display for Buffer<T>"]]],["leo_interpreter",[["impl Display for Value"],["impl Display for GlobalId"],["impl Display for Future"]]],["leo_package",[["impl Display for Snapshot"],["impl<N: Network> Display for Env<N>"]]],["leo_parser",[["impl Display for Token"],["impl Display for SpannedToken"]]],["leo_passes",[["impl Display for VariableType"],["impl Display for VariableSymbol"]]],["leo_retriever",[["impl Display for NetworkName"]]],["leo_span",[["impl Display for FileName"],["impl Display for Span"],["impl Display for Symbol"]]],["leo_test_framework",[["impl Display for TestError"]]]]);
    +    var implementors = Object.fromEntries([["leo_ast",[["impl Display for AccessExpression"],["impl Display for BinaryOperation"],["impl Display for Expression"],["impl Display for Literal"],["impl Display for UnaryOperation"],["impl Display for Mode"],["impl Display for GroupCoordinate"],["impl Display for GroupLiteral"],["impl Display for ConsoleFunction"],["impl Display for DeclarationType"],["impl Display for Statement"],["impl Display for IntegerType"],["impl Display for Type"],["impl Display for Value"],["impl Display for ArrayAccess"],["impl Display for AssociatedConstant"],["impl Display for AssociatedFunction"],["impl Display for MemberAccess"],["impl Display for TupleAccess"],["impl Display for Identifier"],["impl Display for NonNegativeNumber"],["impl Display for StaticString"],["impl Display for ArrayExpression"],["impl Display for BinaryExpression"],["impl Display for CallExpression"],["impl Display for CastExpression"],["impl Display for ErrExpression"],["impl Display for DisplayDecimal<'_>"],["impl Display for LocatorExpression"],["impl Display for StructExpression"],["impl Display for StructVariableInitializer"],["impl Display for TernaryExpression"],["impl Display for TupleExpression"],["impl Display for UnaryExpression"],["impl Display for UnitExpression"],["impl Display for Annotation"],["impl Display for Input"],["impl Display for Output"],["impl Display for Function"],["impl Display for Mapping"],["impl Display for ProgramId"],["impl Display for ProgramScope"],["impl Display for Program"],["impl Display for AssertStatement"],["impl Display for AssignStatement"],["impl Display for Block"],["impl Display for ConditionalStatement"],["impl Display for ConsoleStatement"],["impl Display for ConstDeclaration"],["impl Display for DefinitionStatement"],["impl Display for ExpressionStatement"],["impl Display for IterationStatement"],["impl Display for ReturnStatement"],["impl Display for Member"],["impl Display for Composite"],["impl Display for FunctionStub"],["impl Display for Stub"],["impl Display for ArrayType"],["impl Display for FutureType"],["impl Display for MappingType"],["impl Display for CompositeType"],["impl Display for TupleType"]]],["leo_errors",[["impl Display for AstError"],["impl Display for CliError"],["impl Display for CompilerError"],["impl Display for LeoError"],["impl Display for LeoWarning"],["impl Display for FlattenError"],["impl Display for LoopUnrollerError"],["impl Display for PackageError"],["impl Display for ParserError"],["impl Display for ParserWarning"],["impl Display for StaticAnalyzerError"],["impl Display for StaticAnalyzerWarning"],["impl Display for TypeCheckerError"],["impl Display for TypeCheckerWarning"],["impl Display for UtilError"],["impl Display for Backtraced"],["impl Display for Formatted"],["impl Display for InterpreterHalt"],["impl<T: Display> Display for Buffer<T>"]]],["leo_interpreter",[["impl Display for Value"],["impl Display for GlobalId"],["impl Display for Future"]]],["leo_package",[["impl Display for Snapshot"],["impl<N: Network> Display for Env<N>"]]],["leo_parser",[["impl Display for Token"],["impl Display for SpannedToken"]]],["leo_passes",[["impl Display for VariableType"],["impl Display for VariableSymbol"]]],["leo_retriever",[["impl Display for NetworkName"]]],["leo_span",[["impl Display for FileName"],["impl Display for Span"],["impl Display for Symbol"]]],["leo_test_framework",[["impl Display for TestError"]]]]);
         if (window.register_implementors) {
             window.register_implementors(implementors);
         } else {
             window.pending_implementors = implementors;
         }
     })()
    -//{"start":57,"fragment_lengths":[18682,6374,855,614,604,681,350,811,312]}
    \ No newline at end of file
    +//{"start":57,"fragment_lengths":[18987,6374,855,614,604,681,350,811,312]}
    \ No newline at end of file
    diff --git a/trait.impl/core/marker/trait.Freeze.js b/trait.impl/core/marker/trait.Freeze.js
    index b43ee69e21..3e00667271 100644
    --- a/trait.impl/core/marker/trait.Freeze.js
    +++ b/trait.impl/core/marker/trait.Freeze.js
    @@ -1,9 +1,9 @@
     (function() {
    -    var implementors = Object.fromEntries([["leo_abnf",[["impl Freeze for Scope",1,["leo_abnf::Scope"]],["impl<'a> Freeze for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !Freeze for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !Freeze for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Freeze for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Freeze for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Freeze for Expression",1,["leo_ast::expressions::Expression"]],["impl Freeze for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Freeze for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Freeze for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Freeze for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Freeze for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Freeze for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Freeze for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Freeze for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Freeze for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Freeze for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Freeze for Statement",1,["leo_ast::statement::Statement"]],["impl Freeze for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Freeze for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Freeze for Type",1,["leo_ast::types::type_::Type"]],["impl Freeze for Value",1,["leo_ast::value::Value"]],["impl Freeze for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Freeze for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Freeze for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Freeze for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Freeze for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Freeze for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Freeze for Location",1,["leo_ast::common::location::Location"]],["impl Freeze for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Freeze for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Freeze for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Freeze for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Freeze for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Freeze for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Freeze for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Freeze for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Freeze for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Freeze for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Freeze for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Freeze for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Freeze for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Freeze for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Freeze for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Freeze for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Freeze for Input",1,["leo_ast::functions::input::Input"]],["impl Freeze for Output",1,["leo_ast::functions::output::Output"]],["impl Freeze for Function",1,["leo_ast::functions::Function"]],["impl Freeze for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Freeze for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Freeze for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Freeze for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Freeze for Program",1,["leo_ast::program::Program"]],["impl Freeze for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Freeze for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Freeze for Block",1,["leo_ast::statement::block::Block"]],["impl Freeze for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Freeze for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Freeze for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Freeze for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Freeze for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Freeze for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Freeze for Ast",1,["leo_ast::Ast"]],["impl Freeze for Member",1,["leo_ast::struct::member::Member"]],["impl Freeze for Composite",1,["leo_ast::struct::Composite"]],["impl Freeze for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Freeze for Stub",1,["leo_ast::stub::Stub"]],["impl Freeze for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Freeze for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Freeze for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Freeze for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Freeze for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Freeze for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Freeze for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Freeze for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Freeze for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Freeze for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Freeze for Handler",1,["leo_errors::emitter::Handler"]],["impl Freeze for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Freeze for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Freeze for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Freeze for LeoError",1,["leo_errors::errors::LeoError"]],["impl Freeze for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Freeze for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Freeze for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Freeze for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Freeze for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Freeze for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Freeze for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Freeze for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Freeze for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Freeze for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Freeze for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Freeze for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Freeze for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Freeze for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl Freeze for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Freeze for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Freeze for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Freeze for Buffer<T>",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Freeze for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Freeze for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Freeze for Value",1,["leo_interpreter::value::Value"]],["impl Freeze for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Freeze for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Freeze for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Freeze for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Freeze for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Freeze for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Freeze for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Freeze for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Freeze for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Freeze for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Freeze for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Freeze for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Freeze for Future",1,["leo_interpreter::value::Future"]],["impl Freeze for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> Freeze for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Freeze for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> Freeze for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> Freeze for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> Freeze for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Freeze for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Freeze for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Freeze for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Freeze for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Freeze for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Freeze for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Freeze for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Freeze for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Freeze for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Freeze for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Freeze for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Freeze for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Freeze for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Freeze for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Freeze for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Freeze for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Freeze for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Freeze for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Freeze for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Freeze for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Freeze for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Freeze for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Freeze for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Freeze for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Freeze for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Freeze for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Freeze for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Freeze for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Freeze for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Freeze for Format<F, T>
    where\n F: Freeze,\n T: Freeze,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Freeze for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Freeze for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Freeze for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Freeze for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Freeze for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Freeze for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Freeze for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Freeze for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Freeze for Package",1,["leo_package::package::Package"]],["impl Freeze for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Freeze for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Freeze for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Freeze for Env<N>
    where\n <N as Environment>::Field: Freeze,\n <N as Environment>::Scalar: Freeze,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Freeze for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Freeze for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Freeze for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> Freeze for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Freeze for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !Freeze for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Freeze for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Freeze for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Freeze for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Freeze for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Freeze for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Freeze for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Freeze for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Freeze for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl Freeze for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Freeze for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Freeze for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Freeze for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Freeze for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Freeze for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Freeze for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Freeze for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> Freeze for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> Freeze for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> Freeze for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> Freeze for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> Freeze for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> Freeze for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> Freeze for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> Freeze for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> Freeze for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> Freeze for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> Freeze for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> Freeze for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Freeze for Replacer<F>
    where\n F: Freeze,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Freeze for RangeIterator<I>
    where\n I: Freeze,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Freeze for DiGraphError<N>",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Freeze for DiGraph<N>",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Freeze for TreeNode<N>",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Freeze for Location",1,["leo_retriever::program_context::location::Location"]],["impl Freeze for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Freeze for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Freeze for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Freeze for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Freeze for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Freeze for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Freeze for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Freeze for Interner",1,["leo_span::symbol::Interner"]],["impl !Freeze for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Freeze for FileName",1,["leo_span::source_map::FileName"]],["impl Freeze for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Freeze for LineCol",1,["leo_span::source_map::LineCol"]],["impl Freeze for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Freeze for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Freeze for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl Freeze for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl Freeze for BytePos",1,["leo_span::span::BytePos"]],["impl Freeze for CharPos",1,["leo_span::span::CharPos"]],["impl Freeze for Span",1,["leo_span::span::Span"]],["impl Freeze for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Freeze for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Freeze for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Freeze for TestError",1,["leo_test_framework::error::TestError"]],["impl Freeze for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Freeze for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Freeze for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Freeze for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Freeze for Test",1,["leo_test_framework::runner::Test"]],["impl Freeze for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Freeze for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl Freeze for Scope",1,["leo_abnf::Scope"]],["impl<'a> Freeze for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !Freeze for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !Freeze for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Freeze for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Freeze for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Freeze for Expression",1,["leo_ast::expressions::Expression"]],["impl Freeze for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Freeze for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Freeze for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Freeze for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Freeze for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Freeze for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Freeze for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Freeze for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Freeze for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Freeze for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Freeze for Statement",1,["leo_ast::statement::Statement"]],["impl Freeze for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Freeze for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Freeze for Type",1,["leo_ast::types::type_::Type"]],["impl Freeze for Value",1,["leo_ast::value::Value"]],["impl Freeze for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Freeze for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Freeze for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Freeze for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Freeze for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Freeze for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Freeze for Location",1,["leo_ast::common::location::Location"]],["impl Freeze for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Freeze for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Freeze for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Freeze for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Freeze for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Freeze for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Freeze for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Freeze for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Freeze for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Freeze for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Freeze for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Freeze for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Freeze for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Freeze for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Freeze for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Freeze for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Freeze for Input",1,["leo_ast::functions::input::Input"]],["impl Freeze for Output",1,["leo_ast::functions::output::Output"]],["impl Freeze for Function",1,["leo_ast::functions::Function"]],["impl Freeze for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Freeze for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Freeze for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Freeze for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Freeze for Program",1,["leo_ast::program::Program"]],["impl Freeze for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Freeze for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Freeze for Block",1,["leo_ast::statement::block::Block"]],["impl Freeze for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Freeze for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Freeze for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Freeze for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Freeze for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Freeze for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Freeze for Ast",1,["leo_ast::Ast"]],["impl Freeze for Member",1,["leo_ast::struct::member::Member"]],["impl Freeze for Composite",1,["leo_ast::struct::Composite"]],["impl Freeze for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Freeze for Stub",1,["leo_ast::stub::Stub"]],["impl Freeze for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Freeze for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Freeze for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Freeze for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Freeze for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Freeze for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Freeze for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Freeze for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Freeze for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Freeze for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Freeze for Handler",1,["leo_errors::emitter::Handler"]],["impl Freeze for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Freeze for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Freeze for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Freeze for LeoError",1,["leo_errors::errors::LeoError"]],["impl Freeze for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Freeze for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Freeze for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Freeze for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Freeze for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Freeze for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Freeze for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Freeze for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Freeze for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Freeze for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Freeze for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Freeze for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Freeze for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Freeze for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl Freeze for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Freeze for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Freeze for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Freeze for Buffer<T>",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Freeze for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Freeze for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Freeze for Value",1,["leo_interpreter::value::Value"]],["impl Freeze for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Freeze for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Freeze for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Freeze for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Freeze for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Freeze for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Freeze for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Freeze for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Freeze for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Freeze for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Freeze for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Freeze for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Freeze for Future",1,["leo_interpreter::value::Future"]],["impl Freeze for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> Freeze for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Freeze for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> Freeze for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> Freeze for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> Freeze for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Freeze for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Freeze for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Freeze for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Freeze for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Freeze for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Freeze for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Freeze for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Freeze for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Freeze for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Freeze for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Freeze for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Freeze for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Freeze for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Freeze for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Freeze for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Freeze for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Freeze for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Freeze for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Freeze for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Freeze for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Freeze for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Freeze for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Freeze for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Freeze for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Freeze for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Freeze for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Freeze for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Freeze for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Freeze for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Freeze for Format<F, T>
    where\n F: Freeze,\n T: Freeze,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Freeze for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Freeze for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Freeze for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Freeze for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Freeze for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Freeze for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Freeze for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Freeze for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Freeze for Package",1,["leo_package::package::Package"]],["impl Freeze for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Freeze for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Freeze for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Freeze for Env<N>
    where\n <N as Environment>::Field: Freeze,\n <N as Environment>::Scalar: Freeze,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Freeze for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Freeze for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Freeze for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> Freeze for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Freeze for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !Freeze for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Freeze for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Freeze for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Freeze for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Freeze for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Freeze for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Freeze for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Freeze for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Freeze for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl Freeze for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Freeze for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Freeze for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Freeze for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Freeze for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Freeze for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl Freeze for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl Freeze for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Freeze for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Freeze for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> Freeze for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> Freeze for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> Freeze for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> Freeze for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> Freeze for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> Freeze for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> Freeze for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> Freeze for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> Freeze for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> Freeze for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> Freeze for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> Freeze for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> Freeze for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> Freeze for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Freeze for Replacer<F>
    where\n F: Freeze,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Freeze for RangeIterator<I>
    where\n I: Freeze,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Freeze for DiGraphError<N>",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Freeze for DiGraph<N>",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Freeze for TreeNode<N>",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Freeze for Location",1,["leo_retriever::program_context::location::Location"]],["impl Freeze for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Freeze for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Freeze for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Freeze for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Freeze for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Freeze for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Freeze for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Freeze for Interner",1,["leo_span::symbol::Interner"]],["impl !Freeze for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Freeze for FileName",1,["leo_span::source_map::FileName"]],["impl Freeze for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Freeze for LineCol",1,["leo_span::source_map::LineCol"]],["impl Freeze for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Freeze for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Freeze for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl Freeze for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl Freeze for BytePos",1,["leo_span::span::BytePos"]],["impl Freeze for CharPos",1,["leo_span::span::CharPos"]],["impl Freeze for Span",1,["leo_span::span::Span"]],["impl Freeze for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Freeze for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Freeze for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Freeze for TestError",1,["leo_test_framework::error::TestError"]],["impl Freeze for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Freeze for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Freeze for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Freeze for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Freeze for Test",1,["leo_test_framework::runner::Test"]],["impl Freeze for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Freeze for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[590,25309,1405,8777,7983,10623,5074,1428,14149,2710,5125,2781]} \ No newline at end of file +//{"start":57,"fragment_lengths":[590,25309,1405,8777,7983,10623,5074,1428,15756,2710,5125,2781]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index 4c79e133bc..ef0e948585 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_abnf",[["impl Send for Scope",1,["leo_abnf::Scope"]],["impl<'a> Send for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl Send for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Send for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Send for Expression",1,["leo_ast::expressions::Expression"]],["impl Send for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Send for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Send for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Send for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Send for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Send for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Send for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Send for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Send for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Send for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Send for Statement",1,["leo_ast::statement::Statement"]],["impl Send for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Send for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Send for Type",1,["leo_ast::types::type_::Type"]],["impl Send for Value",1,["leo_ast::value::Value"]],["impl Send for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Send for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Send for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Send for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Send for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Send for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Send for Location",1,["leo_ast::common::location::Location"]],["impl Send for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl Send for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Send for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Send for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Send for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Send for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Send for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Send for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Send for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Send for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Send for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Send for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Send for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Send for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Send for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Send for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Send for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Send for Input",1,["leo_ast::functions::input::Input"]],["impl Send for Output",1,["leo_ast::functions::output::Output"]],["impl Send for Function",1,["leo_ast::functions::Function"]],["impl Send for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Send for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Send for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Send for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Send for Program",1,["leo_ast::program::Program"]],["impl Send for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Send for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Send for Block",1,["leo_ast::statement::block::Block"]],["impl Send for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Send for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Send for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Send for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Send for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Send for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Send for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Send for Ast",1,["leo_ast::Ast"]],["impl Send for Member",1,["leo_ast::struct::member::Member"]],["impl Send for Composite",1,["leo_ast::struct::Composite"]],["impl Send for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Send for Stub",1,["leo_ast::stub::Stub"]],["impl Send for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Send for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Send for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Send for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Send for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Send for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Send for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Send for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Send for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Send for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Send for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !Send for Handler",1,["leo_errors::emitter::Handler"]],["impl !Send for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Send for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Send for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Send for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Send for LeoError",1,["leo_errors::errors::LeoError"]],["impl Send for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Send for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Send for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Send for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Send for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Send for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Send for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Send for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Send for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Send for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Send for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Send for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Send for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Send for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Send for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Send for Buffer<T>
    where\n T: Send,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Send for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Send for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Send for Value",1,["leo_interpreter::value::Value"]],["impl Send for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Send for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Send for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Send for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Send for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Send for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Send for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Send for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Send for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Send for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Send for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Send for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Send for Future",1,["leo_interpreter::value::Future"]],["impl Send for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !Send for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !Send for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !Send for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !Send for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Send for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Send for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Send for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Send for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Send for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Send for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Send for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Send for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Send for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Send for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Send for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Send for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Send for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Send for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Send for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Send for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Send for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Send for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Send for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Send for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Send for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Send for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Send for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Send for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Send for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Send for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Send for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Send for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Send for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Send for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Send for Format<F, T>
    where\n F: Send,\n T: Send,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Send for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Send for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Send for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Send for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Send for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Send for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Send for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Send for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Send for Package",1,["leo_package::package::Package"]],["impl Send for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Send for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Send for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Send for Env<N>",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Send for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Send for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Send for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !Send for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Send for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !Send for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Send for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Send for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Send for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Send for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Send for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Send for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl Send for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Send for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Send for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Send for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Send for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Send for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Send for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Send for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Send for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Send for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !Send for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !Send for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !Send for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !Send for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !Send for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !Send for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !Send for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !Send for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !Send for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !Send for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !Send for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !Send for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Send for Replacer<F>
    where\n F: Send,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Send for RangeIterator<I>
    where\n I: Send,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Send for DiGraphError<N>
    where\n N: Send,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Send for DiGraph<N>
    where\n N: Send,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Send for TreeNode<N>
    where\n N: Send,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Send for Location",1,["leo_retriever::program_context::location::Location"]],["impl Send for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Send for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Send for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Send for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Send for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Send for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Send for LineCol",1,["leo_span::source_map::LineCol"]],["impl !Send for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Send for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl !Send for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl !Send for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Send for FileName",1,["leo_span::source_map::FileName"]],["impl Send for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Send for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Send for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Send for BytePos",1,["leo_span::span::BytePos"]],["impl Send for CharPos",1,["leo_span::span::CharPos"]],["impl Send for Span",1,["leo_span::span::Span"]],["impl Send for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Send for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Send for Interner",1,["leo_span::symbol::Interner"]],["impl Send for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Send for TestError",1,["leo_test_framework::error::TestError"]],["impl Send for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Send for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Send for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Send for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Send for Test",1,["leo_test_framework::runner::Test"]],["impl Send for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Send for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl Send for Scope",1,["leo_abnf::Scope"]],["impl<'a> Send for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl Send for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Send for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Send for Expression",1,["leo_ast::expressions::Expression"]],["impl Send for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Send for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Send for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Send for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Send for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Send for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Send for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Send for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Send for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Send for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Send for Statement",1,["leo_ast::statement::Statement"]],["impl Send for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Send for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Send for Type",1,["leo_ast::types::type_::Type"]],["impl Send for Value",1,["leo_ast::value::Value"]],["impl Send for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Send for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Send for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Send for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Send for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Send for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Send for Location",1,["leo_ast::common::location::Location"]],["impl Send for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl Send for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Send for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Send for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Send for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Send for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Send for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Send for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Send for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Send for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Send for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Send for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Send for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Send for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Send for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Send for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Send for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Send for Input",1,["leo_ast::functions::input::Input"]],["impl Send for Output",1,["leo_ast::functions::output::Output"]],["impl Send for Function",1,["leo_ast::functions::Function"]],["impl Send for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Send for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Send for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Send for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Send for Program",1,["leo_ast::program::Program"]],["impl Send for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Send for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Send for Block",1,["leo_ast::statement::block::Block"]],["impl Send for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Send for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Send for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Send for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Send for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Send for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Send for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Send for Ast",1,["leo_ast::Ast"]],["impl Send for Member",1,["leo_ast::struct::member::Member"]],["impl Send for Composite",1,["leo_ast::struct::Composite"]],["impl Send for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Send for Stub",1,["leo_ast::stub::Stub"]],["impl Send for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Send for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Send for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Send for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Send for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Send for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Send for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Send for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Send for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Send for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Send for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !Send for Handler",1,["leo_errors::emitter::Handler"]],["impl !Send for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Send for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Send for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Send for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Send for LeoError",1,["leo_errors::errors::LeoError"]],["impl Send for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Send for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Send for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Send for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Send for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Send for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Send for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Send for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Send for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Send for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Send for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Send for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Send for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Send for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Send for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Send for Buffer<T>
    where\n T: Send,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Send for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Send for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Send for Value",1,["leo_interpreter::value::Value"]],["impl Send for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Send for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Send for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Send for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Send for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Send for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Send for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Send for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Send for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Send for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Send for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Send for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Send for Future",1,["leo_interpreter::value::Future"]],["impl Send for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !Send for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !Send for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !Send for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !Send for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Send for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Send for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Send for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Send for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Send for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Send for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Send for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Send for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Send for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Send for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Send for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Send for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Send for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Send for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Send for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Send for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Send for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Send for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Send for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Send for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Send for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Send for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Send for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Send for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Send for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Send for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Send for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Send for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Send for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Send for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Send for Format<F, T>
    where\n F: Send,\n T: Send,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Send for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Send for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Send for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Send for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Send for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Send for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Send for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Send for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Send for Package",1,["leo_package::package::Package"]],["impl Send for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Send for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Send for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Send for Env<N>",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Send for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Send for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Send for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !Send for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Send for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !Send for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Send for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Send for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Send for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Send for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Send for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Send for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl Send for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Send for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Send for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Send for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Send for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Send for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Send for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Send for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl Send for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl Send for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Send for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Send for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !Send for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !Send for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> !Send for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !Send for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !Send for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !Send for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !Send for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !Send for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> !Send for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !Send for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !Send for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !Send for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !Send for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !Send for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Send for Replacer<F>
    where\n F: Send,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Send for RangeIterator<I>
    where\n I: Send,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Send for DiGraphError<N>
    where\n N: Send,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Send for DiGraph<N>
    where\n N: Send,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Send for TreeNode<N>
    where\n N: Send,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Send for Location",1,["leo_retriever::program_context::location::Location"]],["impl Send for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Send for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Send for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Send for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Send for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Send for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Send for LineCol",1,["leo_span::source_map::LineCol"]],["impl !Send for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Send for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl !Send for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl !Send for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Send for FileName",1,["leo_span::source_map::FileName"]],["impl Send for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Send for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Send for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Send for BytePos",1,["leo_span::span::BytePos"]],["impl Send for CharPos",1,["leo_span::span::CharPos"]],["impl Send for Span",1,["leo_span::span::Span"]],["impl Send for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Send for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Send for Interner",1,["leo_span::symbol::Interner"]],["impl Send for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Send for TestError",1,["leo_test_framework::error::TestError"]],["impl Send for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Send for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Send for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Send for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Send for Test",1,["leo_test_framework::runner::Test"]],["impl Send for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Send for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[578,24881,1381,8815,7849,10437,4607,1405,14461,2668,5031,2733]} \ No newline at end of file +//{"start":57,"fragment_lengths":[578,24881,1381,8815,7849,10437,4607,1405,16046,2668,5031,2733]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index 3c7df5b8e3..93c61ed7cf 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_abnf",[["impl Sync for Scope",1,["leo_abnf::Scope"]],["impl<'a> Sync for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !Sync for Statement",1,["leo_ast::statement::Statement"]],["impl !Sync for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !Sync for Function",1,["leo_ast::functions::Function"]],["impl !Sync for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl !Sync for Program",1,["leo_ast::program::Program"]],["impl !Sync for Block",1,["leo_ast::statement::block::Block"]],["impl !Sync for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl !Sync for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl !Sync for Ast",1,["leo_ast::Ast"]],["impl Sync for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Sync for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Sync for Expression",1,["leo_ast::expressions::Expression"]],["impl Sync for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Sync for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Sync for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Sync for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Sync for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Sync for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Sync for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Sync for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Sync for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Sync for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Sync for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Sync for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Sync for Type",1,["leo_ast::types::type_::Type"]],["impl Sync for Value",1,["leo_ast::value::Value"]],["impl Sync for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Sync for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Sync for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Sync for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Sync for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Sync for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Sync for Location",1,["leo_ast::common::location::Location"]],["impl Sync for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Sync for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Sync for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Sync for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Sync for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Sync for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Sync for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Sync for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Sync for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Sync for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Sync for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Sync for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Sync for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Sync for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Sync for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Sync for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Sync for Input",1,["leo_ast::functions::input::Input"]],["impl Sync for Output",1,["leo_ast::functions::output::Output"]],["impl Sync for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Sync for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Sync for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Sync for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Sync for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Sync for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Sync for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Sync for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Sync for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Sync for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Sync for Member",1,["leo_ast::struct::member::Member"]],["impl Sync for Composite",1,["leo_ast::struct::Composite"]],["impl Sync for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Sync for Stub",1,["leo_ast::stub::Stub"]],["impl Sync for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Sync for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Sync for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Sync for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Sync for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Sync for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Sync for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Sync for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Sync for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Sync for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Sync for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !Sync for Handler",1,["leo_errors::emitter::Handler"]],["impl !Sync for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Sync for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Sync for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Sync for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Sync for LeoError",1,["leo_errors::errors::LeoError"]],["impl Sync for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Sync for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Sync for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Sync for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Sync for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Sync for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Sync for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Sync for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Sync for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Sync for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Sync for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Sync for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Sync for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Sync for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Sync for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Sync for Buffer<T>
    where\n T: Sync,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Sync for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Sync for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Sync for Value",1,["leo_interpreter::value::Value"]],["impl Sync for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Sync for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Sync for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Sync for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Sync for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Sync for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Sync for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Sync for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Sync for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Sync for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Sync for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Sync for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Sync for Future",1,["leo_interpreter::value::Future"]],["impl Sync for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !Sync for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !Sync for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !Sync for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !Sync for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Sync for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Sync for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Sync for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Sync for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Sync for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Sync for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Sync for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Sync for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Sync for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Sync for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Sync for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Sync for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Sync for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Sync for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Sync for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Sync for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Sync for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Sync for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Sync for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Sync for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Sync for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Sync for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Sync for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Sync for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Sync for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Sync for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Sync for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Sync for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Sync for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Sync for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Sync for Format<F, T>
    where\n F: Sync,\n T: Sync,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Sync for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Sync for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Sync for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Sync for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Sync for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Sync for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Sync for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Sync for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Sync for Package",1,["leo_package::package::Package"]],["impl Sync for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Sync for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Sync for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Sync for Env<N>",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Sync for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Sync for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Sync for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !Sync for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Sync for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !Sync for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !Sync for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl !Sync for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl !Sync for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Sync for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Sync for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Sync for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Sync for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Sync for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Sync for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Sync for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Sync for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Sync for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Sync for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Sync for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Sync for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Sync for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !Sync for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !Sync for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !Sync for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !Sync for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !Sync for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !Sync for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !Sync for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !Sync for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !Sync for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !Sync for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !Sync for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !Sync for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Sync for Replacer<F>
    where\n F: Sync,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Sync for RangeIterator<I>
    where\n I: Sync,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Sync for DiGraphError<N>
    where\n N: Sync,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Sync for DiGraph<N>
    where\n N: Sync,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Sync for TreeNode<N>
    where\n N: Sync,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Sync for Location",1,["leo_retriever::program_context::location::Location"]],["impl Sync for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Sync for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Sync for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Sync for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Sync for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Sync for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Sync for LineCol",1,["leo_span::source_map::LineCol"]],["impl !Sync for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Sync for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl !Sync for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl !Sync for Interner",1,["leo_span::symbol::Interner"]],["impl !Sync for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Sync for FileName",1,["leo_span::source_map::FileName"]],["impl Sync for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Sync for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Sync for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Sync for BytePos",1,["leo_span::span::BytePos"]],["impl Sync for CharPos",1,["leo_span::span::CharPos"]],["impl Sync for Span",1,["leo_span::span::Span"]],["impl Sync for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Sync for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Sync for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Sync for TestError",1,["leo_test_framework::error::TestError"]],["impl Sync for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Sync for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Sync for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Sync for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Sync for Test",1,["leo_test_framework::runner::Test"]],["impl Sync for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Sync for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl Sync for Scope",1,["leo_abnf::Scope"]],["impl<'a> Sync for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !Sync for Statement",1,["leo_ast::statement::Statement"]],["impl !Sync for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !Sync for Function",1,["leo_ast::functions::Function"]],["impl !Sync for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl !Sync for Program",1,["leo_ast::program::Program"]],["impl !Sync for Block",1,["leo_ast::statement::block::Block"]],["impl !Sync for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl !Sync for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl !Sync for Ast",1,["leo_ast::Ast"]],["impl Sync for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Sync for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Sync for Expression",1,["leo_ast::expressions::Expression"]],["impl Sync for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Sync for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Sync for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Sync for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Sync for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Sync for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Sync for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Sync for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Sync for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Sync for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Sync for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Sync for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Sync for Type",1,["leo_ast::types::type_::Type"]],["impl Sync for Value",1,["leo_ast::value::Value"]],["impl Sync for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Sync for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Sync for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Sync for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Sync for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Sync for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Sync for Location",1,["leo_ast::common::location::Location"]],["impl Sync for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Sync for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Sync for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Sync for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Sync for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Sync for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Sync for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Sync for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Sync for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Sync for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Sync for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Sync for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Sync for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Sync for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Sync for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Sync for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Sync for Input",1,["leo_ast::functions::input::Input"]],["impl Sync for Output",1,["leo_ast::functions::output::Output"]],["impl Sync for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Sync for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Sync for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Sync for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Sync for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Sync for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Sync for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Sync for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Sync for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Sync for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Sync for Member",1,["leo_ast::struct::member::Member"]],["impl Sync for Composite",1,["leo_ast::struct::Composite"]],["impl Sync for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Sync for Stub",1,["leo_ast::stub::Stub"]],["impl Sync for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Sync for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Sync for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Sync for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Sync for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Sync for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Sync for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Sync for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Sync for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !Sync for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !Sync for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !Sync for Handler",1,["leo_errors::emitter::Handler"]],["impl !Sync for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Sync for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Sync for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Sync for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Sync for LeoError",1,["leo_errors::errors::LeoError"]],["impl Sync for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Sync for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Sync for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Sync for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Sync for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Sync for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Sync for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Sync for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Sync for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Sync for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Sync for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Sync for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Sync for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Sync for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Sync for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Sync for Buffer<T>
    where\n T: Sync,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !Sync for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Sync for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Sync for Value",1,["leo_interpreter::value::Value"]],["impl Sync for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Sync for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Sync for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Sync for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Sync for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Sync for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Sync for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Sync for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Sync for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Sync for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Sync for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Sync for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Sync for Future",1,["leo_interpreter::value::Future"]],["impl Sync for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !Sync for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !Sync for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !Sync for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !Sync for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Sync for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Sync for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Sync for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Sync for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Sync for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Sync for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Sync for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Sync for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Sync for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Sync for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Sync for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Sync for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Sync for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Sync for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Sync for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Sync for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Sync for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Sync for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Sync for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Sync for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Sync for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Sync for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Sync for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Sync for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Sync for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Sync for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Sync for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Sync for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Sync for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Sync for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Sync for Format<F, T>
    where\n F: Sync,\n T: Sync,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Sync for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Sync for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Sync for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Sync for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Sync for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Sync for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Sync for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Sync for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Sync for Package",1,["leo_package::package::Package"]],["impl Sync for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Sync for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Sync for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Sync for Env<N>",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Sync for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Sync for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Sync for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !Sync for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !Sync for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !Sync for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !Sync for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl !Sync for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl !Sync for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Sync for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Sync for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Sync for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Sync for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Sync for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Sync for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Sync for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Sync for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Sync for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Sync for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Sync for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl Sync for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl Sync for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Sync for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Sync for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !Sync for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !Sync for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> !Sync for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !Sync for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !Sync for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !Sync for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !Sync for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !Sync for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> !Sync for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !Sync for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !Sync for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !Sync for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !Sync for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !Sync for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Sync for Replacer<F>
    where\n F: Sync,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Sync for RangeIterator<I>
    where\n I: Sync,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Sync for DiGraphError<N>
    where\n N: Sync,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Sync for DiGraph<N>
    where\n N: Sync,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Sync for TreeNode<N>
    where\n N: Sync,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Sync for Location",1,["leo_retriever::program_context::location::Location"]],["impl Sync for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Sync for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Sync for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Sync for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Sync for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Sync for Retriever<N>",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !Sync for LineCol",1,["leo_span::source_map::LineCol"]],["impl !Sync for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !Sync for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl !Sync for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl !Sync for Interner",1,["leo_span::symbol::Interner"]],["impl !Sync for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Sync for FileName",1,["leo_span::source_map::FileName"]],["impl Sync for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Sync for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Sync for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Sync for BytePos",1,["leo_span::span::BytePos"]],["impl Sync for CharPos",1,["leo_span::span::CharPos"]],["impl Sync for Span",1,["leo_span::span::Span"]],["impl Sync for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Sync for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Sync for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Sync for TestError",1,["leo_test_framework::error::TestError"]],["impl Sync for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Sync for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Sync for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Sync for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Sync for Test",1,["leo_test_framework::runner::Test"]],["impl Sync for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Sync for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[578,24890,1381,8815,7849,10437,4607,1405,14464,2668,5032,2733]} \ No newline at end of file +//{"start":57,"fragment_lengths":[578,24890,1381,8815,7849,10437,4607,1405,16049,2668,5032,2733]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index 4cecd3e279..dafd5dc827 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_abnf",[["impl Unpin for Scope",1,["leo_abnf::Scope"]],["impl<'a> Unpin for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl Unpin for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Unpin for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Unpin for Expression",1,["leo_ast::expressions::Expression"]],["impl Unpin for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Unpin for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Unpin for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Unpin for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Unpin for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Unpin for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Unpin for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Unpin for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Unpin for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Unpin for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Unpin for Statement",1,["leo_ast::statement::Statement"]],["impl Unpin for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Unpin for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Unpin for Type",1,["leo_ast::types::type_::Type"]],["impl Unpin for Value",1,["leo_ast::value::Value"]],["impl Unpin for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Unpin for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Unpin for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Unpin for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Unpin for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Unpin for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Unpin for Location",1,["leo_ast::common::location::Location"]],["impl Unpin for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl Unpin for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Unpin for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Unpin for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Unpin for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Unpin for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Unpin for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Unpin for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Unpin for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Unpin for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Unpin for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Unpin for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Unpin for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Unpin for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Unpin for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Unpin for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Unpin for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Unpin for Input",1,["leo_ast::functions::input::Input"]],["impl Unpin for Output",1,["leo_ast::functions::output::Output"]],["impl Unpin for Function",1,["leo_ast::functions::Function"]],["impl Unpin for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Unpin for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Unpin for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Unpin for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Unpin for Program",1,["leo_ast::program::Program"]],["impl Unpin for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Unpin for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Unpin for Block",1,["leo_ast::statement::block::Block"]],["impl Unpin for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Unpin for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Unpin for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Unpin for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Unpin for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Unpin for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Unpin for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Unpin for Ast",1,["leo_ast::Ast"]],["impl Unpin for Member",1,["leo_ast::struct::member::Member"]],["impl Unpin for Composite",1,["leo_ast::struct::Composite"]],["impl Unpin for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Unpin for Stub",1,["leo_ast::stub::Stub"]],["impl Unpin for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Unpin for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Unpin for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Unpin for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Unpin for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Unpin for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Unpin for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Unpin for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Unpin for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> Unpin for Compiler<'a, N>
    where\n N: Unpin,
    ",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl Unpin for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Unpin for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Unpin for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Unpin for LeoError",1,["leo_errors::errors::LeoError"]],["impl Unpin for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Unpin for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Unpin for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Unpin for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Unpin for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Unpin for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Unpin for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Unpin for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Unpin for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Unpin for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Unpin for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Unpin for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Unpin for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Unpin for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl Unpin for Handler",1,["leo_errors::emitter::Handler"]],["impl Unpin for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Unpin for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Unpin for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Unpin for Buffer<T>
    where\n T: Unpin,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl Unpin for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Unpin for Value",1,["leo_interpreter::value::Value"]],["impl Unpin for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Unpin for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Unpin for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Unpin for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Unpin for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Unpin for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Unpin for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Unpin for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Unpin for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Unpin for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Unpin for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Unpin for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Unpin for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Unpin for Future",1,["leo_interpreter::value::Future"]],["impl Unpin for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> Unpin for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Unpin for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> Unpin for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> Unpin for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> Unpin for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Unpin for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Unpin for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Unpin for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Unpin for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Unpin for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Unpin for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Unpin for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Unpin for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Unpin for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Unpin for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Unpin for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Unpin for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Unpin for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Unpin for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Unpin for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Unpin for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Unpin for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Unpin for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Unpin for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Unpin for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Unpin for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Unpin for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Unpin for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Unpin for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Unpin for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Unpin for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Unpin for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Unpin for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Unpin for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Unpin for Format<F, T>
    where\n F: Unpin,\n T: Unpin,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Unpin for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Unpin for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Unpin for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Unpin for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Unpin for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Unpin for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Unpin for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Unpin for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Unpin for Package",1,["leo_package::package::Package"]],["impl Unpin for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Unpin for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Unpin for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Unpin for Env<N>
    where\n <N as Environment>::Field: Unpin,\n <N as Environment>::Scalar: Unpin,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Unpin for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Unpin for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Unpin for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> Unpin for ParserContext<'a, N>
    where\n N: Unpin,
    ",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl Unpin for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Unpin for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Unpin for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Unpin for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Unpin for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Unpin for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl Unpin for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Unpin for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Unpin for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl Unpin for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Unpin for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Unpin for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Unpin for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Unpin for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Unpin for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Unpin for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Unpin for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Unpin for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> Unpin for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> Unpin for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> Unpin for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> Unpin for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> Unpin for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> Unpin for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> Unpin for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> Unpin for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> Unpin for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> Unpin for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> Unpin for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> Unpin for StaticAnalyzer<'a, N>
    where\n N: Unpin,
    ",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Unpin for Replacer<F>
    where\n F: Unpin,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Unpin for RangeIterator<I>
    where\n I: Unpin,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Unpin for DiGraphError<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Unpin for DiGraph<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Unpin for TreeNode<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Unpin for Location",1,["leo_retriever::program_context::location::Location"]],["impl Unpin for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Unpin for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Unpin for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Unpin for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Unpin for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Unpin for Retriever<N>
    where\n N: Unpin,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl Unpin for FileName",1,["leo_span::source_map::FileName"]],["impl Unpin for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Unpin for LineCol",1,["leo_span::source_map::LineCol"]],["impl Unpin for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Unpin for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Unpin for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl Unpin for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl Unpin for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl Unpin for BytePos",1,["leo_span::span::BytePos"]],["impl Unpin for CharPos",1,["leo_span::span::CharPos"]],["impl Unpin for Span",1,["leo_span::span::Span"]],["impl Unpin for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Unpin for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Unpin for Interner",1,["leo_span::symbol::Interner"]],["impl Unpin for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Unpin for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Unpin for TestError",1,["leo_test_framework::error::TestError"]],["impl Unpin for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Unpin for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Unpin for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Unpin for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Unpin for Test",1,["leo_test_framework::runner::Test"]],["impl Unpin for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Unpin for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl Unpin for Scope",1,["leo_abnf::Scope"]],["impl<'a> Unpin for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl Unpin for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl Unpin for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl Unpin for Expression",1,["leo_ast::expressions::Expression"]],["impl Unpin for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl Unpin for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl Unpin for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl Unpin for Mode",1,["leo_ast::functions::mode::Mode"]],["impl Unpin for Variant",1,["leo_ast::functions::variant::Variant"]],["impl Unpin for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl Unpin for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl Unpin for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl Unpin for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl Unpin for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl Unpin for Statement",1,["leo_ast::statement::Statement"]],["impl Unpin for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl Unpin for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl Unpin for Type",1,["leo_ast::types::type_::Type"]],["impl Unpin for Value",1,["leo_ast::value::Value"]],["impl Unpin for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl Unpin for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl Unpin for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl Unpin for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl Unpin for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl Unpin for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl Unpin for Location",1,["leo_ast::common::location::Location"]],["impl Unpin for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl Unpin for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl Unpin for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl Unpin for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl Unpin for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl Unpin for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl Unpin for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl Unpin for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl Unpin for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl Unpin for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl Unpin for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl Unpin for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl Unpin for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl Unpin for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl Unpin for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl Unpin for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl Unpin for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl Unpin for Input",1,["leo_ast::functions::input::Input"]],["impl Unpin for Output",1,["leo_ast::functions::output::Output"]],["impl Unpin for Function",1,["leo_ast::functions::Function"]],["impl Unpin for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl Unpin for Mapping",1,["leo_ast::mapping::Mapping"]],["impl Unpin for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl Unpin for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl Unpin for Program",1,["leo_ast::program::Program"]],["impl Unpin for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl Unpin for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl Unpin for Block",1,["leo_ast::statement::block::Block"]],["impl Unpin for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl Unpin for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl Unpin for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl Unpin for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl Unpin for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl Unpin for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl Unpin for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl Unpin for Ast",1,["leo_ast::Ast"]],["impl Unpin for Member",1,["leo_ast::struct::member::Member"]],["impl Unpin for Composite",1,["leo_ast::struct::Composite"]],["impl Unpin for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl Unpin for Stub",1,["leo_ast::stub::Stub"]],["impl Unpin for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl Unpin for FutureType",1,["leo_ast::types::future::FutureType"]],["impl Unpin for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl Unpin for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl Unpin for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> Unpin for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl Unpin for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl Unpin for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl Unpin for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> Unpin for Compiler<'a, N>
    where\n N: Unpin,
    ",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl Unpin for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl Unpin for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl Unpin for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl Unpin for LeoError",1,["leo_errors::errors::LeoError"]],["impl Unpin for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl Unpin for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl Unpin for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl Unpin for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl Unpin for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl Unpin for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl Unpin for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl Unpin for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl Unpin for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl Unpin for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl Unpin for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl Unpin for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl Unpin for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl Unpin for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl Unpin for Handler",1,["leo_errors::emitter::Handler"]],["impl Unpin for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl Unpin for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl Unpin for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> Unpin for Buffer<T>
    where\n T: Unpin,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl Unpin for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl Unpin for Value",1,["leo_interpreter::value::Value"]],["impl Unpin for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl Unpin for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl Unpin for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl Unpin for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl Unpin for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl Unpin for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl Unpin for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl Unpin for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl Unpin for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl Unpin for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl Unpin for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl Unpin for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl Unpin for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl Unpin for Future",1,["leo_interpreter::value::Future"]],["impl Unpin for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> Unpin for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> Unpin for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> Unpin for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> Unpin for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> Unpin for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> Unpin for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl Unpin for Commands",1,["leo_lang::cli::cli::Commands"]],["impl Unpin for Account",1,["leo_lang::cli::commands::account::Account"]],["impl Unpin for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl Unpin for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl Unpin for CLI",1,["leo_lang::cli::cli::CLI"]],["impl Unpin for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl Unpin for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl Unpin for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl Unpin for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl Unpin for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl Unpin for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl Unpin for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl Unpin for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl Unpin for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl Unpin for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl Unpin for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl Unpin for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl Unpin for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl Unpin for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl Unpin for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl Unpin for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl Unpin for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl Unpin for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl Unpin for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl Unpin for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl Unpin for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl Unpin for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl Unpin for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> Unpin for Format<F, T>
    where\n F: Unpin,\n T: Unpin,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl Unpin for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl Unpin for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl Unpin for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl Unpin for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl Unpin for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl Unpin for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl Unpin for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl Unpin for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl Unpin for Package",1,["leo_package::package::Package"]],["impl Unpin for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl Unpin for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl Unpin for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> Unpin for Env<N>
    where\n <N as Environment>::Field: Unpin,\n <N as Environment>::Scalar: Unpin,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl Unpin for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl Unpin for Token",1,["leo_parser::tokenizer::token::Token"]],["impl Unpin for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> Unpin for ParserContext<'a, N>
    where\n N: Unpin,
    ",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl Unpin for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl Unpin for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl Unpin for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl Unpin for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl Unpin for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl Unpin for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl Unpin for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl Unpin for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl Unpin for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl Unpin for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl Unpin for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl Unpin for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl Unpin for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl Unpin for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl Unpin for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl Unpin for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl Unpin for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl Unpin for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl Unpin for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl Unpin for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> Unpin for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> Unpin for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> Unpin for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> Unpin for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> Unpin for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> Unpin for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> Unpin for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> Unpin for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> Unpin for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> Unpin for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> Unpin for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> Unpin for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> Unpin for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> Unpin for StaticAnalyzer<'a, N>
    where\n N: Unpin,
    ",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> Unpin for Replacer<F>
    where\n F: Unpin,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> Unpin for RangeIterator<I>
    where\n I: Unpin,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> Unpin for DiGraphError<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> Unpin for DiGraph<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> Unpin for TreeNode<N>
    where\n N: Unpin,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl Unpin for Location",1,["leo_retriever::program_context::location::Location"]],["impl Unpin for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl Unpin for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl Unpin for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl Unpin for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl Unpin for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> Unpin for Retriever<N>
    where\n N: Unpin,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl Unpin for FileName",1,["leo_span::source_map::FileName"]],["impl Unpin for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl Unpin for LineCol",1,["leo_span::source_map::LineCol"]],["impl Unpin for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl Unpin for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl Unpin for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl Unpin for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl Unpin for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl Unpin for BytePos",1,["leo_span::span::BytePos"]],["impl Unpin for CharPos",1,["leo_span::span::CharPos"]],["impl Unpin for Span",1,["leo_span::span::Span"]],["impl Unpin for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl Unpin for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl Unpin for Interner",1,["leo_span::symbol::Interner"]],["impl Unpin for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl Unpin for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl Unpin for TestError",1,["leo_test_framework::error::TestError"]],["impl Unpin for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl Unpin for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl Unpin for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl Unpin for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl Unpin for Test",1,["leo_test_framework::runner::Test"]],["impl Unpin for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl Unpin for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[584,25094,1569,8884,7913,10530,5029,1593,14744,2866,5074,2757]} \ No newline at end of file +//{"start":57,"fragment_lengths":[584,25094,1569,8884,7913,10530,5029,1593,16339,2866,5074,2757]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 95d6aa42e7..dda5e8f679 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_abnf",[["impl RefUnwindSafe for Scope",1,["leo_abnf::Scope"]],["impl<'a> RefUnwindSafe for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !RefUnwindSafe for Statement",1,["leo_ast::statement::Statement"]],["impl !RefUnwindSafe for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !RefUnwindSafe for Function",1,["leo_ast::functions::Function"]],["impl !RefUnwindSafe for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl !RefUnwindSafe for Program",1,["leo_ast::program::Program"]],["impl !RefUnwindSafe for Block",1,["leo_ast::statement::block::Block"]],["impl !RefUnwindSafe for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl !RefUnwindSafe for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl !RefUnwindSafe for Ast",1,["leo_ast::Ast"]],["impl RefUnwindSafe for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl RefUnwindSafe for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl RefUnwindSafe for Expression",1,["leo_ast::expressions::Expression"]],["impl RefUnwindSafe for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl RefUnwindSafe for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl RefUnwindSafe for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl RefUnwindSafe for Mode",1,["leo_ast::functions::mode::Mode"]],["impl RefUnwindSafe for Variant",1,["leo_ast::functions::variant::Variant"]],["impl RefUnwindSafe for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl RefUnwindSafe for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl RefUnwindSafe for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl RefUnwindSafe for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl RefUnwindSafe for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl RefUnwindSafe for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl RefUnwindSafe for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl RefUnwindSafe for Type",1,["leo_ast::types::type_::Type"]],["impl RefUnwindSafe for Value",1,["leo_ast::value::Value"]],["impl RefUnwindSafe for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl RefUnwindSafe for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl RefUnwindSafe for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl RefUnwindSafe for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl RefUnwindSafe for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl RefUnwindSafe for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl RefUnwindSafe for Location",1,["leo_ast::common::location::Location"]],["impl RefUnwindSafe for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl RefUnwindSafe for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl RefUnwindSafe for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl RefUnwindSafe for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl RefUnwindSafe for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl RefUnwindSafe for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl RefUnwindSafe for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl RefUnwindSafe for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl RefUnwindSafe for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl RefUnwindSafe for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl RefUnwindSafe for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl RefUnwindSafe for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl RefUnwindSafe for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl RefUnwindSafe for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl RefUnwindSafe for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl RefUnwindSafe for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl RefUnwindSafe for Input",1,["leo_ast::functions::input::Input"]],["impl RefUnwindSafe for Output",1,["leo_ast::functions::output::Output"]],["impl RefUnwindSafe for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl RefUnwindSafe for Mapping",1,["leo_ast::mapping::Mapping"]],["impl RefUnwindSafe for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl RefUnwindSafe for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl RefUnwindSafe for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl RefUnwindSafe for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl RefUnwindSafe for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl RefUnwindSafe for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl RefUnwindSafe for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl RefUnwindSafe for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl RefUnwindSafe for Member",1,["leo_ast::struct::member::Member"]],["impl RefUnwindSafe for Composite",1,["leo_ast::struct::Composite"]],["impl RefUnwindSafe for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl RefUnwindSafe for Stub",1,["leo_ast::stub::Stub"]],["impl RefUnwindSafe for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl RefUnwindSafe for FutureType",1,["leo_ast::types::future::FutureType"]],["impl RefUnwindSafe for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl RefUnwindSafe for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl RefUnwindSafe for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> RefUnwindSafe for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl RefUnwindSafe for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl RefUnwindSafe for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl RefUnwindSafe for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !RefUnwindSafe for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !RefUnwindSafe for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !RefUnwindSafe for Handler",1,["leo_errors::emitter::Handler"]],["impl !RefUnwindSafe for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl RefUnwindSafe for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl RefUnwindSafe for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl RefUnwindSafe for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl RefUnwindSafe for LeoError",1,["leo_errors::errors::LeoError"]],["impl RefUnwindSafe for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl RefUnwindSafe for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl RefUnwindSafe for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl RefUnwindSafe for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl RefUnwindSafe for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl RefUnwindSafe for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl RefUnwindSafe for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl RefUnwindSafe for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl RefUnwindSafe for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl RefUnwindSafe for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl RefUnwindSafe for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl RefUnwindSafe for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl RefUnwindSafe for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl RefUnwindSafe for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl RefUnwindSafe for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> RefUnwindSafe for Buffer<T>
    where\n T: RefUnwindSafe,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !RefUnwindSafe for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl RefUnwindSafe for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl RefUnwindSafe for Value",1,["leo_interpreter::value::Value"]],["impl RefUnwindSafe for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl RefUnwindSafe for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl RefUnwindSafe for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl RefUnwindSafe for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl RefUnwindSafe for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl RefUnwindSafe for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl RefUnwindSafe for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl RefUnwindSafe for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl RefUnwindSafe for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl RefUnwindSafe for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl RefUnwindSafe for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl RefUnwindSafe for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl RefUnwindSafe for Future",1,["leo_interpreter::value::Future"]],["impl RefUnwindSafe for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !RefUnwindSafe for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !RefUnwindSafe for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !RefUnwindSafe for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !RefUnwindSafe for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> RefUnwindSafe for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> RefUnwindSafe for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl RefUnwindSafe for Commands",1,["leo_lang::cli::cli::Commands"]],["impl RefUnwindSafe for Account",1,["leo_lang::cli::commands::account::Account"]],["impl RefUnwindSafe for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl RefUnwindSafe for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl RefUnwindSafe for CLI",1,["leo_lang::cli::cli::CLI"]],["impl RefUnwindSafe for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl RefUnwindSafe for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl RefUnwindSafe for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl RefUnwindSafe for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl RefUnwindSafe for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl RefUnwindSafe for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl RefUnwindSafe for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl RefUnwindSafe for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl RefUnwindSafe for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl RefUnwindSafe for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl RefUnwindSafe for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl RefUnwindSafe for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl RefUnwindSafe for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl RefUnwindSafe for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl RefUnwindSafe for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl RefUnwindSafe for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl RefUnwindSafe for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl RefUnwindSafe for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl RefUnwindSafe for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl RefUnwindSafe for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl RefUnwindSafe for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl RefUnwindSafe for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl RefUnwindSafe for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> RefUnwindSafe for Format<F, T>
    where\n F: RefUnwindSafe,\n T: RefUnwindSafe,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl RefUnwindSafe for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl RefUnwindSafe for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl RefUnwindSafe for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl RefUnwindSafe for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl RefUnwindSafe for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl RefUnwindSafe for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl RefUnwindSafe for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl RefUnwindSafe for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl RefUnwindSafe for Package",1,["leo_package::package::Package"]],["impl RefUnwindSafe for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl RefUnwindSafe for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl RefUnwindSafe for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> RefUnwindSafe for Env<N>
    where\n <N as Environment>::Field: RefUnwindSafe,\n <N as Environment>::Scalar: RefUnwindSafe,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl RefUnwindSafe for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl RefUnwindSafe for Token",1,["leo_parser::tokenizer::token::Token"]],["impl RefUnwindSafe for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !RefUnwindSafe for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !RefUnwindSafe for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !RefUnwindSafe for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !RefUnwindSafe for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl !RefUnwindSafe for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl !RefUnwindSafe for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl RefUnwindSafe for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl RefUnwindSafe for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl RefUnwindSafe for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl RefUnwindSafe for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl RefUnwindSafe for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl RefUnwindSafe for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl RefUnwindSafe for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl RefUnwindSafe for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl RefUnwindSafe for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl RefUnwindSafe for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl RefUnwindSafe for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl RefUnwindSafe for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl RefUnwindSafe for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !RefUnwindSafe for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !RefUnwindSafe for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !RefUnwindSafe for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !RefUnwindSafe for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !RefUnwindSafe for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !RefUnwindSafe for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !RefUnwindSafe for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !RefUnwindSafe for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !RefUnwindSafe for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !RefUnwindSafe for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !RefUnwindSafe for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !RefUnwindSafe for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> RefUnwindSafe for Replacer<F>
    where\n F: RefUnwindSafe,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> RefUnwindSafe for RangeIterator<I>
    where\n I: RefUnwindSafe,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> RefUnwindSafe for DiGraphError<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> RefUnwindSafe for DiGraph<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> RefUnwindSafe for TreeNode<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl RefUnwindSafe for Location",1,["leo_retriever::program_context::location::Location"]],["impl RefUnwindSafe for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl RefUnwindSafe for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl RefUnwindSafe for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl RefUnwindSafe for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl RefUnwindSafe for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> RefUnwindSafe for Retriever<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !RefUnwindSafe for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !RefUnwindSafe for Interner",1,["leo_span::symbol::Interner"]],["impl !RefUnwindSafe for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl RefUnwindSafe for FileName",1,["leo_span::source_map::FileName"]],["impl RefUnwindSafe for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl RefUnwindSafe for LineCol",1,["leo_span::source_map::LineCol"]],["impl RefUnwindSafe for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl RefUnwindSafe for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl RefUnwindSafe for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl RefUnwindSafe for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl RefUnwindSafe for BytePos",1,["leo_span::span::BytePos"]],["impl RefUnwindSafe for CharPos",1,["leo_span::span::CharPos"]],["impl RefUnwindSafe for Span",1,["leo_span::span::Span"]],["impl RefUnwindSafe for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl RefUnwindSafe for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl RefUnwindSafe for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl RefUnwindSafe for TestError",1,["leo_test_framework::error::TestError"]],["impl RefUnwindSafe for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl RefUnwindSafe for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl RefUnwindSafe for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl RefUnwindSafe for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl RefUnwindSafe for Test",1,["leo_test_framework::runner::Test"]],["impl RefUnwindSafe for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl RefUnwindSafe for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl RefUnwindSafe for Scope",1,["leo_abnf::Scope"]],["impl<'a> RefUnwindSafe for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl !RefUnwindSafe for Statement",1,["leo_ast::statement::Statement"]],["impl !RefUnwindSafe for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl !RefUnwindSafe for Function",1,["leo_ast::functions::Function"]],["impl !RefUnwindSafe for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl !RefUnwindSafe for Program",1,["leo_ast::program::Program"]],["impl !RefUnwindSafe for Block",1,["leo_ast::statement::block::Block"]],["impl !RefUnwindSafe for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl !RefUnwindSafe for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl !RefUnwindSafe for Ast",1,["leo_ast::Ast"]],["impl RefUnwindSafe for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl RefUnwindSafe for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl RefUnwindSafe for Expression",1,["leo_ast::expressions::Expression"]],["impl RefUnwindSafe for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl RefUnwindSafe for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl RefUnwindSafe for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl RefUnwindSafe for Mode",1,["leo_ast::functions::mode::Mode"]],["impl RefUnwindSafe for Variant",1,["leo_ast::functions::variant::Variant"]],["impl RefUnwindSafe for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl RefUnwindSafe for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl RefUnwindSafe for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl RefUnwindSafe for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl RefUnwindSafe for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl RefUnwindSafe for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl RefUnwindSafe for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl RefUnwindSafe for Type",1,["leo_ast::types::type_::Type"]],["impl RefUnwindSafe for Value",1,["leo_ast::value::Value"]],["impl RefUnwindSafe for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl RefUnwindSafe for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl RefUnwindSafe for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl RefUnwindSafe for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl RefUnwindSafe for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl RefUnwindSafe for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl RefUnwindSafe for Location",1,["leo_ast::common::location::Location"]],["impl RefUnwindSafe for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl RefUnwindSafe for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl RefUnwindSafe for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl RefUnwindSafe for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl RefUnwindSafe for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl RefUnwindSafe for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl RefUnwindSafe for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl RefUnwindSafe for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl RefUnwindSafe for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl RefUnwindSafe for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl RefUnwindSafe for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl RefUnwindSafe for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl RefUnwindSafe for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl RefUnwindSafe for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl RefUnwindSafe for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl RefUnwindSafe for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl RefUnwindSafe for Input",1,["leo_ast::functions::input::Input"]],["impl RefUnwindSafe for Output",1,["leo_ast::functions::output::Output"]],["impl RefUnwindSafe for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl RefUnwindSafe for Mapping",1,["leo_ast::mapping::Mapping"]],["impl RefUnwindSafe for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl RefUnwindSafe for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl RefUnwindSafe for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl RefUnwindSafe for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl RefUnwindSafe for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl RefUnwindSafe for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl RefUnwindSafe for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl RefUnwindSafe for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl RefUnwindSafe for Member",1,["leo_ast::struct::member::Member"]],["impl RefUnwindSafe for Composite",1,["leo_ast::struct::Composite"]],["impl RefUnwindSafe for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl RefUnwindSafe for Stub",1,["leo_ast::stub::Stub"]],["impl RefUnwindSafe for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl RefUnwindSafe for FutureType",1,["leo_ast::types::future::FutureType"]],["impl RefUnwindSafe for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl RefUnwindSafe for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl RefUnwindSafe for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> RefUnwindSafe for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl RefUnwindSafe for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl RefUnwindSafe for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl RefUnwindSafe for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !RefUnwindSafe for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !RefUnwindSafe for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !RefUnwindSafe for Handler",1,["leo_errors::emitter::Handler"]],["impl !RefUnwindSafe for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl RefUnwindSafe for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl RefUnwindSafe for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl RefUnwindSafe for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl RefUnwindSafe for LeoError",1,["leo_errors::errors::LeoError"]],["impl RefUnwindSafe for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl RefUnwindSafe for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl RefUnwindSafe for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl RefUnwindSafe for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl RefUnwindSafe for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl RefUnwindSafe for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl RefUnwindSafe for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl RefUnwindSafe for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl RefUnwindSafe for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl RefUnwindSafe for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl RefUnwindSafe for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl RefUnwindSafe for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl RefUnwindSafe for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl RefUnwindSafe for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl RefUnwindSafe for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> RefUnwindSafe for Buffer<T>
    where\n T: RefUnwindSafe,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !RefUnwindSafe for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl RefUnwindSafe for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl RefUnwindSafe for Value",1,["leo_interpreter::value::Value"]],["impl RefUnwindSafe for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl RefUnwindSafe for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl RefUnwindSafe for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl RefUnwindSafe for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl RefUnwindSafe for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl RefUnwindSafe for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl RefUnwindSafe for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl RefUnwindSafe for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl RefUnwindSafe for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl RefUnwindSafe for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl RefUnwindSafe for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl RefUnwindSafe for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl RefUnwindSafe for Future",1,["leo_interpreter::value::Future"]],["impl RefUnwindSafe for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !RefUnwindSafe for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !RefUnwindSafe for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !RefUnwindSafe for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !RefUnwindSafe for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> RefUnwindSafe for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> RefUnwindSafe for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl RefUnwindSafe for Commands",1,["leo_lang::cli::cli::Commands"]],["impl RefUnwindSafe for Account",1,["leo_lang::cli::commands::account::Account"]],["impl RefUnwindSafe for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl RefUnwindSafe for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl RefUnwindSafe for CLI",1,["leo_lang::cli::cli::CLI"]],["impl RefUnwindSafe for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl RefUnwindSafe for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl RefUnwindSafe for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl RefUnwindSafe for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl RefUnwindSafe for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl RefUnwindSafe for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl RefUnwindSafe for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl RefUnwindSafe for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl RefUnwindSafe for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl RefUnwindSafe for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl RefUnwindSafe for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl RefUnwindSafe for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl RefUnwindSafe for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl RefUnwindSafe for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl RefUnwindSafe for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl RefUnwindSafe for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl RefUnwindSafe for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl RefUnwindSafe for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl RefUnwindSafe for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl RefUnwindSafe for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl RefUnwindSafe for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl RefUnwindSafe for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl RefUnwindSafe for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> RefUnwindSafe for Format<F, T>
    where\n F: RefUnwindSafe,\n T: RefUnwindSafe,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl RefUnwindSafe for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl RefUnwindSafe for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl RefUnwindSafe for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl RefUnwindSafe for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl RefUnwindSafe for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl RefUnwindSafe for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl RefUnwindSafe for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl RefUnwindSafe for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl RefUnwindSafe for Package",1,["leo_package::package::Package"]],["impl RefUnwindSafe for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl RefUnwindSafe for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl RefUnwindSafe for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> RefUnwindSafe for Env<N>
    where\n <N as Environment>::Field: RefUnwindSafe,\n <N as Environment>::Scalar: RefUnwindSafe,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl RefUnwindSafe for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl RefUnwindSafe for Token",1,["leo_parser::tokenizer::token::Token"]],["impl RefUnwindSafe for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !RefUnwindSafe for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !RefUnwindSafe for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl !RefUnwindSafe for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !RefUnwindSafe for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl !RefUnwindSafe for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl !RefUnwindSafe for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl RefUnwindSafe for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl RefUnwindSafe for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl RefUnwindSafe for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl RefUnwindSafe for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl RefUnwindSafe for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl RefUnwindSafe for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl RefUnwindSafe for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl RefUnwindSafe for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl RefUnwindSafe for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl RefUnwindSafe for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl RefUnwindSafe for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl RefUnwindSafe for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl RefUnwindSafe for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl RefUnwindSafe for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl RefUnwindSafe for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !RefUnwindSafe for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !RefUnwindSafe for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> !RefUnwindSafe for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !RefUnwindSafe for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !RefUnwindSafe for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !RefUnwindSafe for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !RefUnwindSafe for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !RefUnwindSafe for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> !RefUnwindSafe for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !RefUnwindSafe for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !RefUnwindSafe for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !RefUnwindSafe for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !RefUnwindSafe for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !RefUnwindSafe for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> RefUnwindSafe for Replacer<F>
    where\n F: RefUnwindSafe,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> RefUnwindSafe for RangeIterator<I>
    where\n I: RefUnwindSafe,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> RefUnwindSafe for DiGraphError<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> RefUnwindSafe for DiGraph<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> RefUnwindSafe for TreeNode<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl RefUnwindSafe for Location",1,["leo_retriever::program_context::location::Location"]],["impl RefUnwindSafe for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl RefUnwindSafe for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl RefUnwindSafe for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl RefUnwindSafe for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl RefUnwindSafe for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> RefUnwindSafe for Retriever<N>
    where\n N: RefUnwindSafe,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl !RefUnwindSafe for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl !RefUnwindSafe for Interner",1,["leo_span::symbol::Interner"]],["impl !RefUnwindSafe for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl RefUnwindSafe for FileName",1,["leo_span::source_map::FileName"]],["impl RefUnwindSafe for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl RefUnwindSafe for LineCol",1,["leo_span::source_map::LineCol"]],["impl RefUnwindSafe for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl RefUnwindSafe for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl RefUnwindSafe for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl RefUnwindSafe for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl RefUnwindSafe for BytePos",1,["leo_span::span::BytePos"]],["impl RefUnwindSafe for CharPos",1,["leo_span::span::CharPos"]],["impl RefUnwindSafe for Span",1,["leo_span::span::Span"]],["impl RefUnwindSafe for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl RefUnwindSafe for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl RefUnwindSafe for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl RefUnwindSafe for TestError",1,["leo_test_framework::error::TestError"]],["impl RefUnwindSafe for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl RefUnwindSafe for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl RefUnwindSafe for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl RefUnwindSafe for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl RefUnwindSafe for Test",1,["leo_test_framework::runner::Test"]],["impl RefUnwindSafe for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl RefUnwindSafe for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[678,28440,1581,10015,8999,11987,5734,1605,16464,3242,5829,3133]} \ No newline at end of file +//{"start":57,"fragment_lengths":[678,28440,1581,10015,8999,11987,5734,1605,18249,3242,5829,3133]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index d8e0b73dcf..d4ee7b415f 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_abnf",[["impl UnwindSafe for Scope",1,["leo_abnf::Scope"]],["impl<'a> UnwindSafe for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl UnwindSafe for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl UnwindSafe for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl UnwindSafe for Expression",1,["leo_ast::expressions::Expression"]],["impl UnwindSafe for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl UnwindSafe for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl UnwindSafe for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl UnwindSafe for Mode",1,["leo_ast::functions::mode::Mode"]],["impl UnwindSafe for Variant",1,["leo_ast::functions::variant::Variant"]],["impl UnwindSafe for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl UnwindSafe for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl UnwindSafe for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl UnwindSafe for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl UnwindSafe for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl UnwindSafe for Statement",1,["leo_ast::statement::Statement"]],["impl UnwindSafe for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl UnwindSafe for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl UnwindSafe for Type",1,["leo_ast::types::type_::Type"]],["impl UnwindSafe for Value",1,["leo_ast::value::Value"]],["impl UnwindSafe for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl UnwindSafe for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl UnwindSafe for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl UnwindSafe for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl UnwindSafe for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl UnwindSafe for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl UnwindSafe for Location",1,["leo_ast::common::location::Location"]],["impl UnwindSafe for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl UnwindSafe for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl UnwindSafe for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl UnwindSafe for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl UnwindSafe for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl UnwindSafe for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl UnwindSafe for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl UnwindSafe for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl UnwindSafe for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl UnwindSafe for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl UnwindSafe for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl UnwindSafe for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl UnwindSafe for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl UnwindSafe for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl UnwindSafe for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl UnwindSafe for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl UnwindSafe for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl UnwindSafe for Input",1,["leo_ast::functions::input::Input"]],["impl UnwindSafe for Output",1,["leo_ast::functions::output::Output"]],["impl UnwindSafe for Function",1,["leo_ast::functions::Function"]],["impl UnwindSafe for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl UnwindSafe for Mapping",1,["leo_ast::mapping::Mapping"]],["impl UnwindSafe for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl UnwindSafe for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl UnwindSafe for Program",1,["leo_ast::program::Program"]],["impl UnwindSafe for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl UnwindSafe for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl UnwindSafe for Block",1,["leo_ast::statement::block::Block"]],["impl UnwindSafe for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl UnwindSafe for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl UnwindSafe for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl UnwindSafe for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl UnwindSafe for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl UnwindSafe for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl UnwindSafe for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl UnwindSafe for Ast",1,["leo_ast::Ast"]],["impl UnwindSafe for Member",1,["leo_ast::struct::member::Member"]],["impl UnwindSafe for Composite",1,["leo_ast::struct::Composite"]],["impl UnwindSafe for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl UnwindSafe for Stub",1,["leo_ast::stub::Stub"]],["impl UnwindSafe for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl UnwindSafe for FutureType",1,["leo_ast::types::future::FutureType"]],["impl UnwindSafe for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl UnwindSafe for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl UnwindSafe for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> UnwindSafe for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl UnwindSafe for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl UnwindSafe for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl UnwindSafe for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !UnwindSafe for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !UnwindSafe for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !UnwindSafe for Handler",1,["leo_errors::emitter::Handler"]],["impl !UnwindSafe for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl UnwindSafe for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl UnwindSafe for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl UnwindSafe for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl UnwindSafe for LeoError",1,["leo_errors::errors::LeoError"]],["impl UnwindSafe for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl UnwindSafe for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl UnwindSafe for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl UnwindSafe for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl UnwindSafe for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl UnwindSafe for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl UnwindSafe for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl UnwindSafe for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl UnwindSafe for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl UnwindSafe for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl UnwindSafe for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl UnwindSafe for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl UnwindSafe for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl UnwindSafe for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl UnwindSafe for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> UnwindSafe for Buffer<T>
    where\n T: UnwindSafe,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !UnwindSafe for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl UnwindSafe for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl UnwindSafe for Value",1,["leo_interpreter::value::Value"]],["impl UnwindSafe for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl UnwindSafe for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl UnwindSafe for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl UnwindSafe for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl UnwindSafe for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl UnwindSafe for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl UnwindSafe for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl UnwindSafe for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl UnwindSafe for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl UnwindSafe for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl UnwindSafe for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl UnwindSafe for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl UnwindSafe for Future",1,["leo_interpreter::value::Future"]],["impl UnwindSafe for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !UnwindSafe for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !UnwindSafe for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !UnwindSafe for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !UnwindSafe for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> UnwindSafe for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> UnwindSafe for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl UnwindSafe for Commands",1,["leo_lang::cli::cli::Commands"]],["impl UnwindSafe for Account",1,["leo_lang::cli::commands::account::Account"]],["impl UnwindSafe for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl UnwindSafe for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl UnwindSafe for CLI",1,["leo_lang::cli::cli::CLI"]],["impl UnwindSafe for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl UnwindSafe for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl UnwindSafe for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl UnwindSafe for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl UnwindSafe for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl UnwindSafe for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl UnwindSafe for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl UnwindSafe for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl UnwindSafe for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl UnwindSafe for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl UnwindSafe for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl UnwindSafe for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl UnwindSafe for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl UnwindSafe for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl UnwindSafe for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl UnwindSafe for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl UnwindSafe for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl UnwindSafe for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl UnwindSafe for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl UnwindSafe for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl UnwindSafe for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl UnwindSafe for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl UnwindSafe for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> UnwindSafe for Format<F, T>
    where\n F: UnwindSafe,\n T: UnwindSafe,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl UnwindSafe for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl UnwindSafe for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl UnwindSafe for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl UnwindSafe for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl UnwindSafe for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl UnwindSafe for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl UnwindSafe for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl UnwindSafe for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl UnwindSafe for Package",1,["leo_package::package::Package"]],["impl UnwindSafe for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl UnwindSafe for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl UnwindSafe for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> UnwindSafe for Env<N>
    where\n <N as Environment>::Field: UnwindSafe,\n <N as Environment>::Scalar: UnwindSafe,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl UnwindSafe for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl UnwindSafe for Token",1,["leo_parser::tokenizer::token::Token"]],["impl UnwindSafe for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !UnwindSafe for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !UnwindSafe for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !UnwindSafe for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl UnwindSafe for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl UnwindSafe for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl UnwindSafe for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl UnwindSafe for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl UnwindSafe for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl UnwindSafe for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl UnwindSafe for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl UnwindSafe for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl UnwindSafe for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl UnwindSafe for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl UnwindSafe for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl UnwindSafe for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl UnwindSafe for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl UnwindSafe for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl UnwindSafe for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl UnwindSafe for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !UnwindSafe for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !UnwindSafe for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !UnwindSafe for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !UnwindSafe for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !UnwindSafe for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !UnwindSafe for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !UnwindSafe for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !UnwindSafe for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !UnwindSafe for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !UnwindSafe for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !UnwindSafe for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !UnwindSafe for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> UnwindSafe for Replacer<F>
    where\n F: UnwindSafe,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> UnwindSafe for RangeIterator<I>
    where\n I: UnwindSafe,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> UnwindSafe for DiGraphError<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> UnwindSafe for DiGraph<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> UnwindSafe for TreeNode<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl UnwindSafe for Location",1,["leo_retriever::program_context::location::Location"]],["impl UnwindSafe for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl UnwindSafe for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl UnwindSafe for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl UnwindSafe for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl UnwindSafe for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> UnwindSafe for Retriever<N>
    where\n N: UnwindSafe,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl UnwindSafe for FileName",1,["leo_span::source_map::FileName"]],["impl UnwindSafe for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl UnwindSafe for LineCol",1,["leo_span::source_map::LineCol"]],["impl UnwindSafe for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl UnwindSafe for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl UnwindSafe for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl UnwindSafe for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl UnwindSafe for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl UnwindSafe for BytePos",1,["leo_span::span::BytePos"]],["impl UnwindSafe for CharPos",1,["leo_span::span::CharPos"]],["impl UnwindSafe for Span",1,["leo_span::span::Span"]],["impl UnwindSafe for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl UnwindSafe for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl UnwindSafe for Interner",1,["leo_span::symbol::Interner"]],["impl UnwindSafe for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl UnwindSafe for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl UnwindSafe for TestError",1,["leo_test_framework::error::TestError"]],["impl UnwindSafe for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl UnwindSafe for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl UnwindSafe for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl UnwindSafe for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl UnwindSafe for Test",1,["leo_test_framework::runner::Test"]],["impl UnwindSafe for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl UnwindSafe for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); + var implementors = Object.fromEntries([["leo_abnf",[["impl UnwindSafe for Scope",1,["leo_abnf::Scope"]],["impl<'a> UnwindSafe for Processor<'a>",1,["leo_abnf::Processor"]]]],["leo_ast",[["impl UnwindSafe for AccessExpression",1,["leo_ast::expressions::access::AccessExpression"]],["impl UnwindSafe for BinaryOperation",1,["leo_ast::expressions::binary::BinaryOperation"]],["impl UnwindSafe for Expression",1,["leo_ast::expressions::Expression"]],["impl UnwindSafe for Literal",1,["leo_ast::expressions::literal::Literal"]],["impl UnwindSafe for UnaryOperation",1,["leo_ast::expressions::unary::UnaryOperation"]],["impl UnwindSafe for CoreFunction",1,["leo_ast::functions::core_function::CoreFunction"]],["impl UnwindSafe for Mode",1,["leo_ast::functions::mode::Mode"]],["impl UnwindSafe for Variant",1,["leo_ast::functions::variant::Variant"]],["impl UnwindSafe for GroupCoordinate",1,["leo_ast::groups::group_coordinate::GroupCoordinate"]],["impl UnwindSafe for GroupLiteral",1,["leo_ast::groups::group_literal::GroupLiteral"]],["impl UnwindSafe for AssertVariant",1,["leo_ast::statement::assert::AssertVariant"]],["impl UnwindSafe for ConsoleFunction",1,["leo_ast::statement::console::console_function::ConsoleFunction"]],["impl UnwindSafe for DeclarationType",1,["leo_ast::statement::definition::declaration_type::DeclarationType"]],["impl UnwindSafe for Statement",1,["leo_ast::statement::Statement"]],["impl UnwindSafe for CoreConstant",1,["leo_ast::types::core_constant::CoreConstant"]],["impl UnwindSafe for IntegerType",1,["leo_ast::types::integer_type::IntegerType"]],["impl UnwindSafe for Type",1,["leo_ast::types::type_::Type"]],["impl UnwindSafe for Value",1,["leo_ast::value::Value"]],["impl UnwindSafe for ArrayAccess",1,["leo_ast::access::array_access::ArrayAccess"]],["impl UnwindSafe for AssociatedConstant",1,["leo_ast::access::associated_constant_access::AssociatedConstant"]],["impl UnwindSafe for AssociatedFunction",1,["leo_ast::access::associated_function_access::AssociatedFunction"]],["impl UnwindSafe for MemberAccess",1,["leo_ast::access::member_access::MemberAccess"]],["impl UnwindSafe for TupleAccess",1,["leo_ast::access::tuple_access::TupleAccess"]],["impl UnwindSafe for Identifier",1,["leo_ast::common::identifier::Identifier"]],["impl UnwindSafe for Location",1,["leo_ast::common::location::Location"]],["impl UnwindSafe for NodeBuilder",1,["leo_ast::common::node_builder::NodeBuilder"]],["impl UnwindSafe for NodeBuilderInner",1,["leo_ast::common::node_builder::NodeBuilderInner"]],["impl UnwindSafe for NonNegativeNumber",1,["leo_ast::common::positive_number::NonNegativeNumber"]],["impl UnwindSafe for StaticString",1,["leo_ast::common::static_string::StaticString"]],["impl UnwindSafe for ArrayExpression",1,["leo_ast::expressions::array::ArrayExpression"]],["impl UnwindSafe for BinaryExpression",1,["leo_ast::expressions::binary::BinaryExpression"]],["impl UnwindSafe for CallExpression",1,["leo_ast::expressions::call::CallExpression"]],["impl UnwindSafe for CastExpression",1,["leo_ast::expressions::cast::CastExpression"]],["impl UnwindSafe for ErrExpression",1,["leo_ast::expressions::err::ErrExpression"]],["impl UnwindSafe for LocatorExpression",1,["leo_ast::expressions::locator::LocatorExpression"]],["impl UnwindSafe for StructExpression",1,["leo_ast::expressions::struct_init::StructExpression"]],["impl UnwindSafe for StructVariableInitializer",1,["leo_ast::expressions::struct_init::StructVariableInitializer"]],["impl UnwindSafe for TernaryExpression",1,["leo_ast::expressions::ternary::TernaryExpression"]],["impl UnwindSafe for TupleExpression",1,["leo_ast::expressions::tuple::TupleExpression"]],["impl UnwindSafe for UnaryExpression",1,["leo_ast::expressions::unary::UnaryExpression"]],["impl UnwindSafe for UnitExpression",1,["leo_ast::expressions::unit::UnitExpression"]],["impl UnwindSafe for Annotation",1,["leo_ast::functions::annotation::Annotation"]],["impl UnwindSafe for Input",1,["leo_ast::functions::input::Input"]],["impl UnwindSafe for Output",1,["leo_ast::functions::output::Output"]],["impl UnwindSafe for Function",1,["leo_ast::functions::Function"]],["impl UnwindSafe for GroupTuple",1,["leo_ast::groups::group_literal::GroupTuple"]],["impl UnwindSafe for Mapping",1,["leo_ast::mapping::Mapping"]],["impl UnwindSafe for ProgramId",1,["leo_ast::program::program_id::ProgramId"]],["impl UnwindSafe for ProgramScope",1,["leo_ast::program::program_scope::ProgramScope"]],["impl UnwindSafe for Program",1,["leo_ast::program::Program"]],["impl UnwindSafe for AssertStatement",1,["leo_ast::statement::assert::AssertStatement"]],["impl UnwindSafe for AssignStatement",1,["leo_ast::statement::assign::AssignStatement"]],["impl UnwindSafe for Block",1,["leo_ast::statement::block::Block"]],["impl UnwindSafe for ConditionalStatement",1,["leo_ast::statement::conditional::ConditionalStatement"]],["impl UnwindSafe for ConsoleStatement",1,["leo_ast::statement::console::console_statement::ConsoleStatement"]],["impl UnwindSafe for ConstDeclaration",1,["leo_ast::statement::const_::ConstDeclaration"]],["impl UnwindSafe for DefinitionStatement",1,["leo_ast::statement::definition::DefinitionStatement"]],["impl UnwindSafe for ExpressionStatement",1,["leo_ast::statement::expression::ExpressionStatement"]],["impl UnwindSafe for IterationStatement",1,["leo_ast::statement::iteration::IterationStatement"]],["impl UnwindSafe for ReturnStatement",1,["leo_ast::statement::return_::ReturnStatement"]],["impl UnwindSafe for Ast",1,["leo_ast::Ast"]],["impl UnwindSafe for Member",1,["leo_ast::struct::member::Member"]],["impl UnwindSafe for Composite",1,["leo_ast::struct::Composite"]],["impl UnwindSafe for FunctionStub",1,["leo_ast::stub::function_stub::FunctionStub"]],["impl UnwindSafe for Stub",1,["leo_ast::stub::Stub"]],["impl UnwindSafe for ArrayType",1,["leo_ast::types::array::ArrayType"]],["impl UnwindSafe for FutureType",1,["leo_ast::types::future::FutureType"]],["impl UnwindSafe for MappingType",1,["leo_ast::types::mapping::MappingType"]],["impl UnwindSafe for CompositeType",1,["leo_ast::types::struct_type::CompositeType"]],["impl UnwindSafe for TupleType",1,["leo_ast::types::tuple::TupleType"]],["impl<'a> UnwindSafe for DisplayDecimal<'a>",1,["leo_ast::expressions::literal::DisplayDecimal"]]]],["leo_compiler",[["impl UnwindSafe for BuildOptions",1,["leo_compiler::options::BuildOptions"]],["impl UnwindSafe for CompilerOptions",1,["leo_compiler::options::CompilerOptions"]],["impl UnwindSafe for OutputOptions",1,["leo_compiler::options::OutputOptions"]],["impl<'a, N> !UnwindSafe for Compiler<'a, N>",1,["leo_compiler::compiler::Compiler"]]]],["leo_errors",[["impl !UnwindSafe for BufferEmitter",1,["leo_errors::emitter::BufferEmitter"]],["impl !UnwindSafe for Handler",1,["leo_errors::emitter::Handler"]],["impl !UnwindSafe for HandlerInner",1,["leo_errors::emitter::HandlerInner"]],["impl UnwindSafe for AstError",1,["leo_errors::errors::ast::ast_errors::AstError"]],["impl UnwindSafe for CliError",1,["leo_errors::errors::cli::cli_errors::CliError"]],["impl UnwindSafe for CompilerError",1,["leo_errors::errors::compiler::compiler_errors::CompilerError"]],["impl UnwindSafe for LeoError",1,["leo_errors::errors::LeoError"]],["impl UnwindSafe for LeoWarning",1,["leo_errors::errors::LeoWarning"]],["impl UnwindSafe for FlattenError",1,["leo_errors::errors::flattener::flattener_errors::FlattenError"]],["impl UnwindSafe for LoopUnrollerError",1,["leo_errors::errors::loop_unroller::loop_unroller_errors::LoopUnrollerError"]],["impl UnwindSafe for PackageError",1,["leo_errors::errors::package::package_errors::PackageError"]],["impl UnwindSafe for ParserError",1,["leo_errors::errors::parser::parser_errors::ParserError"]],["impl UnwindSafe for ParserWarning",1,["leo_errors::errors::parser::parser_warnings::ParserWarning"]],["impl UnwindSafe for StaticAnalyzerError",1,["leo_errors::errors::static_analyzer::static_analyzer_error::StaticAnalyzerError"]],["impl UnwindSafe for StaticAnalyzerWarning",1,["leo_errors::errors::static_analyzer::static_analyzer_warning::StaticAnalyzerWarning"]],["impl UnwindSafe for TypeCheckerError",1,["leo_errors::errors::type_checker::type_checker_error::TypeCheckerError"]],["impl UnwindSafe for TypeCheckerWarning",1,["leo_errors::errors::type_checker::type_checker_warning::TypeCheckerWarning"]],["impl UnwindSafe for UtilError",1,["leo_errors::errors::utils::util_errors::UtilError"]],["impl UnwindSafe for Backtraced",1,["leo_errors::common::backtraced::Backtraced"]],["impl UnwindSafe for Formatted",1,["leo_errors::common::formatted::Formatted"]],["impl UnwindSafe for StderrEmitter",1,["leo_errors::emitter::StderrEmitter"]],["impl UnwindSafe for InterpreterHalt",1,["leo_errors::errors::interpreter_halt::InterpreterHalt"]],["impl<T> UnwindSafe for Buffer<T>
    where\n T: UnwindSafe,
    ",1,["leo_errors::emitter::Buffer"]]]],["leo_interpreter",[["impl !UnwindSafe for Interpreter",1,["leo_interpreter::interpreter::Interpreter"]],["impl UnwindSafe for InterpreterAction",1,["leo_interpreter::interpreter::InterpreterAction"]],["impl UnwindSafe for Value",1,["leo_interpreter::value::Value"]],["impl UnwindSafe for ContextStack",1,["leo_interpreter::cursor::ContextStack"]],["impl UnwindSafe for FunctionContext",1,["leo_interpreter::cursor::FunctionContext"]],["impl UnwindSafe for GlobalId",1,["leo_interpreter::cursor::GlobalId"]],["impl UnwindSafe for StepResult",1,["leo_interpreter::cursor::StepResult"]],["impl UnwindSafe for DialoguerUi",1,["leo_interpreter::dialoguer_input::DialoguerUi"]],["impl UnwindSafe for Breakpoint",1,["leo_interpreter::interpreter::Breakpoint"]],["impl UnwindSafe for Watchpoint",1,["leo_interpreter::interpreter::Watchpoint"]],["impl UnwindSafe for DebuggerLayout",1,["leo_interpreter::ratatui_ui::DebuggerLayout"]],["impl UnwindSafe for DrawData",1,["leo_interpreter::ratatui_ui::DrawData"]],["impl UnwindSafe for Prompt",1,["leo_interpreter::ratatui_ui::Prompt"]],["impl UnwindSafe for RatatuiUi",1,["leo_interpreter::ratatui_ui::RatatuiUi"]],["impl UnwindSafe for AsyncExecution",1,["leo_interpreter::value::AsyncExecution"]],["impl UnwindSafe for Future",1,["leo_interpreter::value::Future"]],["impl UnwindSafe for StructContents",1,["leo_interpreter::value::StructContents"]],["impl<'a> !UnwindSafe for Element<'a>",1,["leo_interpreter::cursor::Element"]],["impl<'a> !UnwindSafe for FunctionVariant<'a>",1,["leo_interpreter::cursor::FunctionVariant"]],["impl<'a> !UnwindSafe for Cursor<'a>",1,["leo_interpreter::cursor::Cursor"]],["impl<'a> !UnwindSafe for Frame<'a>",1,["leo_interpreter::cursor::Frame"]],["impl<'a> UnwindSafe for AleoContext<'a>",1,["leo_interpreter::cursor::AleoContext"]],["impl<'a> UnwindSafe for UserData<'a>",1,["leo_interpreter::ui::UserData"]]]],["leo_lang",[["impl UnwindSafe for Commands",1,["leo_lang::cli::cli::Commands"]],["impl UnwindSafe for Account",1,["leo_lang::cli::commands::account::Account"]],["impl UnwindSafe for ExampleVariant",1,["leo_lang::cli::commands::example::ExampleVariant"]],["impl UnwindSafe for QueryCommands",1,["leo_lang::cli::commands::query::QueryCommands"]],["impl UnwindSafe for CLI",1,["leo_lang::cli::cli::CLI"]],["impl UnwindSafe for LeoAdd",1,["leo_lang::cli::commands::add::LeoAdd"]],["impl UnwindSafe for LeoBuild",1,["leo_lang::cli::commands::build::LeoBuild"]],["impl UnwindSafe for LeoClean",1,["leo_lang::cli::commands::clean::LeoClean"]],["impl UnwindSafe for LeoDebug",1,["leo_lang::cli::commands::debug::LeoDebug"]],["impl UnwindSafe for Deploy",1,["leo_lang::cli::commands::deploy::Deploy"]],["impl UnwindSafe for LeoExample",1,["leo_lang::cli::commands::example::LeoExample"]],["impl UnwindSafe for LeoExecute",1,["leo_lang::cli::commands::execute::LeoExecute"]],["impl UnwindSafe for LeoNew",1,["leo_lang::cli::commands::new::LeoNew"]],["impl UnwindSafe for LeoBlock",1,["leo_lang::cli::commands::query::block::LeoBlock"]],["impl UnwindSafe for LeoCommittee",1,["leo_lang::cli::commands::query::committee::LeoCommittee"]],["impl UnwindSafe for LeoMempool",1,["leo_lang::cli::commands::query::mempool::LeoMempool"]],["impl UnwindSafe for LeoPeers",1,["leo_lang::cli::commands::query::peers::LeoPeers"]],["impl UnwindSafe for LeoProgram",1,["leo_lang::cli::commands::query::program::LeoProgram"]],["impl UnwindSafe for StateRoot",1,["leo_lang::cli::commands::query::state_root::StateRoot"]],["impl UnwindSafe for LeoQuery",1,["leo_lang::cli::commands::query::LeoQuery"]],["impl UnwindSafe for LeoTransaction",1,["leo_lang::cli::commands::query::transaction::LeoTransaction"]],["impl UnwindSafe for LeoRemove",1,["leo_lang::cli::commands::remove::LeoRemove"]],["impl UnwindSafe for LeoRun",1,["leo_lang::cli::commands::run::LeoRun"]],["impl UnwindSafe for BuildOptions",1,["leo_lang::cli::commands::BuildOptions"]],["impl UnwindSafe for FeeOptions",1,["leo_lang::cli::commands::FeeOptions"]],["impl UnwindSafe for LeoUpdate",1,["leo_lang::cli::commands::update::LeoUpdate"]],["impl UnwindSafe for Context",1,["leo_lang::cli::helpers::context::Context"]],["impl UnwindSafe for Updater",1,["leo_lang::cli::helpers::updater::Updater"]],["impl<F, T> UnwindSafe for Format<F, T>
    where\n F: UnwindSafe,\n T: UnwindSafe,
    ",1,["leo_lang::cli::helpers::logger::Format"]]]],["leo_package",[["impl UnwindSafe for Snapshot",1,["leo_package::outputs::ast_snapshot::Snapshot"]],["impl UnwindSafe for BuildDirectory",1,["leo_package::build::directory::BuildDirectory"]],["impl UnwindSafe for ImportsDirectory",1,["leo_package::imports::directory::ImportsDirectory"]],["impl UnwindSafe for InputsDirectory",1,["leo_package::inputs::directory::InputsDirectory"]],["impl UnwindSafe for SnapshotFile",1,["leo_package::outputs::ast_snapshot::SnapshotFile"]],["impl UnwindSafe for ChecksumFile",1,["leo_package::outputs::checksum::ChecksumFile"]],["impl UnwindSafe for CircuitFile",1,["leo_package::outputs::circuit::CircuitFile"]],["impl UnwindSafe for OutputsDirectory",1,["leo_package::outputs::directory::OutputsDirectory"]],["impl UnwindSafe for Package",1,["leo_package::package::Package"]],["impl UnwindSafe for Gitignore",1,["leo_package::root::gitignore::Gitignore"]],["impl UnwindSafe for SourceDirectory",1,["leo_package::source::directory::SourceDirectory"]],["impl UnwindSafe for MainFile",1,["leo_package::source::main::MainFile"]],["impl<N> UnwindSafe for Env<N>
    where\n <N as Environment>::Field: UnwindSafe,\n <N as Environment>::Scalar: UnwindSafe,
    ",1,["leo_package::root::env::Env"]]]],["leo_parser",[["impl UnwindSafe for Delimiter",1,["leo_parser::tokenizer::token::Delimiter"]],["impl UnwindSafe for Token",1,["leo_parser::tokenizer::token::Token"]],["impl UnwindSafe for SpannedToken",1,["leo_parser::tokenizer::lexer::SpannedToken"]],["impl<'a, N> !UnwindSafe for ParserContext<'a, N>",1,["leo_parser::parser::context::ParserContext"]]]],["leo_passes",[["impl !UnwindSafe for LocalTable",1,["leo_passes::common::symbol_table::LocalTable"]],["impl !UnwindSafe for SymbolTable",1,["leo_passes::common::symbol_table::SymbolTable"]],["impl UnwindSafe for VariableType",1,["leo_passes::common::symbol_table::symbols::VariableType"]],["impl UnwindSafe for Guard",1,["leo_passes::flattening::flattener::Guard"]],["impl UnwindSafe for ReturnGuard",1,["leo_passes::flattening::flattener::ReturnGuard"]],["impl UnwindSafe for Clusivity",1,["leo_passes::loop_unrolling::range_iterator::Clusivity"]],["impl UnwindSafe for Position",1,["leo_passes::static_analysis::future_checker::Position"]],["impl UnwindSafe for Assigner",1,["leo_passes::common::assigner::Assigner"]],["impl UnwindSafe for AssignerInner",1,["leo_passes::common::assigner::AssignerInner"]],["impl UnwindSafe for RenameTable",1,["leo_passes::common::rename_table::RenameTable"]],["impl UnwindSafe for LocalTableInner",1,["leo_passes::common::symbol_table::LocalTableInner"]],["impl UnwindSafe for Finalizer",1,["leo_passes::common::symbol_table::symbols::Finalizer"]],["impl UnwindSafe for FunctionSymbol",1,["leo_passes::common::symbol_table::symbols::FunctionSymbol"]],["impl UnwindSafe for VariableSymbol",1,["leo_passes::common::symbol_table::symbols::VariableSymbol"]],["impl UnwindSafe for TypeTable",1,["leo_passes::common::type_table::TypeTable"]],["impl UnwindSafe for ConstPropagatorOutput",1,["leo_passes::const_propagation::ConstPropagatorOutput"]],["impl UnwindSafe for UnrollerOutput",1,["leo_passes::loop_unrolling::UnrollerOutput"]],["impl UnwindSafe for AwaitChecker",1,["leo_passes::static_analysis::await_checker::AwaitChecker"]],["impl UnwindSafe for NetworkLimits",1,["leo_passes::type_checking::checker::NetworkLimits"]],["impl UnwindSafe for ScopeState",1,["leo_passes::type_checking::scope_state::ScopeState"]],["impl<'a> !UnwindSafe for CodeGenerator<'a>",1,["leo_passes::code_generation::generator::CodeGenerator"]],["impl<'a> !UnwindSafe for ConstPropagator<'a>",1,["leo_passes::const_propagation::const_propagator::ConstPropagator"]],["impl<'a> !UnwindSafe for DeadCodeEliminator<'a>",1,["leo_passes::dead_code_elimination::dead_code_eliminator::DeadCodeEliminator"]],["impl<'a> !UnwindSafe for Destructurer<'a>",1,["leo_passes::destructuring::destructurer::Destructurer"]],["impl<'a> !UnwindSafe for Flattener<'a>",1,["leo_passes::flattening::flattener::Flattener"]],["impl<'a> !UnwindSafe for AssignmentRenamer<'a>",1,["leo_passes::function_inlining::assignment_renamer::AssignmentRenamer"]],["impl<'a> !UnwindSafe for FunctionInliner<'a>",1,["leo_passes::function_inlining::function_inliner::FunctionInliner"]],["impl<'a> !UnwindSafe for Duplicator<'a>",1,["leo_passes::loop_unrolling::duplicate::Duplicator"]],["impl<'a> !UnwindSafe for Unroller<'a>",1,["leo_passes::loop_unrolling::unroller::Unroller"]],["impl<'a> !UnwindSafe for FutureChecker<'a>",1,["leo_passes::static_analysis::future_checker::FutureChecker"]],["impl<'a> !UnwindSafe for StaticSingleAssigner<'a>",1,["leo_passes::static_single_assignment::static_single_assigner::StaticSingleAssigner"]],["impl<'a> !UnwindSafe for SymbolTableCreator<'a>",1,["leo_passes::symbol_table_creation::SymbolTableCreator"]],["impl<'a> !UnwindSafe for TypeChecker<'a>",1,["leo_passes::type_checking::checker::TypeChecker"]],["impl<'a, N> !UnwindSafe for StaticAnalyzer<'a, N>",1,["leo_passes::static_analysis::analyzer::StaticAnalyzer"]],["impl<F> UnwindSafe for Replacer<F>
    where\n F: UnwindSafe,
    ",1,["leo_passes::common::replacer::Replacer"]],["impl<I> UnwindSafe for RangeIterator<I>
    where\n I: UnwindSafe,
    ",1,["leo_passes::loop_unrolling::range_iterator::RangeIterator"]],["impl<N> UnwindSafe for DiGraphError<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::graph::DiGraphError"]],["impl<N> UnwindSafe for DiGraph<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::graph::DiGraph"]],["impl<N> UnwindSafe for TreeNode<N>
    where\n N: UnwindSafe,
    ",1,["leo_passes::common::tree_node::TreeNode"]]]],["leo_retriever",[["impl UnwindSafe for Location",1,["leo_retriever::program_context::location::Location"]],["impl UnwindSafe for NetworkName",1,["leo_retriever::program_context::network_name::NetworkName"]],["impl UnwindSafe for Dependency",1,["leo_retriever::program_context::dependency::Dependency"]],["impl UnwindSafe for LockFileEntry",1,["leo_retriever::program_context::lock_file_entry::LockFileEntry"]],["impl UnwindSafe for Manifest",1,["leo_retriever::program_context::manifest::Manifest"]],["impl UnwindSafe for ProgramContext",1,["leo_retriever::program_context::ProgramContext"]],["impl<N> UnwindSafe for Retriever<N>
    where\n N: UnwindSafe,
    ",1,["leo_retriever::retriever::Retriever"]]]],["leo_span",[["impl UnwindSafe for FileName",1,["leo_span::source_map::FileName"]],["impl UnwindSafe for InternedStr",1,["leo_span::symbol::InternedStr"]],["impl UnwindSafe for LineCol",1,["leo_span::source_map::LineCol"]],["impl UnwindSafe for MultiByteChar",1,["leo_span::source_map::MultiByteChar"]],["impl UnwindSafe for SourceFile",1,["leo_span::source_map::SourceFile"]],["impl UnwindSafe for SourceMap",1,["leo_span::source_map::SourceMap"]],["impl UnwindSafe for SourceMapInner",1,["leo_span::source_map::SourceMapInner"]],["impl UnwindSafe for SpanLocation",1,["leo_span::source_map::SpanLocation"]],["impl UnwindSafe for BytePos",1,["leo_span::span::BytePos"]],["impl UnwindSafe for CharPos",1,["leo_span::span::CharPos"]],["impl UnwindSafe for Span",1,["leo_span::span::Span"]],["impl UnwindSafe for SpanMapVisitor",1,["leo_span::span_json::SpanMapVisitor"]],["impl UnwindSafe for InnerInterner",1,["leo_span::symbol::InnerInterner"]],["impl UnwindSafe for Interner",1,["leo_span::symbol::Interner"]],["impl UnwindSafe for SessionGlobals",1,["leo_span::symbol::SessionGlobals"]],["impl UnwindSafe for Symbol",1,["leo_span::symbol::Symbol"]]]],["leo_test_framework",[["impl UnwindSafe for TestError",1,["leo_test_framework::error::TestError"]],["impl UnwindSafe for ParseType",1,["leo_test_framework::runner::ParseType"]],["impl UnwindSafe for TestExpectationMode",1,["leo_test_framework::test::TestExpectationMode"]],["impl UnwindSafe for TestFailure",1,["leo_test_framework::error::TestFailure"]],["impl UnwindSafe for TestExpectation",1,["leo_test_framework::output::TestExpectation"]],["impl UnwindSafe for Test",1,["leo_test_framework::runner::Test"]],["impl UnwindSafe for TestCases",1,["leo_test_framework::runner::TestCases"]],["impl UnwindSafe for TestConfig",1,["leo_test_framework::test::TestConfig"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[660,27792,1545,9799,8792,11708,5599,1569,16101,3170,5682,3061]} \ No newline at end of file +//{"start":57,"fragment_lengths":[660,27792,1545,9799,8792,11708,5599,1569,17850,3170,5682,3061]} \ No newline at end of file diff --git a/trait.impl/leo_ast/passes/reconstructor/trait.ExpressionReconstructor.js b/trait.impl/leo_ast/passes/reconstructor/trait.ExpressionReconstructor.js index 83231bfcfa..27e0aae24a 100644 --- a/trait.impl/leo_ast/passes/reconstructor/trait.ExpressionReconstructor.js +++ b/trait.impl/leo_ast/passes/reconstructor/trait.ExpressionReconstructor.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_passes",[["impl ExpressionReconstructor for DeadCodeEliminator<'_>"],["impl ExpressionReconstructor for Destructurer<'_>"],["impl ExpressionReconstructor for Flattener<'_>"],["impl ExpressionReconstructor for AssignmentRenamer<'_>"],["impl ExpressionReconstructor for FunctionInliner<'_>"],["impl ExpressionReconstructor for Unroller<'_>"],["impl<F> ExpressionReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); + var implementors = Object.fromEntries([["leo_passes",[["impl ExpressionReconstructor for ConstPropagator<'_>"],["impl ExpressionReconstructor for DeadCodeEliminator<'_>"],["impl ExpressionReconstructor for Destructurer<'_>"],["impl ExpressionReconstructor for Flattener<'_>"],["impl ExpressionReconstructor for AssignmentRenamer<'_>"],["impl ExpressionReconstructor for FunctionInliner<'_>"],["impl ExpressionReconstructor for Duplicator<'_>"],["impl ExpressionReconstructor for Unroller<'_>"],["impl<F> ExpressionReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[3300]} \ No newline at end of file +//{"start":57,"fragment_lengths":[4105]} \ No newline at end of file diff --git a/trait.impl/leo_ast/passes/reconstructor/trait.ProgramReconstructor.js b/trait.impl/leo_ast/passes/reconstructor/trait.ProgramReconstructor.js index 2439258547..7a3f5f8061 100644 --- a/trait.impl/leo_ast/passes/reconstructor/trait.ProgramReconstructor.js +++ b/trait.impl/leo_ast/passes/reconstructor/trait.ProgramReconstructor.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_passes",[["impl ProgramReconstructor for DeadCodeEliminator<'_>"],["impl ProgramReconstructor for Destructurer<'_>"],["impl ProgramReconstructor for Flattener<'_>"],["impl ProgramReconstructor for AssignmentRenamer<'_>"],["impl ProgramReconstructor for FunctionInliner<'_>"],["impl ProgramReconstructor for Unroller<'_>"],["impl<F> ProgramReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); + var implementors = Object.fromEntries([["leo_passes",[["impl ProgramReconstructor for ConstPropagator<'_>"],["impl ProgramReconstructor for DeadCodeEliminator<'_>"],["impl ProgramReconstructor for Destructurer<'_>"],["impl ProgramReconstructor for Flattener<'_>"],["impl ProgramReconstructor for AssignmentRenamer<'_>"],["impl ProgramReconstructor for FunctionInliner<'_>"],["impl ProgramReconstructor for Unroller<'_>"],["impl<F> ProgramReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[3237]} \ No newline at end of file +//{"start":57,"fragment_lengths":[3648]} \ No newline at end of file diff --git a/trait.impl/leo_ast/passes/reconstructor/trait.StatementReconstructor.js b/trait.impl/leo_ast/passes/reconstructor/trait.StatementReconstructor.js index 80dc61ea7d..2532f4ed0a 100644 --- a/trait.impl/leo_ast/passes/reconstructor/trait.StatementReconstructor.js +++ b/trait.impl/leo_ast/passes/reconstructor/trait.StatementReconstructor.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["leo_passes",[["impl StatementReconstructor for DeadCodeEliminator<'_>"],["impl StatementReconstructor for Destructurer<'_>"],["impl StatementReconstructor for Flattener<'_>"],["impl StatementReconstructor for AssignmentRenamer<'_>"],["impl StatementReconstructor for FunctionInliner<'_>"],["impl StatementReconstructor for Unroller<'_>"],["impl<F> StatementReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); + var implementors = Object.fromEntries([["leo_passes",[["impl StatementReconstructor for ConstPropagator<'_>"],["impl StatementReconstructor for DeadCodeEliminator<'_>"],["impl StatementReconstructor for Destructurer<'_>"],["impl StatementReconstructor for Flattener<'_>"],["impl StatementReconstructor for AssignmentRenamer<'_>"],["impl StatementReconstructor for FunctionInliner<'_>"],["impl StatementReconstructor for Duplicator<'_>"],["impl StatementReconstructor for Unroller<'_>"],["impl<F> StatementReconstructor for Replacer<F>
    where\n F: Fn(&Identifier) -> Expression,
    "]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[3279]} \ No newline at end of file +//{"start":57,"fragment_lengths":[4078]} \ No newline at end of file diff --git a/trait.impl/leo_interpreter/core_functions/trait.CoreFunctionHelper.js b/trait.impl/leo_interpreter/core_functions/trait.CoreFunctionHelper.js new file mode 100644 index 0000000000..78cc0d7e43 --- /dev/null +++ b/trait.impl/leo_interpreter/core_functions/trait.CoreFunctionHelper.js @@ -0,0 +1,9 @@ +(function() { + var implementors = Object.fromEntries([["leo_interpreter",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[22]} \ No newline at end of file