From 8c0a3b0ea79c00dcea18a8c6f7c1349f88ee011d Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:11:39 -0300 Subject: [PATCH 01/10] clean readme --- README.md | 19 +++++-------------- provers/README.md | 3 +-- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 7ec04fcff..8e77553b2 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,6 @@ So, we decided to build our library, focusing on performance, with clear documen - [Crypto primitives](https://github.com/lambdaclass/lambdaworks/tree/main/crypto) - [STARK Prover](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark) - [Plonk Prover](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk) -- [Cairo Prover](https://github.com/lambdaclass/lambdaworks/tree/main/provers/cairo) - [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16) ### Crypto @@ -84,8 +83,8 @@ List of symbols: | Baby Bear | :heavy_check_mark: | :x: | :x: | :x: | :x: | | MiniGoldilocks | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | :x: | | **ZK friendly Hash function** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | -| Poseidon | 🏗️ | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | -| Pedersen | 🏗️ | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | +| Poseidon | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | +| Pedersen | 🏗️ | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | | Rescue Prime XLIX | :x: | :x: | :x: | :x: | :x: | | **Elliptic Curves** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | | BLS12-381 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | @@ -99,24 +98,16 @@ List of symbols: | secq256r1 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | | **STARKs** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | | STARK Prover | :heavy_check_mark: | :x: | :x: | :x: | :x: | -| CAIRO Prover | 🏗️ | :x: | :x: | :x: | :x: | +| Circle STARKs | :x: | :x: | :x: | :x: | :x: | | **SNARKs** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | | Groth16 | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | | Plonk | 🏗️ | :heavy_check_mark: | ✔️ | :heavy_check_mark: | :x: | -| Spartan | :x: | :heavy_check_mark: | :x: | :x: | :x: | -| Marlin | :x: | :heavy_check_mark: | :x: | :x: | :x: | | GKR | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | | **Polynomial Commitment Schemes** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | | KZG10 | :heavy_check_mark: | ✔️ | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | FRI | 🏗️ | :x: | :x: | :heavy_check_mark: | :x: | -| IPA | 🏗️ | ✔️ | :heavy_check_mark: | :x: | :x: | -| Brakedown | :x: | :x: | :x: | :x: | :x: | -| Basefold | :x: | :x: | :x: | :x: | :x: | -| **Folding Schemes** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | -| Nova | :x: | :heavy_check_mark: | :x: | :x: | :x: | -| Supernova | :x: | :x: | :x: | :x: | :x: | -| Protostar | :x: | :x: | :x: | :x: | :x: | -| Protogalaxy | :x: | :heavy_check_mark: | :x: | :x: | :x: | +| Binius | :x: | :x: | :x: | :x: | :x: | +| Circle FRI | :x: | :x: | :x: | :x: | :x: | Additionally, provers are compatible with the following frontends and VMs: diff --git a/provers/README.md b/provers/README.md index 4ab43c974..7f4c51111 100644 --- a/provers/README.md +++ b/provers/README.md @@ -6,7 +6,7 @@ This folder contains the different provers currently supported by lambdaworks: - [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16) - [Plonk](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk) - [STARKs](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark) -- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/main/provers/cairo) +- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/main/provers/cairo) - This is only for learning purposes and no longer supported. The reference papers for each of the provers is given below: - [Groth 16](https://eprint.iacr.org/2016/260) @@ -22,5 +22,4 @@ Using one prover or another depends on usecase and other desired properties. We ## Using provers -- [Cairo prover](https://github.com/lambdaclass/lambdaworks/blob/main/provers/cairo/README.md) - [Plonk prover](https://github.com/lambdaclass/lambdaworks/blob/main/provers/plonk/README.md) From d387454ca4fd0674a1d8a136c6fefa0122bac90d Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:13:41 -0300 Subject: [PATCH 02/10] add binary fields --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e77553b2..befe19dba 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ List of symbols: | Mersenne 31 | :heavy_check_mark: | :x: | :x: | :x: | :x: | | Baby Bear | :heavy_check_mark: | :x: | :x: | :x: | :x: | | MiniGoldilocks | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | :x: | +| Binary fields | :x: | :x: | :x: | :x: | :x: | | **ZK friendly Hash function** | **Lambdaworks** | **Arkworks** | **Halo2** | **gnark** | **Constantine** | | Poseidon | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | | Pedersen | 🏗️ | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | @@ -120,7 +121,6 @@ Additionally, provers are compatible with the following frontends and VMs: | Plonk | Noir | :x: | | Stark | Winterfell | :heavy_check_mark: | | Stark | Miden | :heavy_check_mark: | -| Stark | Cairo | :heavy_check_mark: | This can be used in a multi prover setting for extra security, or as a standalone to be used with Rust. From bed33f1eb14227393ecb11d907d407cf47dc76b7 Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:18:34 -0300 Subject: [PATCH 03/10] remove cairo prover --- Cargo.toml | 3 +- provers/README.md | 2 +- provers/cairo/Cargo.toml | 121 - provers/cairo/Makefile | 63 - provers/cairo/README.md | 223 -- provers/cairo/benches/criterion_prover.rs | 67 - provers/cairo/benches/criterion_prover_70k.rs | 61 - provers/cairo/benches/criterion_verifier.rs | 87 - .../cairo/benches/criterion_verifier_70k.rs | 79 - provers/cairo/benches/functions/cairo.rs | 6 - provers/cairo/benches/functions/mod.rs | 2 - provers/cairo/benches/functions/stark.rs | 14 - .../cairo/benches/proofs/fibonacci_1000.proof | Bin 371566 -> 0 bytes .../cairo/benches/proofs/fibonacci_500.proof | Bin 336318 -> 0 bytes .../benches/proofs/fibonacci_70000.proof | Bin 65710 -> 0 bytes provers/cairo/cairo_compile.Dockerfile | 11 - .../cairo/cairo_programs/cairo0/.gitignore | 2 - .../cairo_programs/cairo0/call_func.cairo | 13 - .../cairo0/compare_lesser_array.cairo | 39 - .../cairo_programs/cairo0/fibonacci_10.cairo | 19 - .../cairo_programs/cairo0/fibonacci_100.cairo | 19 - .../cairo0/fibonacci_1000.cairo | 19 - .../cairo0/fibonacci_10000.cairo | 19 - .../cairo0/fibonacci_10000_loop.cairo | 21 - .../cairo_programs/cairo0/fibonacci_5.cairo | 19 - .../cairo_programs/cairo0/fibonacci_500.cairo | 19 - .../cairo0/fibonacci_5_loop.cairo | 21 - .../cairo0/fibonacci_5_memory.bin | Bin 2840 -> 0 bytes .../cairo0/fibonacci_5_trace.bin | Bin 1536 -> 0 bytes .../cairo0/fibonacci_70000.cairo | 19 - .../cairo_programs/cairo0/lt_comparison.cairo | 10 - .../cairo0/output_program.cairo | 12 - .../cairo_programs/cairo0/rc_program.cairo | 9 - .../cairo0/signed_div_rem.cairo | 50 - .../cairo0/simple_program.cairo | 7 - provers/cairo/ffi/Cargo.toml | 15 - provers/cairo/ffi/fibo_5.proof | Bin 265809 -> 0 bytes provers/cairo/ffi/src/lib.rs | 71 - provers/cairo/proof.proof | Bin 265805 -> 0 bytes provers/cairo/requirements.txt | 6 - provers/cairo/src/air.rs | 1109 ------ provers/cairo/src/cairo_layout.rs | 30 - provers/cairo/src/cairo_mem.rs | 130 - provers/cairo/src/commands.rs | 64 - provers/cairo/src/decode/instruction_flags.rs | 771 ---- .../cairo/src/decode/instruction_offsets.rs | 94 - provers/cairo/src/decode/mod.rs | 2 - provers/cairo/src/errors.rs | 24 - provers/cairo/src/execution_trace.rs | 750 ---- provers/cairo/src/lib.rs | 22 - provers/cairo/src/main.rs | 350 -- provers/cairo/src/register_states.rs | 259 -- provers/cairo/src/runner/file_writer.rs | 35 - provers/cairo/src/runner/mod.rs | 3 - provers/cairo/src/runner/run.rs | 187 - provers/cairo/src/runner/vec_writer.rs | 58 - provers/cairo/src/tests/data/mul_mem.out | Bin 320 -> 0 bytes provers/cairo/src/tests/data/mul_trace.out | Bin 72 -> 0 bytes provers/cairo/src/tests/integration_tests.rs | 194 - provers/cairo/src/tests/mod.rs | 2 - provers/cairo/src/tests/utils.rs | 49 - provers/cairo/src/transition_constraints.rs | 3219 ----------------- provers/cairo/src/wasm_wrappers.rs | 73 - provers/cairo/tests/wasm.rs | 1238 ------- 64 files changed, 2 insertions(+), 9809 deletions(-) delete mode 100644 provers/cairo/Cargo.toml delete mode 100644 provers/cairo/Makefile delete mode 100644 provers/cairo/README.md delete mode 100644 provers/cairo/benches/criterion_prover.rs delete mode 100644 provers/cairo/benches/criterion_prover_70k.rs delete mode 100644 provers/cairo/benches/criterion_verifier.rs delete mode 100644 provers/cairo/benches/criterion_verifier_70k.rs delete mode 100644 provers/cairo/benches/functions/cairo.rs delete mode 100644 provers/cairo/benches/functions/mod.rs delete mode 100644 provers/cairo/benches/functions/stark.rs delete mode 100644 provers/cairo/benches/proofs/fibonacci_1000.proof delete mode 100644 provers/cairo/benches/proofs/fibonacci_500.proof delete mode 100644 provers/cairo/benches/proofs/fibonacci_70000.proof delete mode 100644 provers/cairo/cairo_compile.Dockerfile delete mode 100644 provers/cairo/cairo_programs/cairo0/.gitignore delete mode 100644 provers/cairo/cairo_programs/cairo0/call_func.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/compare_lesser_array.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_10.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_100.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_1000.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_10000.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_10000_loop.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_5.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_500.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_5_loop.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_5_memory.bin delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_5_trace.bin delete mode 100644 provers/cairo/cairo_programs/cairo0/fibonacci_70000.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/lt_comparison.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/output_program.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/rc_program.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/signed_div_rem.cairo delete mode 100644 provers/cairo/cairo_programs/cairo0/simple_program.cairo delete mode 100644 provers/cairo/ffi/Cargo.toml delete mode 100644 provers/cairo/ffi/fibo_5.proof delete mode 100644 provers/cairo/ffi/src/lib.rs delete mode 100644 provers/cairo/proof.proof delete mode 100644 provers/cairo/requirements.txt delete mode 100644 provers/cairo/src/air.rs delete mode 100644 provers/cairo/src/cairo_layout.rs delete mode 100644 provers/cairo/src/cairo_mem.rs delete mode 100644 provers/cairo/src/commands.rs delete mode 100644 provers/cairo/src/decode/instruction_flags.rs delete mode 100644 provers/cairo/src/decode/instruction_offsets.rs delete mode 100644 provers/cairo/src/decode/mod.rs delete mode 100644 provers/cairo/src/errors.rs delete mode 100644 provers/cairo/src/execution_trace.rs delete mode 100644 provers/cairo/src/lib.rs delete mode 100644 provers/cairo/src/main.rs delete mode 100644 provers/cairo/src/register_states.rs delete mode 100644 provers/cairo/src/runner/file_writer.rs delete mode 100644 provers/cairo/src/runner/mod.rs delete mode 100644 provers/cairo/src/runner/run.rs delete mode 100644 provers/cairo/src/runner/vec_writer.rs delete mode 100644 provers/cairo/src/tests/data/mul_mem.out delete mode 100644 provers/cairo/src/tests/data/mul_trace.out delete mode 100644 provers/cairo/src/tests/integration_tests.rs delete mode 100644 provers/cairo/src/tests/mod.rs delete mode 100644 provers/cairo/src/tests/utils.rs delete mode 100644 provers/cairo/src/transition_constraints.rs delete mode 100644 provers/cairo/src/wasm_wrappers.rs delete mode 100644 provers/cairo/tests/wasm.rs diff --git a/Cargo.toml b/Cargo.toml index 38c9a23e0..afb8eb160 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] -members = ["math", "crypto", "gpu", "benches", "provers/plonk", "provers/stark", "provers/cairo", "provers/groth16", "provers/groth16/arkworks-adapter", "provers/groth16/circom-adapter", "examples/merkle-tree-cli", "examples/prove-miden", "provers/winterfell_adapter", "examples/shamir_secret_sharing","examples/pinocchio", "examples/prove-verify-circom", "provers/cairo/ffi", "examples/baby-snark"] +members = ["math", "crypto", "gpu", "benches", "provers/plonk", "provers/stark", "provers/groth16", "provers/groth16/arkworks-adapter", "provers/groth16/circom-adapter", "examples/merkle-tree-cli", "examples/prove-miden", "provers/winterfell_adapter", "examples/shamir_secret_sharing","examples/pinocchio", "examples/prove-verify-circom", "provers/cairo/ffi", "examples/baby-snark"] exclude = ["ensure-no_std"] resolver = "2" @@ -16,7 +16,6 @@ lambdaworks-crypto = { path = "./crypto", version = "0.10.0", default-features = lambdaworks-gpu = { path = "./gpu", version = "0.10.0" } lambdaworks-math = { path = "./math", version = "0.10.0", default-features = false } stark-platinum-prover = { path = "./provers/stark" } -cairo-platinum-prover = { path = "./provers/cairo" } lambdaworks-winterfell-adapter = { path = "./provers/winterfell_adapter"} lambdaworks-groth16 = { path = "./provers/groth16" } lambdaworks-circom-adapter = { path = "./provers/groth16/circom-adapter" } diff --git a/provers/README.md b/provers/README.md index 7f4c51111..315acec48 100644 --- a/provers/README.md +++ b/provers/README.md @@ -6,7 +6,7 @@ This folder contains the different provers currently supported by lambdaworks: - [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16) - [Plonk](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk) - [STARKs](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark) -- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/main/provers/cairo) - This is only for learning purposes and no longer supported. +- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/a591186e6c4dd53301b03b4ddd69369abe99f960/provers/cairo) - This is only for learning purposes and no longer supported. The reference papers for each of the provers is given below: - [Groth 16](https://eprint.iacr.org/2016/260) diff --git a/provers/cairo/Cargo.toml b/provers/cairo/Cargo.toml deleted file mode 100644 index bdc4829ec..000000000 --- a/provers/cairo/Cargo.toml +++ /dev/null @@ -1,121 +0,0 @@ -[package] -name = "cairo-platinum-prover" -rust-version = "1.66" -version.workspace = true -edition.workspace = true -license.workspace = true - -[[bin]] -name = "platinum-prover" -path = "src/main.rs" -required-features = ["cli"] - -[lib] -name = "cairo_platinum_prover" -crate-type = ["cdylib", "rlib"] - -[dependencies] -rand = "0.8.5" -lambdaworks-math = { workspace = true, default-features = true, features = ["lambdaworks-serde-binary"] } -lambdaworks-crypto = { workspace = true, default-features = true } -stark-platinum-prover = { workspace = true, features = ["wasm"] } -thiserror = "1.0.38" -log = "0.4.17" -bincode = { version = "2.0.0-rc.2", tag = "v2.0.0-rc.2", git = "https://github.com/bincode-org/bincode.git", features= ['serde'] } -# NOTE: For cairo 1 compatibility, add the `cairo-1-hints` feature. -cairo-vm = { git = "https://github.com/lambdaclass/cairo-vm", rev = "e61ae177edb94e29470fed23bdda43329b16c057", default-features = false } -sha3 = "0.10.6" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -num-integer = "0.1.45" -itertools = "0.11.0" -serde_cbor = { version = "0.11.1" } -# For cli -clap = { version = "4.4.6", features = ["derive"], optional = true } -# Parallelization crates -rayon = { version = "1.8.0", optional = true } - -# wasm -wasm-bindgen = { version = "0.2", optional = true } -serde-wasm-bindgen = { version = "0.5", optional = true } -web-sys = { version = "0.3.64", features = ['console'], optional = true } - -[dev-dependencies] -hex = "0.4.3" -criterion = { version = "0.4", default-features = false } -env_logger = "*" -test-log = { version = "0.2.11", features = ["log"] } -assert_matches = "1.5.0" -rstest = "0.17.0" -rand = "0.8.5" -wasm-bindgen-test = "0.3.0" - -[features] -test_fiat_shamir = [] -instruments = ["stark-platinum-prover/instruments"]# This enables timing prints in prover and verifier -metal = ["lambdaworks-math/metal"] -parallel = ["dep:rayon", "stark-platinum-prover/parallel"] -wasm = ["dep:wasm-bindgen", "dep:serde-wasm-bindgen", "dep:web-sys"] -cli = ["dep:clap"] -[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies] -proptest = "1.2.0" - -[[bench]] -name = "criterion_prover" -harness = false -metal = ["lambdaworks-math/metal"] - -[[bench]] -name = "criterion_prover_70k" -harness = false -metal = ["lambdaworks-math/metal"] - -[[bench]] -name = "criterion_verifier" -harness = false -metal = ["lambdaworks-math/metal"] - -[[bench]] -name = "criterion_verifier_70k" -harness = false - -[package.metadata.wasm-pack.profile.dev] -# Should `wasm-opt` be used to further optimize the wasm binary generated after -# the Rust compiler has finished? Using `wasm-opt` can often further decrease -# binary size or do clever tricks that haven't made their way into LLVM yet. -# -# Configuration is set to `false` by default for the dev profile, but it can -# be set to an array of strings which are explicit arguments to pass to -# `wasm-opt`. For example `['-Os']` would optimize for size while `['-O4']` -# would execute very expensive optimizations passes -wasm-opt = ['-O'] - -[package.metadata.wasm-pack.profile.dev.wasm-bindgen] -# Should we enable wasm-bindgen's debug assertions in its generated JS glue? -debug-js-glue = true -# Should wasm-bindgen demangle the symbols in the "name" custom section -demangle-name-section = true -# Should we emit the DWARF debug info custom sections -dwarf-debug-info = false -# Should we omit the default import path -omit-default-module-path = false - -[package.metadata.wasm-pack.profile.profiling] -wasm-opt = ['-O'] - -[package.metadata.wasm-pack.profile.profiling.wasm-bindgen] -debug-js-glue = false -demangle-name-section = true -dwarf-debug-info = false -omit-default-module-path = false - -# `wasm-opt` is on by default in for the release profile, but it can be -# disabled by setting it to `false` -[package.metadata.wasm-pack.profile.release] -wasm-opt = false - -[package.metadata.wasm-pack.profile.release.wasm-bindgen] -debug-js-glue = false -demangle-name-section = true -dwarf-debug-info = false -omit-default-module-path = false diff --git a/provers/cairo/Makefile b/provers/cairo/Makefile deleted file mode 100644 index 3242e95da..000000000 --- a/provers/cairo/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -.PHONY: test coverage clippy clean - -ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) - -CAIRO0_PROGRAMS_DIR=cairo_programs/cairo0 -CAIRO0_PROGRAMS:=$(wildcard $(CAIRO0_PROGRAMS_DIR)/*.cairo) -COMPILED_CAIRO0_PROGRAMS:=$(patsubst $(CAIRO0_PROGRAMS_DIR)/%.cairo, $(CAIRO0_PROGRAMS_DIR)/%.json, $(CAIRO0_PROGRAMS)) - -# Variable to give compiled Cairo programas a proper name. It extracts the file extension and adds -# the .json extension to it. -COMPILED_PROGRAM=$(basename $(PROGRAM)).json - -# Rule to compile Cairo programs for testing purposes. -# If the `cairo-lang` toolchain is installed, programs will be compiled with it. -# Otherwise, the cairo_compile docker image will be used -# When using the docker version, be sure to build the image using `make docker_build_cairo_compiler`. -$(CAIRO0_PROGRAMS_DIR)/%.json: $(CAIRO0_PROGRAMS_DIR)/%.cairo - @echo "Compiling Cairo program..." - @cairo-compile --cairo_path="$(CAIRO0_PROGRAMS_DIR)" $< --output $@ 2> /dev/null --proof_mode || \ - docker run --rm -v $(ROOT_DIR)/$(CAIRO0_PROGRAMS_DIR):/pwd/$(CAIRO0_PROGRAMS_DIR) cairo --proof_mode /pwd/$< > $@ - -build: - cargo build --release - -test: $(COMPILED_CAIRO0_PROGRAMS) - cargo test - -test_metal: $(COMPILED_CAIRO0_PROGRAMS) - cargo test -F metal - -docker_build_cairo_compiler: - docker build -f cairo_compile.Dockerfile -t cairo . - -docker_compile_cairo: - docker run -v $(ROOT_DIR):/pwd cairo --proof_mode /pwd/$(PROGRAM) > $(COMPILED_PROGRAM) - -clippy: - cargo clippy --workspace --all-targets -- -D warnings - -benchmarks_sequential: $(COMPILED_CAIRO0_PROGRAMS) - cargo bench - -benchmarks_parallel: $(COMPILED_CAIRO0_PROGRAMS) - cargo bench -F parallel --bench criterion_prover - cargo bench -F parallel --bench criterion_verifier - -benchmarks_parallel_all: $(COMPILED_CAIRO0_PROGRAMS) - cargo bench -F parallel - -build_metal: - cargo b --features metal --release - -clean: - rm -f $(CAIRO0_PROGRAMS_DIR)/*.json - rm -f $(CAIRO0_PROGRAMS_DIR)/*.proof - rm -f $(CAIRO0_PROGRAMS_DIR)/*.trace - rm -f $(CAIRO0_PROGRAMS_DIR)/*.memory - -build_wasm: - wasm-pack build --target=web -- --features wasm - -test_wasm: - wasm-pack test --node --release -- --features wasm diff --git a/provers/cairo/README.md b/provers/cairo/README.md deleted file mode 100644 index e4651568c..000000000 --- a/provers/cairo/README.md +++ /dev/null @@ -1,223 +0,0 @@ -
- -# Lambdaworks Cairo Platinum Prover CLI - -
- -## ⚠️ Disclaimer - -This prover is still in development and may contain bugs. It is not intended to be used in production yet. - -Please check issues under security label, and wait for them to be resolved if they are relevant to your project. - -## [Cairo Platinum Prover Docs](https://lambdaclass.github.io/lambdaworks/starks/cairo.html) - -## Proof file - -Currently, the .proof file contains the following elements concatenated: -- Proof size -- Proof -- Public inputs - -It uses the bincode as protocol to encode the structs of the files. Fields are stored as the bytes of canonical non-Montgomery form. It is in full big-endian form. Limbs are ordered in big-endian, and each u64 of the Montgomery field is in big-endian. - -⚠️: There may be changes to how this file represents the proof, always check here to ensure you have the latest encoding. We will add presets of verifications to the public inputs so you should not need to handle the file, just enable them. - -### Cairo Platinum Prover - Introduction - -Cairo Platinum Prover is an easy to use prover to prove CairoZero and Cairo programs, with support for a web verifier. - -CLI currently runs with 100 bits of conjecturable security. - -Cairo / Cairo1 programs full integration is on the way. It can already be used generating a trace and a memory with the Cairo VM Runner, and fed to the prover with the prove command. - -For using Cairo1, use the following [VM version](https://github.com/lambdaclass/cairo-vm/commit/070aeb9dbaf55875bf1cba2cef36fccafbb4851a) until it gets fixed in main - -Notice in this version you don't need the flag ```--proof_mode``` as it's enabled by default. - -### Usage: - -To prove Cairo programs, they first need to be compiled. For compilation you need to have `cairo-lang` or `docker` installed. - -When using Docker, start by creating the container image with: - -```**bash** - make docker_build_cairo_compiler -``` - -Examples of Cairo 0 programs can be found [here](https://github.com/lambdaclass/lambdaworks/tree/main/provers/cairo/cairo-prover-lib/cairo_programs/cairo0) - - -**To compile and generate a proof you can use:** - -```bash -cargo run --release --features=cli,instruments,parallel compile-and-prove -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel compile-and-prove cairo_programs/cairo0/fibonacci_5.cairo cairo_programs/cairo0/fibonacci_5.proof -``` - - -**To verify a proof you can use:** - -```bash -cargo run --release --features=cli,instruments,parallel verify -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel verify cairo_programs/cairo0/fibonacci_5.proof -``` - -**To compile Cairo:** - -```bash -cargo run --release --features=cli,instruments,parallel compile -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel compile cairo_programs/cairo0/fibonacci_5.cairo -``` - -**To execute and prove a compiled program:** - -```bash -cargo run --release --features=cli,instruments,parallel run-and-prove -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel run-and-prove cairo_programs/cairo0/fibonacci_5.json program_proof.proof -``` - -**To prove a trace of a cairo program:** - -```bash -cargo run --release --features=cli,instruments,parallel prove -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel prove cairo_programs/cairo0/fibonacci_5_trace.bin cairo_programs/cairo0/fibonacci_5_memory.bin program_proof.proof -``` - -**To prove and verify with a single command you can use:** - -```bash -cargo run --release --features=cli,instruments,parallel prove-and-verify -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel prove-and-verify cairo_programs/cairo0/fibonacci_5.json -``` - - - -**To compile, proof, prove and verify at the same time you can use:** - -```bash -cargo run --release --features=cli,instruments,parallel compile-prove-and-verify -``` - -For example: - -```bash -cargo run --release --features=cli,instruments,parallel compile-prove-and-verify cairo_programs/cairo0/fibonacci_5.cairo -``` - -### Build Package for web verifier - -To build the node library to use the verifier on the browser, use `build_wasm`. Using as proof options the ones that match the CLI, or your configuration, you can send the proof to the exposed function and verify it seamlessly. - -### Run CLI as a binary - -**To install as a binary run the command on the root directory of the CLI:** -```bash -cargo install --features=cli,instruments,parallel --path . -``` - -To run the CLI as a binary instead of using cargo replace `cargo run --release --features=cli,instruments,parallel` with `platinum-prover`. - -for example, the command to generate a proof becomes: -```bash -platinum-prover prove cairo_programs/cairo0/fibonacci_5.json cairo_programs/cairo0/fibonacci_5.proof -``` - -**You can uninstall the binary with:** -```bash -cargo uninstall -``` - -## Running tests -To run tests, simply use -``` -make test -``` -If you have the `cairo-lang` toolchain installed, this will compile the Cairo programs needed -for tests. -If you have built the cairo-compile docker image, that will be used for compiling instead. - -Be sure to build the docker image if you don't want to install the `cairo-lang` toolchain: -``` -make docker_build_cairo_compiler -``` - -## To be added -- Stone compatibility -- Add program as a public input -- Add Cairo compilation inside Rust, to prove and verify Cairo1/Cairo2 from the .cairo file, instead of the .casm file -- Add more Layouts / Builtins -- Improve parallelization -- Benchmarks and optimizations for Graviton -- Cairo Verifier - - Batch verifier / For trees and N proofs -- Pick hash configuration with ProofOptions - -## 📚 References - -The following links, repos and projects have been important in the development of this library and we want to thank and acknowledge them. - -- [Starkware](https://starkware.co/) -- [Winterfell](https://github.com/facebook/winterfell) -- [Anatomy of a Stark](https://aszepieniec.github.io/stark-anatomy/overview) -- [Giza](https://github.com/maxgillett/giza) -- [Ministark](https://github.com/andrewmilson/ministark) -- [Sandstorm](https://github.com/andrewmilson/sandstorm) -- [STARK-101](https://starkware.co/stark-101/) -- [Risc0](https://github.com/risc0/risc0) -- [Neptune](https://github.com/Neptune-Crypto) -- [Summary on FRI low degree test](https://eprint.iacr.org/2022/1216) -- [STARKs paper](https://eprint.iacr.org/2018/046) -- [DEEP FRI](https://eprint.iacr.org/2019/336) -- [BrainSTARK](https://aszepieniec.github.io/stark-brainfuck/) -- [Plonky2](https://github.com/mir-protocol/plonky2) -- [Aztec](https://github.com/AztecProtocol) -- [Arkworks](https://github.com/arkworks-rs) -- [Thank goodness it's FRIday](https://vitalik.ca/general/2017/11/22/starks_part_2.html) -- [Diving DEEP FRI](https://blog.lambdaclass.com/diving-deep-fri/) -- [Periodic constraints](https://blog.lambdaclass.com/periodic-constraints-and-recursion-in-zk-starks/) -- [Chiplets Miden VM](https://wiki.polygon.technology/docs/miden/design/chiplets/main/) -- [Valida](https://github.com/valida-xyz/valida/tree/main) -- [Solidity Verifier](https://github.com/starkware-libs/starkex-contracts/tree/master/evm-verifier/solidity/contracts/cpu) -- [CAIRO verifier](https://github.com/starkware-libs/cairo-lang/tree/master/src/starkware/cairo/stark_verifier) -- [EthSTARK](https://github.com/starkware-libs/ethSTARK/tree/master) -- [CAIRO whitepaper](https://eprint.iacr.org/2021/1063.pdf) -- [Gnark](https://github.com/Consensys/gnark) - -## 🌞 Related Projects - -- [CAIRO VM - Rust](https://github.com/lambdaclass/cairo-vm) -- [CAIRO VM - Go](https://github.com/lambdaclass/cairo_vm.go) -- [CAIRO native](https://github.com/lambdaclass/cairo_native/) -- [StarkNet in Rust](https://github.com/lambdaclass/starknet_in_rust) -- [StarkNet Stack](https://github.com/lambdaclass/starknet_stack) diff --git a/provers/cairo/benches/criterion_prover.rs b/provers/cairo/benches/criterion_prover.rs deleted file mode 100644 index 7a8e91308..000000000 --- a/provers/cairo/benches/criterion_prover.rs +++ /dev/null @@ -1,67 +0,0 @@ -use cairo_platinum_prover::{ - air::generate_cairo_proof, cairo_layout::CairoLayout, runner::run::generate_prover_args, -}; -use criterion::{ - black_box, criterion_group, criterion_main, measurement::WallTime, BenchmarkGroup, Criterion, -}; -use stark_platinum_prover::proof::options::{ProofOptions, SecurityLevel}; - -pub mod functions; - -fn cairo_benches(c: &mut Criterion) { - #[cfg(feature = "parallel")] - { - let num_threads: usize = std::env::var("NUM_THREADS") - .unwrap_or("8".to_string()) - .parse() - .unwrap(); - println!("Running benchmarks using {} threads", num_threads); - rayon::ThreadPoolBuilder::new() - .num_threads(num_threads) - .build_global() - .unwrap(); - }; - - let mut group = c.benchmark_group("CAIRO"); - group.sample_size(10); - run_cairo_bench( - &mut group, - "fibonacci/500", - &cairo0_program_path("fibonacci_500.json"), - CairoLayout::Plain, - ); - run_cairo_bench( - &mut group, - "fibonacci/1000", - &cairo0_program_path("fibonacci_1000.json"), - CairoLayout::Plain, - ); -} - -fn cairo0_program_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const PROGRAM_BASE_REL_PATH: &str = "/cairo_programs/cairo0/"; - let program_base_path = CARGO_DIR.to_string() + PROGRAM_BASE_REL_PATH; - program_base_path + program_name -} - -fn run_cairo_bench( - group: &mut BenchmarkGroup<'_, WallTime>, - benchname: &str, - program_path: &str, - layout: CairoLayout, -) { - let program_content = std::fs::read(program_path).unwrap(); - let proof_options = ProofOptions::new_secure(SecurityLevel::Provable80Bits, 3); - let (main_trace, pub_inputs) = generate_prover_args(&program_content, layout).unwrap(); - println!("Generated main trace with {} rows", main_trace.n_rows()); - - group.bench_function(benchname, |bench| { - bench.iter(|| { - black_box(generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap()) - }); - }); -} - -criterion_group!(benches, cairo_benches); -criterion_main!(benches); diff --git a/provers/cairo/benches/criterion_prover_70k.rs b/provers/cairo/benches/criterion_prover_70k.rs deleted file mode 100644 index 31f73e3a1..000000000 --- a/provers/cairo/benches/criterion_prover_70k.rs +++ /dev/null @@ -1,61 +0,0 @@ -use cairo_platinum_prover::cairo_layout::CairoLayout; -use cairo_platinum_prover::{air::generate_cairo_proof, runner::run::generate_prover_args}; -use criterion::{ - black_box, criterion_group, criterion_main, measurement::WallTime, BenchmarkGroup, Criterion, - SamplingMode, -}; -use stark_platinum_prover::proof::options::{ProofOptions, SecurityLevel}; - -pub mod functions; - -fn fibo_70k_bench(c: &mut Criterion) { - #[cfg(feature = "parallel")] - { - let num_threads: usize = std::env::var("NUM_THREADS") - .unwrap_or("8".to_string()) - .parse() - .unwrap(); - println!("Running benchmarks using {} threads", num_threads); - rayon::ThreadPoolBuilder::new() - .num_threads(num_threads) - .build_global() - .unwrap(); - }; - - let mut group = c.benchmark_group("CAIRO"); - group.sampling_mode(SamplingMode::Flat); - group.sample_size(10); - run_cairo_bench( - &mut group, - "fibonacci/70000", - &cairo0_program_path("fibonacci_70000.json"), - CairoLayout::Plain, - ); -} - -fn cairo0_program_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const PROGRAM_BASE_REL_PATH: &str = "/cairo_programs/cairo0/"; - let program_base_path = CARGO_DIR.to_string() + PROGRAM_BASE_REL_PATH; - program_base_path + program_name -} - -fn run_cairo_bench( - group: &mut BenchmarkGroup<'_, WallTime>, - benchname: &str, - program_path: &str, - layout: CairoLayout, -) { - let program_content = std::fs::read(program_path).unwrap(); - let proof_options = ProofOptions::new_secure(SecurityLevel::Provable80Bits, 3); - let (main_trace, pub_inputs) = generate_prover_args(&program_content, layout).unwrap(); - - group.bench_function(benchname, |bench| { - bench.iter(|| { - black_box(generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap()) - }); - }); -} - -criterion_group!(benches, fibo_70k_bench); -criterion_main!(benches); diff --git a/provers/cairo/benches/criterion_verifier.rs b/provers/cairo/benches/criterion_verifier.rs deleted file mode 100644 index f4a82c957..000000000 --- a/provers/cairo/benches/criterion_verifier.rs +++ /dev/null @@ -1,87 +0,0 @@ -use cairo_platinum_prover::air::{verify_cairo_proof, PublicInputs}; -use criterion::{ - black_box, criterion_group, criterion_main, measurement::WallTime, BenchmarkGroup, Criterion, -}; -use lambdaworks_math::{ - field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField, traits::Deserializable, -}; -use stark_platinum_prover::proof::{ - options::{ProofOptions, SecurityLevel}, - stark::StarkProof, -}; - -pub mod functions; - -fn load_proof_and_pub_inputs( - input_path: &str, -) -> ( - StarkProof, - PublicInputs, -) { - let program_content = std::fs::read(input_path).unwrap(); - let mut bytes = program_content.as_slice(); - let proof_len = usize::from_be_bytes(bytes[0..8].try_into().unwrap()); - bytes = &bytes[8..]; - let proof: StarkProof = - serde_cbor::from_slice(&bytes[0..proof_len]).unwrap(); - bytes = &bytes[proof_len..]; - - let public_inputs = PublicInputs::deserialize(bytes).unwrap(); - - (proof, public_inputs) -} - -fn verifier_benches(c: &mut Criterion) { - #[cfg(feature = "parallel")] - { - let num_threads: usize = std::env::var("NUM_THREADS") - .unwrap_or("8".to_string()) - .parse() - .unwrap(); - println!("Running benchmarks using {} threads", num_threads); - rayon::ThreadPoolBuilder::new() - .num_threads(num_threads) - .build_global() - .unwrap(); - }; - - let mut group = c.benchmark_group("VERIFIER"); - run_verifier_bench( - &mut group, - "fibonacci/500", - &cairo0_proof_path("fibonacci_500.proof"), - ); - run_verifier_bench( - &mut group, - "fibonacci/1000", - &cairo0_proof_path("fibonacci_1000.proof"), - ); -} - -fn cairo0_proof_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const PROGRAM_BASE_REL_PATH: &str = "/benches/proofs/"; - let program_base_path = CARGO_DIR.to_string() + PROGRAM_BASE_REL_PATH; - program_base_path + program_name -} - -fn run_verifier_bench( - group: &mut BenchmarkGroup<'_, WallTime>, - benchname: &str, - program_path: &str, -) { - let (proof, pub_inputs) = load_proof_and_pub_inputs(program_path); - let proof_options = ProofOptions::new_secure(SecurityLevel::Conjecturable80Bits, 3); - group.bench_function(benchname, |bench| { - bench.iter(|| { - assert!(black_box(verify_cairo_proof( - &proof, - &pub_inputs, - &proof_options - ))) - }); - }); -} - -criterion_group!(benches, verifier_benches); -criterion_main!(benches); diff --git a/provers/cairo/benches/criterion_verifier_70k.rs b/provers/cairo/benches/criterion_verifier_70k.rs deleted file mode 100644 index 6597d56e3..000000000 --- a/provers/cairo/benches/criterion_verifier_70k.rs +++ /dev/null @@ -1,79 +0,0 @@ -use cairo_platinum_prover::air::{verify_cairo_proof, PublicInputs}; -use criterion::{ - black_box, criterion_group, criterion_main, measurement::WallTime, BenchmarkGroup, Criterion, - SamplingMode, -}; -use lambdaworks_math::{ - field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField, traits::Deserializable, -}; -use stark_platinum_prover::proof::{ - options::{ProofOptions, SecurityLevel}, - stark::StarkProof, -}; - -pub mod functions; - -fn load_proof_and_pub_inputs( - input_path: &str, -) -> ( - StarkProof, - PublicInputs, -) { - let program_content = std::fs::read(input_path).unwrap(); - let mut bytes = program_content.as_slice(); - let proof_len = usize::from_be_bytes(bytes[0..8].try_into().unwrap()); - bytes = &bytes[8..]; - let proof: StarkProof = - serde_cbor::from_slice(&bytes[0..proof_len]).unwrap(); - bytes = &bytes[proof_len..]; - - let public_inputs = PublicInputs::deserialize(bytes).unwrap(); - - (proof, public_inputs) -} - -fn verifier_benches(c: &mut Criterion) { - #[cfg(feature = "parallel")] - { - let num_threads: usize = std::env::var("NUM_THREADS") - .unwrap_or("8".to_string()) - .parse() - .unwrap(); - println!("Running benchmarks using {} threads", num_threads); - rayon::ThreadPoolBuilder::new() - .num_threads(num_threads) - .build_global() - .unwrap(); - }; - - let mut group = c.benchmark_group("VERIFIER"); - group.sampling_mode(SamplingMode::Flat); - group.sample_size(10); - run_verifier_bench( - &mut group, - "fibonacci/70000", - &cairo0_proof_path("fibonacci_70000.proof"), - ); -} - -fn cairo0_proof_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const PROGRAM_BASE_REL_PATH: &str = "/benches/proofs/"; - let program_base_path = CARGO_DIR.to_string() + PROGRAM_BASE_REL_PATH; - program_base_path + program_name -} - -fn run_verifier_bench( - group: &mut BenchmarkGroup<'_, WallTime>, - benchname: &str, - program_path: &str, -) { - let (proof, pub_inputs) = load_proof_and_pub_inputs(program_path); - let proof_options = ProofOptions::new_secure(SecurityLevel::Provable80Bits, 3); - group.bench_function(benchname, |bench| { - bench.iter(|| black_box(verify_cairo_proof(&proof, &pub_inputs, &proof_options))); - }); -} - -criterion_group!(benches, verifier_benches); -criterion_main!(benches); diff --git a/provers/cairo/benches/functions/cairo.rs b/provers/cairo/benches/functions/cairo.rs deleted file mode 100644 index fe7e4f1e4..000000000 --- a/provers/cairo/benches/functions/cairo.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub fn cairo0_program_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const PROGRAM_BASE_REL_PATH: &str = "/cairo_programs/cairo0/"; - let program_base_path = CARGO_DIR.to_string() + PROGRAM_BASE_REL_PATH; - program_base_path + program_name -} diff --git a/provers/cairo/benches/functions/mod.rs b/provers/cairo/benches/functions/mod.rs deleted file mode 100644 index c3514ea0b..000000000 --- a/provers/cairo/benches/functions/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod cairo; -pub mod stark; diff --git a/provers/cairo/benches/functions/stark.rs b/provers/cairo/benches/functions/stark.rs deleted file mode 100644 index 15f461148..000000000 --- a/provers/cairo/benches/functions/stark.rs +++ /dev/null @@ -1,14 +0,0 @@ -use cairo_platinum_prover::{cairo_mem::CairoMemory, register_states::RegisterStates}; - -pub fn generate_cairo_trace(filename: &str) -> (RegisterStates, CairoMemory) { - let base_dir = env!("CARGO_MANIFEST_DIR").to_string() + "/src/cairo_vm/test_data/"; - - let trace_path = format!("{base_dir}/{filename}.trace"); - let memory_path = format!("{base_dir}/{filename}.memory"); - - let register_states = - RegisterStates::from_file(&trace_path).expect("Cairo trace binary file not found"); - let memory = CairoMemory::from_file(&memory_path).expect("Cairo memory binary file not found"); - - (register_states, memory) -} diff --git a/provers/cairo/benches/proofs/fibonacci_1000.proof b/provers/cairo/benches/proofs/fibonacci_1000.proof deleted file mode 100644 index 338dce624c45e55673c4407fe70d3f73b2eddfde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371566 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 z 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%0DRK6zS`rg!7w2E@|`t?oMW=kpNctqsX4s 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 Ts{{B~$Nzf?v-@8-fyw^@_z(2- diff --git a/provers/cairo/benches/proofs/fibonacci_500.proof b/provers/cairo/benches/proofs/fibonacci_500.proof deleted file mode 100644 index d297fae15bac42c549d1df593bca7c8c4a6fc1fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336318 zcmeFYQ;;UnwzgaR%0`#EYiXHpJzw>59 zWM<4U@_i#`=FDd#5YRt1aIBmEHvj=4{#O730zp_^Phj&MN8S;kStytvpL&Y?RQ~WA zHWaDOTveEy&F{XvlcfG+L3`41}P zH+YCqFaUM-E&6-;q~!ZnD%5sd#jW+!s4%p{TD;qZf4XiL@}C0zALH<%XmurHw?Zz| zSbsIy)AdRmp_n!IKuTGkp8WQtGQ>@shR@!0QI~M=rC-GbmI>AjPC^Uc+oEq6*rxlH zH3$(~0@@{hAb$GXH2u`nR*#9x_-vhwM9i`Pz>|X6iTxPaK z)yff)QPXU9Y-nZe99wLSkTKhVFZADmcktUaKEeabh>Eo>3zr89ipXT)>l)wQK7 zjAwT5^d$~7HO2F#anba) zvKMQ7B&34Z>H`LgqgMgLZERY*92zVX^L}7vV#4}_%fOo`%_d5v=mQ4Ikp6AfOdj)C zjr1$q zsvISd%sE2h*vhqTcA+M`1qi~8X4yGWwg&EG&?o9?aWf-O`<4@UZW zCL>_Rf^3@Syh|nyXULB?4}S&CeQ%U~hVlH8bRJFk<|!g_j9fnn3`&sq19NOK3e^K^ z-HlX8N#X7b2VultCg|RhhC_fR@Eac9@u%6Co+tpmO_pv;uNVk=@m+W%mN8>oEfyvu zoVel%g>RhzNFah3wB7pos6=#b9plOZ^Es^vm)C{_Zt^r`#S}(Xaw8==jKZU_)$T^U}e3orENVo^_Y}T zUf2B66iC8TenAkfTge0~SS>>k^7*E8E}1i3>h2m%R6lHKGxHc5I|>04Et3p84U7O2 z5RH!_=-?2`2x%=xFL^%aRAfO``HfD$LS}L}e9D35-7JMQg_o8$qXLq`bf)~ui)v2B z-c~`ys(Vl!`j)|Lw`J0v$kkiJ_j#S%tz-J->Pl&dN}pT&FLZws<(vbTn64O+?FeyFS_Q(4S&|*(LgI^D6U8Vs+jZfyiY>1DMnyO2wX}?Q^ zg8jU4+-8xyahK*tEJ*@Bp9J4#{N`)a}4cIsM+z zn`gB+>6ZWiQh4&?RoC}MxRdg|pYHOTrMkR)IJm#ZxEJ+bre7gOpkk#H$B+=E7#?V} zmOHa43IrRSO7y(&pw;=uznB0*(3;q$8SCZ2S)po>)E8I$Yv7a`Iuy@|bPkCZ6uYb^uD}>SSQu3~Cvcf>08e?rEQ>btudOEw-gJZ?F7n1; zkLRu)`;kwy^qQsG_b;Ch|Dphp-+kFXy|_W-06w6gRSZf=yYLP33WxGO^ejrMB;4Nr zDnIbQs2|9SW5)M{2Lyr*1QL+Sd>!LR z>5rCb!btpi{#?UfU4gt*6;Y9JW&oz&Cg)}F0KNo3-6`oTrys~E&JX=l=0Wl>$JzcO zehlKccj-J{%Dm4a8iq^QiulO%y5|d4NdI^``+&@jp#vUn9^dK#+ivr8@B!>#C>N$| z3gP&9-N&*KQqh>wIR%=u%tvS87P$21;yroo`!x$I*Z>VUz5xXEjMWQP9|ceir0uc< z&kxMV3G+mAl6Sc};K#tDgJbOCq{Jpgxd%eA`IvXj*rnbZsC;!C@&>AM*85Z`S}cNv z5!7JO6$0MTcTaTs&Zn*o#`>`W`uK<6t(z0-y7c>Uh8*B4{05PTeXD-=)i<;$`jTG= zWx#Y3IZPx^>4}WqF(U+6O#tp1KzQH!eBR9?F^NoW$f%T(iXhB>L@5{xO~~NgH3Xj^ zAgEUezj&m_>)P3fE3SbH_HZPV`gD*?*cN#-hn(;pe-xowiepx zKeZxo4NRVQhKkEKA9P@9!W)Ti${@a#jM=VNnO5_$b97gHa%|pPWpDuO?A^}{z*!k6 zVZhB7>s+6(UUF>mmT$@KlCR9$x_9(w=J=(yPsI8#VPGPtCmv(cZ3Qww&nXo3Mg?He zMavvTUGDkIVl-a^WMIQy$+-<5suWn;XzTG^?lz`llbmcPh@Nr4?Rff!g1|4ygOgWL z9DaUky7syT#Ezpo#}ifl$e0*8=`79Yy1;B7CkLHsvj=riJ!9@S;VwE{ERw)8h2ijL zy827m=pby|qc&jHv)a@quv!*1&B8ZG!TgskOWH;-IW?0ch9Jxm5eRAc5{62HJwJzi z8|uSqnQjc^C^t@eD|;2(cY#0hSJJSARTNqGD-+kX1O;rpS<+KO5Wwkl4A-JVCqcsH zMp)UDcDToMi0(TtN$?3vfmTehIKh7UtSMxq=z-2@EQZNvf#@%Mt|A)cb`1ZT*&v+8 z9Yo302>W$p4Fv2yw~fKk<2j)ogYhw=q|yZ>-;S$7J!hZietY7)wFT7lMrob^1>RBe z$3{=)p1#+IDW8x1vdZ}BRktG$9~OiUG3g?XK^Jog&lA1pTk`@kde+zvC8V$YL4@K& z2L+gjeX$Xc%F^<3d_MF8_~+IdHb8iHIUk+C0_a|^|@h66DM`ad(6ic(oMiNcI#tXSn9rNx}BUG z(>|EM4gue&9a!-k_G0L`#TwdrhdXU@K}ZhY27=zM@X^7oCjm4zKO5w0#DDDs+~Y%=kM$ zF+m-9wF}Vgm=FPZ!+YxEy2uvb`KuSe_4jxMp){@R?fpFu9}FY3>rzmUY7+I4saCNu z-pc$p?x<@+B5==q8X`R!LYek@$epUgh^_v#yEhKO#T;N;Aj$?#`|mig z(~N`yMJH!WYqfK;g)4)5C37W4?G8TzU&`V!cesp7$v?dB-Uv2aHGHsFnN+NRpw!F> z-$3lJ_{xHj!j23_$+RRKFtdqPOm>O&Rt1+crI@ZYjRm>!{_y6wR=XLIxwe6mWw&ImmKfu`o8APAkv(yS@ZX~~v}#dRv!dnKj_w-IOMd<`JJ2p{ntN@+~mep*Z7 zN+fq zAfE4S^?z8wF$$Op6vkt>6_4n0*kMOtTE=`d&`?GgUWd zkyq#aK4ZWhRwu3)E}?m`(&Kn*EKta)8o9t7QOf(3jI@m2PSyy zML_B2vU1ZyQbZi7{&xWX&poKdjn9y6;7U&Ap=g=z?0yk+yiW2JU@jkWpH381q%>VH z#Xur3fQzD=tvOVF{!+#(ti?eOH_8}L!pZt5mtgE81oLFfAqhxHOVsgWg@pknd7ouy z<`1?&*zWs3#Sd67`WnX~Ptp~uDda;SYsE-+u#@igHwnDyvVq7!ADCu-%gVZE9p5M+ z{LJtGZJ;NvX4Y+pD>jYVn3kL^j zprO8FSROM!-bG%Up35CpYuBB|kK?4Zuf<%x?{XV~+>WZ7%rIRj&>R5$IhwicHfLyRn|N015 zC4&pB-|XXa zX?U{!yUBr35!=2y5)GJMLAa1xQ28mQN_~U4dVRh!QfHG@-U~;C@@1!TfDdSU>Le%PHBmL|B66q%Puzb8rC3gWUWJxL>0_NTBDk3-Fnp(Gybmb%CzTQc(~JLv-gybo51(W zpcti5-d2|TM6DbfK`wj!hJLEC2!wJ?Xon34HQ((mp4 zdFD@q^Q%3`W8EUwZ55X&BUO0kYIz7HNyKmEOj<&phto4TYmO5}2VBKX8CDcl905ze zWbJ>ElL~gq|Uxmtj2Dphz6JA2^N~Ud83l~^lq)DlArG8Y>F;~9lnK75eGbGD)jYU%Wrq7Y8CQTcp@;_I=?>z>n!12|I~R5=%LwyNL5b4 zgkfk;g|Knljd>FlAcB$?Np_nZr#L8!E}tVbX4`t})+wCvixSRT1Os2hht7H_-L)YD8NQ3oJ0rse2syq|ph#;3Lzs6WapdMYze z{(gN0p~-(Om4(b-!y07(w2Xl@&E7?wn7&l#pf`o`|AS?1}Dc@6ejw5PsEI4Xj&uN6Bgoo_h`hZ zi$Nu_@whJ;2L!%WdZF@#|91zbI+#kuC&jAyk35rv)frL*WL>5SqNq^XAEKFH(anx4*3xH9aW5{*!1KI%~mP)9RDidt*j%T zDKHnZemq&NIcx$WV zfH)f0;Z2a)tGiW!1fRwLJlw5tsU@Yrnatx@v@Wo|^jADTLJx%l;c>`;-}N?MMt99m z<$G?U&I@BY@50ILUmX+3e|3h=vkT*qU*`T)LNXu-=Ye$NRu;*?_(9Iw`#7)KWUj#& zh20$P$Q}e%lc^=O0rU+`T%hIy3Ez!&y3xFEKyGKf@jzX?nfb0mI~PhS%hrm)Cyzvs z1#Sl1BZ7KnJzS?Zgv?=Rx28Gm;lE^;S*5sH-E~piAC2~Iuun`-qq4cs70slT!kfc= zrW?A+IYrl~5wc@|k_Gv&({H>;tko_G`);>s4eb4oPoawq1^TyASxha-iPE2(+$gX3 zJlX+_AXgu*!sPJ&kv=Cp@@RL#Q`@EX>_hzsN7=_u7V?_riEGn}K-b4o;)8Z1ICv@7 zB~Hl-1kT<=@JmMepN#cud~&-vp)#|?OfVbeTJ6}?To}Y%l#Wh!y<>&49=4(2yl&Lr+0TbsMVWt(IPY2 z-j5Nu4qQ$H-i4L18~G27iloSL*V0sYB4o+RKmX-<`U zVq#iZFx8)T&bl`x*{a~#4awM8Dm98}8l^+Y?I7%){*TS5C7A}g&U}Ns$fNxPTkDVp zXN$)~8}myn>3692U4S#s6BAIlQqbsjJ)&mlE~#hzm9y!UC&ssP?Nr@YK%B~E?uOw< z2{->3vOR!~!zo8jE-+h-8R$ELY2emTFP6O1lr!(4E=BY{ zoXVCVD}hDruTGFoMsi2SX_;>_Kw!OjLVwr-4!JOmLCa>JEGtw9$c-!D0nHi=ApqPf zU+O*Uv1ognH50VL*^=nr*HFj$C@n3|t}>&@m&fTO;dT6Dsz-CHpn5AwO?*{QP8qB{ z&R50UpVo5f!>H}Dk65yxD&8WHv~9hSxm3j;%L8Y!q$C9PNMgywW&+2_My?hKu(aUO ze;_{Y0TdWk?)a=lN+k08-;DjfL`JN7mCB?V=c$Uk0p9kC^}7&-qOb||dZE$Dn@=(! z#$OtaA8;|{kj|+~eZ!ZfRytz}kBCN9qy#URUwMxwCvgtz%n8X$&p)HtBl&+1vxe~?M?MPyF62o}bLBW9WW%0ZTHv`Hc$lN+3xYy5h5R3~AK z`=mRFB9?T6qBk#$U4^lc#J8}eXa0#+A^7uah9+0l;)&9*bmQ7MwDc=?P~>SOlTYA- zdWy1^I0Lit%TrF~x~jrVKrpAPdM(s1H3PxDL%ffj=&D9i#r#*JU=vI&IB(O3A63Dd z{ChqnNo?dTb)2$v`028mrCh%pvosf)YNaSfZy27>2;RUvu-8L&-az{+C^EA>`If|< z+6HXUJ|V45ggUpZ>&%5ztWPNwnH(2zQGLtb>jV%n&yQP1zu)Q%W?*e`ANUM1s62?b z)Ikx>$O|+mtY<~hM%5o3UN7#9z|;=l+2zZy;H*{m`mXtY1i1dV8|rd~9nd#xB%3sY zJei}t_UmLfLz(uby^Gv0<;Elo^5tPuO1N|DOX`$GXqO8fu8eD)#>P3$1|3wPui|Eu zZ8JKPV8U+=S|g%0dI{Wh@ROE%=>RQLWVpff5;>uOQ@Sw2YG-uuXL*xQ5%&dM^CJEP zB@PZmgxA+tEn+;pAk6xE9pG($Vo;Aa-c)yhz?U*=FQPCft0>FULMjb=o?ns5bD{eB z13PV55;yw&O;)>}En9GZRE$8f?y06|)f&%&a;PIB$$bsbofQfqHXIojMZMGZP0OL6 z0OHrwu$;I9*rS`BJbQuWLzQ{koTAB(9(r6wV^y==_+uc=Pj2R*y)7u5qZ@B%_(OBK zGMX-Ll)S}Fu$6;7!c>p~3ANUfnH&Gs2?pMG!0?pA3>zBRx~v4E`@{4tJA$?=l!6Tu z$-&hZ1Fet;T$~Ofs^cV7JR50OBCLiseK#Y7HCl%S5(S!+S(j==gby+7=!Rz~L&)o_ z2xtcdo>B=+O~wcV+&#K4tfn(u&(_HlIRAHOdfOoxgf7{$G!r8(&+ZAG_#@*`Qt#h7 zK;`xrN+^CvrKT1Nuk+Rx9v$HlR6DJQ6@hDTT5>|-9S*2<0vhIn0M_}?;vPf zes*Un?a*p>SDAL{ze=R6B6YxqQR9#W+OB9*Wup4QQQc;nBaAjc%xT!mZvs&Qj_nhx zbU!ozag$jL6rol*U1@IO=}kdz*Ye@D%4^&85_*w`(Jea;kpg3^uSM)5Es7*CEOJee zH5ao-fGBz$#luRmau}8iA!zF4IYHyPfBFJJCOly|s`}=G;|sr(>w4N6s=3SyUc#{n z5*MA<)U4D|df1fA&oX$wxC<{z$`71mzFtuSu~bsdOl2RD6EOiOv6BeY+XPN8jok#E z2>NZcFN}%?zKH@up44toxw;*`<5aeS&<8yEPA;rVDnB(oNVrT5I!;m9G&^PDBPG*5 zgGDw!^OG%rhzEGSe-|p0fAFp1pFV&?n=Nw=e*=NQXW2oLJ3owgR%J1?gUC?rYqKN} zy(EHscVJ1b7c5~YjgPaiMzZtxUQoQ6xMKj7coEsln`eP`ALHgQ{}G;=b0kZnxho;x zR#)6>)(80|G0c$Wn(Yl0kHo zGD2kp7xg10fKdU&KjN!M^2Py0f_U(E6wnJO^OjIsF4zvd{TA?HK0-k{;_3t73VXs zwYPk3d}Xt)TYoW##1Xkm+kpiaadkWui{eDaO4~53#mMh6=9-_gM8TZ@^xFKFJFZK-qwlY$Hdp}EVe`m(*$svmcbCwwz>N8N1~Ujqh`hng7w!v{nS zP??`LS&>Wv$Y6OT9|TAL{c$L0*pqIXuioTg-2=bkU*i0* zF%_FFy#OVjVzkT3+o8&i-e;%>YN^(Bbi6~2&=1`j#?#i$H^*lVr5pT5e1d~A}rdQ8E5S&Gm`YP?f)oMPS!r+ zzpjyefz_j$QO|8KMGxbj_vkYBa}2BBxJ;F$Jf+?9rMjaeOtgl&Oi~&kax(52{atGf zMicEL)$X;c#bAC4a*m_;1ioN&KokIW;(wc!y)FY82Vn1&tg*Kao(>fWQ6K5WzX_-4 z+#)Pj(*Crb^^gFk^yLyBYm#|C@2`;eTuE#l`s*Vcq?n+uK1tN%*|@5-2z_I{m7^rs zjOxs!H;Z%xetyEvTp&^77?(cbtP@+P3!SK$6%TTo(3ri&5;S1jnc4t`I#6W#=BLc@N(q|zCxBh?S|j(K+htEyiOhIeSrigprGxrg$YGD_z= z_U7v*q+Qp!2b$BX>Rgl>0!iIL9BP60T)lo>%{JRG{IKeW(pt#_wp2mTQ|-7RG#c^f zr2GWvkjM8?Mmt~12&v?84+50$cTFnG_p8h{x%|#?owcL~yfJT&BZ0rdmZr%nF;YS+ zjyuISD0VJY>l>eje$mR;GbtepF-tatG70_TowjNeXU3RVNKqsI>?<_-Fl03^u0}|%v5RdAQkUW3U zwYqmGfKC^>%VqEugIpv~K@M}dmLxf6NnWK@!W^yk?&;Dw5_zdHfYc?M&<3E5{Vq!O zOat9ud+k@9*_1?qNKxbE)_?PJ8@O9oqB>IF3{4e)tX>fVFZy?z(=5@*a>vy?h z7u1BNXmp@#v;qbz!cdi4IRi11%V_am8LR?PEy$2!$sr=3_$4d}#Qd7_QWN4E{iiXw; zIVB7f5abO+I`c?HR^M;ulCiX3XehWR2nMpU(seCf(X>z0dAZxJy&>CH07ce<38{Qk z@!QQRL`s^GFS$a=Js6b|A$=|vBA(bxKY*8HUx;ICC$ZO57}|t&eL4%zf>i<*nP2NW7OH;ARq{?nVEEeFuhVT$j*d3LXkf zAF1Y>&M<^r35u-BbdNFfijx6ZthiRy1Q{JTx{9m1+ z7ukT4d&tuVk9ia`*{)m_$3ir;5ya(XKj?A{H=O-u3n3he?Z@iy40B3F;DuEdC=n^I z;&;K-lU{+=@weRicS{_GO&W*BM6=oE18A%(#J~Eh()6ZmF@ha&X*(B9+WF7LK(bh0 zkXlA?x0z))iUW#T@fwV*`FL-%aU7YBzisG&wBlIa|0JljiX!8_#828U>Yj_d!#{#y z+eAtC;$U*Hm1pGGp4phik%R~TDDI$>bE$FC8S%y=X{|0$k1erE2tBs0(XD-OK0;2X zv!$0Jb~Y7_BXHzHKTtG3$w{)29@Vp{lKn~Rz|I$}PVk$>0Z8u1)*;NB%KkdkFYf3I zB=K?f4)4D6$hDpxJ_%o7cY-W7`nem>i>_e$z{hJfGPLpaj|t;BUivcyc{b?JCBo1# zrR#>aMpXGw;$I!1*icef0!TyF%PVAmyGd|yNr+V9K}`5YPi;4@1_dBuzX+(JAhInS^KG74RyeaYY+C~Qm zWjq#sODg$#`c^+W^V~U5^6GWn!Cg&ZosG5Okw*QcoLx9{?r+*f_K`A(`Ysx~@OzbNji9-}nBumz#Yl36nl;dn!qSKy z=@!){O&uvU!#YIgEKS*lIL=?KaE0#IlOvPP6BRavOhgsA!{cGw5=C;KE5lHn-Le5? z>dLCP^s}bc%0j-UDo_jG!eFIZ87EbLWhN~B1p=&k`vvbai;7P8UIDk0<4BW)YO<_FbtL9+T^I~vm_Gh_7758 zaYQQ~IhL>%3;Y>L|J0`6kXwcMmKs|>bb#%-biBoXb2l+#Y0p6Br2f?bqTv#9q9;ug zqLg<|Pp-s>6D*YoK(WRcrWWRv7kB?n#`!+cZq~y;?E$^C*o5(P?iGDlUeB!&l;&Ot zHV!i52J?6Z8aSw8P8cY3e`wudbrB#Hmk%S)F>~60rTy7NP7@hF10RYvU9!k#qD@Os zEIDcfkP|J3NJ4zbxtsfW1;<1+P*eQO9)2WUQ+58U{@!dbtJ2jk>pD%lO?l)?Qrc;k zCw6}oM-%^Qme?cBG%9(z_~6o(teQcxHXSNozdk+;=Xf8-mO?N`Ol?gHUmry9`0N9oDPo5r8L+~U zVKeA4_Z7tJU|Ts%3y4Kp(yBE%P2BV0)qIWc$*w!z&1=73BH|bkSGII=3aYgj{`v)8 z+@DYi`(8E|ZUshU-K@BOqT0eCOqvn6RenBl?jGi>L)3*9<4b>(t338rj>I`%fR&!( z4K>mQUa2Wj`tf-@?u;2TOt?iDI8mOxAa10$Fnh+nQO#sGa|@p(f?5oIY^jxxzKw4h zKr{9OSJ;vRRRiT?ke1#r1gk2iz#Gz-NN?nNda}{C!dq~EmA@5pE0Ko3su&yor!wZ9^>Ol<#M?9=uCJgec(!8k z93I-tlJdwMFcrl>gY!CF5V^vRcCkg#z!~Aj?o9&-nRJ2*IqIxsOY7y{Pt2)`_n6UA zCI$;{<*oBl&;cV+OeGIEIQk$NLg*si^3G-q+taLn>i`XtHRLA!ilODANU_He$f9vk zJJJ;q zy?=v-J4=)oZ^8E*Jg>-@3R$NTkP_(5snGkcJpW(bD!{r@S6;>j*%?cA4-z99vc2}a zpJvvKsn5D-mR#Cb3;$_VeX3+T(n`Q4{ozO|xCm(cV>?#^OhQHS=8>1_MIF- zz)h`JQ0K15#CI0=Mf#RV>K+RweJ>kEJ`q7oJtsrjMyVw4=}lB1vq+6w1`nm2xH)Ik z%z%~W0@MXw0jt7*f07>Ea3iq|*-rX?x5bYsBPpm$4<~Z#p!|Qlm>SMsKVd`nZ9dN{ zlvLB~qK;~2n?_^z2Lz{Ll^pv~q5XI9R>IkifLjeSEsD7bGhprJtahHjJlvuXwRr9! zmyv$0alF&RIUm>2AlOyxa!!5hng5rkh^isnF>*+>wP%B|^~2Flhh8mhtV# z#xno_9|^R6odQovon|B@SHhVwOROx^Hfn^OT5%?TmJ%ji6L?L5 zVOV5wOjFNkWUAJf1Wlh8%xLPY#e!Kz1B#@|!v;r~_<+)E^$p#qaz65z)QwKI;YK8b zJISC~H@Nr=i24eKyZtDgjrN!a5Ln0P9<)r9i8Uba`n|}9eb)~-Fg-zV4zcv4m9H51 zKOI-G@0P}UbB0wx0sd3GRU29c2xwS+%pZheWa!t;pSIqPz+dQQuS|9(Y_v>U$Qj&G zJa!=Eh++wT>U+!6+!hKVJbPA4&I~GDSMuhsl+#obtlGKvjtglPlynWw%rs}iqXEGK z(0pFbVcl9@5A3SQGpvPg#Cp|eGWAY|GO3-RhG(Y3JFgcMBv=v$LBd+#kSeGxRIlU8 znHj%*i(*1(JSRA*6$RbDy=i@2qwa$;QjDctj@_EX7?#Yku<%2?k0v{>WNG5X7qqOJ zUjAT0(#b(=gx!M>#ZpVgsMR3VI_e!5TAa%EjwLwx^HM!ny2egZHug)wBN}~d1e!5` z*V2)bVAn77N;W&C!CvGOVv`*5SJc%{-TV46UO|ms0txGti&}Z zvfamOdQ+dft4+6GrejVK(`b9nH+amWa)v8QxV|gjgZ1D zgx&fO+(vsb&Atl?IT$v_w$;z)xK=&v5AFFr&}&-!T%M7!pc7m_aV|01j}I>bVZ^cHuF!;SQ+Sv&EZXs-+`ypi8uo5vTcQnWWrs?Bx_4%75 z31xjhFAyT1lfXZc1P5TGs8vCfQPto;F?&p4pT*FZ&syD+b?tk5jE4hW z8JKNgm~$Y71`<`t#x0btM#|a)YqJ?r`7q3-zLL2-kI&XH>}L-fY%-WACTZ7-d=`Zv ziC)279Wc(_+Yyds5B+=xNh$|l8XhoIDmt%h znSqZX-vi=%u}*slroM(wKxlrP*0`R=9uG_!*v5FUcrlGL25<(R*^Aa>k<#0#cnbV* zBh7$Y#OGmM`La^!!~K4=DxxQ3PpOCs$pm#h%WnTV+_dhxvv&i_YTk-o)yOHOreB9esCNk1$zX~2!Pa@{$eLDz1@lnWqZ*$;Za=!l|ycLw^zE+-S zp-Oq_JL8x8>~!t9-8pTB`4&)fs_bi#fe)y$!aC#^7fc{E8urj~_~i;0@w)HAeI=s% zQpf|!=>teljpm+crwJ>6ltTRa3Tf_Jju&SP@cmHz2>8lK+g*$X1b{u?HXvP4toFCZk zD8rP_(J!*(_y`jD*fw@+l$5b$(v}*!6*PXR*J-fAd`RqspJNU_wZrN^?tu6P`y`F4 z|3q1{!ksgf2CM!{?)^WEx02F?@1G5So({KYZ@3*msb4s9H4o|#pMGo)&2E3*Lcs{NMZSSb@{W~HqcI%;Opp3FmRURZP( z-L@*?i%bx?qnFe;_&{bH0!15MK~$ryScHDV9LENY+=ao7t!)H1@Xsj^8?GX|WrG?9f2%t%iXbnJHc8B7v;@V5Wi2D=PuZFf z^=YdEw5;GMtB#{+4OSG1V*3DHX|jXa*|V)@N;nHWOW(Q)Nv&j+PLSmh%WbfE{bI>1 zTiy$Pm}Fwhr^E_%rF6WN-}mTluL|_0cHwd9TEB?pq7_T36^!k>&8M~+VTPuTA7ZLo zeLD%NqTwprQG#C9ck_=>Cyy8Dv-MBmy=hv5f3su++9pA!f!@L)>t^_%PljJC-acGl zyCiq9T3-Hl@m4hGrmi9(xDGGOPc8<=-DG!@GLD-rhMm$^?c00u@ULk*hr?|L3*Hs1 zPWU-jLp0P!g(})yJC@v*VG9?sLk}BDVzN3=T(G8b-qlC7C?=zQ!x+z}>Y^{>qVlN& zzp58Y#h|_2z_YHW8Q(@s!7BM7Fj9Kcvuwm>ldw|>+2YIKAJcBjqS~li=f)gN&$n?Q zO1WL}WjXgR|>@I*o$i!^~nSLM8mxQrY$kg@5xEqs_iPCQ5Z!-Jw3~8CXZBtezEQ zD_-WVFLETicTe9Bnu&a=-WUU)D~V)W-@BhkkmiD7j7c9dBfrN)56tAJ8!&lCm8v2| zdW!40Ms8XxaLQhkx928(&I&s*HINN)%tlBaa%(*lY>4np#4aelEXGvQ6u9qxJ!$?= z@zy<){KxwjMSU^IAK*j$Qmh@i^d5&Cv*hOy?&>gf2Cia#H3x6x^vPG8P+>@th(&EZ zogX8Cnfrsp7B(b$!2iG_(Pe zH-oLL5sd&UI=~3TImtyT1g`L@pZq`7uU()ZM)YD&xi*-Trfw^M0`%K3M<+#Nz)wo& zd=^&m>2jmsWYX8i;q-Rnvcmvzj*B6X@`k?#WMp*DiBoVzN|S?MoXyAO0@LKzO-dk~ z*dC4@NO4m%%6|2niYm(ykr9GgvnEFns1Al^I)DbK1b89A8EDI=s1ppkS5PNkarX+@ z=e@pzrCu3ysGEhOVg#udrNX<}`qw7)we-cAc;dwG7AC;+jbpnfzXHpxb?w5@P4+Yr2p(wwe(E7~GyegJw|{tlcv+Nb#g&9qDjvkX z<26~`&eh(1vv|N(niyM`%%f%Yx$b?rhY~KB2I1%!`KwOANWRCYY*v;!ejTNu@R-%B zvEaYUTTi3R2lu`|!88LGYhl1u>ZKY@ym((_1u{VDY|txY&TRj90n=@1m9&hF#M!nQ z3d32#C5ZF017Ybx5P&=~hA>^Fo}njHfHUS(&r}luz#d)CVvNz<*4I8-sBcY?K#qst-Eyhj8fak^ZOpwSTd&#LUPX{PZCM+00!#hxovd5TlH;f-+Yq zF7>uf8n869W2I(PmhQa0lFZ)%Bjkr;S=sXFzlP|j+w^a-n`TB3ga!~@N} zAC#Mc^{AQ|s_u9&1tOFa*H3Sb`T~j!A2NmKVulaHf3_@6c%8}{9tv1}2ZkH27ZImY z=~CpZtEiXam$8wZvzC7WWIfk&-&_=QyZZDe`1YOry8uyS9 z-%Mr3;5woLNYnB5{P&axy0VK;zhRC`4!@OcIyE72+Fp(nw<~h0b9yk8RJ|fIX3I2` z`cJ7I;n)PkJOSvMpG}UA#9emvTD#=>O)E8C{GJ3(OwmwILsQg=Zb`e9m8d8%A1psb zv0IDX(yr)RZ8zxShadsVr!2y z!BV8y4qkRnKf;3C`Du|34o?rP8S`1B0&%qH&y-_4R0zRW*(X>6;VT?1pzNI^6SKYA zd>&5W0}ehvViNKW_x0lL7k+OC7Lx;Tv(-QSBU-)lh`+2TA~zw68qU+IE9w{Lii-2? zc#umHrdLp_8_Vtat+3YDdecRN0P^My{1pgop*%nLV@BipGbyv)VPr=2Hh9t@=)Nz3 zErK+SV)=8zPL4s)BkDu^msA!nar^lvciG#L#TVQv#q=@ICjM+z8zfz*Dpl$xo0Bf( zIqk-BR3!WXhgzuZe`Ygz`k(TDYpZgtKQU_WtKC(1(Md(N6Xwuoy zX({A`X2Sbt_N4yoI3qJIjyg@r_-#+&gVWyfqjWbE(C*_$GH4k@9=jWe{0uw~6F1JX zdby9NEN|1Cx7s)tZ4RCAVNvfI7tl~ebHBSQIlE`?_6~(Wa26EUmc`nN{8&K(>e!7T z(Ix&mW7qAa$XgFwfOV3rAaBkr)%3mSVtXs2zOUeKEbQ@i{$8dHt&Vm++(mw~58Zok zT3BdiI1b5qq{>?%rXiRU${0_jDGutDEfMhH)~4T7~eJV4WSf#8vLCUs2p4NZN*Q2OUH5RZzb>zcl0I2l_a)ddej3Ah#IbE2`JYi`TA|lH?8^xp7Cu0THMUey4RLZO})=YW|9_xKW z=kxB^(iwP_O^2Pqfb^7*rA8S!g}K57clsQ#2Rp5YK)>`2>`L~+&la;f z=-z9Rd>pB$Kq!KWaRpswUW{d}ACMSM37yF&U` z_)ZCOH7CQBywDg96D(+QowFLx8f|C(AP~J-z_pkuq$Id(Qlqt`VHi=cqyPXM?2W0c zCddW0x0d|?&9$yKOni!hwDc~p+XkvurPhg52?3oLUA7ht$4!fZp<=ki0M+?E{Z9qv zSxexuLcFqB-6znuziTVpayT{5A$tXWu1koCqSG@1{J3xg9GOb8&(vp*(SJ%m6{|h* z4?S|48K(|r{~_X#m;3w{?5MTW*orLyB+LF@ zxD(#mIK$_FF{gYGx8V+iL$lBRjYLWsRUX3YuL9*dVVkfnf`pAQvTV4HA&z&()?%3ubh^`JdXirrTUH7Ug#y?#Cd};6+6*V&X{}N1ziuFO2x`W7@XmmXEr31E&K< zu=b7(`t9CC{@TYajmf<(rMG^6H<4mX7mja^vvYhDRw}Z5WghMF$)#X664=noD6D`I zkK&l|VAi#OEyc@iGX5rBJ1r5q$G;9>=l`&OJ~rc27$__>>wPBvi>$NZsem9<&}M^h z(FG2m`$A#AkW|eNK@hZu{CD@Qd4vGJwqBaI^#dljaV}52SnPB8WaBc(<3}eMa_DN; z+?u3;T}W+8P!431mG!87f|oQ7c=muW@ZrW*s(!h{yCck;&dYG@WXLt^Ed@izSn2W~ zW$)uFTWScy|0rx=Job>b43S2-|7kjy^a@evxm zsudFtPkNeI7dhYUpWe3uShf1MHX`}W_W9-Sq(^fT^iNlB+ejVO*|hJ=NTcq9?Ge`# z3`UDB4jRa78~_Ym%#TDM#uv-`lU>vqlBg?yH=mjKfMIQC#&O;Xr{@(pMNP6zP1YtS z8`P&RvmJ(l4nA+)2?&XMHr<+4Y86(vt$Mjv$Q&dU0rNp3r9>_QiXmuL#WZIK@CQo! zRaQpB_~h`DMgzEoFiEvU5~ZsGcWT2>#uST)EUi*gx^sH!f$o0J$;>68)wGK;$>bq} z^++cJA=wY24r-PA4)sT+Ajl9n11n^Vpj1TLoq%b9D(xg9byv^WEqg(_nK(H{*A0oV zLz20^A@R_LN`8R?ml}m|Jw~)Ba!g$wL>e(LLx@!@CvO~WsxNGc2}~vc-uo<+EcRFQ zVH?l{4zpAP$tiWZC@o#PqaX@ieYoC%V0a0WTjIV%edv??o`Ih-#BwBYreOU;=*mgv zG_2170()$FE#J(ahb#|5%HE75&A;|YH%^p58yeoJ(bW$2zk10qV16@416VZm)CAtwQ;PNRnfUzFrx0+}Nme0E6d;Wx+gjM~<>aHRaFxeEj zpal%rkTmI6EKoXKOb(s0x!ZW6!eS^ioco^7(zJLFAThZjbtQIKdmKa@q324KX;=y1 zL*LMH^DJpxhMcn=paMB=b;T?Ou!Hi>hnf=R4b3hpe#Affb%rQ}_!FJ|;EYU?&k||< z$rQw?9SpVB0uMfeOvY|@Q(n;%NX6lIUqvahLM-=!Q^iz5CPB9kP=m~e-{r=U?_DM;`b>$N3D7bn>#hR*D)?twE4Dr1$d zK3e4xg57j8_Za7pcD_SmlmR9f;9;l3B}}LK8iJy7*BBNLb+9kToLQvjMdGXD)OKDI z)&bDnTA!Y(=}vzgeN2i0C^O$@{UdE^YNGX9Npcg7kdan_yh5S!s!RUDkKC@-C}83(o9? z`>gaG8pZ{7Cdgs|~HW#8JOIS!^@cEukOh4h_@2TOxVv%sjY#@98I z0v(PJ#V43uUJ}&XZZzNDLLXJU)^3L5Uu?n@0{4pPz|L=lo&8xtLA5&%J?;{E+ym~# zh5z_OyrAY@qf9@%KFYV!8JdfaYe&f{w7NW4%#*m&QSelJIJ^1K z)9OY4*1mPc^dQ8j^7OQ*7l+c<2nQ1rN>A*(8Ov^D*r(Zb2p1(A9T_L8bgrv)BNG0at zSqu%9!Dv85r@;ND*usXU+dy=fpbYZ3TWDqvsZ8kfNk8bGvY-^w2awnQ8OI%W{E2Ui zgrTj@FojrNFq*ze+;jh(dJ-1dGU!A$Zd_9=ISWI#K@15%c?Nu@-B>z5;Yu`~i2f75 z>R0_DYS4R;!2ARcBJ?DC;;5-Bn$h5YN?+Sij9utYMVxUB&b!soVB)Tx%D9j{Yj~M9 ziPvErH5|xD9(|ni}xOy2(z%f_kauH(I z4;XgxFbH!ypu*s!A8t#N7fHANIXJZn*)KG}WSKlLZBw@3^Mzg=sD?mcge7?u@V@Nk zvoCpA?*k)YCYRvbax7fDX^-U^kYYGQ3fWqAky#yB(<$2Sc-fEfmU8xO99N4Jkh%JQD{tMOTY&(m zVU%j83TO%sz-y}PAlnRK|3hwe-nmuPh#e*1FY9L7TWug(--#(w=vNw%?<%h*W6A0> zouv^n?zTK+XC4?vjH)|;;l|k~)0**Jx`)TqC zx^xi>B;G*pNjBxXj)DCyDt*$R|Gcj8K4KB?D%OwP3f3LH*@VlYzZwR@5}9EJZ7=?x z!pHg}U?9DLQ8ka$m5g_;H>O`IZ|Wb6N^g8I7>dW)=m zcE4I^P8r&vf$VeYbLSx~wdP-Y)22TykSBBCpbiDCQn9+xxsefL2Sp6T#_9ns3Vv%) z&E}i-aTon>?OS0vQ{YzGR7-tHpzRnh>no(dzam~Qwxy}09R!=`HLZzMV-htWZ+>AS z36?+X+I2N0)vN5rmsMK1f&R`iWm-}a!?}We3SE5q{l!VfxcFN;yY?$?)YZ-0Yy1A0 z)m^LlKAs1?H9-wbX4)*g43D?fzvr{Jn2`7*L%O2~(~+B-Ubg&vR9?{Iir7;VJuopU z176>ucaV|w5RFh=?t0^&+P6wDh?A?{Z1JFuwYxx&)@Wg5+@|KAcMLM*$`b@_+BEkb zV;TV)M~2^1DKv}iy(8+A=6)G>8ht05Ukc$Rq``6ApA7rGQCmJq38tMBOcBPT==i>) zR+}{Eg{gP&nq#cK3dP1jKoa<9kqo&b+HE_Y@eSr&^T^gA@{Al6Rn)%7fHTEQx_7oZ zY<9_UM@9RAm&Va;Y98-&UU@=NH$MH{ed~jv?;!#ojUK!nmu+KBy1;4c$~M36Z4PzQ zuUE=~WsG;)->*`d=-O342-UBNuytyi6U}63isC>08#Lvr3;YX;GJE|Yz8mf*`7CYsX1Zu`T$_D!9ZX$p*M4B*e9PQ_l7{4(=oV7b&KkWP4Uw zaGJVi3`7rpypnCA-wD#5lFI-`ctage|GaFjFhH-A%Ss#}+`^ih!h&@@z4TG&QOI z&+Q!K&nr6!c0@VaNnx+`H{iP8g7uQbenY8ICZ+2gU15Y12BatPB0cY6|Ijmxxam(Z zE|ROHtJwRx(#_D)c#dfHwQ%;XP2!%idbUkdX-)_4}~4=GCM22o&~5!cOe+!IoT7xgX)-Z#(0uhNeN?;PNNCwl$Oa@-pFDD{?kO>SugE18c zsm@Ps7BTyHt+WbBi4rOO*(vsawOg5_*lzkNaApq6`EWZ&v1K@*_0m|f=T%~6Ll&av zrtGhvl{&QDz7eb6*G3M9)Wj|pB}QMiF;E7R8Fk%ny4vQ0kJBJtj;ba>O<+#&x4HU07+S$tzgrY5vMNmwFCQKIaE)6@0GbY^Pf{&I@b> z6V6!uM5CCM57z5)C`-o)aUVNBMih$P0=eczwhIm>nE91HXj-zKH9|cD2z8K~vfjd1 zjv>7A#47ed!P47Q8ov+DCEaa*Q1RcxWQnsEc8$<{E?(!3k*){xph_x(1iiAZC%{-K zKh&)|_pbpr>RX>hv1`Et#qo`CsdJ6jcW*^xOY8+bU@tPGi}AR>=4i73?1>9iMt@0! za0#=sqcrp2P>soM{E0)R5{tBo$r5q%V1rUDslD_~?N|2nAM?BmJ<6^1i_!Q`;Q>`n zMdkNlNd7Kvbxr52i?eQ?rDLMsyDJdX$K6r0SbL;?mD_e<(@=+_$fw~cyUmRcLp~x zSskZ|N-RVGx{k_H)o@Nx5T25ev1st+aA;TmXOJ;{xX#=g$@2 z*NmJdAA*RCPxr&22K|a2X^@F3piG3QrndRm>P{#BqrIpFW_AzpHjCRZ(RGt{bB7{0 zvy4FaHLz^UML6|cOl1B6AXy*A-pP{XUpVXOmNLGjw+Y!GHhxR}&6e`@(X;<=@r0`i z?t$?pwLyW!F^O?WL2f+06V%r%Z4=kh;k^@@XZ2+#&fTlBa5R2&H;#1XHZ|<38j%KF z4zU`(15&oT`EREw=s4X`Q{$?nXDw{q(|O%S1>g-=P8olm?JTALA_Z$Jt_Oq@mwCkJ z=eE@oMD3miGlnCIta@E3_Yb3m%n_2~^Cx?uL;mmvES(=f&}PrHkr*gE zSX{$3M&pO)D0n6e!Nw<*OG{8KXpt>H6~wANtuo{+*XT$AQMAPYH3SPMMz|)v0uT}T zjZ3}`Hp7@F$}ph~@LP5l8SO9%9mmF{T;DgvA1QSj(gd!z>cQR_mrW%hYol_{w{ry&rSpg#mqu(VI!|(JZnqRDU7ZQ?A)HdsQ%SyQMb&pmGRk( zb$E&bX54I|JOC#9r!&e+j7+&L8o*O@-zt?rqilX5A=65e8vNJFq4AKwj}3A*VgUD% zA*!W^G#LgraXbW~_aX|TM{cVW!zFgvHCfGpKKMA$@r04DynEYuAEDQ(vWQN~L*9Ac z^Kw;m<(+psOexaUb&xBD`M;Q+;IhrMA+#;Wg**B+_1WSbI8mXa+{m-1FSnQDK!7=^ z0Wj!95YRLj&S*Z71o!~BG3$iW99R(Hd2oxjR%n!q?b3sYGm2wXY52x`hqr&1Crox> z8!-BHe>Q&L9m+lES?07T|zu^M-zfNwI6&_< zp=|hJdVsVVCJl^+&Cxr}mh^A&gd6n*r~2^$V2eOT!;>y?#zm56AYscSwg#lMw1ttB`t^~9031BZAp*qT zoC8?0>2u%ates%Qt;J-%9Go-63jZmd@HPd=FKRGL!&BUh7s<)71yeRlKq5=ZmKe1a zWbFKV4ml4g@#m;Sq`XIqUA<1nEfxoY-68!%J-j)vPn?Q4+yA#bVX(v!p&l`5PbZ-d zXw||6g0fRfHL3Xd*w+W@0W~`(I^e~mFzGYQDt1K)4ObxMHy>}yTxzwtk)|y1Nufc) zBGAvqN9Or%4V6s^xUgyQLzF?TrPKRr%O8BVaI2DPFCYM{szig!%;fbf$^4=je$Kmo zs{ADV;6ni4T}~o&7LW-UwbooAq;XoRCnyp9y^88A*9kY>DEkl#{`a>m6@ZHZSWU|l zMpyo`Ow(A9GNnJp%osBknN{{boz|+dmq0_ruu?NuHu@j?Gq)O8%pSC)pc^}!=Bgpl zmaq#|oB)GsX}{iC+H45H#tN8cfD}FpEAOZrSa7x0#cHxTIzZg@8be{t+hek+g`~e| z@Ie5yArr;LVWC#!g>n(Ejex0Zb5YyLsrRnwr^0*yA0*>ZR+gAb0(I{*p%@XeM1h(z zI$bP`7I^b{3b8N-%QN_<2ZJhh=+MS3-xwZhyug=(XD-s%Ug*0dBHhOkhS$^w4wdBx z`xU9S71*NBrvE4B13o!3Ix~ibmX+{4JUm8Tv(AkY2z#jAqjzLr10@r21B7S1jp>01 z`yE|olaOwtneZCCH4QykM8fLu`c;m`1y;}iHOVO_#gE1JP{I^jz!!wJB{b$1MWZKH zNQP1?4_dM50s5ELXIE$JP0mPQtB#p_#+SyDB}j@tz#4ep2uMw?faNLHE=)Fq6S$s_(tfpdb&Yyt42#d{cQuA}APIWGNCUeUH#D95R;9ZEg`@v5-29 z82|+&X{H%?Ht;QXu*rC_mz8IARyUIz&b~cVz-^&OLZ%{*jnUmMT~NxVy^HQwGvVON zJiHXu=!Zuj;b&FsI~S6AtC>q(5-=&|rxgN=Dg=p^Q$idX5TKZ}yG@h8=@1|=Wbhll z4d4hX`nGay;h}Xs`Kr#I0&4psva`WSB3KZh{(aV5iYDqWjuBb+6a#e?ws5mZnuo?4(9Lu;XIY zHfNb>GrF0_+HFK=X z-}@s5COSsBgg|2*5;+!wbt=>T_K%U+D)rk9BH}Gz$U#d!JVEAP#*NRrNTxP0O!VSX zMB7Y1ux7_Pw4z}#kC6JAm2|?pDvwLCN(Mqt2H{a%>IeOl(+=~PMaLU(6sJGwn%shV zG{!cp0yo`37xsHbVgyARaXi!;;#IP)6rFS{{4#8I^yf_XTuT;Hnp$&kKWH83jz?l- z2AoWhQDRb+j)+yZ+1>ns(djiLG#Ko#MVXgp zWPx~JrL#$lJ4BX{63_rF#z~X(Lg-MCeub~y?b^1t5M(Q%fMJqb8VW3V-%?GWf2v3b z=r=S<*$$0cvpfIg-I%Nt+35oMxi|DnA-4Se$MO92f~T;cX`4k#p(RDl#QW` z2q+#?%Uxehl0RK>l?g(*ze6w=T8iBpO@WS^GuZw9$T#+vc?LrAdWBZ83rfW>(+R$T z3%8=M5wzC;ZR|mF`k;2B(jAN8pW5i)eF>xF2la zHjT%&KUDr`oY=&So10!y3CbDh{mE+K!CAzR`)aSxpU|&;J>qED1Dt*s5urcLKnxi6 zAo;Dg6UdPW9t<5t-*m`TB>1dVP=HTfcRBIiQ^b*KX`W^K{ys(GUtH9n0r=Z zvriS;?)XC%MMB$!C;KgCC+P?6v?(?*LjW8svGFk377O&aZ`<{ayyn75td3trb$)D?sr zH=jDEW#`kBViY^D34FxBAP))HVJxv@%RhUJfy63`gpFBX%avBjIG*Ykg}J*u+o*$J zzqXarZe;HMNhJt6#OQ8x4^;h3wUmhh?-BxA8CmDFOYn*TOgOi(x(P@C%+liwj>OLT zgnV7++nM^qOq_Mg5ruf1l2eL?+LM|R=Jj}Etpo@eJNZOk>lt}Hnk(VX4YXi7$IB%m zQkzI1IzcE~{%AOc&+o!~H=WDjT7#StBqm0w3Fz4*PMkaf(hAd14JF;tA*ax-N4HWB z-#v<19Z4$-mtTwiZ}EhueTBV*d39Y2rEgJ2#|Ibo6!h(xl158xrO;qbAjYYi``m!8 z&l_w(7EyBsze#`DTLML<11}6=An+hsN+W{BH&Aa@s1C4W0qu$fWx6{L+O`*Fy>pdS zAlKi_np2$0;RUbpuK`jPxoLcNu z?-hQ|OsFw-0IFd-pU~}jNc{`*FOgUdxkuoZwPw05XS=lgn5r3MqkkCyy(u6$Yql1% zv@Aai2qz@*MZv^m)aocVCf8RY=cWmC_^w53ECGmM5~~wxThQwLuHyDvLb~RsZEe-MTtL(SJ9+Yel zMUYS4#k!)(;EbnuT`puBRQMS~;%nP<$<|i4e9ycy^1!$kty@zS*H^abLp5SAi=pMR zsjb0hVr<8a)cD2qcX`5m6`!A8Ydw%+b~ZyIo38tRDK$^P=$S6Sn3ey6~TJEu8B(rgN%g$(h$4;PvK*UiTHKooq+gKw@EVBN%h=2U|4fe z1b8C$2AFEAQrIBNA9wv|Zed1Fxel6FlD}{G+c*}ZvYMrf*HTYSWBRcDxA=&*nsfhJ z2WuDGsZ~a%$7&ml0~f>Nx}h9bP~FWL63}J>DJJ$9W6?6i;}eHG)hs*3*Q9 zB&;t*Q;Y4iSIYp=F9!si(??pVH@_XydcbN0eZiar-$0>k9#ZLmy6v~3Ab$~jG}CfM zYsuLESDrA|{9f%m((hN=4=CiT6x6Vh8BFt^X%DA2Lr95)p~EwSF_ZbL`=ARE!X;2R zJJu~%rjizJEOBo5$EfrA4J8I&hR0yWE`q@+Y4$sp2|}{9(ipX?jNL~vS?(h?8ZcY4 zFqX&2ykQvgyU!KF&d@M`$zz<0cqEHyFW#09x`b%TYAWp7QlWXrmx(qtS2M| zE6~aBYjQem=zOZi?5kVL#&uIX%P@kJR-?;bPMwoDb1DU|1&W?*05Xi*mS~jU5Bu>8 zJG&StDjs6cu1GU!6v?#r?X%RQg%EzoG?H=HO6;t&1PmIP5NzyDyfO()D2YRn5hOE2 zN3xYvl`8L1Dc#2TviH&T7sVAjY+%metRtpdc^@r=r@UraRKfY zy25W3;ozkEM+R~NF@8c`&0WI;X(@7U+oXM9Tu71=VJxiM)veK1{Ap+E7YCd7uCbVU z1xZEGkxS*_NuNrA!1qbC+xh-;NOe(~o(JZTgy_X@Y|b7jpj6hKtu7~?l)#QQuSk@j zr*4Soz~@~M;O}*PE+P+O$&sk-`|~w6z*}(AFnpJ);u%}i*q4|7vR+$9t{xL8G>yCE zp0zLQ?Fe6IKhLd@ne~?zL`j&^L!7Br%lhCZVr9uq5ZR%hKy$Z$%fEucizH+5v!Srd zdQP5vaxcZKSI*4FtF{MA)uKEEy4d3_MX0>3TRNH4Tda26l+!`7z{EQEu^>>X3)wRF zET)Q1eM6rdwl&sBhN zk_y=-5Dme@SAIz2j51S3zUrX8sL$WPB9XS;Artr%lY-P(E`?5$mwd%ywAkAxG)Z9t zn`rZ!->8f{#YaBq2d}IO*BvXr)q(ra7n_aUt_eA)1GG_9+Jk0sp~wR`nC9NzmB8Wn zIntZH1;;XiC5_%ejkLpLt!q4mj86FdzC@Y-Ikem0P_WYQ-IS)ht;ji+~Dr%G~jH zcmn->8gtQ795-SutnGK}VQ=!wr~MT*6WtkzZ@wZAJLa6-2+5cNe^UtOqE(3 z!n9vo4!>~MbY_9NHDlDcpAV<3c-k_h@0wpl?hyW9E2|51!E312k6=)`EJdc=2_B{t zFx?tIMg6q_D>ioM9EZW(xsqjK&=tp5!!eZ*N~0w4jpP-H(y1EC(JmK*v5+1X4u8nh zq6lsje(h* z@1Ov0$^N3DE%5!qHqv$CbH9c5;Vx8lrv(zdtH9NL97R`k95!pMbUF_4E*lq7N3!mc zJ7#9WObdKjI}UP0$H4yX+cjsQ;}ZZ~QUq&1js}!a*7=7A`e}Aow+rEFgd_~_d7CZP zhZj#_xaS+19K@$P@V~4Y&E=3hkPGyzLC^H@!hoMX8_rHylXX}hU4s#|LU(pyOVAin z-Q^mtyj{UH9IzVKs%~*QN~nw~aYmnw^jYUt|~{8|4+H8~&e&HPv!(lS`Vbgvckc>@so%?$u4QRQvUv zL3I9BJtH{CaVJG7%Xyz445fam^ZWkAyrYn(^c|jm>R!U9QT-HQ1Ha{wHF>;e!=VUP zSnGW-+X>oMgwya(rwQ(HGZEKLY3tBFQ<4x^J?s1!;DK8^W;Umq>#k+YUoqx3gr_V> zMFH(@#w|_HTb&+`0>*DZ(-is=q}l1WS`)57t0Xxjf?sh{U1Fxje~U}y=6yz~&@KFH z{5u=bFCY&gwc^I66XY_q02wnj82vk9P>{?0?dVFm@K0Gg8z_{qAs7ZWR)JR*3R$YS zp~n$0*mwWVa|Au}jO{3UILF36h1f!;b0=#2z=tJQZ6H^eZ`l`H^ zuE0unWaYgX-a~r<%!3`0L7IfS-Gci=%jRI^Gm<`g_^#si7AECHW(-C z5QjyASCt3sz8LpfDZ14=ecLAsvmW4al1eq4%E1b2+a~MNr%5i8tUYi3?a~)_H~TYP$O*Xpmv!qe^2!9L6g}K~=JJV}mJ>q2Uir}-BN_1HX3=Va zY5HWyZ}1q~t1NOi&~2|SMjc#BVF!6x6hS_UJc)^qL#4)IH?XV-13xyPOdpsC%Gu^- z{s)E3`3`O4??sP7la@`Xx&R-SF^|^>UdC4 z_h^}?x+<$7eju^UhD@phe8zX@<{7?3Xf*nI9>Zk0&RBlQ@G;Z}9$;@>KPr3aH``I% z*w93OFS~(S*@j$+dKFcqC>)i;d(VRaAANe*@TiX1%qG1R2!s5`=lv_3pa!|liDO& zu5fuG{zK<_9htSv3mn}Ch@^^dHkj_M}EHX3kcmaA20_38ec3_Wp4aDZfP^i}9 zZ{Njb#=?tg=;>@-!wbuVpdwaQ#P5VoPZ`_9nzZ`mIyD}(U4zI&;-3d8c& zl*+~~Hyic|P3g^JPZ=c#CHauDq%l^aLZleWsT*qS2-R2xg?(raE#AdKOwGVXeGt1k zv?mfZp50`Y;5umVtGl1oH=-41fENPu;tES>AZUxk!#;xPRts=)BptWUSX54dJolbf z5yQXCrJXR|_w7+C3foiRw$KPDQF!sW-+jpxtKje$t~K7nG%}K*3nG=^EsgNiAL!AU z7!g^V5yau~P4dWkp!zo2Jk4LPBo0=&NIb2 zF5l=Wrt*7oC@;e^^bZ?L|B4@2GOF%clt7;%Z);IK`KR(${b8ZQV7Mc>O@>B6UY8Ww z)?szh>ShhU+Sijl`+do0mft=4Os8VCIJi<7rtUI##&m5*A?LV`TF3DPeA^!mQNS-J z+~QHA9?Q<9;XWN~*Rej*C#dqGvG1vyHB8I7x7#Z^%BM7HIkSDSOgHf(l}#LqcU)q` zTIv{&1kOXmQM*ZdW_f-B>G<`Lt9EgDilh}4uSH4DT^NMg*nLk}MFT=20}(Y7 zXi~w#z#%w~Qho{o=HInAPb`5YDTUFHd{G;;ZqvHsX?(zg4(ABI@ORiFr*k_fIl~KX z$$ma6NwW>-h{(*l0T6SUt?Xo7?IAggxUX>agrN(i>@5r3LsO4=@hkv-Hs6ekl=X0b zqBDv$8|qDQ!e|G$*BuvZy!~FE?_+2bsH{%@FvjbcM!qeu&24UbDPri#hL;^Ikr?4E zWp+QjG*|N`u668Y-{lbuEk!?CfHY$u{Zl?7U|L0*!I+3Wstd#_WUv5C-f|1s5V<_u zQp^BiL%SKPUJJPdvyc;*rE=Ak1f*zp@D8N{aGL(lLznSq5$OxVEnR=J>$&HR+vFM> zm#R01wONx5a^cIa8&X^-wRZU>Npqwpihxuiz(}1=li=m_rfs+$zLdD;TRPdOC!PeJ zKW(4S?4o;&#+gmKHL~}cG_&Y{hr}h7p5i$hxCr^H^8^t6SAS{=QeXD(G7&*}g21|v zVethV&f0}~v5cF*#)+Y#V|aP9Yd|2xf~v;2Exb}_3#m7Z!A~e1l|;%DeZJiieYqWV z)2TATfGeXPb$m1q&Y3uaeU>GS;i1sz zDUO?*QW_ZZe;xPVR*(Y+lz7UxoWPX#4@vzjkSe9aN#Hd;{ZszdZ4Azk`}TE*E=_%w zcNeplYH#px!{`gxlrOwa5Zv!|*ClNP#FDeCrSzI-HuaRy{@fIP8ss-}i}(n!Hu~jM zq6fgk`a)kr=HAnY#+?55du!kO&q5^DQiS!WTM|n7OCRCM6H2+R-vv|;aC22J0o#Fz zQydO+KuS=m6?T{0re)W78l+~5!L3TfF@kl``$YN`WD0uGbz7FVOao%UuheQF&38`Z znfgxxJR*9M0H4(r-@!I9pcqwUn4=hKZ}!89L&cYN8=uY|l_KcjF_fmNR;ZnZs9O#J z?7`6#&w{?OcNsI%_3m4-en%_>V=_9j%xkns9Q+F8o*HM~6+n$wnn4D{6hQHzWc0_V ztaZRPmV#xpGZW=}3yVij33C$&be7O&M4iwsKDMMy_M8#x>f#e}+j7&21aP7kf7joN zmLnswmwWNB7rJpF0vW;?{kHRsT9LTFKe;Y{r({Urm51zTwWK|Dv+rlB2LkNH0O)5~ z@MZAYvDqka471cVWgWDCKR-Qt&I}u~Mz;X54be6`T;^-0w9UPew7U&7Aa|Ti&?NS! zZR4b`-X(hj=M>i7EGx1O0f}anZL8RZix&`1H2rkcH=w4Y*hS@_nDykm|8Xmjpwj*> z%?*B!3lasr^fqi~YP)BkoJM`@<8!%Y91p_yMLOIvo^_aHz(t5rh@(5I>B7KxE~bk> zIg8Y1i~WTCu>t9g0n1b|zZJ7aNBz6*2%m`rCW7=V&ar)v+$+cbJeenlbvN#s>GUCl3 zqY{C;4nck$ROR$B>okr9N6R*2h$3OK>N-zx0YTwl$v4mTk^owwi}qZ+Q3$6~G|{*a zcpqCv&S1Nlc7RFlu#sAAxI9)}6<&I@(w~O+Bj#F9vl-UI^5?j=9{Twa%2R`4h=g=X zMaBj+uCpeg>Zvgf!i-Z{xoL>DZHR(os+iX_@YG?WQOE9?pd;NA(CVGd$Ko ziHooVey!$2E7K*7uUFmtU@Grubx4TOTekz zDceHr>7&-Hogq&r9?V)Ve>g2TiIPY1P_Hen zQ;WKZ9@R2*k&(4p-8g))V;GYl9f^_%I_{pg5y-BO6;y#j{W`IXIxJ51`pR*$eFJeW zkd5q=$|T@fIWvUuSeT|!13s+B)?(wJyeJT3Bk|gA~OYCABzVufPI+)!* z#mD+@>1+Srp0_%sz7bl2YI;A?0SXp`Xk8?e;I*6wWS7vm3?&73Scry85WyiDNU!RB z7P5!1s4I$Y+sU4ZBZuvMgA@I>uZZvV63B9^1ml&ij(&tAoJEB_OiSPqYp>$j298lRJ+58hMC< zSq&T3S1yP&vcMTO8RTn97Sa^C{+U5aTQ5b&gSmTcwg zv2vms5UKGF9ZyHGVy%AEc2z_~HbHYfEp(+@(0u?p4lAb)PCpIL`T+BpjXUD{IqGWo zv1q>ykcZU!YZhTc4Ra>Ys7+FK3Q*#L4p5Ky*`;^4P8KMI-R=}OZVg@KFv@!Uw2-rc z|I9UASM1&4lo{$RFf)ItABfQ-BOd+*p zp5g1>h?IlKSblKBV8`vvQ&#_<;$LBwuZt7giLB{~vIJfHVBVK?Ev(D^epn=Caad>LUMypO8xi3yf z4D&=YzArRrJJ;jQ>N6R_wY5RdVF{*1iv8n*5O1A@N-Ou;x?FZhlDaxs_kxv1IhK}H z-EylXc1}YHC2J-K9z(y$=^A6lB1i;4OxV?{*PV?NnSL*oX|W?r^1|q^tYLM7y8Hr0 zQ!&pHWG4DA*ESao&`7#sYCz2@z?>n-`ZX zopjo?g-v&}hAI3V;mbT3j&5k~(FXW6nxf~^yxePvs?6i0gw3dEi5HeH4N~Da!;7Pd z>Cp6TR#j|OxZEDYQ2~UnW6#BoXO{(Qk5BU7!UN)E<6Iu~KAUl$8E`Sytf}NuJF4xk zv~^$ix8dwLgLJ`N3&z zZk69a(Ts?*ROnoY^0~ZgK=6u_)WVFdX@Mhc-?gaN2`$YA$?<`SlZG`@Py_Kex5GEy z45r6ALJN|Q;P~K+OOlHg6)-(^Z)34+MiKbZSHc`%05WFVP<&AdT(!u2QV8*<8^Bd4{qbP_YG<(gid zE$u5Vu}fR6Mj%B)xj#seL9j=5v^n!2fC*Qa0B*Rv+oH1~cGT^q@#Hj$yDuZ5P-b8w(9J z=SEqsbi4@gR*l8vx+0>Fn(ESN$KIA^0%@Efh?~)5S<+H+J$6T ztv$c&2FC@)Nqx+qP}nPCB-ej&0kv)3NQOW81d9 z`{1`uzLPa~)%@n3tM)z`f51Dc#(3W6zOQSDR&IPZPqf7rls@PRay(2+r+CVal6qG zoyWDbke8_npnt5ad*CkWks#P$l#80?8Lmocw_V3!aLOml!+85@9zr1hwRJarw)mYL{`mPK3R?S|Lm2pIIK{fv2(WQtYo+*cf z$sA*aF7%7N+(uI-vVO1C;FsSaikteL8~hUe;*BmK+HNADLwsJQ|FyEEKfa;l_(Z=^ zC#2aB*nFsZ{rdPYlIwjOR}Rh^`Fm?h^!gx@&u1U(nKEv8lT7wf+kFNLmtE#op^|GQ;PpnRWp+0b$Y;pGN1DFq0^V}IO{%!y!~cK&6##<&>hpns2-e30--VZ@ zTm@zBPK82FgYDUeTct2$9RdIWQ;C8s!ehdg*vkjX9+}IdQGBt~vy35hoh*X533Nn6 z0XGBv+HvhI)(d5m3(bar2qHcy4oL|V~=>)nd16g~z5NeRqFnc;n#z|XARPLSN! zwYtgfAY6EEx(1*bVdo2EiHCqCTa@Up`#?Me}Y4ks=}pfstkXT{p+U62((RV zWr;;8FysY@MX_i!8zX?NOeX!iiO@XKQwQ!@?^@5-*=!P-XI>rfm8g}bC(u26_+%Yf z5nj=JQsy=C3)~sdo#zcex0DjZzd+K%@AC&$Yf(V9LZ|> zx4DimgWdz*72;6FC7RNUT#G=O2*th|Ia*Nuvsvc7qG9lA8ExmZeF|)pp@n zi&5VdtaZ4v#KGMEbq+xMlc}KN$Snmu3JC|SXkZcj2G7})1AZvv2x}Vny}O_zM(|p%9PrmMp6-M?F);vV_s;4C>ra^r+nZZ7DL>0gbj{|`>*~=rRw=Km!!FnrXy3& z+(OIOWsv|WMEOa)(ezQu;ZZW2K=1$)ZcY6n8;=Wk71hJ3x>-`;T~ zrJ;W?2K=1E6Gs7`nnTYKRNE!8ZU-z!Oty`E+w{b{2FOeO0%h9b4$>?&MMfiXG&( zK?DV!psa45{cY+aBiAv5MLs`+%Mn1#2RJ{l3mGan^j7s>=kT8=TpGLA1o}qfj^vAi=S536|7W&3aAg<;B znxa%>9xkA4N#Sa?MJQ)BYCUmk%*qWKc^VP=#MsK3d(&s^6A3b0R%K# z)`hpYA9qabVr1(edlu^{)SAeY~lGrq*1b^P%I^{U;S{4l~A0P54%LUwA zGQaGGWDFlMNNEAD!D%SE@oXj$(o1u=@LZPOIUTQ%yw+F#48#JyderGV?MuPrB2Ecy z(!D^Lo}CduXN!w1i-hd3m@I^)-uL!@C*C+vCAoG z6iXIFF#W1@VWMgG*-Jkg9nonnuNC^LL)XnkMGnk7CGf=dd~?LF2(z+b{c3E-LX%ml zXW1JrEbV~PAS<}}zzp3-P_PWBAgk^P225nO$c_h)`Dn_4(NNy_>jzTFi;Byl2Wv7nbx0ivk$u|eS{KOnW+d_y;CT#kIE z^kY(Nc@fBAPcmuOjV?X|qQ8P+Z$HXsV?5@;2yJ5Z4_YTHBpQ)+{azHqzZ(V}S)RbT zhuM15D_4yCpN?xdcgqvJxx;H9!Tzp&D^R1&#&-FDw&{_W#zj7fnV$ySRoy^p?K}_} zj=>C>b5h(L+@V+Q3njU?!IklaNAx*Y5%dAkAx`$oPSNv9k?*uAK*O9!h?iVPO->nf zo~NVD8QldECRWi`-#R^aJehflWh=0fRT?BOS4O_Vi>W^q(jrAt_H`Mz8ByvZNW~+U zugJTco`FR1l^7#rpedq*@%y~k=%q95CFg!~FR`P3A)IJRu85H+k|J72E-9oD@!+yz z33Jx4&^c(QivC=&XeFy7G(=AZYv7-cCn~!oP5};om#beGfVCu>+5Z%Ot6z>m2K%b? zw8+oQR2(9mmTRV-&J3GyHx(4w;mrylU2h9Ogur&)vsWj<2e&pow<=r-#e}VbH_IRP zpSK$($69!)cqZOO^qmiNA2e|6Sy0p{zk(p`r$wiNvc-_a7G{zuRyA*=f$~=nXSqUx z8i+mwb2?R>dBWT;NlD3)3i){|eFA5jWpu9^vtMNg$?;=9{;EKh#DD9V3{VW^5gqw*H7(oPrPS?T7Fd&Zl-n__LXJBP#EVTd7u&5sIHTCm;GCK!arShAvUg?k<{U=n~|n6@CVwrV-X*i zu3>(&4<2+P(%U;*GOp2 z$^(HZuzg|*3|kHy(_ui|0@W?^Y`AhZz4FBTcCMSI{|Xkbw)uDYTg$l2Dj)>s=KNC~ z5rW_-X(ZQSoALF17k?X6_k#_x;M6|ms!K_|Xk1@UkRq0>iOK&kiMW?c@o+~J}M`hc5Qu-813Y;;0D(;L-IJM8Md@UM@E?y zQh?2rZVMQraqLf$I0%3z*?NHNhv+l^sbq9)Hjrn9R&FqS5llFh6_`CTQ20;fwPh)t z)wEkx649gf4&u&MP|BCUJxOGD8zbRdgEC(7>@WZ%Y`0Dj4Wu^1Y#M*oEJ6AhyP9-e zoj`2Nm%&r-cQ*kgvIL87#Joi93Lu=?3b%J};+K^e&hvSCvB?9;ytO0h0TkUma)i*G^ra_ec0 z!Tw$Q)_vCx5X@~{Wa1#+SlT*owndB0__2<##&2raG(Q0ZOU>C1-u$RCqIsbb6vTQK zdU42hsL<6fZNRXqQ!L20lEgE84CvwqLA&jdV4K)#;#r4rUc1_9_%;tV9qU-cLk^Y1 zJNN$NE_wJ4h2W9u__k?moZ}qeAvMMtUS|1r<1;B1g0`SFVmjlOz+Fc_S%sHQ;0k4? z8%!^;6G~W>i@)k4DyG2VkdEyRQXojPXb@bWgmkR0Vu4{7qK|TRp?xI?J_*>3)Iu8) z?2CWX6KXJ3JTtZnn*7Nq#brT7+eVzI*rT*~h|tkHMMVSiF5D`+k=}i1P&2KH$=hLC)WJs{=019Kg`0JV z``O)tt8uV7Zw?1SdRXH*J7+p;Q$KUUsIIk!bv_UI!mn7Ds>ORoFh#m>8kqT-p)VS~ z7kLP{LRiFQA7FI47I`ZvBA9|=(;wIklje9O-@MWAWlW70-YVPXWuO8^qgl!xaBvKP zGDXnDycJ!{nYO3d|1-A$E9^0qQKH+d?I+DA&@Dr2yw*oID$?>U4uyCBVe_G8|2;k; zT=W0$yyPy}is4ucX3N0LN`CJ~eW|sZmV>X*9%_(4_ttY!p9UpP|3CmWTlukJ${0>; zm~aMd$v4y5L0<+1nQTw&&rMb_Ivs3iiNLlss;adjy}&PLgsE4)o#6n+)e;m5timQQ zW?xv2ox8(roE2Cz;sv?ik7}qrYki2Gb%Akn)C8haN1K^c67MYc0GR?M$RM1fHcY=s z&5h-TsNhE)EO;82BPjmOkIH(o!kD~m>B!$H zVzNQT(@gqd>sFm4YG$M9mA|99*aOyqitepS_+y9Usi0WNSsRC~D_G(DjyqO$-gf)}`%ZIJ?p=HYWd6n-6@T**G zZq8-pYY6>jJSGm?Ioec1TMTRa1{#(=p?iq>H^9QEx124YwMZAX&PhICk5P7xEGq|0pdjxBo;7pm6nw-mC=wCiafSt>H zyIE4^8@2|U{2nH37qz%}h!|6A;lI3Xakdz*sAJ_?KYuJt2!{V#@~JH_3|CvP&T4Hp zMZI1TB(AUf*6d^=kvc6zKhoU-D>dykNYdiE(xe8iTgN=?WDI-KBfaIC; zzBLYxe}aVS2X|9gov^j1SECdT4PFMt3`MSD_~|Ra&aA1fH zfrwdP)`nvaBF|>l@T$$#z&IX)-m#kX!GE?9$I~!{UA^4-1 z91pB~s zeN{3~0n)3v&kg9e{_-&U(HrisU)7G;X~oQ*Mp({|RcG5x0sGUlt(88*IF`q`%<8MV^Yf3d;7Wg2 zzcq^3&<)WT4ew?KepA}GL|}wDe8&7kE08$hsc2I7ciy(>b5&8n^#gU|$w=|0_A?2e zO&)ZOotvFHf!tVr=~e(vd3q#|2@p&sp_O-{1Jt)?+r4x(_WLbTY(!<799!(n4Z2|N zXi7m?SxB=8+(SloT&(G7s?eEDvv>x|auau);tcjyQ;a+xOiEr6Do`ti}c7OC_~SOxG7f5yys!uP^;Wh_Jv+7d~z~w~|Yz;_knN2V_ssuoo**IzJb0 zyyhTqp0f@A!zOOH1w4b2X}UJzc`RJ?#v9qlaF>=C(bO3ub@2W!9GgdiJCA#?x(H~t z^}gYd-Y7+hgqKZQL<1+trxVVJq&z4y*>|gFH_WW|yEAFsf!7ju@a44m=Y8!Gpr}f+ zINodKRw@DAjL4Pe{puH}FCa7*g;gwZRZ)}t&}2(M3+jrX3n{V6T%+QG@% zk@Dy7SzQNNqYf>}TR(*P4{0rJ$I`DcIgWpdC(L4K?MChv0~0@O*0VN?7Dbd&zN|R+ z-gH@WQsZst^^`7P#^W^g4cQaD#cm-7lKH|W{xSxrM0hQASaRNfLQ-%{4C-AULZDYq z^{9=02_5auiOTP{?k)pzGtJ{RmW1%2V5O=X`|jeM4Sx1b!gOJgs}c2k_TqH=CCk~E_vWJ5Nqm(6vyzG#6l}~}ZsqaVT!dgo+CQy1 z3}UOOz)EWiT@TQKN6%X_jJKH;OLqn$H|;>=P@KZxDvCctcOpxs?f)jXTh124Q zi=y2h!My)l`mNiCt!9PSve{cFBdfDyyPfZ6lA-5&yO_*5_s!`WvN(Fg-Kep?j7NE@ z<8PIS-1CK48M)q&qurp@+EV2opU3|c59r_GU-_r~t-wno>n?aw{D{nOP2h=O=t9Pa z=r!JGz1ReRBg4FTc%VbfO0oM+1?BCq#j3h%W@5UZKb&h-{$l`djn^V`t z8lXLBTPL>yn5{agd)1e`m;@Sc5m(q&SUhDkr4fxmO3BU!JD&tA$pzv-?UrdyzyX9L zVMFQ2Me?8p4^4v`VH-jvp&3;rO8ZAgtm9-}iwV=?aSoE83G7j1mmy!0P3%nz|MWmVi99-7&>!rML@JqAcq1BZ}Z=IL;tG374WG! zVk!Qz!}9065La>m`!h^9c>WA-(vD#;QA|{I6o4BxEM4t5_w6YKTBveNLubF9Dy$excF% z5QS(~>}==%_JqGac2?G5BUf;#E291#0}kR|CM|dJ%i*SzyYu>Eijx)7kw4zw<+&ok zn2d*6AMwBQ=>G5eTPf;BPVZ2@u8_Ccx%uuBMBr?E%J>JE@N1Fin}o;!E|##W6n6-Z zA0(ZDVHh5Fpa(&&C=N~GuHeYq0eB&f@n2 z@q9P27Cj1vZ;3j3Z;BYlGKe4V!lKB0J>^bobG1;xU-RoKT?5=2NhLX*c#2#gENtjV z^p}W7o8cBkQLUks+qYAf?VgtnHPk#H%9iim$;XJen6qQxVxIJ=TTtu62h%d5NJhGhPeoXn@uvV{*CiTvY*U zq1xbNn#`;BF4Xch#Y|#hq7e==V|k=%5526Nc!>;jn~2e1+z2Cw&lz0UnP9}S7Yq&*`h1&w%i(0&QCr4$Vf(LzCf z$FeV=mY{9PF0Rfq<32I~8FX@A*3<6!i`&)7 zQ9Lvdrvq&fAC%&4ZukBmYqlhhgXy7H7T8w=gF{=3&a++$)5E`b3v8*etdOA(l9!zr1s` znV3lQy77V-;4-lbFF4b%?6B8{ns*Fp?w{(n4t@fT2nJyEq-6`v9FMwdKT<1BgBW{{ z&;3ZgGOrCpe6;O9gT^#<`)!_Kn2A2&7Tl*BRkIEm#9UFBc*DbZ_gksD$=Mhc@&j8r zWRhARK+UJNr!Bcxf%oGP<#%_qL_-PJ)udd}@Un`SYF{k`&*fA?<}<7_fmyUT{We+z zGv7nX^p9csx>OMhK?Q=*Wjbh!M|sutt#}GC2z&sT?Rvz^yX>+I1bkK6=kM!pO{5Ti z{?U#@cAVn1P%%z{3e-@%SF`ln7f5J%p;HciR-rtsKnxEU@&p7$n) zdKl3H1p-BBx1kYKYt;D@DhwEr@jzrCta*950JKm?_z5}>w~%Qz&l=YQ=37`?mRO!x z>7OuYmw#8kb?{fs2cef~w%;m}Y$+boo)hrr;GqBB0TM;V&&wt07)1v>qPl)(eO7cp z7mC^e(l&QvpW9+%b0IZ5RP%g3654!a=;Kdl#gJJUneIL`^F#gsj$@|-^I!}*c&xtn zBGSGRwK9120DP?jdvwW#&v~5o2t`L?q7D-dsOQ^}LS;mJ%b}YzT)HqJ|ILrg@)2?* z@nR_7(fS>bxw899{b4-L8rIG8fM8`9P#CA#CYaq;GqqLg&KlF%0?CNu(|?PP$Pehy znOKJ;Vu3vWg8WFGUQ|OX_PDuX9Us$Qhu~;yj(@lI-io(fRQIaY1%1gh6p&4L-l5wC z`F%y-sXtn+tb?hT z$*$tYoX&fr)f762?rmN6YyzA-+i&&!En~KeMeTN)&VPz0tQ2vYEw`zE`r4oJ@}^|l z{<9dC)00x;5|%-aJl>tkM-3SPK4=nM|p03{u)K9ilb$XRL=8 zi7E2vf$IeCKpg{zuI;|cgC`+t`+Z`Y&yT`uD0C|9d)1m@%30JAW98YWc>?(2XW z>RV$XG#ulzE_1#vTO95#{!ig!skSb2UXYdlN(I?LCP03i_vJ|!v4US1`XivnE7_0@ zRrK)@f%Dbs@p{!lR{O0kkjxii#_KGr{!;lS1qw!$`ETjBrcKDq)n`h;TIq-S)odFJ z1~49VVPTE8;5mPCe(7Ae_74Ph*|8;U4EUR_c0XIS;-OcKLa^_tr|Q(3%mQ<1{!>1p zO$-%KO@`3dl%I6-E0Iqk5A=eckdCMF-;HUnue0JA-KISS6P>r$2*#Nqf5uS8cY6|C`dVk_GS zdpYsP6hJC@=b1SpKilN3A4TS!NPM02DjVS@j5E;0kb0ED2+o-StnXuS`&Yqs-LpVH zz%D<=Asc7#n_*r%vq= zg>!T5%&jc}B$qnHYC?$kD?-LW+bfq&9j1PqWDOxT)Z?XVHgyq$lIJy(L?je2g^FFT z#rURV%-CXEDl%@J!9(Vxfoi5o7hg!3!N|_M-pXiR9LcH@+4F2tw_i^Pb z6VA5OKBOP79@6^7mIvRR)~DffBTehJQy(#b4M>Wlp^olfeLj_D?-GF}-z`DBO@Nh4 z4~=#)eQMDh$2Va5k%6pL^)7dz%5ffq4w=$ubXW7lqMxA2ZQpZe}J|ziY9;dK<@jyYZUg z(;I!LH%K4$NZ97>4~r0w(3@SJ!Ci#aIj7p-Ww_=<7I@gM{?0(O@TtL`$UxgR_NA@e z(?V9ZA9#2=Jh)9HmJCPi13i7A<`esQ2IMb{k-@KRFkNv`Yfh{FmMo2isDsq>V@1=D zPIg8u9B*{8N%&-W)i{p0Es(HGnT4R1ITKPU&1*_}P!4YVJKu2(h9Cl!dtz{$p3Jmj zf3VX1DebhCL{~YdC;7tRzvH#%hpMn&o9k3KpDt*$F)Pr{5{DxcD?S9E)*SkOGkWfn zlcZZ)zJBFHjOw$jDU6Ogj*j{idPUvqZbJrW^F}IK+miKcoK^A8pO_iRhdAZHrwqHd z9SS!_`X*r)mR^=(s%Q({_q?98uuRCBU@Te9V1&tn#*Vjx{Ad6GDdb>yHt!^z_X>@u z`>Xy|aRk=;E36a+K`;_o-{XFrCpQpUKQn3nIrG)5y~HclS#nAbPpjDZ zGR%fMyxUEKM%LYOL@P?O(_$o#H4-U1=wQ6>KkF6?`+UuHL(^#fT`J-d#u^$xbcaOb zm)X{2q*Z%lFsq@y$s&4ZD z+%}W#@K#h{Dh5uhRBliw)y4RO(zQ9*_&ji3aHL5Hd2pcLCFo+OS9eZ2U@$}ln#piD z@&PM$f6xzss>u=pqLte}tE~5NRL^OaN@NL~3&+=m4}?YRTeIy9>c0$rNDb2&P6Ue0 zXZWsA&!mymbK(CcOnkGG25+{R=w9d+s+K3oio?Qd?I?yT$r_!lV^X^n^r+ZXqYW#W zQ22o|cW{H09ukSD30wT?q%*&DgVOq(tB+XHvJ0h4nI(AB>Vb}$d2(L;(Qv<5&8T`w zVY#UejKjy>tgHAop%MlXtB07mM}|p=S(^up%nELegYa6O@y$L zJN;m_I3UBlnrQ8rW$L3n8xyU#l}kMfgpM ziONks^i7NaEiv0k<`nd~KDkeN7wDA`*qESYnVz>5 z<<*qPx%uH}M~Mm|OR8v35t8jfd*`LP4f{{cOKL=czWKLmw(1P_BW5?1;X2dhA6+5> zCF$tm*MSnCZC9fAiz#NAqV!CP?>QQgNMrX7)=}V#D%}##tI%DQR{ZbU*X;xPLo0si zK?cyA;qu=^R5-6>i-o|r@3XTn!!7I)m>&qi@>>G7Q=FFfzYadM#cm3I-9HL>?TiH6 zPq14KQKOB8?k*O{`3Xb;&zIQ?o#c-7*VVbpUctKSN&GP}IQ*haO<$2IY9EB;xXmN} zA%DB2MJIUJqy0nL+no+%lqM&=B$jo-hBiYn>8Fph>IegLXtc5Xw`VSEoo{Zkt?ZbA zZH+uGog?QTvLs;`nH?_lcsNdh^U%{yEMh7*uBX$7ffF`Y9LKt=jwBSwR z7=98W0@&@Tol=^6NM`j8K?z+CkkK(!ea6GRC*!oi`qG^pv*!AfY4MTY{(KQ!=~Bhh zj6gealoax2b00z#{v){pG;%hbak9<{twh*Do<77U+nqZit6%1&rQI_Cr2{;|%r2nC z`?(wA^~E=@zL2b6$Rt6{ht6Bed?6gt6WwT6_^jUURZF=kU6a&`^`kn9vy(e1Cp=?X z*R4s?ulWT6!}|%_)r#YooH5TXV=sFoerskL>Ttr~X2$ zm*-FdcX|)4qTco6sR}>UlKLU~oW(|`C#$`nab2njiO3EiNs91+ub|nWvtI8Z!{v_a z=1(82R$(W88$RUlEmFKkTu=?ux6izu&~d4~8am=|13iOC&!d3Uf8>H~qqHpYs=nFL z(#9+TK$jnJR?b~3M^2VS?f!5TaZZ9eearaipy$1FAHsrk4B~Jtcv@3^P<0;V(L!PlQwtcw)M8;T4klaQ9CTjG|#~iNg0vo zDG4sn$yMUUL%Hc?%g;vS1wAf_J+;sS6QeTV4IFz07+DX{2*u^D)?}S``Qr9hakL4p zW=TBK&7xDLOAjvX$ZI*&6KxObH~(+r0sTLoFzC;i{_wiL+Hd`*{jDHvXDE)8-;s(~ za#lsmLa|&J`IlXAnm2*CBN{E@gp6u2$ktM z+D3s^9wf1V+ubn&70=MNzDX7>%btYtvd1$Hh53{A2gQILJ|A+Ym2q9>)!jMSWiTf} zbw-1sstl+IX&1^c57xlg8y%>@MlGD5;k5SQ%jJe4`c`;-J0-_S*XBhAwMeJCKS-?D4W&d*1i8k+HuIz=8k7mbAE>$MXH}IJW;3PZ(%Ypa)z_ z;Meu9tArFlcZKZ(&&$OZ~x-Qb=?TnP_23dfr|X$KJQV0txS6XpxI_tt$M z<(1gvP}ZzI=AL5@vsfce{Q@uFT0UKh2c2Uee`;?yCG1{ z@mrd&^~ZLV&l^u+sN(pv^#LFwHaP)^1Q%PWP%3U?U6`g@0r0(c zW9M#_a(mncKr1j9*};XL;-KN2Ks1$xR+vp*=-EhF>1_@GgUoh7678Il zx?pJX*VY9$;g-MYw>z$jTtCx>xj05yi>B&HIZv9!RK7ubuAkPTVz1=QB`-2E^p>E( zWr3Q144s}pvlrL1i4}mQmiqw|4FoA0C-_u^U}cO!GZGX(R?Mx);dhB064AC#K}K%c zUOpUf6WE0z-MZjzDguw~K*v`J9;oiOy+DjUi%<7WVuA18eod=^G=M+;q=lCzm{cy# zt#a84Jt}>ttC@a8t#)Utl$`>ud|2gs4G)}_s7`f(5?H<5Ae9icx z2>-6kv;J@Cx7xnfeO%R_a`}`d`ZBaiM9z;r>CwG(W2vJu%{5mUr&1@}0Lb-YDb%`8 z!tsQ^r&YUJ|xF$`lKg+Zkltz5cWgbN)CD;_^ z$rK2GvfYS{fW#$Cn62s1Il;I>y~TaoPmqY-$UdBL%6&6|L%P2oVklN3qhWyfaqqA3 zKs_X$W*nr<%jRE``#Fz~*YmQl61R-o@vE30Wl zH%iKo^k{$!NJM7cHTJ~bmc5rk02#_@tgJ0f2Br|b@KtsVtE?83j;A%F#q9$*i-_Jm z@yD3;HLb8sq%V%5TkR0nN9pnX!&DM5 zM*N2SH$q{WG!s6Z_qWkJBe{orI&X3!~Vl2adII7kukt+WTJhRi#-ooS4;t?5(^ z6`UdQUGnpTfm~mFZ5=Bz9d`!uighX}q$o8CjpZ1RlDcf?ny8;V8(rS77e4!yE&$4rp#sn(K^~btNJZu-BpR&V7xgJ zUy2ypgBqEl8Fq`(Fd5rP47$U~R91Elh){YK3T5}nHS)-SDgo;?`YQdET<(sI8-9=;zN7z!?r{1c@{K(8! zT4}nB?@c%@T!DAG$B6;Z78#+k!#DW|T&ovNH{_rKPQ^gWvXhy@yUv#VH9@60S{|C(2VOG~ zQo`m{nkc2G87||f9;$ELgO8EqcIoy?1%kG!YgdLzrL^Q2?EFvVwM)fBt1+zV za38j@4bv|QKWb8$pt-YBQCZ@?DK1Ol-P(gr1!D7xrj>8T*xS)vbkl}0jn4u`Z+krQ z>h|yZU8D>;`Vs+$70;P`rI6X|Y&U*QV3INdarqTbLsO@9C{>sym61@hR>LIHo5hmv zeyX~8a}kFUlWff>6M2-w*yTAf@sBA71+ccPPLK*A2=1`JKo2~TCLq}?E!6g7@0=|s8j$c_ zhpdgp1}+40><=->g?qIC&A~baii4IEYlH2C(PnOf;g^AtF48B$>oC+pjjVIjx#k0x zV*lrTg=80Yg|Iw|87Be;I)YnM68P5EjhYjwo90E5hw_xi<`0)8IRU*!7k*dZwiEJT_Ygi$ zVT#?V%TT{jJVzGkm<=o0T~5i*yLsS&QkRY`X8B&* z+0-kt)=&CC0Cr8XaJ{zhh7`A3c=LDhvAn|kfovO!&ha3w$*GUr0#ZU&gB6mxB=`)4 zgU;4r(;Wn~-V0V6a4uyWwboX}W}JoAmagKUER5A}eKV?OIcPO{8C9T*<6pNYC_OpaK_8@N89@`1(74WH?~;9T0Y;K}_JjIDtNqshQ~uUo@g*rq*Ja4(uIcClytz#s(lP2B11I$53#z9^F@mUmrv-avU` zC3=^EzO%6c8Id%iOFY0J!R=J`ar9vE3LlPB-snS@xv?%F>Zp@slIXz%S%*pofDM$E zE*7&ktvl2B3{z&Nr`WXxh1cjTH*OE!{kr<{%L1UWCy-y^p1g17A7j&3_KS4Lhp$C; z_H}FgmuVB{YpMNQkn>MVUq2D*XF!7bF>L8i1qt{D!x~==n^)?*1U(6zSz;iahkw%~ zxhL;dSEC?9f3V?-W4D#Mr(ZF)*=;Z;3`2k|pR$R{d(EMf^Y`t)mp#&SKAV4VL^7p- z^QXK0S;pMI$OR?b*KWtD`6adt@SDmj0-)vmTk@$15MXQP!d4&7;jH^wo7O{iM#x9BcIz^xi`u~B(_d~deoD6{f-N;GMC^}e0Wr5B(hW6rp4 zB@nBR&ZX}Z{XKY#R%v)0-_l?Ge4Iz`GOejKyqwY)LaBUA}4fYrqIHt<(F z$)`+%DI7wE(z1%sNJN%7UaVsF;d?Z>{$l}zm4y~oZr73^bz-o_40|*yfI&@hg1O;; zELmug4I%zZYKxb61A)%qzGWJ~$ZyK!7qi6x+r z3-trf9Hviff;SUuH7oU1hAz+pzi$v3ZgD*!dHDgvs>>H2l}^e3DgTPPRyHec*<_uN zU#ny*i9d^yx?LnhZ@Y5*^JiCrH25>jcrNT0zS@$EI4cfp{rs2@9*K=BxF}>*{}^Pj zD+!Y~YfAyD!1c4Q$AFVU{H_F4xSeSfO1FrQc*|iMGk3ew8xPS>fbUKA6vZmeK3AdrII8ptK@ct-b)-*EQ{snEk2DgNIK{_#E7bV0_n{>qNg&!licLDkfqO77@{^3`QBDyILD*G7t zY~eE*Djn0}C6r8=mI!qZL7V83gUBzBt-3{KoYA0VsJhB+MjU{MDQKx`+?(SWRBSoc z#azf)f@_Ejm%El8Fj`%#`dWc zV)YF(bLxTYy}2(n249I^dV_KRuSL5cFDkp0M0N04-^ig{@{j>4J@&O^JTECyzEluN z;&Fs5o}1YdO&}dsq*3Jqa7egTOYv`XhW+c;OEuaYHU9S2%l0V-UT-^x>g1?(0_Dmh zS~Lv<7BNspEZ$6Z^2W46C}?2DKrYFyG9j=-L!?=-9%M?U}HW*rWlU7 z)L%B2@A26dj{WRmi%kw4%_8eoRlue+EY&Bxs|UipdppXt>|t2oC{69?OUnmhnQY&x zORyuM7H@SN5r~;N)Yk>lb)f^*FF+H+5@;-6+Zjy*;&~O(k}pibgM%?YWapqV2TcM1pw|t( z2=i+;5-Pl+({S?d@~`-+VBn~kjhCFaEMe}AHI|K*)M2%5vHq`fOg@e4KETY0H)i+_8U=H98JaZ7Q%O+#ASMwA?cPGn)T_oUR zU-`0D>&N?kv@T{O;!LfI4#@&`JIm?#I^4ABzH@K~$!^(-S=K>2(E`U!ddmUJX%v@& zO?5=iskOUb^0SA1=vyXv02}$Y%u6}#7QgWIS)}VwPKiEx7?LgRgns$y@nFDAHkrQa z$yK#ylTGlPVsL|?3j4aU)FIF-fpvRb5tj}GnFs--A$BSZPv;l`MmkMD9`Bio^-_O- z9FKHQH3&*X#M zP~`s5rqlW&KqkHbT9Iq!v=K}9vzdZ6Dq#jL6o0yGk;7D%j<8gE%ot2Tyb?Sa;UV{K z4)+R{g?g~A^qDi_NVcx#oT1^~d?>rx%`f{pUAJ9z^h^5h+P5O#4w>J0&fn{BUWMW& zN7GYWGuRCnGt|ew*tpQ$CL;o)Av6FI#c_pK=Y497`{(>=eT=#YdTjtlu_#=jU|_hw z3>um@kx!XJoXpW(`*m@eBTswN-9_z}^I{SO`SSf!JRmTc>nfw5sQ&Dqu{O~^1y#v} zRQDtlN*mhC@vR!U)CsN$HV_y-^Cf0q&m~2Q$aOa)a4@D6JXXo*4N(r@|J+j%{O1V+@GN%?!I1VsUvKJK ztOMEsPCuOdM_-Tnqe-cu0u+7};CgJ=5AQc)f>eeK;6`(6*xmWi?L5J@=7l%yvPO#` z$nS$>2Dxm2GB7yWiGo2Ym^5u1zMjs8>J`>+8az`#04{rSZs`m}qHA23*{cs;BW*Y8 zO|zfcH|m>gVu|zOfKEK2MZ01@3w_C>d;VaOR080sSY24~H{LQ=F618I+@zD^)QEQGFPrL_v_rC{*OKo;p~pWnV$ zy`bct1u-iZ)-W~9k_dN7{8^f1F^^IPv2R}6kZ=m5J6n`21_ZXvJjCq0Fy!k zAUa#1K{vHPab1bpm4V{T1K_@meW!2szCr2_a5DM=$Zuv#G`tuTSA8l+@V#9Hbr2ZQxKe}+ z|NaUEfZ;KwnV+93k`()sE)^ywe1a(L?a2X0^8bsycM8&M-PU!}wr$&XR@%1h%u3s~ zZQFKcrES}0rEx0Gp6lvdtg$0Tj6LVt=c?cS5nuHF_txL`yia)L6%XRI6gajZZpZR4Cm(a8oCqOl0n$sF8uU%Pmp56|{wYY>HSX1v&Yajre z`@K6uC+Hono>C1ek?bMZai7t3c{Ckkx0o%$*c*Dgl?MF1ALvlbMuAMG;~+iGTzslQ zgBil6)_@|g3H+a?a4vBI2tal)yDb?6eVd8OhBK!LU<|I14`~5gg5tW@AYsm?0HCE6 zOaf1ck%C77i!yrk1C)2I`M#6SP4Y}~<&xKmc2H^5Mj&-?{fcPiEMU7}djfY^MR-f{ zFKt)n7l4*gK2X_=SAm@>ezhpmPCjSOC9*hw=qnz$^`MB|yBI>fq5nFEe_i1&cMAk@ zDSzhkPmQFr33x?0L8+Mu9J0svbyP@kQhpoJ!#Mq#)rt}nOzDUHV(2d3c@NE_Q7*Ek ze8<>BV<4=VA_u&0jd-9ZEBE6hF2jt0jv`Ab&>eQ3+!JpQj?7W@q)Ja=KRB}DOl*S!&R1%Iai%R`nwEk5dfQGB z0`G$`*fdMtRZ&!>)VT<=APykVr^_K#3dra{q%mR(ybaTV^#L9+-MO3~wx4WeU8942 zpVF2%oBf^Ckl=#9M|$T}-By^sPFHQ8omI6?3|Q`qsCa*Ng1xW8Sjx|C@S|KMMdw)X zrcUnV-=!a`j?9+4nkQl>U=mZfgB5hjKZ&MVTb^i8gD9k2WNojthWiQ4v2Br55LfVx zpzvZ%Jxy3*90H-pOx0v)bIAQb4qjQ1V=MTecX`5VsxGB&KuPjR}A>~Km z4+rn6D{-q96CMT4!;g6{;0iU$R>`SQKJOoqgu9qSA$sVJDk)IfL z0?vK~-a|*nlY_4T2J(p5Oe+8z3ZpO|ETo_qi~J$?nqWlX<)3{}uDbR(n=WIv*?njW zV8aibZU!`@7={1ydI#fP(-4?U$`6smeBZzyhh6(hlr$u1P#h6Ev=5+Vvr zP{x)>BB-Sx{df6WM+-~BINcMZZjuUUg^Vxt&PS0@{n*S?WKxfkuaP7UCJv*%5QkIX z-IY>`4N4h>9UtoziwEciuM52)`xN0Qhd z+_8DmSz0t89tnR1$4tt*4Wv$XrV`2vS!o2mEt0JzrgZH}=KI-JE$3O&D}}HkF4?mK zsy2xAyJlwtKl11HJh4{rXb26c^ zaGNZtV&LZmMC@}KSRzGu2ttNZ6GRnV3knds&jRvU3U&3Y-8+G2aX9;5&) zpi|&0YU_NJ1FmCbcjGsHd)3VcJHCn9sMIMFQ(eS7A`2=AatTUs__$nRnljv`2EvN( zhMyaRmYEVrXT6(E^kKE+#qyZ2J^lP^OT_gFt zH+Hc#ssIo7vT;?7BK9L!dAHgyY|-4vT%JoLO@_6xfIZ(jc6tgbvfbI#FWzn!M@`k{ zC3=3J6M!5ad%nhgQLw<~S&Y`@%pd~clLZi@9YM7U9+GBVgC98F zkT>jJ??1Fk1Z<~^bM(mmw#vECd#LnK#skqL8XKp0)eRUe@EDWJ&ekAkpfVB}w|+Gd z7T~uY9p3y(pL%;vkoinSnhPqqf*(Gia^2L?jIJC``q%$7q?zd9{KNOQX{%)`=}~16 zKN#2y%^Jv}<9ya(yr}QBD02bLY%MVu$Zyy4SQ9k2jrETe=AX<9J)AETJ7j!-(MU`KddHBR z%_F6Af$^bCp+q6JmuX%<@qzOmhU8~qJZff#Yr7uJ0Epxz3^H1yzW|~lhRxu3SpTWK z)pEy!_E~dhwv3kulsyWYub3gGj#wuzv(Q|`FyTXPdLa?*9sqLTb=-QU)+ z7?ssLU96URathOj4Yf)b_iL6mPtEd)%BXzv#w4`-D{n~jX*5ef=!0gOs-7ehv--Ex*n9j<-?D<@J->pfQmFO>W(H} zMJD2GBAJ@`XI*)faBp0P8~p2`Kv zrubB2wdq(l25bDGG_Ziv#b*OMvA6UVy2>|HW@0^?pT)#TGog4J9HJ2Vq94;%Zbvwl z|0y340dd-X{836ma?zpHF&5{IvdH~IGHBvAA0Z~FsDJ0u!5P3y47x*_35 zEm34U>e+$>R!v>LA5i{F|5QJg_K#YByr5IzEU&Rn2gnMjx+?2>=pWdBz`E?8Vor1v zZYe)kOk~xjEG{F|fYoyd20FaH{mHE5b9%fxvXArT|1Q22HLmU&vHYF_O5Czb@5dX~ zM}!YHNU$0A)-x?Ugxl~qq|Jc!GWxs)3BG}R*&L+O0dt}=5)vgwUD$>Z*GTOd^scS$O!ai-~=e0pWx|?6Bn6BUm04ur4A->oJFh)B(ySd|)RCXfdKo_{O}W;FLCE;5QQaJJ7G&7h1I(A&5)%=le6v`kvm z--m8!7Q6@vt?f<^`-J#-4z+pFzm@(_OQ{}fYG^Az{vg2OmtY=Wz_v@Q?eU+VFxU4d z_NFFAv)^ewX;{~sC=nr;rHhE`GDou63R&YAE_p__t8|V9Fv#%#L$s! zTCPCH%f4i2?zKvYiU?A=(kN4~c%;e`D_U_Woo*3gp2V}K4v$iEnLnZl-zh^O9;Nrk ze3@?kyZVF&^*~IUavVy$xIPicz{a1w0km63slXFN<15kz3YeuZ47r3jn=v@Q#<468 zS!dUe^Kob?Sn>gf$Z-k&&TT?xQLEJlQ}S+6i%@L!(t=#qbmHZyi23thGcV>z^?9CH3@yv2!Yw>T_Oy|_H*0LxT0^p9>qTyJ18q;hX zqd_jL%&hlqYNEAzH$g__l6<>V3r>4gZUvHN+fi{eK3 z!4-sBWE)#_BBK51;MDfo*A~IkulF99@I#E?;o~>;Rx2kTvS2!K?LFUu$Pej3_ckVkyS)j?z}`iM;@BRJ z3f8QI>ZF7*fEDV*bQTgAo!_{GIBrVkoA|;pxUsnGey&}VoF_otd{kFQQy8<3owZM| z4ZFQBiBmSTpBs*C8zh3Qs79-(F29JD%PUrd9(AS=6UUTi{{Q{d|Mw)Ip~zgi!hPdE z`!EHVnJ4%FK5-(J0?W0VlXHjD>|tUGJ&)KypKbM}=RdhF`nah3v}nHJz272jJk(8M zGN%|W<-%aE%Df1y%Rs0(RK66m%NjisxkU-P^o?+4&C{<&AqrQACm=w0wNeLG@yp;W zOSYx6yT2Z+4Z9)Yslm1V|8L=2?KBbed1L$t({#7l#1TlXt+lZvCv9!+iTM@mpN$~B z2IAti!K0Bt?*NpnZ^p&@SM3e*=APr<83Nt2)F?Mlz;-v>l@g@Eeq70o9``sAwBLsu z43i*S5)(H%dmPtJ50*8dmzUJ%phMfj&yVJ<%A1&+*wXQ{>?BPt+tjT~{7>Oq`)JXA zG|@f1Vra|3-Q_gOdVTNOL+2W+P07HW2OHi*no+aMgEiThljoH*BFG{0^s|uA3i` z!iUUR0&XdS!6%j8n@}}BWJb!k{7>Oqjh5kDedwL06p*u%Gb>5(D?YMY$Bh47V^a$o>Z;0$edF8iX zwjCiYu-hkJM899-eBgHyBi3x;U5~uS915MrCQ5e%iqf|M+Kl!n@VWM;`DNYEoRpu? zAfQ}DJF+9xF>$rEriHpbd;srxm~|~-OYw4>OumR$PfLXE@vj5e`QII$j?Fpc2MP<# zd!LAZJc6xz$|DFBwAmtDbp0t{eWq}jPpamJAPCw+{;U3#JCMVV--P}uKiBE%ZpSH9 z*`7Cbia!Nkr7VgjHS5vMxTK#X%J=b+95E{5LaNb%X=GZ=QMM;*PLydtqs@FRjZ+iq zg5w$$GzXvwKCa<{<&lBe7eUL6+@2w%aUtDv%5rhya#IL&Y)g^*p^VuIxtDT&-WED` zB-${~!BNN||EKv^{%LbgDD-v=GyppwX z_X-2ckfrY}<_Yi3Vfo7m2f>Q3AbBQ|D-8FFU?z^%80;u16Pf!y@wfu~Dtnt{73xl% zAd+QDqffb}DgIi!UbSxDnecN^A3;CY_!-?)oW8&+0LLE2q>j49DI9ib^#fN})cCTt zf*Mu;B@E;J)@#QuLFVI;@O!iBXbH*5j2K?bj73~hdE8CcTgt?~M5}KnKuDHkpw{z0 zdTBeb(@p=_UN{$jU_ww7j>Pqiv={+B{deBbzv^!VkvWR1@tq^>%cWTdID)z@Hn3>s zX4~E@Yd}nqZZ^;ZEnH~5FUkrzLP?)ow0i9n8D9%&$5zmWkFa!nbdfy-@bc>(FN2^j(Vr2*-%k@%$y4I9YaiQ(P+vC&Z8ZW1<^0tYaA+pbU>>RUiB#v}4+q_CLOX1-zwW9BU73q2BJKq*hc6*tL-yaJ zY?F?Anc|^XFmT=G^n(irc2B^!d3M1VJ1^jYGo8q-1dd;46r?5H9RUnszdW}B!*Q|2 zBY2N{TOBXN{`IM^ph2L!*>mP|Z1Ol_+I>I`tl@1CySo-FNedQ?CQpfoHzw_w+@A_L+nRaWqU<0N!?ZJEwuCBt_9M*!}VH)US zihiT;nms&A&nh52$Iu;F>E6e?9tBZ?H;;_zP`+xE)NbvO$nu7Gp?as zkasrpE5n1HcU+5eVXyE3=UOr%lCOzKRXa-Pd?tyJn(mwvA7tPpt(~8e zByHwHe-4hIm&oQj5oSLzMQV8g%xb@sCsoyZUNZ>&PQ(NA>HegoEjE+K<%V1fae~z` z9UkJM=)jSast()yFZvIIzpGCe@k|cNuWVN=Q!L{WW?vwu=-tOQpq@7G&4!|2oDdAF z7ZOSDaMEnr)ELH4>KA6(k70)B%Aqey)OM`&9_kA!5gN2L#J1x)mpcxV>z3Ac!a&3< z*QQGq4UTDp*1dHdzf#iYm&sBfb;7YgiG;b3?1(nF7v#&B%_>?}Ys-7ga*RD+mmUm7 z9g6oHIIm-mCPV7!H=$1>P)Dj7q|J!=WF5wX%sCrY>isKnDF9e}F+@VFsUBM=)BF3; z#Dm?dH&)*vp+CUc_QDjh18E;Tmj^OzRgM}ZOmDHzj3ewj66&9XqH;ij0UqbqGT&b4 zo>d-GA8*Yjh!8WlNONa!++rBmC=kWH8=b>hAj3mCJ}*Y#+*k}s=?Y)iHf)O}XQLZ8 zwzl4S6g5C&lz)^-EqBW2Z^}~2eccDHc|<6H{ODr@z5#6LNgo`+U~vQeGkC)L=3Yx0 zY7$7Kj-U|@Ng5>-+>0}4R)d1BJ?S$F2q<>de9oKjM`3<^0q^CqzuJ#A2jq0M1H>t3 zkw?DV2Y3=zeyfIA;U0%x&a`&-d@wr=n?E8!6>l-OL}9(F=wrmg)FJsbye@eQa=5up%D1`RN%MOKeY@Y3C%7H@GS$aL>)Nh{zH^02g z5;#Y))7;$AFw+j{0NEZC3nkemH6h>zK}xeD&=Br_TPZ1cC5p6=F?!sH({6P7zlCp| zWnqJb+A^7vPlKO)uZ4uwfO%d(x$p$nlG<(c|K3Kg+dvEC(Qv9=pL z-#Vhj4D&828PoY*K#PzOn5?%wWi(pnJW?=>7kX70@B~Un;OFe+#TMKO~Og)A%m8!2&$JnpXU5N63 zWlYfJspaZ%A!nRm{L^{mR=@B5k0);9=9|$x=|71RS9C zXghN#e{l@UJj9L|DLCxPF)xUnA-etqn(jmTci~%eD@tKX=AkA9%uaJ^rB%%m0ZvWq z(@6A8PbYq-;HW~AYKj$wKELi+@((IynM0TtIL!nuRl2?1iBvyjwW_|;h)?ync~J=gAciV7BW zIIdRzQ+z8qpg_y1AdxH0y=%Dg`^3HQ#{pBr7W+)>ef;H7bN z8=A-4omZZa)Q!K>Yqhvd-3#Ec3wi$1YqgpFl`DXfANKMg zaYjrcgu)MIn+~sRf6+bAcj$gDlugfNCS9TiUiG}7=LDj%?t8wjj{Uf_PtIsJiCVO1 z1Oh3h>|M-om*c}y9;=^&AXhyM%ncB_-X@2*?>45^N{7$JF;foFg%%ka-c|)Z24J;F zyd;^rDQBfx>fd;FvV60_6S!+3?$OtNMUXM z*Y5=RCEZtLiPY~(>_T})L`==CUayQ0qH9nn_-Y)lSRfrrx5#zZmAquZ|?HsGKs z>){ga;2Ha~e@DaJQeUCTI!I+<7gHT6655OUYF%t7HRXam*65yOLEE9+DE;%|ul8g8 zpYpec54jouseFZ8F01f6snNrpd|{p_BgEcbgbh$PJIwDf8TKVo%J%lXFY(qQ%dw#G z+{>V+h^@}#~0%emtCspMJ_idLG2*K4Vw|iaBM>^J?jdi#boiRhuS3w)vU# zdsd40l)Gv*ia8aNFmBh~@N^|~rS_Jtm|^-wf{VwJRR8;S7V`Ur9Rxd~9POmA*X9dw z&2QdjQGCCl)F_kE^^UGE!U+S?lX!ui_ptxh6O5SIcQG!KtAwlQ+nUnNug|4UkT5=` zNsn32F$rFFvHdvf68ky>fLRf1MEG?Q(kW2&N*6_7Kk9d(_`boS@s zRM@q#zv^FsC=Rb=@su3xSUqkL zXUCp>TUTT&O|(J^e_S-C)8Q#$`|OeO628qix!QTZ-`z?;yVjGaW%?3LLK;iqqj6Zi zAb-}X+0Tz5`%}&n{nVUqcByID+evWAku&_Fb%nc`KcWja4h@%aXbcJwjUo|5<_ZYg zi7LK~>(@&szrVooKG7IwGU9-zn148o?RP}xAj)A?WSASJM^K?!yKNX}xg682#)kX> zBQ+)zq&SFO_NL6)`vaG+8Wkg{Bq1<5A7J&#a<*L6V^;TP1+Cm=O;@>BK~IPPn%dxg#MyFOVO( z@jK%Ux590SvCAyt+$Bje!JN#C4Vg_@G08l?y(IW3d)MqP;kO~!H57KA_R<;NHqB^-ZLD*Z)GtOPmR{dOLS z(dkW)Phaa8qC?ZvC$$lqRD`(Taw8(8%UoPlbZGZ$k|?u%Wo&-CC6lfkpe#A&-(^1) zHmikSC#!76oF5BsT1ChE^Y(#7_A#rN#b-e{w37HqZ{qjnpFMZ<0R}D{emX@XR3&^+ zdFEi>`yPd(9*pYzoLeq%OXc%mRgrp0j^%&`LdW_aGDo={F^!g;UfNDeJ6$pr4dd*c z=_2+qNg}ZcAdFJ)wSq=D{<6G=eWFl74{Zmo-c&!0W)*%WT;$W;ES_o}WG<_Wdop@C zP)W`h==8g~g%;k|V(M9*=Dl=rTqjO%I9?xMWZ_6qV&bc~hQy9=A#<34EDEV%>3-1B z#xod7GW+5?`{;sv)V8f4VsP@~P$J9f$neW?5o0i=$0yN~h(JOR$G2TkUfL}G{HOTV zlm?t;dt>qojC-bN{rl3JxJFy0Nz(fHuFF*A7;qx#fV6~6){I#~T9jt`Jm5o(YuK}{ zR2~J6){eTXUPenb=iWO-x!j%HQ5G&NUv9#*wLnZY9v6(QSH$)mpdK@t0omhhf+o?O zw)K;~dY9~VoKsi_^Q_1^1SFajw#{N&E?z)5k@V9M-+-EqVi%QzV%C%M{>RNgf=Y+G zG&lG?E=Uyg(%Z1@$*rD&avJr~_m8ETF+2#9XQ^4HHW3FwUGx1t#j9CW~svRAS1;B9LGmu4>{ z&KDU5$VPcZ>4v`(v8q}QZhA>`l@R$`G`oyko_l43EY)Fcdk~$!RnG_xa?D9l(rV7< z8$+p|>ioWcA@3;UcltKZ@B`ysv~EpRTwmFS57n@P42G7=hPDQusfj%|QsXC=HF|fx zI~Q_(qn5i4GjnIUfnf9FiLELZlwezuxB{xL8ZZQ`*8St;>rAY*v;kMd)*5 zqzbU~ZTrTCTKaPn6N`gE>IlT9*?)R1M0;;wobt$+Bq9R1@g>HMb%S=(=VFSz&D6!dZuFi>`>9=UQ=}#wtL>uyN|yYs6eYEIV6H#c2iwsrpAAbOXcQ$LaER#{NrMs ziRc%QgOFTyW77$8`85w2GddV;95E=!<^FnfrChjE*3JeBWnu`1fsIw*m4!l#fnd!i&lcWh`B(j| zGA}sWJl?T0(~dju8X?wQCa9!RuMxPd`V3O8%cW_@L(-Cqq9`h%eRPkot6RN81j>#^ z%K%hWHqfM){R{!uLrzOdgq79l@W&8VmbX+G1;7ic96nFM30lP26y;O>9_DbLXpPu$7|CDc+eg};@ zta@u+u_v8`z0o`LziVD9roiHmitP!KCrGns6kMc){8?Yc0>dsuALZms`$`ae8n73s zi8dtIAOEH+)M%=3ZfqAc>CPz0WkE&TPMoOFtGIN8(AhUdMFaCL+$OV`-gBg1GoymZ z-o7XTvG_WAVx?VxwnJbRKs%0(Ct}5gqKW)5M91hCf>o1S=ne6wGFMLy34WE41f!1+wtcjIHfi-sc&uz#LH-cgkhfc!%%z$GG?GQafER@p(XsvQsHsk$aV|7&YENLAdShqlQ5}*lQwq!W|)mLbQ^D_yP z9Wzhz#jD`-0r4>cKrJnT%4R)-Z(5z5k>(vWo|rjYt0DaC+oH_MHNV3FG&-|D_033x zey0W&ZGo87!ETnKDl#IUDWn5p#(%FG9BD@(@Vw-nGP7dEJZETO06T)G)*SAPI}BV2 z(r=;^c)d|!OBlS*I@wER9wDgcl0%b_0@9Y}dATtz=oVl9zsvdlYTgQ@fsm~%T4@$P zmIV>?a9D*Vp#vNu>)hf0Eu|_o-O~Y(cgm8zEGhw(_0-{c@k${tttQPHMNpfM+KkeK zcB}%X3E~QR#+@=yON_I3fpHRC<37Sstdwp@8{6^duwf0H6%DMtO}=NBG~AU@32ZHL zw|Gu!^fCU*k3vcIun_~OO1zC%!0xl&mhLHbkSHIrVF#6M2aP-Ls2RLAmlL%(flNP``Ngcan2)Vm08IGv z_~}X{&tB1)yD?n|kvKN|y`CqCe}ROD-=`5(TTwu^e3$>MkD8ra5%u7tb2~^Awi5b( zmwW&3=B-bNhXj`@%=kudpB31|tzKOdw8S=*n`us|BdCxRYZwf0HOW)44GL3BAi zsVQc%WW({r!BS?b80i*3MkNo5zJ+3}u`2PXwqt?W&P1s@FCgE`43~qTz$i#HaT-0? zLsqsyFn{OpG;f=mnyOQkai@zG%bo_G#o33BtcwaifvL|XPzCkgSfw1Qj#3Av!s61O z)3kg+*7zcbfi_i2j>2iYbA;I7SzZ#$a3V;BJ)AGMg`R6Ws6`Axt67Z=`*>uZ7puSU z?FiN{fICQ0$}uk!5L~o=)AvVc^1yJ{pd8!R;OOwfp16s_b)~NhY&#}~jP|!EF{w&L z#46kFZhXV&^coTx40hQ4>6l_8A6&;TsPNt5tG=#ZCsfv?@|+H$ZI zWGkV7VUk_^6QD^{#?PoFAXFq`)ep$ev7w^LV3_Jwc**~ zoY$WZgcIpDg0g#?s8U(y(`L>?5|ql9M`XN3_Wfe8O2KnAseSlg&vjUYb17YQir5;` z>Hrd0G1-o#nEGSTVXa;ng#_~W<-}wx77zxW2INZIdR<&XgsEvQ7d$M-4%bG$r;+#x z`P+9Y)^*eIu_7T<%)Jbc*cS}~enraxaF^tsJZ@k64$WxN@i6OR0$e!;o&3@{3Eg9- zj&0Ca5s64(j3GF=PTkvDNu?+-h@Qwu>SNAX7>o(LYpWfahZ%;}jhZ5$h89c*CBP^R z9Pi&CpAMPJpaHi`$FxW_kJ4;Dzb#f*C2?7jsU5H7=XsyU+IZFjjka~8U4L+_D+S?Q z)h>BhI;SMSsHBG5VLC){gX5L+k@3VGJ=P$zAS&`>jH3lu4lkdChq2FOGX$#~T@LW% zlS?>f*1)_!zl4^m4Y*`nUm1un_mA9~O|3oj6|z++kusLtsoS5N-BAnL>wRWdao=Sl zC8X0n2A3Q$t;u#}Y@WitHvHt5l5E(VpB^SOAb!#KyY{tNzrFa!FPcR6Q+=imli{W# zudTW~X_9L5iO~vLkjJp4t>V&t>Gv$9e3V+DDMh7r&)pGb-xl+^#^SLwMZF~$T(8QXm%I(NTk2d6 zpXXY_nqq#&Z3q^{&BA!v6{KhNW3SS@bQhyxGojbbvgLz*_Z-CMAd-ETfw`O^=fZ9n)Xy=$qE|ICkpc>sgAo?OYX z+(&PL`8_(WyrK-3;j;1uPrm9?gd#hqYJniZEg{(W@6wNj>0WsHYSo3aTBGhK_9UD4 zfvQi|&sMNex}Q%oa3oPly#Ls(iXqv7)1>nGLCb6ZAsE*XdX!l`KG(986 zZjyHB0I~?2dwl;{!k{iX33W>G8Uk^~4h4JTY^`;jQNJlAZ8#{81@_{w`s!#Tr2%sq z((2~JPN#U90JW_Ftrj*Us`O1j6cBN5b|G|do7*fEXbv^bsl;-XFp_*eAj?Xjx>MSa zB=znZyRLYcbLvisX6}!&j<@a>Js<7S7e~NF#LqEP`vj1~$hC;J$#SE!7 zw2my)Hj8IN8fMrlZJv%m1D!Fmc-k+7SmJOvez}f){;A@Ee<6q`-qh}4Y<~CA!3k2J zDZHHKv&rm=pE8GO)ShITl{c%pWy@#D*0PF_vF9L1bPVk8zFl<|Iz9o=B}K6D<7hw$ zWu1F?pr2xQb-NI*Mo7Z&p0nL#eR%d1hI_i9$wB;m2kywC+guLG136F68uUaTFAVtM zv+nGaHBpE4-ZdCeD|BZcwg`Xi(fKN#efHy+74X}n~qJx!cvEtHRJ!{!!R^@-hR0!T&68(?yM2B-N8!sWMkg3lJ4FwwSXXsxZK9lZT{)*?Bb`;b@j;$ zfE%+$IK_bl5uOLPaBGc5xzH{(h&Zh{T9t-x!gqKJ8lAnvcRankXpRqk0mIyU#-0Dz zkSg{NL2bvBoyeyCU*8XA@2gKk(yAfX*N>7ieML!RO-muMch3SG<3~1t4?$-ivyIRvB7XkuZE(@FE z!6-%f9rgXr*lTCtTvM$&b=Qn=e=Zi&^;q@67B~~SC+$M(x1bX~N!$R_H3Tk(lECe^ z9=(g-{*lzpF<~5yce^iFrhBX=7U4Z1lmw$Cv39*o__Ukd~ee z%%Im;e%<!>v@K_-ekh2#~Q~O)n@Y#AAUNE`HDkIIuAXr1sV29 z)&bTIqBYhN3c zTr&Z$FG4l5r>O;lBjl;tbew{R=@($lRo~^9Hz^dU+Uc5ILb>zX#jzbRFH_2bw)3OA zZ^lu$_{8x8-j_6h%=%3H6JrBQrqM#0>S3s$sY=BRjoDn3=zqb$$T zye}88$nI>19P8K_oHy6uSS-tF`|f3rcyhB_@zEXZ+O6i4p|Y>qY>s6Ap@vpcT_mp)@PUesyaQGOwR9JJoFTp}(s6F{&hTl3^=%@4 z$7pO(S)GAL@O#GD#(|C9K5t1=BZTUbAykAxCv;&^l;s_-EK?N$aP8ydvaa$ql>R;m z5so9StwANAR@+B251l9Aa!!I+GiTxJNQz~gE$1Qoh<%XBW?jVxMn*5_wqpJ4lL?9C zC-F~fJW<|W3yWpfIh=!U)mT-flXv`|!nbz02}7#M$LX?0ABj{@k_&&a0Jm3%4{fc-Cs2S1Gk5WPb;$aos|zuJPqR@ZH>>xA+QT<$kd(b^ zFCl2N?Z@E>lWb+e-8{neS{0w;g1FOi1`TDI=BVr-Zj6)~&FZ`gqC2RA@3xW5tTTaggEv4b7i%J>7J6Ju4A zX8KTGlb$l^O=0l8Z>!-&F&$)C2`rNWRh=}9fXzuRI(0@hDBraumlEEYK~KwO(f_)d z48{yVM9`rrwlb1YkLyOYtl%Imd1|9~+z|jGyk{zAbUTHWf;eOjrL<+_Pw80tF_?yj zKijtVGbJ&4yhcbzSlLgu`e5DqYkFN+d7^s^Qa4YhV5pxd8BA5LWAVITXU&)WEDfnm zIc2_V#iOiv*K4p;NjXDr;ddLF2DRgW&mvcZlax6kf^?>79RM~7h zkje*NroP~6y48c5L(|&Uf($~aA%5OYZkJ9V=2!BM<#J<|z;G8`X=j$&iqSx+tWBV9xUvd{sYQFG(QHGB917c* zd(ZLG+KBv8%u7b)p+eqX!Bx^|aA$81V*kmvB>ymon_voadty^%DyBSTxAvG*&7jEK zy@9;K$K&rb*t0NZ5rASpVUx^)ewyjvpEP=BjyMp<-n=%=$@!-6*z33%&O)9KCP%s$ z(ED9GcaMzs^;%#Po7o1%3`nf-)5$4K?MV2Cs3mG{IveNeW{HSKZ zEvqQ2L<*WY-9bfs4Vq_jv}zcL9#+H2Hkv6$R0#Ix2zm+h;TqNt)s?7uwH{|{+8r#2 zTiX#CfDDl#g;ftqVL5Orm%6wcCn_aZ4OdhDh?hNVgfEBUC=xh;EKBx-fk4A{XjLxsWz1hVN=ssi@|EQSc_nhWsd z+uDP)qSbH|<>;m1V-Jn^LtfqYVg{uUQts2OuZMLnphE$5dRE#v?qkd{K_u8hqIBxp zG!x3%JQ}@dmsdtS+jK+m$YqgRAsrJC&EnpjF=f)A1-ty0Qjx#V{w>mIW@; zOdCSma$LBrUsIng)`1fhI>L=SbNYOHIR*rnlNtbnP6Po>gW-(k6G?#ocg;%-lclKX zXrHuwRo(BXxc1!oo1Mxm5{=Cso-2`~Nnf(RsYE4MMVmfDQ1D zQN$+Kql$aY1Gx8l=kW})$$%jyWS8p6+3uaRkwN$+>GTHwUHq-O@}xexY@F3ye#4~Y zsg)h3U-P}7RJ3$c-Sn^J$3H9oQ|6`S9cY+_whb{aU-aE*dfHRv)iyy?TCI9&kKbbj zTL7#7E_o{jf2YSxJBrL({TN}YkMm%M|2(jba{bX~U&W$gPuwVzs%DjhmlmOd!L zLKToN(lRJK-(NF`)^nNco5MtK$6m>MEmR#$qH7C5XC0Xy z9HHgqo#4Bzoq(A`d4H8e>kui{J9uArgN$TUAMMk#g!e%o zp_MO{6s9*HTQV*Pq8TSSI5=m^fY@HcF~F|!BGsqvseKJL?Nh4FXfDy9zul(}^d$kv20L*a+nh?+N^q1vB zWB8>s$f5kTAajMu$kuvLS@$yfX@)Ehi*tAbp;$z1k@lVGqx2KJphdy`JevT4N`5ud zHR`&P1q);*?@ZO9VIv0FQSv%&z?gzZG>3u*%;lR81XSGpo}gf~jmyD!j1n$5vQ9oD zK>bLg7f`6!bvP>~I=x|V$|J`rH}Vyc^nkW}4qMCUfIEjo;#_^9RU2AAmV+t02(OoF zPVGwMyt!FBTE(86fDzqBIZLVTrrQUaaFJ~>gLutDl9TYJfrF2NXIa|iz<(M6Npy~v zkBYXSAZ-QT2hwIFNJ)l#i}n4Qo13e71c5y^yOwL_&qJ02A!TnylHy-|q#GkjpbZW0 z)aYsl`>%8O*A=epF-|?0&=o6LSe`4T*zYyPEbaHL(M3rcEEl3&mJG9npv4qNFk^CbmU1v$*a@@f|8Qo-9=|^3IIF9JM5{p=(tfyfTOM(SMfx-F_ z-#F7?h&0sWK#mSAAyl!Q2~@cN{rLdi{gKCKu=X6+syN=c3_%Vp8A~P+OC$6ilj=^$ zp+o@VZ1q6CxPI1n8&->H<%=qN8+VNc3Sa82s1V_KY!1ApCP^i04Ya?IMy@HhN@RH+ zDqC+rM@tq7Mk0X_l{JnrgJN7YDIz zavrOWZDnOt-Q6=(RT}^eJX0W=o0h^yAkbYNt$Y1815&%lCmd`CT(n4yl!YHkJ*~}J z_)(yvZKTNhIez7fv~_pkzGR8R@s`JAGZ6L%Sh`Du09c0Ibu|9#EEtVHZ?yg%Jr@9xkf-#9?pWtX{Gwi1_HMuivYc6 zoXd=6ks3E#wx6m=7)u*n;X^=L>BbE%SUw*=tn)C8|LoIMUgZqY2T_~xs$>8~-JOoa zj<0<(lT^L_r|_+_al@m4fu9T6x2W=A9kibvR9EVy;s(lfTUxl0h>SiiQqh-I;J+#m zDN$sD>!i^+I#qi(L!#~*b;T_nX`Nk|*=hqITG-Z7h+p~(e=+iL*oM?rI<*Pd)1HI- z~gP{DAeaRs`C0aT+`qT zS4qTJ&X-tvk1R?^EyDmToE*>;@i1JqSe-_YPrq>`!WcuhEh(H5$Yiryc`U~? zFd#P;;~3Pxg5i|YeOD=GQ;F(0aHsJT-)$wqo2@6h7rOL!-^;53{mC}Z;{eMA`#VLi{2cy7PfCuT3>Q>5sO>)ptQ*|`EOf2(0*l{ zUQ~THJSp#OeV)h2jUfNcmt$#UN7~_Z8Yy){26sw!;1Hm==(`>nNv=?M) zu%vPTpqWr@ozxU>e~R2N992eY>M^m@kr_!3f-A%3jlFWMM*lzR`mBkBHn?|kNv`YMUD&qUv zT!}6QA0=KC8H2AmFC4@unImpIIcnvU^*jSYV@bO{6*hXG2o^n$biQFwn@nBC|t=XZUTLsn|hKjm-rojj)VeVb%LIuBxG zKVW6dnNr?Iv{9C~cP9?K?)JRzqHt%~i3SeN5P9J6wxdc*!ana^xO{+XX&i*wb`7To z4EjSW>f=w9SL0Qnj6{(p(qnW~7YhrbH-yOMbeHOtySV4yFV3;hcVOySEfT|bJl%uM z=bifHkDq|)q=kd&+`se_G$p!)V$M@ieQ{gtfR<8~`T7cXV3&YyPg=?f*AR^xo-OB@ zFbEs}r%Y0eVqTME=_x-}^=XAJd#PGm0*I_N4yZm@Ffqb4@fCo8z;8_ab)X5xJW+}P zwV&6rtI%+pUf?)3F8TVtG5$!g!+*7YUj} zgtfcMv!KvNXun{Rpy=m;g+m&k$-);HaX~ROMRaYU8vFK0cQ+Sl?h5m0TPP>tlN!In zpWm5SMuMTn$SzfI*BCvW-R^P^lPQ$RY-8+!65%C_FFUZa1IC`4>oiK8Uk8!!k2TZOWnCMx?y#2bwm9iWI$=C(WN~uu^^07` zo8nu|py6%;3hh3_)w4b;R>^OfH7H3x3NMeelX+Q%&KXDHx=g?}sNge($k(>7H@>@0!>CIoD*{MxLOzw7A01uRPYd zzMd(d+tD~ijQ3!x0FXFt6^RFN3B$w>LYx9)z^tOYKQs4)AkLgf0pQYTHWx+@OPvx!MML@hMAL7_GH%qt?J8^LL_o6;(eDIlPtm2H zExf*#t8Y#^M-ZS#!eu!QA8vltO>W-0j{ah({HST9gDjD~uZk>wAi}JAuTB~9RXd^V z`>6QsuXBt)V4C%2ad$yWe}8>>cCy)9SwP>&Ni^kuOTYCAq!m9FlMQe{p!=nKR^jNn zrv8#h$`9mRIZ4W9raNbYcyXj;ds?%{)BDy$gcn^|FmiF+pFHm++Q$vA$HPUPjEs*R zOWt^9JR*s56lgd^CcEM7`XbhVJjRrJ>Ro|}S#9w?*kxW!{vu__t1bBQaF&Bh%=H4< ztIDcE1yNZ{yOT&($038a@oR)*ZFC629)1DyvzMC-EJ+ zFc(jz6D)sM>T9i>B$;|Yl(KqCQkRSMmo@mpYc(T?D-eNjgBS+kvUo6+)I{KQ-BKdr z2MOQcGZ;frkjmV|Mj@k**K&)1gfM~P&UTUitKISh*;eCMzB6N3_J`X!iY?s%wU_#$ zJ+~qw3$g$$Cwbq$rQdo4N=Qar#ZFCh`mN~-Ue?yN5o|{|{kup>{cet*EQG-o6D6K{ zk1UV|qD;v}SDT6_!NYd7&TnH>jcf$5df@K549e1RT-3+Tj~<1rCts#%f#rgY0cLKw z7n+)+dlg?-A3_b}rnINvm2D8GEU}VxfWPE6h05=PeNku2A5_$6h$M05!ma_D$HnX1 zG1B#54pdQj0Ix^d^#m9*`G>M)`~EfHMs4%6Fm^S#zbL*TE@igi`tGfeWRW$$8|+1D zWFa0~ewI2Dz@D%`c|=|;ghP;(6{U&mH^r#*`c51&g-E1TOs0^V2Md%!am}S~N}rOa z|ET9(=uu9MUyM4PdyF)wyxk9g>^Jj<s;V=vAi*o%W|yfe6o$;ud2 zRAK=F(2cY`6ljLU-6B4kKlIKg*v~<)CHb})SuE7Xmg4fwaX$Qoj|-f0oIgi=ZxeE= zYzQJUF3k^{D)cK_q<+RPJ|zM~Rn?8h7IzxiAFTyVFtdAzw;AmE@y?snn>!T#=_LgG zul^-l4*bdQA_DUd0P(so)()mj|AHA$x8$)+-3`ckk+ECKZl~e zJ&oIKgb&_e`IP?W+0If@D}`4}VJ#q>u+$?yFQ>H*FKYKRm_8g)XvOPFsc#51WEP(k zmp91^4f2OOVDbC_f@&~4TwM6*VL#Jrk4Rtc!Q%SA<-U}&0rNreWTw9%fZREyk{del zsJPZ6EXav9J)^Jc(U6h1B{UfG?p$D$Q>@G{1t`E5LIYWYdT+a}UJ)xuusp(G|8z!v ziJl>|Nd$lkSayzCW?bV@Lot} z_{eFMY_P~Gy(+EI-wPiHI+if}m3wbH=Ogf1SsKwne#kxNdtUah$y-@iVrOLzv3*E^ zwsO}mz(3I?#3-VzAk7s@%Dk4-HR<}I{ZooV1xBOe} z=KpW;uQXmkO!lT}f|v2m>&cZGae|~0f|0K?hO32p<;6ezkaB)Zc9`|@&v-yBFEyh- zUwFkFRWxvG1f{tbf=mF-y8XBKTM3yLCM;trVhAqi&X1sWAL zvZ86C8;*}|mUc&>>jrV{@?}_luh;bXuKRulxT4(;cmG@bt?k9JC?}ims=EN7%Ncc- z(HK+J6cuS9RffGUZ-^DSko^OJUA8QLHV6Do*1BITTXE1TMP zv9#Ot#{MwK>_YX5ELccsfamax+7|oA&-+sd3@VS;6aeF1WnIGY+v8kH3JWS8u%x5& z&M9_OSghkn8j5JVaGo8YioFoF$j`tWu`PgpFe!td&BF1cQ!e(Y7X5y!mK}OHNq8Qa zb3ec(>_;P7kivWjtVHZ_2cNnTb+mf`zM+0eqp!k@)<`$*SvZLl?ewLw!r9C)N5`MrW^Nq?{ z@a579W=i|WoXAPAQag!2y)D4>vbZh4$)GT+17Vb3pj*h$WJw(cRckvDyH4e+@cn>O zA7sM1B=XY}Lj)^S|Lb1mKIZm14mH-g9+QBMM}mbE9goy(@nMTFhbF0^U!Xj|a}k&S zhr4D1C|+i13v12qm+u+@wW;j6sHEUS>?J^84gS{MCofi%G8$90dmfrt09jIrKCDZ+ z-NrM0uC84$P8qrL9KDAy(&A_C!H_G9CXWpJnSlCERc+SbQ`IW4AtzfBXjIKY7}8L3 z7(L`s*$IBUgH@qpr-U#lyAfc(eqkf!l!8?WA2(J?dKc3?vOh?W0M9&V*+u#v(1?Rz z44lWm`wC;VirC`LEZU1?c>Z8~J#+wpDLx6g?{5u)3z|B4PExxboV|jR3Qt;&slNOC z_Jv!{bvZ$9(aKdigH&T{@#N(F&hoaBmwIiOctnCdx!`Z zN`uZebG&+>(c+jO5pZl3Z4=cyreLUP$~4oWcQcQ*TaVDp*8k}2A|q_{S7y40L=`vo zq+^XB-@C~kWK5Ej;l@a37he~K>vUeb_eTs&bc}KdfyO)}a4Z7rP@*>Sj}hA}@!Jg| z;LfMZMol_ALFQe;j?cYFqSQA?^x{xJ-AFsIX2m?TqGB?SkocJqcfz?Ui%Ygj0zyjy z;Zj-b1O1fI3iFsj!|8Vvr9J7K*o1mC#xke`H{C`P^m|642SploJk%ZJR9?ZA>omt%GdbNu zBS8nRdtS|!ETdA=avPBpgp)sEzzd+7)?*J>%=tJjmJ40gdGo>s4TA1YI^%Gbq4)Qo z?$WW~wN(Rema)s7(4rb+s_OG^aX_WvHF7|*GBdc9>{74?r;T+*;EYWPX|WHxA8g$= zj>Wb;RQ#x)*u;#Pn_f}y%joOwWHxjCUO<=mYOBi|*Qfkt zGSb}+WJ~|6?>tO7$Ktl4Z3~q`*i?DQ5=XCn;W2#xuXOC59X*IMr)olo)oJFK zZ$t9(ducKQqUz;kXuBJm9%SI((r>ME(0UJ}uD_JCg5%}SU*g*;c-dtX%HH%F7MrjO zfwd_M&L$(VQ${G5n7Cf{spfo`%ww?x__XIZlxXe%RGCu|b>g8}^4`kD7UdkwWkqn( zk%|?ErhLtrP*x`g45#+_)<{?KP8Mf%yCMls+?X@wtVv^*Y@$OlwHH&EsPUn!%rqxi z?@Jy;N!Sr6EBXt@TnmKk*>I*NODxv|yMJ|N5|z4RW5hgukdAvya_Ym$X|LZ;zjUf= zC7=<)wF>DtnV4ec&Z1@l_WTi9+bfD#kT$h(+U}VNn^e>MCOe#T%r?qsQNRq(2A91c;k<4)Z`J%vaWfWVlR zqp$IC`Wc2tWii-roLBT*ZlL`0_69_q|5hdok-v^P#tfwX-LMspB>97ECn%;IRnoDl z3Zw+oM|-eRwFO=0z$@4Jki#8MqZEPh`DnD&7010a|j95 zB;pB=<4c!48jRxdx-i~N<*>O{BPR!mh>&XldNzs@CJlqMz|>bkNw&Ak$aU$`EZ4zz zjbKzoQcJ_-)u5qUEl)7_(W=DHk=XjUWYq5m>4;L}WA}(k_$h3vB;%wQ$5AU|7$5`?{LEImf|Q~Yb^fdDhG7Tnsx_JQZzuhIW4 z^V-aymmaI$3d{iht$|?VO(Oak_Iub$V)qp_uJTrW!IJ{vEOJafD2UV%yUQKln-c~t zJ-Joe-jgbsWq?-6Ei6l#)18+yotl0ORdmwP^7=q;a!Ae^Ek#VtOAq~m34eH^U}Dm1 zw3Ql?>MD?PQu*3_SEJPz0faCJ)$p|}sCEAubM{+61iMd@p?@OB1glu|zA1QSO!rY* zmxK1|y5s)0twb@KpPOK;emThz?U-C!qf#O>`@OVaaX*GJV4gnC-D9O# z*?2u{0$067($jXi%{s=not!-OTpn`6GuZ}!k&ZJ@C;KKMy_7$nCnMcc4g6wJxpD?B z!?0V96eYci?(_3`7ZW|lZhE(!O&>=~?7j8dMUQePsREus!`TOzAGZ#b6f=bq zhxkE%8!6bsdqz5M3BTI!afxs<_&P-1D`@?1`>j;^te%wvhnd9RgysZGAmLoU#VnKG zI7ritwul8}a)VQIjom`hFo^^+i#gcB3^%jJ&s?j%-_!hVI%)kCy{H=$}T}_*n z>3LSxH8WX*n&CYHLz)o1d~{$3_j14&{wX_jTZ^c-)<(QeQxO^LG4uakeu-@50OUW0B$vHF+0?+CBO`dW^cb$xMUamZ9X zsL|k;VIUJTd=duNRxE+TLz`Jr9;p+$vIJmgL8lu$SNQMpxBfGHtp77_-Cy@L zVUT4C zSSMQO+yeVD0vVix4>_;ynD>B%Om~w_NHPluenZ6@zoB@cbvLLVZfucN`h%q1wtYPn z4Y47QajO*`CjgDt3rOwnx`TUaf=QuJCa;1K`4EjMUdw=oFsJ1Rt;NA3og6 z<%`tL1_ti3B!ivbgV>&u&xD+A)-+92E~3#gcYbhW#SFs(dQ1(9sp}) zFn!nWh>5DI4|(66c$>qOt%$rC=*W)11Q^QAYztj)W5|<7-yBl&JtOYe>6n&izutpU zUFND?5B6{Ix7LjPl2Rw0%Z6~x@?r^e3{?zac#r?w^Z5j3B!XQ`r-doKwhGI8P~Z#YBmo-vD;z6Dv}^+MpiH6tMl_{@MRF=aN)(!3w@)c?e=KsJ z=%@rEcx&{Vs&KxdQK}EGH!M>AhDP%O0JiWN!`blLIqj>8rNhQXCSHg4O{vf@;U}Jm z!{POV-Mb++ycU2s6Mg}!+F2?be_YLC7f3@1BkY_W4V4+VS`0|QXne1o#m-PJmv?A%F2)OhCi zjlD~smaKE%jP*NW!W)&+mS$X~{=>#AN9w75=3NfdaHSEXPe=w7A4)=d{EN93*v68- zlzMu+jAwq~=qX`#9D&9X+KiwB+Qr9~xY3?HVognSTxLsVN&yc}_`+Lj>3SXh7>k}@ zQ|~SP7u8bc8hwT^T8-d%9c@14i9!RQ61@~)W zXYrJfBrZ`fztx9E@m@5e?9T+aOLnv@!qbXiH}2#wz`5}InMTcdw1j_(2c(wXRDqQ4 zBso0c4n^ZU$LJl_AD>2cu}$Hnn$Ym=kdXIi*A=Qks~^Y-`IB%JtBwg>vQXMmtSob% z69!_ZzTkF8o(hQWK$b zWWz7`E9_UzIJL()MW~t_+`G~5%uzKAQ2FS+wS7d1(m7>fof(FFUqY3y-tt{CWB}Ci zfdK)YNjUw_q4*~y2m`dwCWDcd4he*|Pc}=~-CzMldL(=!55thq>~(rK!e`u{^OV0B z#2Ud}u7IPC_HI44YZY$5OJFv#^VagOU|BB>+_#rSj-qRL7!?$ZpkQO(GOJG~WUUP?T=~5B0~#fu;=vgFW+3%p{91ZF=QaVdX41}FpBKo$%Np99+0K?&wXG2*9*AJJ_H zUrrs3G1$M02PC`Pdq-ieM$QdF{CPxd4levo4V5di!sEU8&B|=&DBHk4nE3c(Zxjfd zZm^|3c+cA1JOn6GZE0}gSrpaEARubud!bh^{LLMmPq5QOM1%OULR-JOtvkM{;P6bl zSu3F45ZHXAeDn77IFjRi5?2P!967x`C46%j$>VbX_Cg*vyhS2?rRg?{3Cw^QfdrF5 zk8z+NUJuj8VOl^W()z#kuhc544&tO99Vge~#6Wilxp@VK=_}9i!mOyFzu+EAA(G_a zjE~ohmkDjZ2Z<`s`89R=^y)4$@tr=H=s#D!1N>7wpzZrEZ5ne0W%_Yl6}HQ&lKpE8 zRbHS4R94^Hjx)ozWE%CI5Ay4ts^cYhdAd4vk+o3w&Evvayp`kk`BA~1l)uZrGT#zG zA|C5$LPQkSo2;S9a@wP*kLZ^T0?zIuso0a(25H@IwTw1zPK2v3S2_o&ctF`|q`=Qx z2p`R`l-^Q2`v0}x3S{I(reCBlVY+G%9`|63{5B>(o(rqgdFC#%MN1%;0O|sxO4udI zB4}g8L*2=nq35)eY}8a~BwUST$%q1V2ezgTWPb5TrOL*$5X6lc>*U4>9haoRqk4lv z5*lBX4XBJqo=eq2fg5Wdg^*6egmES%Omi@)GxIZ#(WL?s4OWQ3lLn3FOLkhE^Sq8Q z@W+2JBuEJFey7x}!TV1W7hnx-XbtT9WX>|PV%`CsU@&x~(6-d@W@6us??b8nC=klr zU74F5b3fJICODq@nA%aJw6U5GkZruNF_*%_IAA-pM8DWRdu}_f=eMT4ZSsgR+xRfm z?j*=(*yno6Cir8Y0lZoZ+N7q=TC6?&pEh1xGMl-#P0Q5IlA`tIT5tv7cDDr;W0eB0 z2e$P!5l(RXSS0FrRz`pcHZ(PMF_5>U=mb9%6Vo>(bO#lgVttR9Z_MG)Q`RVElj_fU z9^eQo+SW2H!NE0M*~*UYd`kNxlCyycB&>@~rA^Ib%>SGxU_efg^9XVe$sU=SC-0E? zJIX>W9>b>zTl^YM*l3Un2|$$GXuc@c=04(J2}#KROtE%=G1$iZ^{p$<@Fg%vxd1Eb zs~}WU?~M!=IM(3mHEUWgP1g06!qAxG@bA?+Ist`ZB`80|F{KG;zTC0FfnM3MWq=?|$Mw1O8yyfI@t1j#PV{?1L)d=;3K?cOb{~ zwS493kIv6}ceifpcgjyj-Qnwcfdj+J1lFmtcA%A1h7a&R9Jt$EZlJq7cokHV3N{d~ zNC2_cFIsFkymcXaRw<<_TV5QWATvT=qwO=h$ICk4-GiBGGPj&{07qF;vAutT#zBxO z-D-A2CD_(En7vG1{3siFHxLpFqm*Ym4#2e+ewd@ zr}Kf|=wI+~+c2Iq#0!%ei@_5RX&YxZ6-;wOu4@Z>#AOQH;U z7$0{6I#>F~_HJE+%ssJWr#M-YQU6G;Y08vS>a{JxyKtswCkmuCbef0YKCleK${;L>QaDp~*wyB^HnQAoD?rb5reVH&)N>f?+I6-5 zgz9_F`Tfj^#;}-eyz*;DX{Gqsl|0-=3v5HZSms1Ve5;r)z)_{*-ovS!*D+f!_OmMYPvQ&$NX&C?N2{c=n~D~fQ{c` zvx_Z%KJTU>v=zprjfpm9;gm5Pnd;e2LW;FV>VXTXiUM z&kJ?_>GxnesZN;Tsmeu7Kig^tH;g3GaNyg z8Cl4tOkycETC{v9uu%xKTFjgq@no#LL_M*k9f|Z;`PzHOx{5TSIFGyPLBu@wBc|AE zAq9~;oYGkV*E}}QwCuOMG2!yozs290Y;T^cGX80bz%OuzZ9Nch$J|X=tIzrx+#S|D z7UJ^?vwxJ*;Zv(%!MpYiTWl1nl-0B123gyOOAFymCz2Cu<}y7vwFvPkoYJnR>#-TD zWj%Z&kUS|f=yKrR;X)jiadni^83v>lRC(-Dg=T@K@>4_fQvu86!>UIaNMfi>Xm%eED|$Yl!EwGUe=z-S)np=9*che@%5U zyDu$z>64=wr7G|Y3Luxz8BBbd^8vhO_cd3Jr~4(7zO#sk%IE?nk#pZD3wZK`2$wDM zPxV{%rD3TTf-R`rADvf3S1nB|XAok1G&*aQr1A7f$r8A+wc+?I^B(ZGfC%NKO25nakXYh-Zi}n-68B?DXH;w!mF#)4WpC0EJh~Z@gFAV zGu#?KMfvbz6d5~ojKN@UUr962>4@U0{x%g8NF^uojpP=J(ykoL)+!T$v5*`R41dVb zVe=wjKhT|Da6Q%{@K87uo`4t(Yq0q?x^H=|*moOqUL4o?5Kiv+?wmyWpZ^E6l9p=& zRV7dyxVn_NB_N#weiHyDH2l1)jW4B?cj+c%^+}ZmagDLY_}1yT4@iOCTh$eOr%l}h zka`wWItVZ&&meoeIyk4+$tx~HE9B%a>`R+5A;@EA^+d!>x%cLAwS*MXJAJ?Cfm8nK zmv#n>!ajXe90HPZr{9phsa&^Lj?c<@J!&1xQz}8b*4Wd7U=nH%^&I>3#%%gY$F2de z9v0&)DI8*2F+r_}hFhhG&8pD{2LQ#f-+Tvej`G8!3?rnH_wYm-w}KPTaH!^Uf&QwP*DJueZ3CeGuLfM=wI;|G=xI# z_5{w6plnp$qn_%MO1v^IyQ=A_6FehisxZmpbuCa+doqxyFi(DfP)A4Z$lfA$1jbyt z#2T_-MN$0V*vaN`aL2iS?a@cnu&J>;({tMP(gqzG;&*-s3!jo2nhqu3V=`?2 z6d#MnG=QOUTpYKQ{52ER8u%xd3q)bQ5zt$nDOeuT%8)C=gy`y!o&|gnjEYs?QgQDplA&#b(jXxit;Pg!;8oSdGyd_f_tErj!oO)JXJH1l^xrlV~QEt>l3KXU7AAGBeb77=u1W@ zdl-G8!2})3mV+bArN)urO~u-Sg43}Iznjo=m1;w}0KH1$7dXyUyaUJmkp386B_?d&pt`JP2H_Ek$V3TmhZ$COIog%tTMf84ot=zh-Z%PB;>dt#PH7 zKZ^4#2s?vPA!6$c@sB(U#hDOY7Rs2zU`hw?!+n`JVmFTKp36IfCHK67tg3J%%QF8d zAJOT4`|bnB%OxK%76r>b>E_sXJ_j)+MhIBK9wGXw{C;s8ypmkDfh@z|!Y?C%d%VwG z&=HVAu!z13M>L$`4bi`gC%i=lB2NisX>f|2{vtjxI&aEi2}oc`-W;R4jEt3c&nDv` zA^IGZh?M(iv8&tRxXI*zw>zkpsEacT_W8R!&i4Orzm=wzk}X-r*=PSD@b|2tsE@pS zQ^WXDd@a1!hF5%*6Fsg7<`NvNzsWp(P6hvTei;-AoxtBNuFspP?9p;!FZV4d6 zoDL2#5HQQiZE#)a1O-&HTm8&><1bDT;8b(RQi?wm(D^buV?GgtCpBD%`3_Wj#Uy%j z?FMH?4TKoo2w<<#>~Xv(;}AXJCo;{>#qR?~%}O9VlCc?N8XoP`SEl_Pa?D(Z=yF?24Wti*vKLVYgBE6;cw zB@WnU7|-!v*juY`ThV54lxBcv5T6s_1gaXIa8uiBWJGarkf@67%Ud{L&WJL2l-J?j zg(PFxz(>XewPMpZm8N*_y>L0~*3b3wrbnYs;vW)<6A{k^hYggito649ocKW9(E|HS zr)KG4>H}M;g{tl@4`vfSyOc5#RJWoos6pGwy_|VmUPpG z2iyYVW`>jFiHB(F$N1Y?C+WAKSfFsFer@z~x@_PMnnPJ#v1_@7j9MGNivK*6l)e;O z!Moy^nx`z}LPy0ckhb}JCb#F#kJsmtv7n+Pf<$T$8d3kd{H=OiC<(9NKd68s$?30Qrqd&`rK7%T@l(L<#vxNW1}xbT z^$4mu2kTQ`HZfTDw~1z_Zk#aEEpHVL34RINvt)B6j#a{Ro_|55E1Z+Vj>3L2T2! zF<0GVD{i{`PFg)YQkS@Sx-WZx4q}7X3){|sYT1Me2iti_3=7yHwpAw!^Wv0-v*<{i znT>%H={1>IsZ5JA2$Y^8De9Na>lBL{@fpSO1$pO8oV7vjmzI-m(-UqPifF7P1{XXK zkRwoP2Rxc<HPPCa>ZU#U?78G4V&@QAGsxhnZ@xXrz9n8|`}g%;L@Aelzn?IVE={DVnrk%9s|@n9*JcxRS9>V} z=gqD{g7kcff)o-}T4>XTl)|gON?~Z-l!yyf`eFZXnNL++lPEmC-RKk>*bNh+dyHr- zo#M11a!M&0vdbNdFyi63^MKJQ6aA@B8Zvo~G0^a}npEXtxyG>*`BTF-MXuSm!5pT; ze?kI-e5t_qoljbziSvsgB{06Q%#dG$x;n=BLZMyS2N;#eB%o&u+1V^oDhC)B$^=RT zVtbkD?F$z;_hCqG7RIA`cDSbV(G-9{PFz2|CHfm6Dq`3aj*A&C9Ph=lB=K!JZ)7-N z?E?^Yq(MZSQl(pwv%a!HieKjM%3BW`^6SB`skAbFD3Vk*+98%F!&rV(nF6tAF>Z$| zEQ#V7tDonE7e;mb5p zyk%;_AgxIV3^jkAV_2n*N|=QU#hoc#Vl&aE!7q^|Zk?n{!VT=KLy_DX3_mO%f&{c+)z)=1zd24;*M}XwQoSR*{CEMs! z;8HHuVzepVj)i|JZ~YZldyQCjPX;As(Wxu+j`ePHkpR~!^H4NVj(1tZjST_@&gy8AzV0zFTF#3D9 zR)lXegxdY{fOF+uWB6!IT^&IkBB1MZfGV}FdG6il35BAQ?iu1tg#nP3FuhQv#L~2w zvH+n8RB?pGnJB*{o0!?w)ed+3e{jNVDG#!3_bHyuUqDz8Fs=D)3Nmz!kL>GVino`0 zsLumoiG#t4n0L{tc>&PyxG?sE-R6q0YN4rD+FL!Z9cR&1k3|A!OJwwf8^PqByo?Vh zy+Th^(z4Yc-MKp$&7w8D_1;8Q3Nh;IT^v%NI1KQU20f>GOUoq|#ELC%T=QYF`V#z#u7U10H{}#cvim?Vf4Pd1dx^3d-P^ST+z-- z6#|hCldf+TFIy`Wlu|nSu!f{XJe)ZqPB`Ec1*=O*y}p{>+!}`Qx6;x2{60(T-g;XR zY0C)?ERuSyRdwMY4c;mFJ)E^pHclgtUcX51BEFeYBB-+a9_W!UP6dZeuau}BnojIq zk8CIuY%3wJ2psRcLm>Q4bnC17?oiSRdc1fF{BzEngq}U6)w=lSf}Lh$Fx2oxptjRko?8d*ekC&Q6cpqa322Y4-5DfqHd(?jLicseAg zNUgpq{po1m^e49 z=zg44v0bkLG?3Lzb1@98)yg==Dqf2!s`0krF-2kW3dkA7j+%Bw8tY3@3hde#Z~#Gl zkO*R#-`CG`eMxhNbkdbjJ*zOu@B=0-fD7i?f7TIpdzAwGP^V0Lel5bC3E6}69tH{9 zf>BT=cF&)T9QgqcZp4+ejEz9V(PZRS7!mX}DQ9#Ge9h7IRV#g{4~XEQ!=06o^HGo4 zmiIOvaxyL?ceUlx#n>z&kORtv+1x!Nu;KpYD0&L+Ltj!R99gO+D|tM9{Y5(HE*yE- z;fynit{Y+zC58~txr99nFNxz3f*$|u1TzT68?=AE^lQ-iH*=7pQ5DBy2i(Z&etUm5 ze?FS-tDb*U`Ix2ciKtA;H4zWQk8&kjGj~Cz7x7Fj}P(!n)d75uO~1GuDv9_l8#* zkO5BFrI9(@H5W_8kR*k{iVcEl7rgxMG*mqxa;$Ys{z!Z_kZxJey{!?f&f^G=-p&Aj zA&%5WbOjQ^%KY7UTi`H&Y5@5J|1N*)j$K1*X6YT#h}e<>OfC$=lb#VPudmf!b<#6l z`}DE=4vhqbrhDm{ndd!jS_0*-gMpq|tVSD#k|C~Ybw7tC+k(tWPu_t%W)0f~D>#bh z9?j@j_`?b<*kL|%>n>G4p-^q)&*ddk-8-9FcHIu>!UN=6>pjU#kB*D@;%tvO9?i$GmS7eB`i#$ivRik#2V181nC_Jv{rjR=37e}cNsVEl1rn`_- zc)219-jk~P+OHUP>X!aS)*TfBUZzi6vZU9->5^Xg1^hDvH(>gl#O+=b35Y}z z#wYqQDf!<>g1X~|Z)4Jl5?~SMrm;P|*?EnD5160r2C$$~b(GXZWhb6=6p^sP7(bQO zAp}QNIOc@52bj(8>ht$?>GmssL2<=2+F$Ywp7JQ2|1O^JAph8-OFHuGn{919p<9YN zet45E?l>sg<;7R>QQC*YQtAbfvh7RTuOY=ftWsFH{AW^Y1n$$1Jz8}em}^Cpg%om> zbNe7~^6jlZ0n!k=UuoAUafS+Bm;ypp!N?r0~wpXBdTBVs17+ zkMdx&+#c))U~sAugpOWZ-FOgeQn;cn2TbfsvgAkn|E&dNJkuW3#VSMWq`K9%;!-xh|!+?1VlmU}BgRQI)wEzk# zm=Tb3l8aObY~k|&+26&-ih}P=I<}sCDq+%x{r0Q1MEKqIl?6I7uF{pbm=2EWAZ`-m zvW@m2gMv(fyNSJ?X^v+eN^~1PH|-EeszjM@R^eEq@@CheVP2)h9eVT?8btS9s zARq-R5Ws>oM3l+ryD>{KYDT9nBo&U&fN87U4j6UAD5)VP-z(xEy_)aUF^yBIpeB=^ z_ivfkp79A|RcBj>hC&Z9yeT=Axtqw5>+5E_LMUD(6=#!R5l5IB2q?(g0`Dy0f=+KA`8`1_`ijZ zWeN4BEvKVtwZ6H=UZErX29uJafr|zxt)U&OLSi!^=N}I3TgE$DPqDq^)G?5>fl8nd zq`{|4KSm!^4wO)bBV=w+-m=Q$9W^;bfXddxkxWr;8)PFA7%OdtTYnc>{NK`VB@m@< zApkAU53EEpGdCh)2v2`agJDHB8I~8@E1^-IlwckdMMXD7U_l~ggOYZ7dRt^?(5{`8|Pc$fdkry!1tx}%C$mX0`E zQL~gAkYkqS`lVVWiryEF>obZwxB%$&n4LG+@dk{b+N&1=s2yG$+wz>e?v3dD5+ z`jvRYv|_Q%{=f2DhnPK!3Eo-rgSpzlT=z+1c{;aZ%ju+x<3ccjP`~z6z?JpzS4|jH z)M(K%Q8agFXmPqqlJ_BctulK34;#-bP6VP*%?=EM$?MiEd^@NxC{MNnZARCljMQ%n zN~;r{#Yu&0L$DABM?yzRr@DWTiGu3=XlV{}_zh;9nj<1LMggbG2L~1yb98GaRn;_| zlTvpt-|Y+=L-_|dV7$CSO4|#`Bp2k_T=3cf3j6wyzRK@1^r)VvfH@Y=fZ2)@j>>vk zs0~}htuxpv2YT;0bZH2*`0%&?$z&GJjnrQIB?!ObFdC_FgPJdsoT8rMt3}YY(%jNHVU==k zy!Q%bK@H?4w|2y;euK(HxZ;p##{}V<@=&=LXHW_;ei?*Bj->`5@WG?L#68RdGDfM+ z^ih!{(?o}|l~k3gZ_%k;rUkNhF?Hv^Dz@0bT_adaDE}$FL={|_p|(E@A|)AlE6K47T_@x<2Wo4h zJEa6)hfI{rLA+fukYSO`G~#w8#7nNFq5`RhD(`X}lS37RB3Hds=F2Abbl|6;`r#Vi zS)X$glua)g0qU^<;jBnafF6>s+YFI{q07SCZb#oa9d2T;`Z$vVgs|o%$r+0aVJ(=aRea-BQF*hZ(aw5JqS96~)!4 zU>Q9(b~tdCzO_h_xO&CNxH}kZIO&ZSS^5cVCDkPX0(g8@lc&6JSQ#~e=5-c_UZr43 zcId4R&6*Q=_fIns#{3bKEl59T_Kqr3Lx%K}(0h&CyjbLtyQt{MOZJ=-abj*HAL^Wo zkUH$qb|~B!^)nf}sPwWFQ$<_ozUTF%g=Iq46l2MH79(615I5cqX50V-R>Z;ZY|%+N z?-LeTD16JNH|gvVBIMF z%*(4Z^Se};cOlp`)#_CwUsXP|b2yS7ty`u3eFO0iUtKB4_{r0h`}+bi<&Kx%i-lYL zJ(35YaJIM}rguzgxOEro^Jf_`+H{aAQ{xUcr?8!iswalLHfeM53CHPPCyU(zQ(1H0 zepVFng+)3Gz3=m$4rIbw0#6y|eO7{oAszI>Fn@ANhN76Dq59u_{8kU@8n#GH4o^Pa z$-3@~_Z|n_&gFS`0j7_D5v~`3nYq$EpFzGN%o&?1R4VS)NR0&yTQ` z)Hs5BKAD*ua(|+rSJ`I#30n+g(|V^LR|4|Z=be&q;&#Zv)ayXn>H5xq6Q0$0S9~+> z%W9&X6QKFZWDZhCDxW1zPVi@*Oe?ZANWlR$WNlo0f7FO}R>O&%kY zq+fW-VJYd-$x{BWu3=MOXiq)o(Dw7eQO7_?e4cOf;sKaHQa&e#UpTzHGwJu)bxmvM@_NAiShvotr0lc=@!y9CD`c>qNz9m82}=r)D-fKhOt=uF8Ol z+3HryU7?(3I_s`4@ddG!*BkHKSo~{F@T$sirPoq}(`tFwS2wwFeS@ZXM1gCqA*#L7 zyE%YJ**+8oL}rau8SJm3p4WCy|Fg$hS9kG zV7ATUM2SAinkraaoz-z1Eu3;fJIX@d+^%_dd#!R(6s3Ii9)4uG<8TX>_achxoV)IG z^)(A>s37^*1yh({348KLWZR{Me`^0qnYngV^b7YdW3zABJWHo8-`~;=J%Xww!~}+`rzFBb z#9~?=$4E6Mh{&KEmP9N)s%)q=gg>ovEA;0?-vL&pdD*TkdIZZa-g0poaH{Ou2_GM8 ziM-<1LlY9--+G;dWy!U`uY9&WS|VT*D#7%bzjF^X`I#-JFtm?mYxXcm`Rh(KQlA>+ z%8@Tfw2Je8iUuTmGvbMnI^e;Y{cHyZ<*gU9kK-H3dbCl zO0j_u(_Ysu*sMJ0_dJtGw0?>De6(ZZ_>UyeWx)XTc8bkBg=o~aA9Y}E`edD<#O=Z# zuF#dxGkFKbpc$R;N%9($u0CiXj0AqK*o-pTPXP(9#21);(U1!59{-m3@J9>-$ECa!mAnDoB;!`$HfRaXJj-R5w={M9v(C5Jxmb=KAeR@_!h=F`bFQ>^Hp z;tBsddg=f0gaNIb;n^F`XvJV8DP66Np?Z#`VxlMQ^X9T8t1%vx1HcN%q-;z(lO5`{ zAvlGY;BR^XycaROB_c%rPy3nV&*0;@ne_=dENI(d%gtdr&0p~ylB(R~uv^B`u{(R* zBjEX?&n15@IQ3{(2p9qb;7<76Eo*=P@c2KQ;OLy3B?0pd_y~a;MihmE_@FaloSrO| zWwev=J}9g4#W1JxdD_&{JSqg zg|~ZY8!)X5NSyN+S)f~?1e9Xw1_3|e5<#k+-gyv?nZnBQCaJSr-2^kteA~M*j|rqT zds@)0f*`iX6(@^3s8BCWe6FYzKkgG~6k3DEq8Tn;>Tt?rok13tF$ugOM+zSVEX(LM z_EF!p|MVVzZjfh@tCYM}v;hO=yb%V<=hHhOCrx*r(cM;zYoyF4j?s+RF6!CzZ~v~( z2WHXZ|J#l@d+9u!HNxce-F9oF6+?|@Hu5lfroNI~9@r)WZkLy9{?+=(#n8lWENg3W z`!khHo&>Q08CMsr0EAfmLKUFucibRBUjdP!1yq)JSx z|MZt25{O*pi)`_C7{~U9kEE(W$WkK^lc7%cn#|)Fs3#(rx-%Oacel~*6Ob1&;oH%MZG2i5|GC>_MN`@`vz$M(B)LFaB1pR9riuE zj;j{+2nBW)B|rwP0Yn4Bpdv;k8`M6;fxuHv3Bii|OUK>y1*mzH@9+BF|M}j+t7hM1 zk)!9SNfmz?0v#Ub#kl|{+5>G2UK{;ft={;Bm#5GZTHz1;5e13%GaRGAM}_#0{(b-{ z`^xz7PG{<9oO1OfA$do&8|x=eBI-R{r5M<$VeK@mOflH<2)NnG8`7@O*0UfxdRS#8 zv%aL5h}~?p;6R?P3pt5vwPb@@^tPP+hXUgA4I-2L;r^g-QO78AfI=CQ;Dgj{XdyEJ ztA}sYI8&R*4YGH1;UA%nw~*Ekz@-4V=u|0+p3+)b?Gnj@)g1&v=PxkC zcqw+nh^o5x4fXO+Wf&Siguf_L$@sT$;kk*kVR2=ul44z68|7==zo`5loyyDbi~_<( zGd>gg7mTYr=Oxf5$y=M%j#nJc6a#wG!IE>nhH?}(dCMqN2AtFCpDoXL1Ngu=k#8a? zyS9ibRdhdX=e(o*RHP2koHw}K+HIv$frqp zBKB>a2z>EGdyO3AnXTJ$N+w%JO6Sh_R>m|IA=$-kM1&h}L_?<`&D87Z79bOtP*!|C z(Iwb=skZF4!$F{~@Jw+Zrpi{ZVD>C3*`A|1+ttk72_x!+Tq_CvhKnUQUwbu;t4~O?FXfFK3{v+O&_G`i2?Je&D zwK$sLIr!l-ST~Dy-RR;oFy<=+?)Ia6F4k)voX|E-|DbiULZT6Q*Z)N^;=5tciRB4` zdzh^^qjJS4;OV%AbGJOvmph^c3j8U_u|Eo(pc)?;y^#KkV*=IFU{#s zK1=noPbUQVXOc&kpHFuG2cH-L#85tr-cs+c~T;mUI${ZFw=YW>2@#JquZ8Ov1S8 zTHt}8t)mRzRKJf?xzbMaxU0Q#mTGO6h}%{_9qVe`sC*RjH6l_l6|aK3uG#e56qxs< z+ZR|ZL=Jnnn)BrE;S)K=aOKzZ~a3i`t^~&GQRM$MRO0-S??aD8Fv>6NH;|a-P{BLmJZ9- zzcxR411Bj0Gl{;0GwI*TYuoD)TYM2*AMRctsdgZB^rZqq> zV%Jxu(UGZh@_qvA82$u(ywLJSpl>^io0$!}H0x9wMa9(xOq17gqj1UCO$n_1JL@Bt^GJ*f`2w4S>| zFr81;=fp^wtk$Ena^m0GN3^M2y{{#xe>G7^=^WqEoUfVt05&4$8|Iw7;%bCHLaYh4 zEdgoityuXx@;;J%b@V*{pjy=IX-o1a2X)X0j8Im)n>ME;T#!s}$>~q527M|C80_@J zMkYs6={@6LtR^F2{(gtkZiLGCt)$i+%<&!GXU@&Ij(%9b^BO@2arero=UNO9u7elj zd4MgmU5MD5ztj2xtVg5gA3Qy{4hxZ(AxlL;iF9z1)ayZj;eOV1DT z?{n$EMrm?0O5#`-Y-uwUlRf>URYw?L!eUJ1zrFKVYk%gY*vXC=*wx76(m8PoglH0m zvpE4N9N9ZX_)t10%Q1Rby)fk6hBRF^=bwx@8?yO29USqU9<_WD@yLG zKE;nTVU4>yBy2<~z#=$@F4QPlwXy*j!AcpJYq5fz5gjn-P$$wu;(k$}zbLdHRtZBl z>HMAPX4W=)yBTX!T&S5Z`88Kh8DuAUkePHTxid}PdLQ-{N95P-%}aoeXX?lPB|-2^ zR+?g!!S;sLrtOl-L{P|q7iw(=wwTrX@6M)Pk+pu(2LkYGl7;KFg*W8*-J+Wvd7%tq z{0U=xiywZmlj8hoiHy1?2M85>R{l$Bg$9N;=v@V#Tqp$%`knxHb68hXU3la(J`#>O zWOd&8D1Dm$JSRv$L(W#ax#v1|1?(RXBlbV2O#oS0o@&U;R(*-z9y=m6oFj>NbPU)0 zi)Q1vMjVG#Yv<3B#C^Vq@9;8YN!_l6$HV~Nx=;eWI;ux)^h=l+4^A|G|8)-;u$vhk z_pxNe2L)?Y-MDvG-yDduZxW^p%RG(f>A8#3?U!sf!%u0~n(hj1B>MYXucrolS!lrx z`Fz0#7C+c@CDc}lczecwi;o4jkMi)>$&0<0ZPae5;6D>#BN}WzyiikX^w`p{-5hA= z8?|!{srT07H>6T|k!9_zG%j$ol46Ck*3c6)@;78#T8(SEn_M))zNkWf0#m+YoN)>a_!5w;@ zh(#X2*Sr-Fg$i5k5YIayfb^az9RDO&^FtB@@1p$Oek=H2_hA$q-JjzbXB*=ws7fZJ zx+kGf+R$E(Z{5hHPH;`IfynS#ATjrPE-6whhw%+L?63c(01Ih5;nnH^p8Rj^BhnH1 z9e@{nBAo3r*5L?M0bN^VQwJl09nWBx<0S4vN8yp`v}`J;K4p0ksSc`dC1neJgOq;QFa2AWtj^t^r);gU^jD0KmD;DvyD(S^ zkrjJZuUXR0Q^rioHIM<;lQpM=_yo)021O0@fPMZWhJ@n+lqM%Cob!BW91?MO#Z*23 zbti)$0{;t!G{Z5D!AVj)iqnk0-2TrJR#mYkITL0c+IvLNe&aNYetT^Cv52c&F6Wgvfs43sAJl>=CRlV zfg$NwWyk*1Xl#$!AMawX&CiuiD|UU9Om1`>8?}KdSogABPDZAhY8Fq(V3wLtjL2?c z`iIFdL6zmdk3wZL69WjL1g>T5BL8ka)jBO+6?JgbyP9&#yqcykcKidAZSb*%SV zsv!y4IXOq-4FV$C=7+U{4&q{@`!6y9Hs~Y5M*?SszG4&OUWTN@1ZUUr>AZ1V3LIaY z;;0{UUjrtvfv$_bAn=BB(Xw!|aXW;7!|X2k5XWs3;+POtGInxmmUMg`*hiFo0M~i0 z)`X1tWa8i_`Jz+&Qdb7LM|VDco&N5o(dF_dnX1x8avNn2R+ml1E*CszrOAQZ1xoW9gzZsxXt4$J~F|< z1C3A8N#3gRqBdk*Rhy%MjFPAzZ+?M|KlTe`J$~&Q7F$U)@ z9$?{B${kw3_m2 zloa7mJ-FsFNraiymlHB+TbCa(zT)uy8pooJAh}S**u#s$?x^uzRN~Gs@hlt+(v?(`*et0} zoXpAU`M<5Pv@>|d-I0)(4{uIb`j)aEbkpl;2W~eBU>c*WpH7z4wf|f8uY4+^e2oCA zgC{U3cPjdB$9uaY1uItB)>&LxINXE1g^W}YK~T_7y-j6;!l0@#6FAxY(r3^~MUYT_ z#85uwtM%D$Vqc3;7I|khQu{iJdK{}c@+p{)tGFgm?@nO{N6XmdSctDIqcx-^4Ubt$ zg~K8Gk@ewtnygcyYR7IYa{CQ9>u~f`5ZJH_)O_9=L_3 z=1w8W4B3~HA0%r4-3|H-E~IMlPk8qdSaqaPbpqLiq3Bj@D~ce-gubC3mj#oHnFaiG z14xF-rYto9uXGg~Z!roT#l@#y{lz0XRPHdM30iH@hr2Z`n@U7TPyVO;R%4}`kyULz z+8qJ1Bs}5tiE&+Q?iNQWLC(4;MdKRopIJw;((0!r+O_ovP#@pF8grkGO>T1T~iR4@Dt<2B@;SuF_?Q>Yc{& zhb!veDw~@y=rny8P*jqeI=9fDMD!u$*-o(;)xq)Sy0;wo`xDAj129BFJEWr%v+8FV zy(r)xlM9oD`hDPpk{5qbC^x~!*D#mq2wJ#m#%{Hqvgn{qL~# z4dIFa+b#FDtFCWkLl?hS%~rTTZ{M(>=SPTXi@9DHkFuEXM+^C(bcEg4D+GT)>v=?& z^Ner2lv-f7W7aMW!SYE7=rd7z-GcRm((e?3M(KbY2rp+hoInJeOphF^vu)tBkU0zYp_~EG1KG9Au!a&Yg1$H&(cWj+vsF; zl882Z3TzRrR)3c#9OVe{W@J;fa>kouTq6KNeRMv%uZ1b57yG6ckb8Hht!c+Mz9@88l(#==eHOczD2GVnS( zy5jF-A!JfH_HU2M{sUl(zYqDBhi^4rBRlOLPBV;)g}%86={`BSCHA?$AVl^|VS1aqMx3i#tze+}|ej}QTEx!oG#X~|7_-T_2dLlV&I-l|l z`8KJ`3Z2RY@OZ9Owtl-L*g40wfbQQKCa+H6i`6f7XW3( z9?y_6xKN(CWqCO9d8q`tcBLqN&?am}+>5zRH$~3vNw&;$@D%bW#0I0+GgD1Jt9*s` zR|VTJw~}cEYf7=avKLF!Oppj*CTFSKwPdP9hTx6){AjW9GS`RFLyi|@k`16z8AY77!&jT6R zIG+EgjZ}gbevSI;+_qjSF}}N>Pv+La0MxL`Q1Bi(`JCLMtw66UE2S{UUJRNhV?KT_ zmYg`G0d;gJSC($2F9jW}9(Ng%oRvf`Vh$EezIi$VFL5dG0mLYfY+1yqrE~od1{@0{ z3W2+wT}NLw*@Jv$KkQG1LH9irA6@N^kw)W$;Hux?AzB#>(Ew^0!dNoE?EOj;0I56( z2e+d~)RPwVZ22E83dBY%0*lJbo;Mx#79oLEWVyVwHTOl#g|DQgJoEOka{1Z# zaY3%|W&PcB3E3t=L^BZ#v zVX%9_>?!ZNj197rh2z{V)9>d$39AWP*cM7{SyD&qoS9`4i8vOBY1C;&br{5TRdNM? zZ3T()k@*lKmEIny%e(Gptpv)6w&dR3@}2nF`N2wU%jNfiF#GHvRBNZ~ zx3)vWdJ@Ydk#FW0exdP$qvD-QQTxZEyqC)8A?o3?-VBx~{5}w+@!Ss_vb*R=1h!E) zFMu4J?6DAg_Ioe0?cl}m~eAPCbukU48%{$S%7@!zvWWejlp~^1~9x1^}8guHgkMUG8 zWdmXH{;BY43P#ezE}XKh_`T_k&0dkM*|n7PmJj@E-D(%c#ZE+$d)00fZIx2avC0Xs zwebOEu@Mw-Sv2Hn-{823P%pmQ)uuYFwpRhmp)H7GI2A7NMMp=)E>EACzUw()J!qhC z;{rRU>kH27%DU`TTM}@;883gmt9WxfXIW;b>x!(xFu`m_8V+GOwQ+Arcaam}YaUIk zf-X>V3sSxy?)6wE{=jiVHIxB7T;%*5avS#;wNq=cBNScawMURtWBu>CPZDm2nG=9| zkjrV)wvv|AOQwx$5qys@;d zBW8`K9RjL;cz;O%-^!@5I>sZ54fYzQo(Q?4(6L0fWewDBuDWAJ?xrTPSmL~)(;)#r zK9#IbLY6SX-T6tCnfCRaB7l^CCAIjhW@>B}^9RKlsvK&qS^~CT;pi_83bqZ(K7AZg zn;L|LCFr+@*4Ooai{H9(FhhT{i0)QYJm^D0+RwRKr+qi zf}c*un0sk*ve7C@-vFr@b-@>fr35}&{Q}O8F5BZ0C>sopyX%_F_0gk$B|8Bi^=_>l z;U5VsqVOYA%zA`GmHFaVDj!L`pqsfCqYpA)i(TOnchQ#B2OYW{AKmlxRe!@!Wha_CW- z-dzr}O?e-Q6=5(Wz{5yaK?{!XorWj$GLdCbMuzAeNU|=Ry@Mq?plHV1BXw*;e;uk` zZ0v^mi!Jr@y?gK9@>_WnCuUpG(_qa${c5Hm)Wj%dX!zrlV%KN{aHP9Dqor_BrxZ8q z=}^%n&GV^_c(>_fG-HT7gl0|rQ6A|;L36|`lmqqrQ>X~wh~{DXO+Z~KE}J}Z9kmAQ zqh{WFyitTuHUH{tEQb4xn#a7`Eo4sH<_@_bf-<5 zL@L-G$=i(|L`MzAV>Us4D=|y>7vb_0cc*V;y5I4+8|~E%061Bn&lVn^(@r#hGe}oz zSh*)fzVbWuPiYKwHj|hlx~Q{=+KaRud-wpHBVn~8$xU4iM9`LAo+eap22V#ZzsB0^ z2K=Rrag+GEfv*24ztvV^5t2vjH}s8_wJx{vQ*t8WgZ23900)DNw0C|Hv-u?967pC{h3u=!aM1PK^+C``on)&D*-fk zpC5I%V$adn&JsS|K}doxDjb-N@{-a6e>-wTtsKJag61+Y>QOAGj9h_xd7UiHadm3| zoxerj7#?cOMM=tf&hHyTxsU4Xu5Uj7F!V8Fi)Z+raW_VixO9?i%#>D~!K3C@?&TO5 zeNi$k?aX`ye!iQ}a;_{}8Qzj+qA4l1(XVzEm7>$%0((j0SqO^2TalG_0+=R`5DW>4 zIZ)4PJ7{*akXlG8i9frGVd!?j!@QByA>-bL!@k zT&U@nmh%T(TqUGy`cnVMWx0*sxY8q{Nevm{3+7kBa(>iNX>e4g%7LG&khFn)1 zaN-^I2FL-y+JAH&gi5t#J2<%py)v!RM7A%O&GClhr@H({qgG~BF+1^L%D$3|hw!`y zx{B)Na?r@c_T0kb-WZ*gHX<%_ptec~>QlV3O3+M#T4EHV>tlM?`EM_Y*CBLHY=i(+ zoF}Mu4HKa7hrOBh9*$rfO#lz>V#O|mvJUd3!$H-M^LBZb&vTo@Bt-04CI| z_^mltC{sdO5<8QhxQCiNjjz`SadLi_F^{-G@>@atxC}UCR+aHbs!ghub~Uz6C@HPE z06y35G{2n34;PiEACS=QV(mGR8ko2`+S5XvAAZ1hJj{AlaHV*8jiz73D<>sFclcL< z?ELSJPe&G<3jIYz7XOsritKpX4cKNPt2u%2@n@mZ^u_s>UTWBBU13(oI=UT^Pre6D zOIVW{eb780Ep{lYqrG^knrA54W^CdPt?aqB^pxkrQW>k8gCtiw2+9i-y4oU#yz4Td z*3Ll4!7*0})q@co8s1U^Jpy92Ou8VMy8hMdF`8Ho6QWGR0)-WfLFpRXbVDl`md}&b ze0ihdD`|$U8sZh9h7?4kv!2S@^gr{1|CW73|9|m>pL9LaXNg^w4M48a>Ly6TCvC?# zYxtuCEqAMzkR%YmGj|6Dqx}*P8p&LpwvlNIhI>HujvJOu5JOB#c*W}bi=>c*qo4Za ztTSFTh5HBmNymLw*}tK+es$A&Xf-rg{0M@D&Z%MRDjE-}84X<>A@=CV>it&I{b3G< zB-SsyMSTVJO@**^7fWodcR(eiUu+;s>|h9$;EzeXF&ZZqilsRbu*VzyZq!p(LuMwB z(6VIv+z`pFveiz^+%{vJJ(1ZRo#u*GD=>SKF~zizpbvI;XIsss%niH*1++yp6zT4HhHLbTtdlB5ot+A)d^ z1?@LhB4?>w{k_3C2ae4gOfPNYJyUTvDV6y7x)djI2Jch&O@SC}d^bUZa7Nl-mx>=W z;{epy=84jisop5QSG>7NgF0yG^PA#J3!W!nWwauNu@pXnw9zo67m2|M&YaCV_nfUg z((so_SA*ByP+ii}93^jdjxb@X>;%PT<7c5Ob9nB%#~G?U!#=H#=7J-yGBX>B5Ir|# zUj?nyf&J#SSlyluN(7V^_AgOl^hG;E6>ymm_r1o;O+JKpP2$Cv8lp)br{=qb0UPYZ z1$xoApyCgwvOABD;D3rIOy57ztB@m__fZGU&PS$=Qc_PxfhlW@xV*`JyK0^yesKoe zz7d!Axxaxfq#UfchzTJrXA%}sUqL|b#kHh*U*}lUdh!SNp~2H>Y$4^0a>xT!avx4?H`Ju&*dIW-XhlpmL}6;T3PuuU zm$8xzS?oeFt;moPsi9(^1Z8YVB!b$CGLw=vV~WagN-f#!H{&$d)TmU{_hV!JWE@AM zRD;0CqJMXPD_7+@HVn!_h>`);){Kz<@O#d3rYsq z)q^2Hdb!u~heJljPi*1!I|-myB+xTpeFKmHmyPUvO=5rQ?qG$|vO`a1H2df$2r({m zvZhPBQn9lxj9Wq|i6A-aed2^n2NfAtjLSgUTbXu(D#RtIgfQ6{PZp4ZG#ZwwU1RXZ zO__$V$1C(PGar2cn;cxCJjd`J+IOtNYh0w<%mPtOn2GP^GIz)qf|3_nLWld%&EO?HCZ;JGye4`Hw7>W~gutju*PDF8H28zN z(V9F?L9jOQ;g>f=M9k(#jFS7(b!~H%mxt8kmp}a)kEPqzM-Ut_SeZF29aLdzaDGog zu>_1iTmbvvRdR#mP3Xox6p#OAiheTv>HJ02*Sk_rK$>(Jo}yn|GzgoRMIPJ-C3a2* z+G!2uWZY5Cdx;S2fRf5D0{*HT@j*O)8nvQdG;xeK$}{B7PXD??)8d>P?OXN9oK+y3;xhoIFGOg zbf8*jdlxT7xgia=5VT6aDMY4r3L>h#&XOQkVba=!@2qZ0F22*+Sx;uGEIIczEd7Fd zaZL4- zX61?b?OZoq{}ntzZS$Y%w+6;0jM7S=tDSZGb3-9;?vE|)bO>Kyn7v73_8!hO|3auR z(<8@MGiTjh5!Mjkua7&C&FhAiKWcS}Qux+K$MLl@$E86QAtF5vetX0zm`_ zIj+30Sgwh!XJo=qc;xeeyzWGOPIT(Cte^ti8&DQTZ^Ptj!F?Top}q|!V#6^$>oVu- zvgP6K;{TR>Dge505gSyMgrVqbDe?)|ZY`mFUC3+=_CC_;q#u3gMc*}z1R0i}8j^|i z4`k*9+0G&afme0}EsnV8kNYFo_y3lDYw18zIqZAIpGX@pV%rww{S)<8E>W_qpsmXD z(R0rTS3Tlxw78#)NBOGbZg^F>&hdA?Ai-GFLssq&A{n&? zqT(%wzhHVU5E+IelvUzI|K9$U|I=>;iQ@Bk57CbWJx~Gju>BEd0x%fKdo|Jh!*7or z$cy0wB4j0o<#vF<8xh*}nmZrzHF-9c!o`XZlSZ$dCg8FGzCJ-S(+EYFLB4LunSszG z6yh3-!ZmBRhkn=o#1kwH7-f2&-1F>uk_bk1BK9h~OJ9q+Gbc`vUrx62Ws`#jDuP_< zL5&qbW%YH{Hd5(c>~4~4km=Pv^?&OuMp4xO&J=0X1YW{HkcVNc*dp zJgZMIxIH;#87B%?reo0{&}Xp*m?goUP0S+2h@+_R%uN`3ul)*>gX~`ZM#P&hrHuvy zHrAvoD^z+7@TrHbD_UYJ4!u?VN3X+z5Rj0X zqtG-|yC`>Q4vQ{^JR2aNV-jNIAOllCeC|PmK!-KyvZvhAg#rIqec0uvG-3GEd2ngF zTj3JPQk0Ga=9V`UzJ}r|h%Q`B&Lk`tfso$Ps)M5Le86_;{e9IBjz$`&XgUTVd*h3v z;3f6tO~D{8e+z8HQq_Fx@;PSy-M zfY!H2)k+@p?FedxDn1Ah;mu2?WFukLKr zAkGWWAK*H!o7(}a(mcELXnmAV<}U=%-t;fkMvqf;A*w@a!2?NPMWc`}^q#$?n*J>_ zh`4p=8Z0LYT%ltCuHkCR%U@&IAo+$06n8!s+liN82q*rd^pXiKV*AANoYG;q>HZPo ztyS`Z_XJ_5S^q3_GjH?PcZ)Pg#O*kzYWotDA+ma*lkwl4z4^@?i>_Kwcr8NtgnhPC zznEb!QihZb>6e{-AF}~v+F<2hhb6D~A-@BFGi*0Xx{F%+`|B%mQ!QT01N%mfW2i|D zzHerszF*kEup`TV92fQ2egUug|FK<=*sCu!&Z2a`r7Mbb!GQ86o~P$M=o@^36*vF> zg^TPi=`QxRs(k%#@q{UJYGUd3zxps^#BlDJ5Tu?_b+pBxmYP+vjVil>n^ZR+scuMY zT6*$X&%$?C9kpblTqqdeZ{mQMOvwxAcAk#8N7P^3K{d&g&WoX>rFuf53!6$-n)o8k zKU!nz-3ZN}5zI>1WupU6@2_a~nRg#soy(An2F0aDV4=j9LN+Erkg2>j#VosKmfgpB z=4P)2P=i-w1-CFVc?aF@J+H{w$Ak}r5`EwR+!M z#8#zD%2;x%;c$FR@5C=HRlo6PdYI6V z_(k)d;t3O|$c%osFbCAk5APu~8UPI_he0Ez5iM)=z(f#}!@y|+Fd6F9Mh#Rj)4r}!vGPPrL3YF_t4rXu}mHjm;oNoX_kc!%uXE`z}0w@6F@gyM* zJ`C@W?1;CdlYbQcL6AXO1~=0)r86m5;h4a66Ha0ddvIg7nQ6r> zo`Q+M(47wD;JO?4B`!h)rT8V?V{x43q$<9Aj?k2A@2g+0bS5ZHe9LjBV9K~(1p+5- z=TQ@tRPgJm z!btV|^%aD+@U>hXvTzM+j1@%lt6?(%S^68rL0CdHy0l|O9Yh7BkA8o-ZdbhFezBTS z^^(GBQymnCkGok{@ohHX!&}tmhvXOmms$OP&OMmGAW-8#WDk0aC)smPk3(L818`s4 zx>Z_DJwwW}%}1dt;NlPk2gu;dED{KweB{sdeE9Q}ia~``Uv^P8MnN;{})e zRuod;Z!X41nmB_)XT@nwFMg`p!94~&^!zC;{-*uXPTabMn0)NDZsB7Lx)m%J*&{^QefwJYvztwNu`l@^H9jWHDG5Y)!*a<2snvJq@cJ9w9=#sYbx!pfW zLUcu?_EQ81$2b6`%guPxwN{~etu&WfL+oB|qTB9V$x#rE?u-<-P&($MC5CG=h<@-U zbe}J~dP#7EQ+-MQ>|RTIg@IT*c~Qb=aL)xU=?!UIi|XfQ*$untuHv#7?I|+9oJ!Eg zU6Hrfn3o5KP$~>l?7n=P{+cJ^SOh(#B_Hf~TAyl^0W4&t^rq;zuRP0TIHIhuQ)&HU4XS8aM9~ zYK30WVg&U}WS@Zie@kAw+(lU=4ypj*4>qq!AQR6kgJut>7-0dllv-jyXu1g)z@kdx zGt%5?EnQcG-X5ndW(a%o={-;)t&#M-S+O)br3SX!>uZyhuOXZss0Gul8zop;WUJ{3T zyz!>K0|Z#gs=J86oT{O!%m}SE?tOkms?3M#9|-EQXG`7~2rygieztDKL$4ZzWZzRy z)2TC^1Le~ExB9KSKAFEUY^YX(%5@G2T5PWr_}SMMMiz$5HG>iAan{+K#*x05`28C++*z`s zWGjL9|Ha-r1lhW+>(*)8wr$(CZO^oA+qP|Ere@lCg>oAsL~*ylR90Z=dl0&bPWY?yQe!6iG04j033}vT}x| zDU+uAVhqc1gK0}faF*u_?di%(q@3^G`Eh(rj5DSjpCf{x!*IFn#q(Fe@m%*No|c|wXL^w zRG$q)?psclYg0W+^dZ4tC>mW&%S{{eKE^VEYA*TOyH1%nE)(23*%J<9ZIw+@K?{69 zD?4X-;)bikuOPCj^l#63IX!i?n%?Us-QOF_QMGo6)>X_=R?A%8I?ZBH; zipWQ`WSiFR&0%iUO5sv~-^vK#h9cWmMk?&eX6^I?pI(UBA$ivZ1uzDH4crDf0~L{D zb}Exfl$xl`#~13pOfgXgmXEu#Cjscy2Gf1|6X%QPybOsvs>iGh=0oY9;%^nk3QH~; zZgOo@bNspOaNq%Fq#_Xm$SmxWcIlt2!k98{6YdBg3>yr*Ij0QH>N!*{M{YPe(4 z?*3rR|8%l5aloo0)CnUcmWR5MZlPHvq+PJr`29m9Y(7zm5wDM;l|_8+R|!XPD^~gL zSqkNoOFf0_R;+Dp9%g$^;Hf}ub(hColVBr8yda|i^9e9n93SpzGj(;qQsb7$v^n4u z3qH-8_cdYb+flTZNaZ8#y8F}QEKRqYTx63mS)=_4Yh@+&A5rf|%?Q*r4xCP`qXvFC z7}ugv7zlTg+v5IzN+C-9pCi9DCVk{4+PfS_`of zlUB|8Jc%2wx_JskbWGCrWVd9h8tzrRMj-^1-WKJ%+-4yQ262JGl`FSJ45p4TgU~0D zx+DV8aYEUON25`EeplwZsXPw1TIAGVF)>OlK(FS1%6#ju2aASZ7l;(30#F~pvwOg! zIm0UwgU|LsSu)kXehUdHI^Yr24>;?yq64~6)D4n$xSROim6%uvso9}g6!4MI7AQlX zd_pUR&dJF1_M=%G@dt98I2~GqV9>#1^}iRB_Lr)a!?OqCYaQC7OD=vc;B-bRIua9g znQ}lq-;ES0BjQ^P-=^czg$o62ePmUPkRyqgK>3X}?1IdfKV0em!sD!E-MR=2QHBA9 zahhv^*=sjfTeIn|HJdAx{G$+)0-|V-2WkuvPKtC(dI2CJ@*k6Y8Ek>EOp;+j8{oJ8 zyXISqU8WGF02O~df=pe3>j*|JZO&!Tnt4W5^dbqv)CeX-h~D}j8yW7=5+j;9W26l| z+(%&ZNO0$K57iU{&9y%?9nl-5Dv|KAX^Uv!1p9WwIgwNZXQlXU_w9w7*L`;c!EizIjUvGRcg?qQr)|lQ@>~ypj4!!O5r19qd%fX^3HE99I8p2P zvRTMy2$=IYO?^Z5#cZ=%%7J9Pu!+Bn0V)yRNF9}444jhuci{p3PdP9BZ{GU9dF$Vj zw?^FXAkMkxpqrI7-ccFM!jvn7u(8}o`m)*6xQo8W1HCk?jAHHeD7s76OD>G}B|suF z)Eb1Xq&j+(BufZgfq8W#C?!{SzWe?tdmBR#3iixGb-8`FEw+<1csz)R2iIX2c}Xmm z!u*p7M}g%_EGlLNf%0jf5)aQiiLu1q0LxR&c)gg?7AgBMP2mHleU3uvUf|D{qe(PJ zFiv2XgNqlx$YAj5%xTrTo8bvD0Z4-%H(osbS(aeUvD@F%KI>sq32xP|_m}B^kn*-_t&~yFON(pA4OR0)lujP(*#@ zkhCC@)WT72myv?6(%5~q{W-6LkHaQQYyhAnDA^e-n_o>9JUj`L@VsHPz*zyO2u$bPbz1JDbGuk}1~2Fyh;dX3Y;JFp^aPKU|1$Ufhvltlg(lun zR`1-B-^&c$y=bRd&aRzWAU_PPzo&}(OK>e?5M%;df07C*;L$MiiJ+wwB~fnaPis-6 z2Fizbmf+3Z9VR(>O_i4mdS*lIh=H~&0ge@&p3?3+ZSwOw3<%6HXB|EuWmkE*TlMxU$?+1GWDl9!!YvV1)u=TGh*+b9_LKp1EQ9HCn(T2*6K zKGv9P{SJNyWjG)j=2V0Tx;3d};ykQHE@aPK_nkM)TpfD!1#cR%_GRlRQhcPzQG$3N znmf|7S-T9UZ~G!A;KO#K&ef_HiKR>FHJhz}RbF#CWmAR~HR`L6@19YZOBN279f2%_ z6I&LtJZSFX;1bSlVi>(DLAWU3op4Mg(BK-B{-^M<)! zf1|1$B~oqDa%I1i3H|`d@&)eN{LsROQmU%^BIMFkanZ38nf!DBLyLgdmyUXCjrB|S zwG-~-oiFxv;`4{N6j;*{W3#82I%y+u-L&eCty1LK`>~bKX{2^b`x&vO-X(DpC@?HF z10!hNyi3`fk}o)Ad7C|SdZ=1!8m^t&qYY+p5AiyK+c@5RlYVoDA~?N-K=?VZWXDA~ z`Bg$>`A?Z|tx6u}7+ZSuwxtq5Pk(n{MC;kT3=%iRc%?seRtn4v*%5uNE-t)zq;5VP zDcRC~CgJ;$4_#~LW~WXdH&#%#9f(tr5yfK)1d~N*?UUpH_3hR1AYFs~euoqnS=AxO z7B_o~E|@o(S{Pm)+A0F~n3)qFXLgn*bpE4NJQHQ5g*#qx7JIuTR-O+gHNO}Ys2#)V zn*q`vu3G&-@YC${Y>(%qirOW%=Zm43W7E{nkNz?APmtS#kK4(uit17s6kaOibGeqYshYSI%g)N<8tbGmgJIBsu) zxQ#JQX3p~c#jjNoA!2}R$vzwF)$uAwy`ZdZ!IE^|P56#&@yFp4tH7KCzIWr*LiQYoqi3oiPICGoRszGQ2!U%F@B{&&r{%6|1A zW?FH8t~&`NCl|z;u8ADtDPdSzJQait@&4`@(m3;4$rI@ahK)({$l-bWKB<0}1w}fy za9}vhd3xHE`tRZ+`k&I*{@=XyfAiMAGjFZwa^Z{2NGQB;DL7{ zc4d**gxb0XZRg6HsWyM~}1$F+fT-)e6g!yO!4`ZhU`pnBQE|nVGm&*ojo+ zRTf=&+sZM`47CLQQrVof-forgd)wL?a)LQrW37}CH{r3`lSdujENBz1 zfv)p1%7di0Uhsg^nRyUE;KHWoXWnaEKiSH%+9HXtuTGP zp87sJt6IG{u>2QM$^PsF`_D=fX@9%Hj|$aP-DAOXx_v+Ddn%&8iwCria|~z{L=tg5+J;ti)y-#eOrL?cotveUa`oC$hIo#V z{_|M$RRK3eorj7coN`O0cz^#9aYoQcj1aM&k|_E%y>L6`}_g`jo%Q_ zX8IHJpf?xmlA0gQLqF-G`AwcyeoiFqJY#H4ttc)|j2Y221<_W;P25r`e&9$`{b&-b z1LdQZ1Czutv-Mff}k)*TGBAX|ZrCW7IDVORhHTtQRWXlE4d+}V=Nu{8Wiw%R%9A>}S1aBwS zYgZep4PBrIr*9D%?r^;zdHDgvYATkVl+MT_$`2MvjPVw;dLEuzYIu`YJ9l&L@(G3( zV;-$QS}>6QUH%mwCQR=jhO_Z;9jY24ddxj}X0J5SKBNPN&X0|43%hX8-S*dnQ7i8! z;H=PN>{o%)H%cZ*?(de!GpukpCP%`e^O&lDk_XOq7o zB#4q$0io!fScd^lfJd*LFqRPjXmcME6qW$zMK7uRuaVY2qorp8J5?;ttFl7R5CW&(4lNI&MLyd2R#*J_xbC`oH3aMl1ebCV+Fc?WO`{BFz z>VbUJwXYyzaPs3&BFpK@^2>7(V=!eTB-4|KLP8KHv|mwP{#bS#(V}S@w2Xx^V)0?J zlQ*FiLO}yF0dh%kl?jC{{yj)BvIR7EeZMA@uW~~=_`o7 zibAwm3`P$%hTPgZv~|?x#1D-4S`=iDY7(iO)T87li(h;MG0joEJB_2%$E%S%H5T)< z(B*QE2{)+Y`(Y&e!|b7~gah-L2gQ5BE3jmz2czo##t0DBAG#phTy=+igw4N_Z0fh< zev|rq)gp*2(g`$)(SKO4Jrz54Z|33UTyAH(wZ<&c=2VsAQA+ZnB@SKQS}z|AK^2Rz(kUs#XEHjl6&U{oTu>QvhF5bOka-Zk|U#8S>a>@GqDhx2e{9( zQ8n`Vmv;PEBbQ}V1}!bo2HOp%&DsL{(_0{2qECX?VW@)|+2E*mEdVaV{_B5)6m0=7 z93bWb*07nz+BApc>OO7Y*k+twtQ}Qa>4X$bOx5>0pM{8)0Yr*pWyuSACCl*jr$ssn zyuJzJA(tj6}=0fUu#s*K+_!<`(-b#n!z%r7ySfP5j+~0;?bfc_T zfXPqOG1*BI+qxk{VUIsYsn$Ukh^z{SBL?u0 zZ8gaoOnX*TXJ3$Vppqo5XsjLo2G&H~GEIlXBVRy}@OSZm=9m@xB<|YBW2Xzt#@X5! zyD}KX4Y$JKU`lNCW|G zO!S7VILrNBcBVfv&6b}g7rgwr`0wHg|Ngq87m#)uu6)`>OS5ZSmhNoNQB_^` za@a}xo!)?y4w#woTYF|Yd49V)ECIUYAi%^)TY%(JVN-d!(q6)y6GFvb;;L~{L|V;~ zp+&eAx&f5G^~0aK=uPpxkcu=u`i>?+RW|Z$MZ;QQP=QsJ2UWdB9HT!1-**&$XaUgs zF}Gl->lGM@)q!GLYF}d$CisAe&NfPuSKe**QYPNFf|^``2e726{jcW&?5!0eh-w#9 zelKN{!eqG{e1w{j*M(qqjgP#ZcJl%AvPk8(#wLot#|y7`0xiNW?5?OZzKZ#Mo4oxe zN>2pA-n8G=lfP6kt-s>bz{Y3G&~qO@TH>_
7S6~U10aud?_4%|f`rAUF=M%wnc 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%0DF+=zrxu7BxgWbPka08F1#)0qRW#&>R`E(40 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
    82%-)km&t{9= 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

    ?8(JYE??#5i{_+K___ni{Sp$1(w&YlUOOr z7VOvOkFjA@1a2h3ICMM0UccC%VkRd~dBMq05EH9XH@)1W_E0GZYr_3A5l#;On zioeg1O$P6oe9geH9R5Xg3={M6o`lDOdxLTx5tb?%!u%6_L4>{p%WzkbF0}XpabWr= z81D@qjt6|u4dh;HE?H@{80gRGi^%$|QBPGc63IX~fOC!C?sLyww0f z%^vl@d?&|a!eK8_ob%}iLMB?hLcdlD?5oiYK3C<4iCkFsH^aB$7kK@GdG>i`uy^jG{8%!v`U=iSC0ZCa!WHB`Pnn!>Na zywxNV`64U%$M%22|0{p}V~dzR`}u+gpcC2b7zv6)U%qaIZ!l5HG#?ca?AO2Y(^j5D z*99y*E_vV*R&Sl!C{{BE6!E9}uX{A8Hm}-1E-nScQ7xbyd+n7Ga=bh$)<}vY}jLxew|P~`hJNHO6@_(H&HU!;K4~> zwXEQ%aL^RzXE}!+=^~NWw6)0t;m9+D@{|QkAV-GG_tGp)IMpF z^>B?ZG%kcnRZwApk6xWaqLstZ5;#XVBPt9X?8!xP?KV)K?{zYXfoA#M6l}O1aQVT=A#GnUO&l2A7Ku1 zFzWk)kR>13S72g)xBYHX802M?^`-sx0#_i?@E)#oHA3P9)o0PUUGu$K7YsefXz2X< zn@~mxdd%wkdEJRplmbmH(09Y$Uli#7*^DcmXmP89!Lwg>j6~8itUS78YN}5UObgfG zlqK^b55a8relK5mwN+CjI=vZ3&T(2S^L!!)kYhQHr+OTf#A?Ls*%fHXTW$WPX!ZNc zjIuvb^Xc<3WX~XIPO7L#Ru)AA&tBCdTv)_}HUG8Xm$yy9ForW6w0RJNIGj4n2g_GgR+^&I>q(mfCv?xjmUR5;IjfnR%<4t=pH5{pW`u z2+fJRWe;`qUcUD<~(!uz7Z~LV2CTt!W!DqcW~M?Gbb8`-#LqO zlXmEIH$*?@Vh>T$NYq z#*|!rV+58~j&|zCIEeg0CBhnn!ygeb0Zw8AWik;Nf%pfeymHyh$CW4_@ukf7VLJ}0 z#_>?SAhsMd@}c_E#k*;Xz6D0@ed59+2v#+Wr8^zF1+v|QV z805w%abYl2gQiQy*8?=7t;o&veU1DnF z9GW`{%bVVICksIQBzMZtKVp120gSzTL@eZKVMt=kCN4t0ZK82Dm?fc*K!@aM&~1hX z3*~4il=c#;Ki+aCp6V{6t#!CIfX0QxDm79*MUsh?+@$l$4>40@8FL}&dxVd`zRiHI$cx$IJf?7-hi^h z{%T#uVSO?;8tH^eZDSZ`NQMaoAihbm&Dv20c;(y`_~17W9d974g|Q zBPrew=DB2q5r->5RH$XVgAnbLHYL0>c?uEc|08+hR2GNYK62jj_d(;yp$i@ag6no^ zz9v2@vs$IT4a-(h6JWmZB0bnXqCM9;=p2_10{n?0rbf7`29t5n7`whnRkiDQ^u+-% zEK|Wu*aftn(4)`NO}P^!pm+Im@XgO?R=N@yde@k%KpP3YZw^$w(1LK01B6gX9?KhJ zh~vjxeGOWv5-5F;HB`oBIoP}hf78Xlj(Hvz)otvOq>0q<1Og_PhRPZL(!9#|*0w$x z6tQUNcD|PUBJY&&HhVbklp*mMW8>rIr^Ux`^N*Y97k4o>@

    Fuo>iQc5 zhRlrc^b@$`XQnw~Zw)NyFAxVDuIBr2dJCiNQmn48&kSz*f9i)MToM{kul>ScszD4z z#1i!ZADNITuYkSFzuG}<29x0T>MrG&{Y@~1p1LNWIUBm(2SZ2l(Z2J8Or{2F6mHrG zUM&)mH3YV@1tBa@uMyLovqlw=y&a9I0x?tX2DvfT8CDD&9vhmTVwLd*whzc1)V?%9n6n<|VkrqtT`kxiG?y-$*ugj5%HkcZYP$e)>h)F$ zsPu0I#*fs*>upANoN5$&nSEaC^Bvk%F&<4&GdkOUFeLk6xAS0LI+8=)IS>i4_OvAHGd=T&Ctac_s*bLF0GW-=FCz zOqyPCtawe&l&A+ibLRQhs5j)=&wvZz{W(#GHQ!F2oVZn*Pf_*$=Nea@(Qel)dsBhy+4}+#GytVxw zXAhz4w2JZSok4t~5ZJ&H23U7&IsTD%?|o-^3sf z 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 diff --git a/provers/cairo/benches/proofs/fibonacci_70000.proof b/provers/cairo/benches/proofs/fibonacci_70000.proof deleted file mode 100644 index 99813bb8847aaed8bed868ee28de8f95028f83dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65710 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 l|MH=rke=fI%lVJ_s{_!Vs^>TOlX9{c0S|x9-=8 (res: felt) { - return (res = x * y); -} - -func main() { - let x = 2; - let y = 3; - - let (res) = mul(x, y); - assert res = 6; - - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/compare_lesser_array.cairo b/provers/cairo/cairo_programs/cairo0/compare_lesser_array.cairo deleted file mode 100644 index 78d3ca454..000000000 --- a/provers/cairo/cairo_programs/cairo0/compare_lesser_array.cairo +++ /dev/null @@ -1,39 +0,0 @@ -%builtins range_check - -from starkware.cairo.common.bool import TRUE, FALSE -from starkware.cairo.common.alloc import alloc -from starkware.cairo.common.math_cmp import is_le - -// Returns TRUE is array_a is lesser than array_b, which means every element in a is lesser than every element in b -func compare_lesser_array{range_check_ptr: felt}( - array_a: felt*, array_b: felt*, array_length: felt, iterator: felt -) -> (r: felt) { - if (iterator == array_length) { - return (TRUE,); - } - let comparison = is_le(array_a[iterator], array_b[iterator]); - if (comparison == FALSE) { - return (FALSE,); - } - return compare_lesser_array(array_a, array_b, array_length, iterator + 1); -} - -func fill_array(array: felt*, base: felt, step: felt, array_length: felt, iterator: felt) { - if (iterator == array_length) { - return (); - } - assert array[iterator] = base + step * iterator; - return fill_array(array, base, step, array_length, iterator + 1); -} - -func main{range_check_ptr: felt}() { - alloc_locals; - tempvar array_length = 10; - let (array_a: felt*) = alloc(); - let (array_b: felt*) = alloc(); - fill_array(array_a, 5, 2, array_length, 0); - fill_array(array_b, 7, 3, array_length, 0); - let result: felt = compare_lesser_array(array_a, array_b, array_length, 0); - assert result = TRUE; - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_10.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_10.cairo deleted file mode 100644 index f8f4da371..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_10.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 10). - let result: felt = fib(1, 1, 10); - - // Make sure the 10th Fibonacci number is 144. - assert result = 144; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_100.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_100.cairo deleted file mode 100644 index 6b3c2907e..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_100.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 10). - let result: felt = fib(1, 1, 100); - - // Make sure the 100th Fibonacci number is 927372692193078999176. - assert result = 927372692193078999176; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_1000.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_1000.cairo deleted file mode 100644 index d1acf9c8d..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_1000.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 1000). - let result: felt = fib(1, 1, 1000); - - // Make sure the 1000th Fibonacci number is 222450955505511890955301767713383614666194461405743219770606958667979327682. - assert result = 222450955505511890955301767713383614666194461405743219770606958667979327682; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_10000.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_10000.cairo deleted file mode 100644 index 61bb5d43a..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_10000.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 10000). - let result: felt = fib(1, 1, 10000); - - // Make sure the 10000th Fibonacci number is 2287375788429092341882876480321135809824733217263858843173749298459021701670. - assert result = 2287375788429092341882876480321135809824733217263858843173749298459021701670; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_10000_loop.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_10000_loop.cairo deleted file mode 100644 index 63ceaf213..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_10000_loop.cairo +++ /dev/null @@ -1,21 +0,0 @@ - -// Looped fibonacci is more efficient -// than calling the fibo function with recursion -// For n = 5, it's 31 steps vs 49 steps -// This is useful to compare with other vms that are not validating the call stack for fibonacci - -func main{}() { - tempvar x0 = 0; - tempvar x1 = 1; - tempvar fib_acc = x0 + x1; - tempvar n = 10000; - loop: - tempvar x0 = x1; - tempvar x1 = fib_acc; - tempvar fib_acc = x0 + x1; - tempvar n = n - 1; - jmp loop if n != 0; - - assert fib_acc = 2287375788429092341882876480321135809824733217263858843173749298459021701670; - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_5.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_5.cairo deleted file mode 100644 index 6723ba9b8..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_5.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 5). - let result: felt = fib(1, 1, 5); - - // Make sure the 5th Fibonacci number is 13. - assert result = 13; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_500.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_500.cairo deleted file mode 100644 index c2bccb34d..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_500.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 500). - let result: felt = fib(1, 1, 500); - - // Make sure the 500th Fibonacci number is 2703462216091053821850160095716009632185810905688261857143077152353261240886. - assert result = 2703462216091053821850160095716009632185810905688261857143077152353261240886; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_5_loop.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_5_loop.cairo deleted file mode 100644 index 328b2085c..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_5_loop.cairo +++ /dev/null @@ -1,21 +0,0 @@ - -// Looped fibonacci is more efficient -// than calling the fibo function with recursion -// For n = 5, it's 31 steps vs 49 steps -// This is useful to compare with other vms that are not validating the call stack for fibonacci - -func main{}() { - tempvar x0 = 0; - tempvar x1 = 1; - tempvar fib_acc = x0 + x1; - tempvar n = 5; - loop: - tempvar x0 = x1; - tempvar x1 = fib_acc; - tempvar fib_acc = x0 + x1; - tempvar n = n - 1; - jmp loop if n != 0; - - assert fib_acc = 13; - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_5_memory.bin b/provers/cairo/cairo_programs/cairo0/fibonacci_5_memory.bin deleted file mode 100644 index d2757322289e73359afb66815ed8f515bb98f5ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 zcma)-*IL3r5QT{%MC{l*HdO4rD|X*1x%Yv+P>Au%Ir(&#aVA`x%-KIPTP7qZWLFX; zQ4p7l2tDcYoX$o!?Knt(#SwGBbr?oo-vtn}LE35mCDD6LzzS6i zw6Z=G+i?_}wl8BWl%CsHR1y1N+{jIU)7CMW=le|SHpIG9Irsnkrhjqms4C{0$+=eA z_jQq*B_}A(E1cuF(pU4~K9bHC`XpQcr|sV&xFyyXv?lnj%{)|hobfVlw7yyar~PlN z8o4!N-8wkdN9f5q9KOdM0Am9xzGxWVglg+;81rp`)4mJa;5bi&p6tM3e|Z3mU1@?^BowuLvWlYLQjt1XzM)&r}gs*IBj1}jrq>NY5R8$j`Kw5$psv3y_euZ zFT-Es3Zb?y*T#G|;I#MS798h^(33kj+IpMdwD0ddIBj1ZjQJkHY4QZ1sesQI*Vg+2 KPFwG*k^2S=9A&cr diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_5_trace.bin b/provers/cairo/cairo_programs/cairo0/fibonacci_5_trace.bin deleted file mode 100644 index 6362f9ef71482f1f57dbf519bba36a4018aa908d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmeH{(Mm!=6h(~)kq}YT@*=^-6id;H(x?VkUxp8q)%1JuTKZ7@I(;NwPai8=>a5>{KWP0n{ZYJ^J`pd{r{ewenGzp!eCC?R z=Sdu&XK{R9#PN9zC-I?^_`GQzpM^L+OL2VO#qs$FC-I?^_dH diff --git a/provers/cairo/cairo_programs/cairo0/fibonacci_70000.cairo b/provers/cairo/cairo_programs/cairo0/fibonacci_70000.cairo deleted file mode 100644 index 791ab2dfb..000000000 --- a/provers/cairo/cairo_programs/cairo0/fibonacci_70000.cairo +++ /dev/null @@ -1,19 +0,0 @@ -func main() { - // Call fib(1, 1, 70000). - let result: felt = fib(1, 1, 70000); - - // Make sure the 70000th Fibonacci number is 2824861842081921227084209061704696342102277985526232307654372591609636515753. - assert result = 2824861842081921227084209061704696342102277985526232307654372591609636515753; - ret; -} - -func fib(first_element, second_element, n) -> (res: felt) { - jmp fib_body if n != 0; - tempvar result = second_element; - return (second_element,); - - fib_body: - tempvar y = first_element + second_element; - return fib(second_element, y, n - 1); -} - diff --git a/provers/cairo/cairo_programs/cairo0/lt_comparison.cairo b/provers/cairo/cairo_programs/cairo0/lt_comparison.cairo deleted file mode 100644 index bf52c5d66..000000000 --- a/provers/cairo/cairo_programs/cairo0/lt_comparison.cairo +++ /dev/null @@ -1,10 +0,0 @@ -%builtins range_check - -from starkware.cairo.common.math_cmp import is_le - -func main{range_check_ptr: felt}() { - let result = is_le(2, 6); - assert result = 1; - return (); -} - diff --git a/provers/cairo/cairo_programs/cairo0/output_program.cairo b/provers/cairo/cairo_programs/cairo0/output_program.cairo deleted file mode 100644 index 5b1a96e74..000000000 --- a/provers/cairo/cairo_programs/cairo0/output_program.cairo +++ /dev/null @@ -1,12 +0,0 @@ -%builtins output - -from starkware.cairo.common.serialize import serialize_word - -func main{output_ptr: felt*}() { - const MY_INT = 1234; - - // this will print MY_INT - serialize_word(MY_INT); - - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/rc_program.cairo b/provers/cairo/cairo_programs/cairo0/rc_program.cairo deleted file mode 100644 index a2c2614b2..000000000 --- a/provers/cairo/cairo_programs/cairo0/rc_program.cairo +++ /dev/null @@ -1,9 +0,0 @@ -%builtins range_check - -from starkware.cairo.common.math import assert_nn - -func main{range_check_ptr: felt}() { - assert_nn(5); - assert_nn(2); - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/signed_div_rem.cairo b/provers/cairo/cairo_programs/cairo0/signed_div_rem.cairo deleted file mode 100644 index 705869437..000000000 --- a/provers/cairo/cairo_programs/cairo0/signed_div_rem.cairo +++ /dev/null @@ -1,50 +0,0 @@ -%builtins output range_check -from starkware.cairo.common.math import signed_div_rem, assert_le -from starkware.cairo.common.serialize import serialize_word - -func signed_div_rem_man{range_check_ptr}(value, div, bound) -> (q: felt, r: felt) { - let r = [range_check_ptr]; - let biased_q = [range_check_ptr + 1]; // == q + bound. - let range_check_ptr = range_check_ptr + 2; - %{ - from starkware.cairo.common.math_utils import as_int, assert_integer - - assert_integer(ids.div) - assert 0 < ids.div <= PRIME // range_check_builtin.bound, \ - f'div={hex(ids.div)} is out of the valid range.' - - assert_integer(ids.bound) - assert ids.bound <= range_check_builtin.bound // 2, \ - f'bound={hex(ids.bound)} is out of the valid range.' - - int_value = as_int(ids.value, PRIME) - q, ids.r = divmod(int_value, ids.div) - - assert -ids.bound <= q < ids.bound, \ - f'{int_value} / {ids.div} = {q} is out of the range [{-ids.bound}, {ids.bound}).' - - ids.biased_q = q + ids.bound - %} - let q = biased_q - bound; - assert value = q * div + r; - assert_le(r, div - 1); - assert_le(biased_q, 2 * bound - 1); - return (q, r); -} - -func main{output_ptr: felt*, range_check_ptr: felt}() { - let (q_negative_expected, r_negative_expected) = signed_div_rem(-10, 3, 29); - let (q_negative, r_negative) = signed_div_rem_man(-10, 3, 29); - assert q_negative_expected = q_negative; - assert r_negative_expected = r_negative; - serialize_word(q_negative_expected); - serialize_word(q_negative); - serialize_word(r_negative_expected); - serialize_word(r_negative); - - let (q_expected, r_expected) = signed_div_rem(10, 3, 29); - let (q, r) = signed_div_rem_man(10, 3, 29); - assert q_expected = q; - assert r_expected = r; - return (); -} diff --git a/provers/cairo/cairo_programs/cairo0/simple_program.cairo b/provers/cairo/cairo_programs/cairo0/simple_program.cairo deleted file mode 100644 index f42affecb..000000000 --- a/provers/cairo/cairo_programs/cairo0/simple_program.cairo +++ /dev/null @@ -1,7 +0,0 @@ -func main() { - let x = 1; - let y = 2; - assert x + y = 3; - return (); -} - diff --git a/provers/cairo/ffi/Cargo.toml b/provers/cairo/ffi/Cargo.toml deleted file mode 100644 index f7437cf02..000000000 --- a/provers/cairo/ffi/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "cairo-platinum-ffi" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -# libc = "0.2" -stark-platinum-prover = { path = "../../stark" } -cairo-platinum-prover = { path = "../" } -bincode = { version = "2.0.0-rc.2", tag = "v2.0.0-rc.2", git = "https://github.com/bincode-org/bincode.git", features = ['serde'] } - -[lib] -crate-type = ["cdylib", "staticlib", "lib"] diff --git a/provers/cairo/ffi/fibo_5.proof b/provers/cairo/ffi/fibo_5.proof deleted file mode 100644 index fc112dec4c6077560ff5305655964d8482db223f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265809 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

    ~G$M8OzL%h7CR+euuv!p(S>DtTENd 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%0Afgr6sf^oRJT4XY-Kx#OXH*dD3N(RO>Hi_h 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�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 diff --git a/provers/cairo/ffi/src/lib.rs b/provers/cairo/ffi/src/lib.rs deleted file mode 100644 index b5ea7e0a5..000000000 --- a/provers/cairo/ffi/src/lib.rs +++ /dev/null @@ -1,71 +0,0 @@ -use cairo_platinum_prover::air::CairoAIR; -use stark_platinum_prover::proof::options::ProofOptions; -use stark_platinum_prover::proof::options::SecurityLevel; -use stark_platinum_prover::transcript::StoneProverTranscript; -use stark_platinum_prover::verifier::{IsStarkVerifier, Verifier}; - -fn verify_cairo_proof_ffi(proof_bytes: &[u8], proof_options: &ProofOptions) -> bool { - let bytes = proof_bytes; - - // This logic is the same as main verify, with only error handling changing. In ffi, we simply return a false if the proof is invalid, instead of rising an error. - - // Proof len was stored as an u32, 4u8 needs to be read - let proof_len = u32::from_le_bytes(bytes[0..4].try_into().unwrap()) as usize; - - let bytes = &bytes[4..]; - if bytes.len() < proof_len { - return false; - } - - let Ok((proof, _)) = - bincode::serde::decode_from_slice(&bytes[0..proof_len], bincode::config::standard()) - else { - return false; - }; - let bytes = &bytes[proof_len..]; - - let Ok((pub_inputs, _)) = bincode::serde::decode_from_slice(bytes, bincode::config::standard()) - else { - return false; - }; - - Verifier::::verify( - &proof, - &pub_inputs, - proof_options, - StoneProverTranscript::new(&[]), - ) -} - -// Fibo 70k is 260 kb -// 2 MiB is more than enough -const MAX_PROOF_SIZE: usize = 1024 * 1024; - -/// WASM Function for verifying a proof with default 100 bits of security -#[no_mangle] -pub extern "C" fn verify_cairo_proof_ffi_100_bits( - proof_bytes: &[u8; MAX_PROOF_SIZE], - real_len: usize, -) -> bool { - let (real_proof_bytes, _) = proof_bytes.split_at(real_len); - - println!("Len: {:?} ", real_proof_bytes.len()); - let proof_options = ProofOptions::new_secure(SecurityLevel::Conjecturable100Bits, 3); - verify_cairo_proof_ffi(real_proof_bytes, &proof_options) -} - -#[cfg(test)] -mod tests { - use super::*; - - const PROOF: &[u8; 265809] = include_bytes!("../fibo_5.proof"); - - #[test] - fn fibo_5_proof_verifies() { - let mut proof_buffer = [0u8; super::MAX_PROOF_SIZE]; - let proof_size = PROOF.len(); - proof_buffer[..proof_size].clone_from_slice(PROOF); - let result = verify_cairo_proof_ffi_100_bits(&proof_buffer, proof_size); - assert!(result) - } -} diff --git a/provers/cairo/proof.proof b/provers/cairo/proof.proof deleted file mode 100644 index 82d522cb27fa6c315efaf36d6a1e1013ae865695..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265805 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�Gj0AtcKT%u-GLiM$ zqMZ%n4a;IRRI^H%4{9X)3(*+xMJFN~&EW4d0EmXf)H1W+L=koTUr)&fY|C*k(wNKI z8!{L!><=U=RRCnQEfGEQikUowxR~JwoW-H>6OZ}fz7L+~Qe1gL=_~-G4liBn&~Ozk zf40}_v}0dX7TsNuZCz+icGWDMjP1gfU37$kS?sm)aF> ztaUB`U;@*Xy=uv#e>GTkE(m3Ep^jYAS6CcJB@jNuWr$G@j zdyt=k!<>XPH-G*2>Z)RsuRV!2=c+c1pUt)7RDbFU$;n3u z?SQe2|L_+C%dpY;fhC1XWxrlXl80X9x%P>y&6Ni=3b(~o7@gM4Z$VF6D)9_S>H2BE zfd9MS1vYcM`2^E-XNOn&=o@eYEj3VJ+{WIhw}@EfOOBZYdZLMVkbFzAR#UNzm+Ghd z9oUZwpxqz|rziOh#-)7R;JU!?E)SHcC^g^eZDw{pQBJQ^SA-^)U#3@Z507!okwNu# zvIc5{wrOam-yTp+mH50?DQuHwMpmxTTz4ZXJ6Uc{o+lSy?MYYgbSK)%*Pw~bEivk# zHzI93jm&U(xUqtTsy~^~-G2qb3@?!8F(L-(G zy}3JM#+dZE`nLf%-+ite{sYF3?lYRAX_P4B0wsE%X($pO4rB{3JZL9cMhGRlUIFw_)VfXO!WAk?c9`Rj7vcJR?qv3OLC zWl2!&YMMylaWeq>VDbf5xZk^n+gZ1Ls_SBHU@hf4Rg^38Qmze4>?JwqqhMzX2MmQa z()p@%P1o}!3>QYn9AxSuY|x!n76iPp*IxH6{3svX(aT>y+IJ83EO_bXl5i()rU z1ImDLZ+E1R&hZ%Hr8rX%K^p+9OPW@9Aq5V1PB@7Z+H3>gXIiBtjg4bDbs4BJr#&G6 zvKtb^fS3w)(|L{ev#n(fT{gwR*Z4$1%~JbKky80zl>c^qY~22-2a0|6OMEz3>O@wYzQ=HI7S7hT=YB813Khqp;G0 z%6P)Icig4)+5q*ofh6bDNdi^iavH!{`7oD?*aglkEHP z(LOF4-Ub`B)l?TqW~YR?H_q%IH^G1{xO8T@g!dP+Sxs&4dQ0ZAvl#@pb2if54|L%8 zHM%81KD)s9htzz&{Dk6T+&z_^X_Ns4=(ddYi?w)Ii~P7He*nTN^Zo3YjF(re2hle( z3k;&x8XJaLr51u~DHGa>13Lh+gWmLl-U)51wYqJwCRbM7m6v9hE;uF$@^w=GmjMVy z(BDv;pKeMG0s=L�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 ruD@%^*}u?m2Wt3doWu for SegmentName { - fn from(value: &str) -> Self { - match value { - "range_check" => SegmentName::RangeCheck, - "output" => SegmentName::Output, - "program" => SegmentName::Program, - "execution" => SegmentName::Execution, - "ecdsa" => SegmentName::Ecdsa, - "pedersen" => SegmentName::Pedersen, - n => panic!("Invalid segment name {n}"), - } - } -} - -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] -pub struct Segment { - pub begin_addr: usize, - pub stop_ptr: usize, -} - -impl Segment { - pub fn new(begin_addr: u64, stop_ptr: u64) -> Self { - let begin_addr: usize = begin_addr.try_into().unwrap(); - let stop_ptr: usize = stop_ptr.try_into().unwrap(); - - stop_ptr.checked_sub(begin_addr).unwrap(); - - Self { - begin_addr, - stop_ptr, - } - } - - pub fn segment_size(&self) -> usize { - self.stop_ptr - self.begin_addr - 1 - } -} - -impl From<&MemorySegmentAddresses> for Segment { - fn from(value: &MemorySegmentAddresses) -> Self { - Self { - begin_addr: value.begin_addr, - stop_ptr: value.stop_ptr, - } - } -} - -pub type MemorySegmentMap = HashMap; - -#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] -pub struct PublicInputs { - pub pc_init: Felt252, - pub ap_init: Felt252, - pub fp_init: Felt252, - pub pc_final: Felt252, - pub ap_final: Felt252, - // These are Option because they're not known until - // the trace is obtained. They represent the minimum - // and maximum offsets used during program execution. - // TODO: A possible refactor is moving them to the proof. - // minimum range check value (0 < range_check_min < range_check_max < 2^16) - pub range_check_min: Option, - // maximum range check value - pub range_check_max: Option, - // Range-check builtin address range - pub memory_segments: MemorySegmentMap, - pub public_memory: HashMap, - pub num_steps: usize, // number of execution steps -} - -impl PublicInputs { - /// Creates a Public Input from register states and memory - /// - In the future we should use the output of the Cairo Runner. This is not currently supported in Cairo RS - /// - RangeChecks are not filled, and the prover mutates them inside the prove function. This works but also should be loaded from the Cairo RS output - pub fn from_regs_and_mem( - register_states: &RegisterStates, - memory: &CairoMemory, - codelen: usize, - ) -> Self { - let public_memory = (1..=codelen as u64) - .map(|i| (Felt252::from(i), *memory.get(&i).unwrap())) - .collect::>(); - - let last_step = ®ister_states.rows[register_states.steps() - 1]; - - PublicInputs { - pc_init: Felt252::from(register_states.rows[0].pc), - ap_init: Felt252::from(register_states.rows[0].ap), - fp_init: Felt252::from(register_states.rows[0].fp), - pc_final: FieldElement::from(last_step.pc), - ap_final: FieldElement::from(last_step.ap), - range_check_min: None, - range_check_max: None, - memory_segments: MemorySegmentMap::new(), - public_memory, - num_steps: register_states.steps(), - } - } -} - -impl AsBytes for PublicInputs { - fn as_bytes(&self) -> Vec { - let mut bytes = vec![]; - let pc_init_bytes = self.pc_init.to_bytes_be(); - let felt_length = pc_init_bytes.len(); - bytes.extend(felt_length.to_be_bytes()); - bytes.extend(pc_init_bytes); - bytes.extend(self.ap_init.to_bytes_be()); - bytes.extend(self.fp_init.to_bytes_be()); - bytes.extend(self.pc_final.to_bytes_be()); - bytes.extend(self.ap_final.to_bytes_be()); - - if let Some(range_check_min) = self.range_check_min { - bytes.extend(1u8.to_be_bytes()); - bytes.extend(range_check_min.to_be_bytes()); - } else { - bytes.extend(0u8.to_be_bytes()); - } - - if let Some(range_check_max) = self.range_check_max { - bytes.extend(1u8.to_be_bytes()); - bytes.extend(range_check_max.to_be_bytes()); - } else { - bytes.extend(0u8.to_be_bytes()); - } - - let mut memory_segment_bytes = vec![]; - for (segment, range) in self.memory_segments.iter() { - let segment_type = match segment { - SegmentName::RangeCheck => 0u8, - SegmentName::Output => 1u8, - SegmentName::Program => 2u8, - SegmentName::Execution => 3u8, - SegmentName::Ecdsa => 4u8, - SegmentName::Pedersen => 5u8, - }; - memory_segment_bytes.extend(segment_type.to_be_bytes()); - memory_segment_bytes.extend(range.begin_addr.to_be_bytes()); - memory_segment_bytes.extend(range.stop_ptr.to_be_bytes()); - } - let memory_segment_length = self.memory_segments.len(); - bytes.extend(memory_segment_length.to_be_bytes()); - bytes.extend(memory_segment_bytes); - - let mut public_memory_bytes = vec![]; - for (address, value) in self.public_memory.iter() { - public_memory_bytes.extend(address.to_bytes_be()); - public_memory_bytes.extend(value.to_bytes_be()); - } - let public_memory_length = self.public_memory.len(); - bytes.extend(public_memory_length.to_be_bytes()); - bytes.extend(public_memory_bytes); - - bytes.extend(self.num_steps.to_be_bytes()); - - bytes - } -} - -impl Deserializable for PublicInputs { - fn deserialize(bytes: &[u8]) -> Result - where - Self: Sized, - { - let mut bytes = bytes; - let felt_len = usize::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[8..]; - let pc_init = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - let ap_init = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - let fp_init = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - let pc_final = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - let ap_final = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - - if bytes.is_empty() { - return Err(DeserializationError::InvalidAmountOfBytes); - } - let range_check_min = match bytes[0] { - 0 => { - bytes = &bytes[1..]; - None - } - 1 => { - bytes = &bytes[1..]; - let range_check_min = u16::from_be_bytes( - bytes[..2] - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[2..]; - Some(range_check_min) - } - _ => return Err(DeserializationError::FieldFromBytesError), - }; - - if bytes.is_empty() { - return Err(DeserializationError::InvalidAmountOfBytes); - } - let range_check_max = match bytes[0] { - 0 => { - bytes = &bytes[1..]; - None - } - 1 => { - bytes = &bytes[1..]; - let range_check_max = u16::from_be_bytes( - bytes[..2] - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[2..]; - Some(range_check_max) - } - _ => return Err(DeserializationError::FieldFromBytesError), - }; - - let mut memory_segments = MemorySegmentMap::new(); - let memory_segment_length = usize::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[8..]; - for _ in 0..memory_segment_length { - if bytes.is_empty() { - return Err(DeserializationError::InvalidAmountOfBytes); - } - let segment_type = match bytes[0] { - 0u8 => SegmentName::RangeCheck, - 1u8 => SegmentName::Output, - 2u8 => SegmentName::Program, - 3u8 => SegmentName::Execution, - 4u8 => SegmentName::Ecdsa, - 5u8 => SegmentName::Pedersen, - _ => return Err(DeserializationError::FieldFromBytesError), - }; - bytes = &bytes[1..]; - let start = u64::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[8..]; - let end = u64::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[8..]; - memory_segments.insert(segment_type, Segment::new(start, end)); - } - - let mut public_memory = HashMap::new(); - let public_memory_length = usize::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - bytes = &bytes[8..]; - for _ in 0..public_memory_length { - let address = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - let value = Felt252::from_bytes_be( - bytes - .get(..felt_len) - .ok_or(DeserializationError::InvalidAmountOfBytes)?, - )?; - bytes = &bytes[felt_len..]; - public_memory.insert(address, value); - } - - let num_steps = usize::from_be_bytes( - bytes - .get(0..8) - .ok_or(DeserializationError::InvalidAmountOfBytes)? - .try_into() - .map_err(|_| DeserializationError::InvalidAmountOfBytes)?, - ); - - Ok(Self { - pc_init, - ap_init, - fp_init, - pc_final, - ap_final, - range_check_min, - range_check_max, - memory_segments, - public_memory, - num_steps, - }) - } -} - -pub struct CairoAIR { - pub context: AirContext, - pub trace_length: usize, - pub pub_inputs: PublicInputs, - pub transition_constraints: - Vec>>, -} - -/// Receives two slices corresponding to the accessed addresses and values, filled with -/// the memory holes and with the (0, 0) public memory dummy accesses. -/// Each (address, value) public memory pair is written in a (0, 0) dummy access until -/// there is no one left. -/// -/// NOTE: At the end of this process there might be some additional (0, 0) dummy accesses -/// that were not overwritten. This is not a problem as long as all the public memory pairs -/// have been written. -fn add_pub_memory_in_public_input_section( - addresses: &[Felt252], - values: &[Felt252], - public_input: &PublicInputs, -) -> (Vec, Vec) { - let mut a_aux = addresses.to_owned(); - let mut v_aux = values.to_owned(); - - let mut pub_addrs = public_input.public_memory.iter(); - - // Iterate over addresses - for (i, a) in a_aux.iter_mut().enumerate() { - // When address `0` is found, it means it corresponds to a dummy access. - if a == &Felt252::zero() { - // While there are public memory addresses left, overwrite the dummy - // (addr, value) accesses with the real public memory pairs. - if let Some((pub_addr, pub_value)) = pub_addrs.next() { - *a = *pub_addr; - v_aux[i] = *pub_value; - } else { - // When there are no public memory pairs left to write, break the - // loop and return the (addr, value) pairs with dummy accesses - // overwritten. - break; - } - } - } - - (a_aux, v_aux) -} - -fn sort_columns_by_memory_address( - adresses: Vec, - values: Vec, -) -> (Vec, Vec) { - let mut tuples: Vec<_> = adresses.into_iter().zip(values).collect(); - tuples.sort_by(|(x, _), (y, _)| x.representative().cmp(&y.representative())); - tuples.into_iter().unzip() -} - -fn generate_memory_permutation_argument_column( - addresses_original: Vec, - values_original: Vec, - addresses_sorted: &[Felt252], - values_sorted: &[Felt252], - rap_challenges: &[Felt252], -) -> Vec { - let z = &rap_challenges[1]; - let alpha = &rap_challenges[0]; - - let mut denom: Vec<_> = addresses_sorted - .iter() - .zip(values_sorted) - .map(|(ap, vp)| z - (ap + alpha * vp)) - .collect(); - FieldElement::inplace_batch_inverse(&mut denom).unwrap(); - // Returns the cumulative products of the numerators and denominators - addresses_original - .iter() - .zip(&values_original) - .zip(&denom) - .scan(Felt252::one(), |product, ((a_i, v_i), den_i)| { - let ret = *product; - *product = ret * ((z - (a_i + alpha * v_i)) * den_i); - Some(*product) - }) - .collect::>() -} - -fn generate_range_check_permutation_argument_column( - offset_column_original: &[Felt252], - offset_column_sorted: &[Felt252], - rap_challenges: &[Felt252], -) -> Vec { - let z = rap_challenges[2]; - - let mut denom: Vec<_> = offset_column_sorted.iter().map(|x| z - x).collect(); - FieldElement::inplace_batch_inverse(&mut denom).unwrap(); - - offset_column_original - .iter() - .zip(&denom) - .scan(Felt252::one(), |product, (num_i, den_i)| { - let ret = *product; - *product = ret * (z - num_i) * den_i; - Some(*product) - }) - .collect::>() -} - -impl AIR for CairoAIR { - type Field = Stark252PrimeField; - type FieldExtension = Stark252PrimeField; - type PublicInputs = PublicInputs; - - const STEP_SIZE: usize = 1; - - /// Creates a new CairoAIR from proof_options - /// - /// # Arguments - /// - /// * `trace_length` - Length of the Cairo execution trace. Must be a power fo two. - /// * `pub_inputs` - Public inputs sent by the Cairo runner. - /// * `proof_options` - STARK proving configuration options. - fn new( - trace_length: usize, - pub_inputs: &Self::PublicInputs, - proof_options: &ProofOptions, - ) -> Self { - debug_assert!(trace_length.is_power_of_two()); - let trace_columns = 59; - - let transition_constraints: Vec< - Box>, - > = vec![ - Box::new(BitPrefixFlag0::new()), - Box::new(BitPrefixFlag1::new()), - Box::new(BitPrefixFlag2::new()), - Box::new(BitPrefixFlag3::new()), - Box::new(BitPrefixFlag4::new()), - Box::new(BitPrefixFlag5::new()), - Box::new(BitPrefixFlag6::new()), - Box::new(BitPrefixFlag7::new()), - Box::new(BitPrefixFlag8::new()), - Box::new(BitPrefixFlag9::new()), - Box::new(BitPrefixFlag10::new()), - Box::new(BitPrefixFlag11::new()), - Box::new(BitPrefixFlag12::new()), - Box::new(BitPrefixFlag13::new()), - Box::new(BitPrefixFlag14::new()), - Box::new(ZeroFlagConstraint::new()), - Box::new(InstructionUnpacking::new()), - Box::new(CpuOperandsMemDstAddr::new()), - Box::new(CpuOperandsMem0Addr::new()), - Box::new(CpuOperandsMem1Addr::new()), - Box::new(CpuUpdateRegistersApUpdate::new()), - Box::new(CpuUpdateRegistersFpUpdate::new()), - Box::new(CpuUpdateRegistersPcCondPositive::new()), - Box::new(CpuUpdateRegistersPcCondNegative::new()), - Box::new(CpuUpdateRegistersUpdatePcTmp0::new()), - Box::new(CpuUpdateRegistersUpdatePcTmp1::new()), - Box::new(CpuOperandsOpsMul::new()), - Box::new(CpuOperandsRes::new()), - Box::new(CpuOpcodesCallPushFp::new()), - Box::new(CpuOpcodesCallPushPc::new()), - Box::new(CpuOpcodesAssertEq::new()), - Box::new(MemoryDiffIsBit0::new()), - Box::new(MemoryDiffIsBit1::new()), - Box::new(MemoryDiffIsBit2::new()), - Box::new(MemoryDiffIsBit3::new()), - Box::new(MemoryDiffIsBit4::new()), - Box::new(MemoryIsFunc0::new()), - Box::new(MemoryIsFunc1::new()), - Box::new(MemoryIsFunc2::new()), - Box::new(MemoryIsFunc3::new()), - Box::new(MemoryIsFunc4::new()), - Box::new(MemoryMultiColumnPermStep0_0::new()), - Box::new(MemoryMultiColumnPermStep0_1::new()), - Box::new(MemoryMultiColumnPermStep0_2::new()), - Box::new(MemoryMultiColumnPermStep0_3::new()), - Box::new(MemoryMultiColumnPermStep0_4::new()), - Box::new(Rc16DiffIsBit0::new()), - Box::new(Rc16DiffIsBit1::new()), - Box::new(Rc16DiffIsBit2::new()), - Box::new(Rc16DiffIsBit3::new()), - Box::new(Rc16PermStep0_0::new()), - Box::new(Rc16PermStep0_1::new()), - Box::new(Rc16PermStep0_2::new()), - Box::new(Rc16PermStep0_3::new()), - Box::new(FlagOp1BaseOp0BitConstraint::new()), - Box::new(FlagResOp1BitConstraint::new()), - Box::new(FlagPcUpdateRegularBit::new()), - Box::new(FlagFpUpdateRegularBit::new()), - Box::new(CpuOpcodesCallOff0::new()), - Box::new(CpuOpcodesCallOff1::new()), - Box::new(CpuOpcodesCallFlags::new()), - Box::new(CpuOpcodesRetOff0::new()), - Box::new(CpuOpcodesRetOff2::new()), - Box::new(CpuOpcodesRetFlags::new()), - ]; - - #[cfg(debug_assertions)] - { - use std::collections::HashSet; - let constraints_set: HashSet<_> = transition_constraints - .iter() - .map(|c| c.constraint_idx()) - .collect(); - debug_assert_eq!( - constraints_set.len(), - transition_constraints.len(), - "There are repeated constraint indexes" - ); - (0..transition_constraints.len()) - .for_each(|idx| debug_assert!(constraints_set.iter().contains(&idx))); - - assert_eq!(transition_constraints.len(), 64); - } - - assert_eq!(transition_constraints.len(), 64); - - let transition_exemptions = transition_constraints - .iter() - .map(|c| c.end_exemptions()) - .collect(); - - let context = AirContext { - proof_options: proof_options.clone(), - trace_columns, - transition_exemptions, - transition_offsets: vec![0, 1], - num_transition_constraints: transition_constraints.len(), - }; - - // The number of the transition constraints - // and transition exemptions should be the same always. - debug_assert_eq!( - context.transition_exemptions.len(), - context.num_transition_constraints - ); - - Self { - context, - pub_inputs: pub_inputs.clone(), - trace_length, - transition_constraints, - } - } - - fn build_auxiliary_trace( - &self, - main_trace: &TraceTable, - rap_challenges: &[Felt252], - ) -> TraceTable { - let addresses_original = main_trace.merge_columns(&[ - FRAME_PC, - FRAME_DST_ADDR, - FRAME_OP0_ADDR, - FRAME_OP1_ADDR, - EXTRA_ADDR, - ]); - - let values_original = - main_trace.merge_columns(&[FRAME_INST, FRAME_DST, FRAME_OP0, FRAME_OP1, EXTRA_VAL]); - - let (addresses, values) = add_pub_memory_in_public_input_section( - &addresses_original, - &values_original, - &self.pub_inputs, - ); - - let (addresses, values) = sort_columns_by_memory_address(addresses, values); - - let permutation_col = generate_memory_permutation_argument_column( - addresses_original, - values_original, - &addresses, - &values, - rap_challenges, - ); - - // Range Check - let offsets_original = main_trace.merge_columns(&[OFF_DST, OFF_OP0, OFF_OP1, RC_HOLES]); - - let mut offsets_sorted: Vec = offsets_original - .iter() - .map(|x| x.representative().into()) - .collect(); - offsets_sorted.sort(); - let offsets_sorted: Vec<_> = offsets_sorted - .iter() - .map(|x| FieldElement::from(*x as u64)) - .collect(); - - let range_check_permutation_col = generate_range_check_permutation_argument_column( - &offsets_original, - &offsets_sorted, - rap_challenges, - ); - - // Convert from long-format to wide-format again - let mut aux_data = Vec::new(); - for i in 0..main_trace.n_rows() { - aux_data.push(offsets_sorted[4 * i]); - aux_data.push(offsets_sorted[4 * i + 1]); - aux_data.push(offsets_sorted[4 * i + 2]); - aux_data.push(offsets_sorted[4 * i + 3]); - aux_data.push(addresses[5 * i]); - aux_data.push(addresses[5 * i + 1]); - aux_data.push(addresses[5 * i + 2]); - aux_data.push(addresses[5 * i + 3]); - aux_data.push(addresses[5 * i + 4]); - aux_data.push(values[5 * i]); - aux_data.push(values[5 * i + 1]); - aux_data.push(values[5 * i + 2]); - aux_data.push(values[5 * i + 3]); - aux_data.push(values[5 * i + 4]); - aux_data.push(permutation_col[5 * i]); - aux_data.push(permutation_col[5 * i + 1]); - aux_data.push(permutation_col[5 * i + 2]); - aux_data.push(permutation_col[5 * i + 3]); - aux_data.push(permutation_col[5 * i + 4]); - aux_data.push(range_check_permutation_col[4 * i]); - aux_data.push(range_check_permutation_col[4 * i + 1]); - aux_data.push(range_check_permutation_col[4 * i + 2]); - aux_data.push(range_check_permutation_col[4 * i + 3]); - } - - let aux_table = Table::new(aux_data, self.num_auxiliary_rap_columns()); - - let (num_main_columns, num_aux_columns) = self.trace_layout(); - TraceTable { - table: aux_table, - num_main_columns, - num_aux_columns, - step_size: Self::STEP_SIZE, - } - } - - fn build_rap_challenges( - &self, - transcript: &mut impl IsTranscript, - ) -> Vec { - let alpha_memory = transcript.sample_field_element(); - let z_memory = transcript.sample_field_element(); - let z_rc = transcript.sample_field_element(); - - vec![alpha_memory, z_memory, z_rc] - } - - fn trace_layout(&self) -> (usize, usize) { - (36, 23) - } - - /// From the Cairo whitepaper, section 9.10. - /// These are part of the register constraints. - /// - /// Boundary constraints: - /// * ap_0 = fp_0 = ap_i - /// * ap_t = ap_f - /// * pc_0 = pc_i - /// * pc_t = pc_f - fn boundary_constraints(&self, rap_challenges: &[Felt252]) -> BoundaryConstraints { - let initial_pc = - BoundaryConstraint::new_main(MEM_A_TRACE_OFFSET, 0, self.pub_inputs.pc_init); - let initial_ap = - BoundaryConstraint::new_main(MEM_P_TRACE_OFFSET, 0, self.pub_inputs.ap_init); - - let final_pc = BoundaryConstraint::new_main( - MEM_A_TRACE_OFFSET, - self.pub_inputs.num_steps - 1, - self.pub_inputs.pc_final, - ); - let final_ap = BoundaryConstraint::new_main( - MEM_P_TRACE_OFFSET, - self.pub_inputs.num_steps - 1, - self.pub_inputs.ap_final, - ); - - // Auxiliary constraint: permutation argument final value - let final_index = self.trace_length - 1; - - let z_memory = rap_challenges[1]; - let alpha_memory = rap_challenges[0]; - - let cumulative_product = self - .pub_inputs - .public_memory - .iter() - .fold(FieldElement::one(), |product, (address, value)| { - product * (z_memory - (address + alpha_memory * value)) - }) - .inv() - .unwrap(); - - let permutation_final = - z_memory.pow(self.pub_inputs.public_memory.len()) * cumulative_product; - - let permutation_final_constraint = - BoundaryConstraint::new_aux(PERMUTATION_ARGUMENT_COL_4, final_index, permutation_final); - - let one: FieldElement = FieldElement::one(); - let range_check_final_constraint = - BoundaryConstraint::new_aux(PERMUTATION_ARGUMENT_RANGE_CHECK_COL_4, final_index, one); - - let range_check_min = BoundaryConstraint::new_aux( - RANGE_CHECK_COL_1, - 0, - FieldElement::from(self.pub_inputs.range_check_min.unwrap() as u64), - ); - - let range_check_max = BoundaryConstraint::new_aux( - RANGE_CHECK_COL_4, - final_index, - FieldElement::from(self.pub_inputs.range_check_max.unwrap() as u64), - ); - - let constraints = vec![ - initial_pc, - initial_ap, - final_pc, - final_ap, - permutation_final_constraint, - range_check_final_constraint, - range_check_min, - range_check_max, - ]; - - BoundaryConstraints::from_constraints(constraints) - } - - fn transition_constraints( - &self, - ) -> &Vec>> { - &self.transition_constraints - } - - fn context(&self) -> &AirContext { - &self.context - } - - fn composition_poly_degree_bound(&self) -> usize { - 2 * self.trace_length - } - - fn trace_length(&self) -> usize { - self.trace_length - } - - fn pub_inputs(&self) -> &Self::PublicInputs { - &self.pub_inputs - } - - fn compute_transition_verifier( - &self, - frame: &Frame, - periodic_values: &[FieldElement], - rap_challenges: &[FieldElement], - ) -> Vec> { - self.compute_transition_prover(frame, periodic_values, rap_challenges) - } -} - -/// Wrapper function for generating Cairo proofs without the need to specify -/// concrete types. -/// The field is set to Stark252PrimeField and the AIR to CairoAIR. -pub fn generate_cairo_proof( - trace: &TraceTable, - pub_input: &PublicInputs, - proof_options: &ProofOptions, -) -> Result, ProvingError> { - Prover::::prove( - trace, - pub_input, - proof_options, - StoneProverTranscript::new(&[]), - ) -} - -/// Wrapper function for verifying Cairo proofs without the need to specify -/// concrete types. -/// The field is set to Stark252PrimeField and the AIR to CairoAIR. -pub fn verify_cairo_proof( - proof: &StarkProof, - pub_input: &PublicInputs, - proof_options: &ProofOptions, -) -> bool { - Verifier::::verify( - proof, - pub_input, - proof_options, - StoneProverTranscript::new(&[]), - ) -} - -#[cfg(test)] -#[cfg(debug_assertions)] -mod test { - use super::*; - use lambdaworks_math::field::element::FieldElement; - - #[test] - fn test_build_auxiliary_trace_sort_columns_by_memory_address() { - let a = vec![ - FieldElement::from(2), - FieldElement::one(), - FieldElement::from(3), - FieldElement::from(2), - ]; - let v = vec![ - FieldElement::from(6), - FieldElement::from(4), - FieldElement::from(5), - FieldElement::from(6), - ]; - let (ap, vp) = sort_columns_by_memory_address(a, v); - assert_eq!( - ap, - vec![ - FieldElement::one(), - FieldElement::from(2), - FieldElement::from(2), - FieldElement::from(3) - ] - ); - assert_eq!( - vp, - vec![ - FieldElement::from(4), - FieldElement::from(6), - FieldElement::from(6), - FieldElement::from(5), - ] - ); - } - - #[test] - fn test_build_auxiliary_trace_generate_permutation_argument_column() { - let a = vec![ - FieldElement::from(3), - FieldElement::one(), - FieldElement::from(2), - ]; - let v = vec![ - FieldElement::from(5), - FieldElement::one(), - FieldElement::from(2), - ]; - let ap = vec![ - FieldElement::one(), - FieldElement::from(2), - FieldElement::from(3), - ]; - let vp = vec![ - FieldElement::one(), - FieldElement::from(2), - FieldElement::from(5), - ]; - let rap_challenges = vec![ - FieldElement::from(15), - FieldElement::from(10), - FieldElement::zero(), - ]; - - let p = generate_memory_permutation_argument_column(a, v, &ap, &vp, &rap_challenges); - assert_eq!( - p, - vec![ - FieldElement::from_hex( - "2aaaaaaaaaaaab0555555555555555555555555555555555555555555555561" - ) - .unwrap(), - FieldElement::from_hex( - "1745d1745d174602e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2ec" - ) - .unwrap(), - FieldElement::one(), - ] - ); - } -} - -#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] -#[cfg(test)] -mod prop_test { - use lambdaworks_math::{ - field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField, - traits::{AsBytes, Deserializable}, - }; - use proptest::{prelude::*, prop_compose, proptest}; - use stark_platinum_prover::proof::{options::ProofOptions, stark::StarkProof}; - - use crate::{ - air::{generate_cairo_proof, verify_cairo_proof}, - cairo_layout::CairoLayout, - runner::run::generate_prover_args, - tests::utils::cairo0_program_path, - Felt252, - }; - - use super::{MemorySegmentMap, PublicInputs, Segment, SegmentName}; - - prop_compose! { - fn some_felt()(base in any::(), exponent in any::()) -> Felt252 { - Felt252::from(base).pow(exponent) - } - } - - prop_compose! { - fn some_public_inputs()( - pc_init in some_felt(), - ap_init in some_felt(), - fp_init in some_felt(), - pc_final in some_felt(), - ap_final in some_felt(), - public_memory in proptest::collection::hash_map(any::(), any::(), (8_usize, 16_usize)), - range_check_max in proptest::option::of(any::()), - range_check_min in proptest::option::of(any::()), - num_steps in any::(), - ) -> PublicInputs { - let public_memory = public_memory.iter().map(|(k, v)| (Felt252::from(*k), Felt252::from(*v))).collect(); - let memory_segments = MemorySegmentMap::from([(SegmentName::Output, Segment::new(10u64, 16u64)), (SegmentName::RangeCheck, Segment::new(20u64, 71u64))]); - PublicInputs { - pc_init, - ap_init, - fp_init, - pc_final, - ap_final, - public_memory, - range_check_max, - range_check_min, - num_steps, - memory_segments, - } - } - } - - proptest! { - #![proptest_config(ProptestConfig {cases: 5, .. ProptestConfig::default()})] - #[test] - fn test_public_inputs_serialization( - public_inputs in some_public_inputs(), - ){ - let serialized = AsBytes::as_bytes(&public_inputs); - let deserialized: PublicInputs = Deserializable::deserialize(&serialized).unwrap(); - prop_assert_eq!(public_inputs.pc_init, deserialized.pc_init); - prop_assert_eq!(public_inputs.ap_init, deserialized.ap_init); - prop_assert_eq!(public_inputs.fp_init, deserialized.fp_init); - prop_assert_eq!(public_inputs.pc_final, deserialized.pc_final); - prop_assert_eq!(public_inputs.ap_final, deserialized.ap_final); - prop_assert_eq!(public_inputs.public_memory, deserialized.public_memory); - prop_assert_eq!(public_inputs.range_check_max, deserialized.range_check_max); - prop_assert_eq!(public_inputs.range_check_min, deserialized.range_check_min); - prop_assert_eq!(public_inputs.num_steps, deserialized.num_steps); - prop_assert_eq!(public_inputs.memory_segments, deserialized.memory_segments); - } - } - - #[test] - fn deserialize_and_verify() { - let program_content = std::fs::read(cairo0_program_path("fibonacci_10.json")).unwrap(); - let (main_trace, pub_inputs) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - let proof_options = ProofOptions::default_test_options(); - - // The proof is generated and serialized. - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - let proof_bytes: Vec = serde_cbor::to_vec(&proof).unwrap(); - - // The trace and original proof are dropped to show that they are decoupled from - // the verifying process. - drop(main_trace); - drop(proof); - - // At this point, the verifier only knows about the serialized proof, the proof options - // and the public inputs. - let proof: StarkProof = - serde_cbor::from_slice(&proof_bytes).unwrap(); - - // The proof is verified successfully. - assert!(verify_cairo_proof(&proof, &pub_inputs, &proof_options)); - } -} diff --git a/provers/cairo/src/cairo_layout.rs b/provers/cairo/src/cairo_layout.rs deleted file mode 100644 index 13a7ae227..000000000 --- a/provers/cairo/src/cairo_layout.rs +++ /dev/null @@ -1,30 +0,0 @@ -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum CairoLayout { - Plain, - Small, - Dex, - Recursive, - Starknet, - StarknetWithKeccak, - RecursiveLargeOutput, - AllCairo, - AllSolidity, - Dynamic, -} - -impl CairoLayout { - pub fn as_str(&self) -> &'static str { - match self { - CairoLayout::Plain => "plain", - CairoLayout::Small => "small", - CairoLayout::Dex => "dex", - CairoLayout::Recursive => "recursive", - CairoLayout::Starknet => "starknet", - CairoLayout::StarknetWithKeccak => "starknet_with_keccak", - CairoLayout::RecursiveLargeOutput => "recursive_large_output", - CairoLayout::AllCairo => "all_cairo", - CairoLayout::AllSolidity => "all_solidity", - CairoLayout::Dynamic => "dynamic", - } - } -} diff --git a/provers/cairo/src/cairo_mem.rs b/provers/cairo/src/cairo_mem.rs deleted file mode 100644 index 3079d9ca1..000000000 --- a/provers/cairo/src/cairo_mem.rs +++ /dev/null @@ -1,130 +0,0 @@ -use super::errors::CairoImportError; -use crate::Felt252; -use lambdaworks_math::traits::ByteConversion; -use std::{collections::HashMap, fs}; - -// `Felt252` is used as the type of values stored in -// the Cairo memory. We should decide if this is -// correct or we should consider another type. -#[derive(Clone, Debug, PartialEq)] -pub struct CairoMemory { - pub data: HashMap, -} - -impl CairoMemory { - pub fn new(data: HashMap) -> Self { - Self { data } - } - - /// Given a memory address, gets the value stored in it if - /// the address exists. - pub fn get(&self, addr: &u64) -> Option<&Felt252> { - self.data.get(addr) - } - - pub fn len(&self) -> usize { - self.data.len() - } - - pub fn is_empty(&self) -> bool { - self.data.is_empty() - } - - pub fn from_bytes_le(bytes: &[u8]) -> Result { - // Each row is an 8 bytes address - // and a value of 32 bytes (which is a field) - const ROW_SIZE: usize = 8 + 32; - - if bytes.len() % ROW_SIZE != 0 { - return Err(CairoImportError::IncorrectNumberOfBytes); - } - let num_rows = bytes.len() / ROW_SIZE; - - let mut data = HashMap::with_capacity(num_rows); - - for i in 0..num_rows { - let address = - u64::from_le_bytes(bytes[i * ROW_SIZE..i * ROW_SIZE + 8].try_into().unwrap()); - let value = Felt252::from_bytes_le( - bytes[i * ROW_SIZE + 8..i * ROW_SIZE + 40] - .try_into() - .unwrap(), - ) - .unwrap(); - - data.insert(address, value); - } - - Ok(Self::new(data)) - } - - pub fn from_file(path: &str) -> Result { - let data = fs::read(path)?; - Self::from_bytes_le(&data) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn mem_indexes_are_contiguos_in_bytes_of_mul_program() { - /* - Hex from the trace of the following cairo program - - func main() { - let x = 2; - let y = 3; - assert x * y = 6; - return(); - } - - Generated with: - - cairo-compile multiply.cairo --output multiply.out - - cairo-run --layout all --trace_file trace.out --memory_file mem.out --program multiply.out - - xxd -p mem.out - */ - - let bytes = hex::decode("01000000000000000080ff7f01800648000000000000000000000000000000000000000000000000020000000000000006000000000000000000000000000000000000000000000000000000000000000300000000000000ff7fff7f01800640000000000000000000000000000000000000000000000000040000000000000006000000000000000000000000000000000000000000000000000000000000000500000000000000fe7fff7fff7f8b20000000000000000000000000000000000000000000000000060000000000000009000000000000000000000000000000000000000000000000000000000000000700000000000000090000000000000000000000000000000000000000000000000000000000000008000000000000000600000000000000000000000000000000000000000000000000000000000000").unwrap(); - - let memory = CairoMemory::from_bytes_le(&bytes).unwrap(); - - let mut sorted_addrs = memory.data.into_keys().collect::>(); - sorted_addrs.sort(); - - for (i, addr) in sorted_addrs.into_iter().enumerate() { - assert_eq!(addr, (i + 1) as u64); - } - } - - #[test] - fn test_wrong_amount_of_bytes_gives_err() { - let bytes = hex::decode("01000000000000000080ff7f01800648000000000000000000000000000000000000000000000000020000000000000006000000000000000000000000000000000000000000000000000000000000000300000000000000ff7fff7f01800640000000000000000000000000000000000000000000000000040000000000000006000000000000000000000000000000000000000000000000000000000000000500000000000000fe7fff7fff7f8b2000000000000000000000000000000000000000000000000006000000000000000900000000000000000000000000000000000000000000000000000000000000070000000000000009000000000000000000000000000000000000000000000000000000000000000800000000000000060000000000000000000000000000000000000000000000000000000000000088").unwrap(); - - match CairoMemory::from_bytes_le(&bytes) { - Err(CairoImportError::IncorrectNumberOfBytes) => (), - Err(_) => panic!(), - Ok(_) => panic!(), - } - } - - #[test] - fn mem_indexes_are_contiguos_when_loading_from_file_mul_program() { - let base_dir = env!("CARGO_MANIFEST_DIR"); - dbg!(base_dir); - let dir = base_dir.to_owned() + "/src/tests/data/mul_mem.out"; - - let memory = CairoMemory::from_file(&dir).unwrap(); - - let mut sorted_addrs = memory.data.into_keys().collect::>(); - sorted_addrs.sort(); - - for (i, addr) in sorted_addrs.into_iter().enumerate() { - assert_eq!(addr, (i + 1) as u64); - } - } -} diff --git a/provers/cairo/src/commands.rs b/provers/cairo/src/commands.rs deleted file mode 100644 index 7c81a02e1..000000000 --- a/provers/cairo/src/commands.rs +++ /dev/null @@ -1,64 +0,0 @@ -use clap::{Args, Parser, Subcommand}; - -#[derive(Parser, Debug)] -#[command(author = "Lambdaworks", version, about)] -pub struct ProverArgs { - #[clap(subcommand)] - pub entity: ProverEntity, -} - -#[derive(Subcommand, Debug)] -pub enum ProverEntity { - #[clap(about = "Compile a given cairo program")] - Compile(CompileArgs), - #[clap(about = "Run and generate a proof for a given compiled cairo program")] - RunAndProve(RunAndProveArgs), - #[clap(about = "Generate a proof from a given trace of a cairo program execution")] - Prove(ProveArgs), - #[clap(about = "Verify a proof for a given compiled cairo program")] - Verify(VerifyArgs), - #[clap(about = "Generate and verify a proof for a given compiled cairo program")] - ProveAndVerify(ProveAndVerifyArgs), - #[clap(about = "Compile and prove a given cairo program")] - CompileAndProve(CompileAndProveArgs), - #[clap(about = "Compile, prove and verify a given cairo program")] - CompileProveAndVerify(CompileAndRunAllArgs), -} - -#[derive(Args, Debug)] -pub struct CompileArgs { - pub program_path: String, -} - -#[derive(Args, Debug)] -pub struct RunAndProveArgs { - pub program_path: String, - pub proof_path: String, -} -#[derive(Args, Debug)] -pub struct ProveArgs { - pub trace_bin_path: String, - pub memory_bin_path: String, - pub proof_path: String, -} - -#[derive(Args, Debug)] -pub struct VerifyArgs { - pub proof_path: String, -} - -#[derive(Args, Debug)] -pub struct ProveAndVerifyArgs { - pub program_path: String, -} - -#[derive(Args, Debug)] -pub struct CompileAndProveArgs { - pub program_path: String, - pub proof_path: String, -} - -#[derive(Args, Debug)] -pub struct CompileAndRunAllArgs { - pub program_path: String, -} diff --git a/provers/cairo/src/decode/instruction_flags.rs b/provers/cairo/src/decode/instruction_flags.rs deleted file mode 100644 index d049e6ee9..000000000 --- a/provers/cairo/src/decode/instruction_flags.rs +++ /dev/null @@ -1,771 +0,0 @@ -use crate::{errors::InstructionDecodingError, Felt252}; - -// Constants for instructions decoding -const DST_REG_MASK: u64 = 0x0001; -const DST_REG_OFF: u64 = 0; -const OP0_REG_MASK: u64 = 0x0002; -const OP0_REG_OFF: u64 = 1; -const OP1_SRC_MASK: u64 = 0x001C; -const OP1_SRC_OFF: u64 = 2; -const RES_LOGIC_MASK: u64 = 0x0060; -const RES_LOGIC_OFF: u64 = 5; -const PC_UPDATE_MASK: u64 = 0x0380; -const PC_UPDATE_OFF: u64 = 7; -const AP_UPDATE_MASK: u64 = 0x0C00; -const AP_UPDATE_OFF: u64 = 10; -const OPCODE_MASK: u64 = 0x7000; -const OPCODE_OFF: u64 = 12; -const FLAGS_OFFSET: u64 = 48; - -// TODO: This is just an auxiliary function done to get out of the way. -// It should be deleted afterwards -pub(crate) fn aux_get_last_nim_of_field_element(value: &Felt252) -> u64 { - let mem_value_bytes = value.to_bytes_be(); - - // we are taking the last nim of the field element, - // since it is a U256 - u64::from_be_bytes([ - mem_value_bytes[24], - mem_value_bytes[25], - mem_value_bytes[26], - mem_value_bytes[27], - mem_value_bytes[28], - mem_value_bytes[29], - mem_value_bytes[30], - mem_value_bytes[31], - ]) -} - -#[derive(Clone, Debug, PartialEq)] -pub struct CairoInstructionFlags { - pub opcode: CairoOpcode, - pub ap_update: ApUpdate, - pub pc_update: PcUpdate, - pub res_logic: ResLogic, - pub op1_src: Op1Src, - pub op0_reg: Op0Reg, - pub dst_reg: DstReg, -} - -impl CairoInstructionFlags { - /// Gives a bit trace representation of all flags. - /// Altough the flags can be interpreted as bits, they are - /// represented by field elements: Felt252::zero() for bit 0 and - /// Felt252::one() for bit 1. - #[rustfmt::skip] - pub fn to_bit_representation(&self) -> [Felt252; 16] { - let b0 = self.dst_reg.to_bit_representation(); - let b1 = self.op0_reg.to_bit_representation(); - let [b2, b3, b4] = self.op1_src.to_bit_representation(); - let [b5, b6] = self.res_logic.to_bit_representation(); - let [b7, b8, b9] = self.pc_update.to_bit_representation(); - let [b10, b11] = self.ap_update.to_bit_representation(); - let [b12, b13, b14] = self.opcode.to_bit_representation(); - - // In the paper, a little-endian format for the bit flags is - // mentioned. That is why they are arranged in this way (section 4.4 - // of the Cairo whitepaper - https://eprint.iacr.org/2021/1063.pdf) - [ - b0, // dst_reg bits - b1, // op0_reg bits - b4, b3, b2, // op1_src bits - b6, b5, // res_logic bits - b9, b8, b7, // pc_update bits - b11, b10, // ap_update bits - b14, b13, b12, // opcode bits - Felt252::zero(), - ] - } - - pub fn to_trace_representation(&self) -> [Felt252; 16] { - let bit_flags = self.to_bit_representation(); - to_bit_prefixes(bit_flags) - } -} - -#[derive(Debug, PartialEq, Eq, Clone)] -pub enum Op0Reg { - AP = 0, - FP = 1, -} - -impl Op0Reg { - pub fn to_bit_representation(&self) -> Felt252 { - match self { - Op0Reg::AP => Felt252::zero(), - Op0Reg::FP => Felt252::one(), - } - } -} - -impl TryFrom<&Felt252> for Op0Reg { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - - let op0_reg = ((flags & OP0_REG_MASK) >> OP0_REG_OFF) as u8; - - if op0_reg == 0 { - Ok(Op0Reg::AP) - } else if op0_reg == 1 { - Ok(Op0Reg::FP) - } else { - Err(InstructionDecodingError::InvalidOp0Reg) - } - } -} - -#[derive(Debug, PartialEq, Eq, Clone)] -pub enum DstReg { - AP = 0, - FP = 1, -} -impl DstReg { - pub fn to_bit_representation(&self) -> Felt252 { - match self { - DstReg::AP => Felt252::zero(), - DstReg::FP => Felt252::one(), - } - } -} - -impl TryFrom<&Felt252> for DstReg { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let dst_reg = ((flags & DST_REG_MASK) >> DST_REG_OFF) as u8; - - if dst_reg == 0 { - Ok(DstReg::AP) - } else if dst_reg == 1 { - Ok(DstReg::FP) - } else { - Err(InstructionDecodingError::InvalidDstReg) - } - } -} - -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum Op1Src { - Op0 = 0, - Imm = 1, - FP = 2, - AP = 4, -} - -impl Op1Src { - pub fn to_bit_representation(&self) -> [Felt252; 3] { - match self { - Op1Src::Op0 => [Felt252::zero(), Felt252::zero(), Felt252::zero()], - Op1Src::Imm => [Felt252::zero(), Felt252::zero(), Felt252::one()], - Op1Src::FP => [Felt252::zero(), Felt252::one(), Felt252::zero()], - Op1Src::AP => [Felt252::one(), Felt252::zero(), Felt252::zero()], - } - } -} - -impl TryFrom<&Felt252> for Op1Src { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let op1_src = ((flags & OP1_SRC_MASK) >> OP1_SRC_OFF) as u8; - - match op1_src { - 0 => Ok(Op1Src::Op0), - 1 => Ok(Op1Src::Imm), - 2 => Ok(Op1Src::FP), - 4 => Ok(Op1Src::AP), - _ => Err(InstructionDecodingError::InvalidOp1Src), - } - } -} - -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum ResLogic { - Op1 = 0, - Add = 1, - Mul = 2, - // TODO: Check if this is correct - Unconstrained, -} - -impl ResLogic { - pub fn to_bit_representation(&self) -> [Felt252; 2] { - match self { - ResLogic::Op1 => [Felt252::zero(), Felt252::zero()], - ResLogic::Add => [Felt252::zero(), Felt252::one()], - ResLogic::Mul => [Felt252::one(), Felt252::zero()], - ResLogic::Unconstrained => todo!(), - } - } -} - -impl TryFrom<&Felt252> for ResLogic { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let res_logic = ((flags & RES_LOGIC_MASK) >> RES_LOGIC_OFF) as u8; - - match res_logic { - 0 => Ok(ResLogic::Op1), - 1 => Ok(ResLogic::Add), - 2 => Ok(ResLogic::Mul), - // TODO: Check this is correct - 4 => Ok(ResLogic::Unconstrained), - _ => Err(InstructionDecodingError::InvalidResLogic), - } - } -} - -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum PcUpdate { - Regular = 0, - Jump = 1, - JumpRel = 2, - Jnz = 4, -} - -impl PcUpdate { - pub fn to_bit_representation(&self) -> [Felt252; 3] { - match self { - PcUpdate::Regular => [Felt252::zero(), Felt252::zero(), Felt252::zero()], - PcUpdate::Jump => [Felt252::zero(), Felt252::zero(), Felt252::one()], - PcUpdate::JumpRel => [Felt252::zero(), Felt252::one(), Felt252::zero()], - PcUpdate::Jnz => [Felt252::one(), Felt252::zero(), Felt252::zero()], - } - } -} - -impl TryFrom<&Felt252> for PcUpdate { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let pc_update = ((flags & PC_UPDATE_MASK) >> PC_UPDATE_OFF) as u8; - - match pc_update { - 0 => Ok(PcUpdate::Regular), - 1 => Ok(PcUpdate::Jump), - 2 => Ok(PcUpdate::JumpRel), - 4 => Ok(PcUpdate::Jnz), - _ => Err(InstructionDecodingError::InvalidPcUpdate), - } - } -} - -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum ApUpdate { - Regular = 0, - Add = 1, - Add1 = 2, - // TODO: Check if this is correct - Add2, -} - -impl ApUpdate { - pub fn to_bit_representation(&self) -> [Felt252; 2] { - match self { - ApUpdate::Regular => [Felt252::zero(), Felt252::zero()], - ApUpdate::Add => [Felt252::zero(), Felt252::one()], - ApUpdate::Add1 => [Felt252::one(), Felt252::zero()], - ApUpdate::Add2 => todo!(), - } - } -} - -impl TryFrom<&Felt252> for ApUpdate { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let ap_update = ((flags & AP_UPDATE_MASK) >> AP_UPDATE_OFF) as u8; - - match ap_update { - 0 => Ok(ApUpdate::Regular), - 1 => Ok(ApUpdate::Add), - 2 => Ok(ApUpdate::Add1), - 4 => Ok(ApUpdate::Add2), - _ => Err(InstructionDecodingError::InvalidApUpdate), - } - } -} - -impl TryFrom<&Felt252> for CairoInstructionFlags { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - Ok(CairoInstructionFlags { - opcode: CairoOpcode::try_from(mem_value)?, - pc_update: PcUpdate::try_from(mem_value)?, - ap_update: ApUpdate::try_from(mem_value)?, - res_logic: ResLogic::try_from(mem_value)?, - op1_src: Op1Src::try_from(mem_value)?, - op0_reg: Op0Reg::try_from(mem_value)?, - dst_reg: DstReg::try_from(mem_value)?, - }) - } -} - -#[derive(Clone, Debug, PartialEq)] -pub enum CairoOpcode { - NOp = 0, - Call = 1, - Ret = 2, - AssertEq = 4, -} - -impl CairoOpcode { - pub fn to_bit_representation(&self) -> [Felt252; 3] { - match self { - CairoOpcode::NOp => [Felt252::zero(), Felt252::zero(), Felt252::zero()], - CairoOpcode::Call => [Felt252::zero(), Felt252::zero(), Felt252::one()], - CairoOpcode::Ret => [Felt252::zero(), Felt252::one(), Felt252::zero()], - CairoOpcode::AssertEq => [Felt252::one(), Felt252::zero(), Felt252::zero()], - } - } -} - -impl TryFrom<&Felt252> for CairoOpcode { - type Error = InstructionDecodingError; - - fn try_from(mem_value: &Felt252) -> Result { - let flags = aux_get_last_nim_of_field_element(mem_value) >> FLAGS_OFFSET; - let opcode = ((flags & OPCODE_MASK) >> OPCODE_OFF) as u8; - - match opcode { - 0 => Ok(CairoOpcode::NOp), - 1 => Ok(CairoOpcode::Call), - 2 => Ok(CairoOpcode::Ret), - 4 => Ok(CairoOpcode::AssertEq), - _ => Err(InstructionDecodingError::InvalidOpcode), - } - } -} - -fn to_bit_prefixes(bit_array: [Felt252; 16]) -> [Felt252; 16] { - let two = Felt252::from(2); - (0..bit_array.len()) - .map(|i| { - bit_array - .iter() - .enumerate() - .fold(Felt252::zero(), |acc, (j, flag_j)| { - let sum_term = if j < i { - Felt252::zero() - } else { - let exponent = j - i; - two.pow(exponent) * flag_j - }; - acc + sum_term - }) - }) - .collect::>() - .try_into() - .unwrap() -} - -#[cfg(test)] -mod tests { - use super::*; - /* - For the purpose of testing the decoding, we are going to use instructions obtained - directly from valid Cairo programs. The decoding shown here is obtained by inspecting - cairo-rs: - * Instruction A: 0x480680017fff8000 -> - Instruction { - off0: 0, - off1: -1, - off2: 1, - imm: Some(3618502680826344545094760424199446925499834509564823019178951359862461693953), - dst_register: AP, - op0_register: FP, - op1_addr: Imm, - res: Op1, - pc_update: Regular, - ap_update: Add1, - fp_update: Regular, - opcode: AssertEq - } - - * Instruction B: 0x1104800180018000 -> - Instruction { - off0: 0, - off1: 1, - off2: 1, - imm: Some(3618502788666131213697322783095070105623107215331596699973092056135872020275), - dst_register: AP, - op0_register: AP, - op1_addr: Imm, - res: Op1, - pc_update: JumpRel, - ap_update: Add2, - fp_update: APPlus2, - opcode: Call - } - - * Instruction C: 0x208b7fff7fff7fFelt252 -> - Instruction { - off0: -2, - off1: -1, - off2: -1, - imm: None, - dst_register: FP, - op0_register: FP, - op1_addr: FP, - res: Op1, - pc_update: Jump, - ap_update: Regular, - fp_update: Dst, - opcode: Ret - } - - * Instruction D: 0xa0680017fff7fff -> - Instruction { off0: -1, - off1: -1, - off2: 1, - imm: Some(7), - dst_register: AP, - op0_register: FP, - op1_addr: Imm, - res: Unconstrained, - pc_update: Jnz, - ap_update: Add1, - fp_update: Regular, - opcode: NOp - } - - * Instruction E: 0x48327ffc7ffa8000 -> - Instruction { - off0: 0, - off1: -6, - off2: -4, - imm: None, - dst_register: AP, - op0_register: FP, - op1_addr: AP, - res: Add, - pc_update: Regular, - ap_update: Add1, - fp_update: Regular, - opcode: AssertEq - } - - * Instruction F: 0x4000800d7ff07fff -> - Instruction { - off0: -1, - off1: -16, - off2: 13, - imm: None, - dst_register: AP, - op0_register: AP, - op1_addr: Op0, - res: Op1, - pc_update: Regular, - ap_update: Regular, - fp_update: Regular, - opcode: AssertEq - } - - * Instruction G: 0x48507fff7fFelt2528000 -> - Instruction { - off0: 0, - off1: -1, - off2: 1, - imm: Some(3), - dst_register: AP, - op0_register: AP, - op1_addr: Imm, - res: Mul, - pc_update: Regular, - ap_update: Add1, - fp_update: Regular, - opcode: AssertEq - } - - * Instruction H: 0x40780017fff7fff -> - Instruction { - off0: -1, - off1: -1, - off2: 1, - imm: Some(2), - dst_register: FP, - op0_register: FP, - op1_addr: Imm, - res: Op1, - pc_update: Regular, - ap_update: Add, - fp_update: Regular, - opcode: NOp - } - */ - - #[test] - fn assert_opcode_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(CairoOpcode::try_from(&value), Ok(CairoOpcode::AssertEq)); - } - - #[test] - fn call_opcode_flag_is_correct() { - // Instruction B - let value = Felt252::from(0x1104800180018000); - - assert_eq!(CairoOpcode::try_from(&value), Ok(CairoOpcode::Call)); - } - - #[test] - fn ret_opcode_flag_is_correct() { - // Instruction C - let value = Felt252::from(0x208b7fff7fff7ffe); - - assert_eq!(CairoOpcode::try_from(&value), Ok(CairoOpcode::Ret)); - } - - #[test] - fn nop_opcode_flag_is_correct() { - // Instruction D - let value = Felt252::from(0xa0680017fff7fff); - - assert_eq!(CairoOpcode::try_from(&value), Ok(CairoOpcode::NOp)); - } - - #[test] - fn regular_pc_update_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(PcUpdate::try_from(&value), Ok(PcUpdate::Regular)); - } - - #[test] - fn jump_pc_update_flag_is_correct() { - // Instruction C - let value = Felt252::from(0x208b7fff7fff7ffe); - - assert_eq!(PcUpdate::try_from(&value), Ok(PcUpdate::Jump)); - } - - #[test] - fn jumprel_pc_update_flag_is_correct() { - // Instruction B - let value = Felt252::from(0x1104800180018000); - - assert_eq!(PcUpdate::try_from(&value), Ok(PcUpdate::JumpRel)); - } - - #[test] - fn jnz_pc_update_flag_is_correct() { - // Instruction D - let value = Felt252::from(0xa0680017fff7fff); - - assert_eq!(PcUpdate::try_from(&value), Ok(PcUpdate::Jnz)); - } - - #[test] - fn regular_ap_update_flag_is_correct() { - // Instruction C - let value = Felt252::from(0x208b7fff7fff7ffe); - - assert_eq!(ApUpdate::try_from(&value), Ok(ApUpdate::Regular)); - } - - #[test] - fn add_ap_update_flag_is_correct() { - // Instruction H - let value = Felt252::from(0x40780017fff7fff); - - assert_eq!(ApUpdate::try_from(&value), Ok(ApUpdate::Add)); - } - - #[test] - fn add1_ap_update_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(ApUpdate::try_from(&value), Ok(ApUpdate::Add1)); - } - - #[test] - fn op1_res_logic_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(ResLogic::try_from(&value), Ok(ResLogic::Op1)); - } - - #[test] - fn add_res_logic_flag_is_correct() { - // Instruction E - let value = Felt252::from(0x48327ffc7ffa8000); - - assert_eq!(ResLogic::try_from(&value), Ok(ResLogic::Add)); - } - - #[test] - fn mul_res_logic_flag_is_correct() { - // Instruction G - let value = Felt252::from(0x48507fff7ffe8000); - - assert_eq!(ResLogic::try_from(&value), Ok(ResLogic::Mul)); - } - - #[test] - fn op0_op1_src_flag_is_correct() { - // Instruction F - let value = Felt252::from(0x4000800d7ff07fff); - - assert_eq!(Op1Src::try_from(&value), Ok(Op1Src::Op0)); - } - - #[test] - fn imm_op1_src_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(Op1Src::try_from(&value), Ok(Op1Src::Imm)); - } - - #[test] - fn ap_op1_src_flag_is_correct() { - // Instruction E - let value = Felt252::from(0x48327ffc7ffa8000); - - assert_eq!(Op1Src::try_from(&value), Ok(Op1Src::AP)); - } - - #[test] - fn fp_op1_src_flag_is_correct() { - // Instruction C - let value = Felt252::from(0x208b7fff7fff7ffe); - - assert_eq!(Op1Src::try_from(&value), Ok(Op1Src::FP)); - } - - #[test] - fn ap_op0_reg_flag_is_correct() { - // Instruction B - let value = Felt252::from(0x1104800180018000); - - assert_eq!(Op0Reg::try_from(&value), Ok(Op0Reg::AP)); - } - - #[test] - fn fp_op0_reg_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(Op0Reg::try_from(&value), Ok(Op0Reg::FP)); - } - - #[test] - fn ap_dst_reg_flag_is_correct() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - - assert_eq!(DstReg::try_from(&value), Ok(DstReg::AP)); - } - - #[test] - fn fp_dst_reg_flag_is_correct() { - // Instruction C - let value = Felt252::from(0x208b7fff7fff7ffe); - - assert_eq!(DstReg::try_from(&value), Ok(DstReg::FP)); - } - - #[test] - fn decoded_flags_of_assert_are_correct() { - let value = Felt252::from(0x400380837ffb8000); - let expected_flags = CairoInstructionFlags { - opcode: CairoOpcode::AssertEq, - pc_update: PcUpdate::Regular, - ap_update: ApUpdate::Regular, - op0_reg: Op0Reg::FP, - op1_src: Op1Src::Op0, - res_logic: ResLogic::Op1, - dst_reg: DstReg::FP, - }; - - let flags = CairoInstructionFlags::try_from(&value).unwrap(); - - assert_eq!(expected_flags, flags); - } - - #[test] - fn flags_bit_representation() { - // Bit-trace representation for each flag: - // DstReg::FP = 1 - // Op0Reg::FP = 1 - // Op1Src::Op0 = 0 0 0 - // ResLogic::Op1 = 0 0 - // PcUpdate::Regular = 0 0 0 - // ApUpdate::Regular = 0 0 - // CairoOpcode::AssertEq = 0 0 1 - - let flags = CairoInstructionFlags { - opcode: CairoOpcode::AssertEq, - pc_update: PcUpdate::Regular, - ap_update: ApUpdate::Regular, - op0_reg: Op0Reg::FP, - op1_src: Op1Src::Op0, - res_logic: ResLogic::Op1, - dst_reg: DstReg::FP, - }; - - #[rustfmt::skip] - let expected_representation = [ - Felt252::one(), - Felt252::one(), - Felt252::zero(), Felt252::zero(), Felt252::zero(), - Felt252::zero(), Felt252::zero(), - Felt252::zero(), Felt252::zero(), Felt252::zero(), - Felt252::zero(), Felt252::zero(), - Felt252::zero(), Felt252::zero(), Felt252::one(), - Felt252::zero(), - ]; - - let representation = flags.to_bit_representation(); - - assert_eq!(representation, expected_representation); - } - - #[test] - fn to_bit_prefixes_all_zeros_works() { - let bit_array = [Felt252::zero(); 16]; - - let result = to_bit_prefixes(bit_array); - let expected = [Felt252::zero(); 16]; - - assert_eq!(result, expected); - } - - #[test] - fn to_bit_prefixes_flag14_on_works() { - let mut bit_array = [Felt252::zero(); 16]; - // We turn on only the 14th bit, which is the most significant. - - bit_array[14] = Felt252::one(); - - let result = to_bit_prefixes(bit_array); - // The bit prefix value of f0 should be 16384, and the rest - // should be the bit prefixes of that number. - let expected: [Felt252; 16] = (0..16u32) - .map(|idx| { - if idx == 15 { - return Felt252::zero(); - } - Felt252::from(16384) / Felt252::from(2).pow(idx) - }) - .collect::>() - .try_into() - .unwrap(); - - assert_eq!(result, expected); - } -} diff --git a/provers/cairo/src/decode/instruction_offsets.rs b/provers/cairo/src/decode/instruction_offsets.rs deleted file mode 100644 index 09716045a..000000000 --- a/provers/cairo/src/decode/instruction_offsets.rs +++ /dev/null @@ -1,94 +0,0 @@ -use crate::Felt252; -use lambdaworks_math::field::{element::FieldElement, traits::IsField}; - -use super::instruction_flags::aux_get_last_nim_of_field_element; - -const OFF_DST_OFF: u32 = 0; -const OFF_OP0_OFF: u32 = 16; -const OFF_OP1_OFF: u32 = 32; -const OFFX_MASK: u64 = 0xFFFF; - -#[derive(Debug, PartialEq, Eq)] -pub struct InstructionOffsets { - pub off_dst: i32, - pub off_op0: i32, - pub off_op1: i32, -} - -impl InstructionOffsets { - pub fn new(mem_value: &Felt252) -> Self { - Self { - off_dst: Self::decode_offset(mem_value, OFF_DST_OFF), - off_op0: Self::decode_offset(mem_value, OFF_OP0_OFF), - off_op1: Self::decode_offset(mem_value, OFF_OP1_OFF), - } - } - - pub fn decode_offset(mem_value: &Felt252, instruction_offset: u32) -> i32 { - let offset = aux_get_last_nim_of_field_element(mem_value) >> instruction_offset & OFFX_MASK; - let vectorized_offset = offset.to_le_bytes(); - let aux = [ - vectorized_offset[0], - vectorized_offset[1].overflowing_sub(128).0, - ]; - i32::from(i16::from_le_bytes(aux)) - } - - pub fn to_trace_representation(&self) -> [FieldElement; 3] { - [ - to_unbiased_representation(self.off_dst), - to_unbiased_representation(self.off_op0), - to_unbiased_representation(self.off_op1), - ] - } -} - -/// Returns an unbiased representation of the number. This is applied to -/// instruction offsets as explained in section 9.4 of the Cairo whitepaper -/// to be in the range [0, 2^16). https://eprint.iacr.org/2021/1063.pdf -fn to_unbiased_representation(n: i32) -> FieldElement { - let b15 = 2u64.pow(15u32); - if n < 0 { - FieldElement::::from(b15 - n.unsigned_abs() as u64) - } else { - FieldElement::::from(n as u64 + b15) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn assert_opcode_flag_is_correct_1() { - // Instruction A - let value = Felt252::from(0x480680017fff8000); - let instruction_offsets = InstructionOffsets::new(&value); - - assert_eq!(instruction_offsets.off_dst, 0); - assert_eq!(instruction_offsets.off_op0, -1); - assert_eq!(instruction_offsets.off_op1, 1); - } - - #[test] - fn assert_opcode_flag_is_correct_2() { - // Instruction A - let value = Felt252::from(0x208b7fff7fff7ffe); - let instruction_offsets = InstructionOffsets::new(&value); - - assert_eq!(instruction_offsets.off_dst, -2); - assert_eq!(instruction_offsets.off_op0, -1); - assert_eq!(instruction_offsets.off_op1, -1); - } - - #[test] - fn assert_opcode_flag_is_correct_3() { - // Instruction A - let value = Felt252::from(0x48327ffc7ffa8000); - let instruction_offsets = InstructionOffsets::new(&value); - - assert_eq!(instruction_offsets.off_dst, 0); - assert_eq!(instruction_offsets.off_op0, -6); - assert_eq!(instruction_offsets.off_op1, -4); - } -} diff --git a/provers/cairo/src/decode/mod.rs b/provers/cairo/src/decode/mod.rs deleted file mode 100644 index 85d3adbaa..000000000 --- a/provers/cairo/src/decode/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod instruction_flags; -pub mod instruction_offsets; diff --git a/provers/cairo/src/errors.rs b/provers/cairo/src/errors.rs deleted file mode 100644 index 38d74937f..000000000 --- a/provers/cairo/src/errors.rs +++ /dev/null @@ -1,24 +0,0 @@ -#[derive(Debug)] -pub enum CairoImportError { - /// Bytes should be a multiple of 24 for trace or 40 for memory - IncorrectNumberOfBytes, - FileError(std::io::Error), -} - -impl From for CairoImportError { - fn from(err: std::io::Error) -> CairoImportError { - CairoImportError::FileError(err) - } -} - -#[derive(Debug, PartialEq)] -pub enum InstructionDecodingError { - InvalidOpcode, - InvalidPcUpdate, - InvalidApUpdate, - InvalidResLogic, - InvalidOp1Src, - InvalidOp0Reg, - InvalidDstReg, - InstructionNotFound, -} diff --git a/provers/cairo/src/execution_trace.rs b/provers/cairo/src/execution_trace.rs deleted file mode 100644 index eece1d28d..000000000 --- a/provers/cairo/src/execution_trace.rs +++ /dev/null @@ -1,750 +0,0 @@ -use super::{ - cairo_mem::CairoMemory, - decode::{ - instruction_flags::{ - aux_get_last_nim_of_field_element, ApUpdate, CairoInstructionFlags, CairoOpcode, - DstReg, Op0Reg, Op1Src, PcUpdate, ResLogic, - }, - instruction_offsets::InstructionOffsets, - }, - register_states::RegisterStates, -}; -use crate::air::{EXTRA_ADDR, RC_HOLES}; -use crate::{ - air::{ - PublicInputs, FRAME_DST_ADDR, FRAME_OP0_ADDR, FRAME_OP1_ADDR, FRAME_PC, OFF_DST, OFF_OP0, - OFF_OP1, - }, - Felt252, -}; -use cairo_vm::without_std::collections::HashMap; -use lambdaworks_math::{ - field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField, - unsigned_integer::element::UnsignedInteger, -}; -use stark_platinum_prover::trace::TraceTable; - -type CairoTraceTable = TraceTable; - -// MAIN TRACE LAYOUT -// ----------------------------------------------------------------------------------------- -// A. flags (16) : Decoded instruction flags -// B. res (1) : Res value -// C. mem_p (2) : Temporary memory pointers (ap and fp) -// D. mem_a (4) : Memory addresses (pc, dst_addr, op0_addr, op1_addr) -// E. mem_v (4) : Memory values (inst, dst, op0, op1) -// F. offsets (3) : (off_dst, off_op0, off_op1) -// G. derived (3) : (t0, t1, mul) -// -// A B C D E F G -// ├xxxxxxxxxxxxxxxx|x|xx|xxxx|xxxx|xxx|xxx┤ -// - -/// Builds the Cairo main trace (i.e. the trace without the auxiliary columns). -/// Builds the execution trace, fills the offset range-check holes and memory holes, adds -/// public memory dummy accesses (See section 9.8 of the Cairo whitepaper) and pads the result -/// so that it has a trace length equal to the closest power of two. -pub fn build_main_trace( - register_states: &RegisterStates, - memory: &CairoMemory, - public_input: &mut PublicInputs, -) -> CairoTraceTable { - let mut main_trace = build_cairo_execution_trace(register_states, memory); - - let mut address_cols = - main_trace.merge_columns(&[FRAME_PC, FRAME_DST_ADDR, FRAME_OP0_ADDR, FRAME_OP1_ADDR]); - - address_cols.sort_by_key(|x| x.representative()); - - let (rc_holes, rc_min, rc_max) = get_rc_holes(&main_trace, &[OFF_DST, OFF_OP0, OFF_OP1]); - - // this will avaluate to true if the public inputs weren't obtained from the run_program() function - if public_input.range_check_min.is_none() && public_input.range_check_max.is_none() { - public_input.range_check_min = Some(rc_min); - public_input.range_check_max = Some(rc_max); - } - fill_rc_holes(&mut main_trace, &rc_holes); - - let memory_holes = get_memory_holes(&address_cols, &public_input.public_memory); - - if !memory_holes.is_empty() { - fill_memory_holes(&mut main_trace, &memory_holes); - } - - add_pub_memory_dummy_accesses( - &mut main_trace, - public_input.public_memory.len(), - memory_holes.len(), - ); - - let trace_len_next_power_of_two = main_trace.n_rows().next_power_of_two(); - let padding_len = trace_len_next_power_of_two - main_trace.n_rows(); - main_trace.pad_with_last_row(padding_len); - - main_trace -} - -/// Artificial `(0, 0)` dummy memory accesses must be added for the public memory. -/// See section 9.8 of the Cairo whitepaper. -fn add_pub_memory_dummy_accesses( - main_trace: &mut CairoTraceTable, - pub_memory_len: usize, - last_memory_hole_idx: usize, -) { - for i in 0..pub_memory_len { - main_trace.set_or_extend(last_memory_hole_idx + i, EXTRA_ADDR, &Felt252::zero()); - } -} - -/// Gets holes from the range-checked columns. These holes must be filled for the -/// permutation range-checks, as can be read in section 9.9 of the Cairo whitepaper. -/// Receives the trace and the indexes of the range-checked columns. -/// Outputs the holes that must be filled to make the range continuous and the extreme -/// values rc_min and rc_max, corresponding to the minimum and maximum values of the range. -/// NOTE: These extreme values should be received as public inputs in the future and not -/// calculated here. -fn get_rc_holes(trace: &CairoTraceTable, columns_indices: &[usize]) -> (Vec, u16, u16) { - let offset_columns = trace.merge_columns(columns_indices); - - let mut sorted_offset_representatives: Vec = offset_columns - .iter() - .map(|x| x.representative().into()) - .collect(); - sorted_offset_representatives.sort(); - - let mut all_missing_values: Vec = Vec::new(); - - for window in sorted_offset_representatives.windows(2) { - if window[1] != window[0] { - let mut missing_range: Vec<_> = ((window[0] + 1)..window[1]) - .map(|x| Felt252::from(x as u64)) - .collect(); - all_missing_values.append(&mut missing_range); - } - } - - let multiple_of_three_padding = - ((all_missing_values.len() + 2) / 3) * 3 - all_missing_values.len(); - let padding_element = Felt252::from(*sorted_offset_representatives.last().unwrap() as u64); - all_missing_values.append(&mut vec![padding_element; multiple_of_three_padding]); - - ( - all_missing_values, - sorted_offset_representatives[0], - sorted_offset_representatives.last().cloned().unwrap(), - ) -} - -/// Fills holes found in the range-checked columns. -fn fill_rc_holes(trace: &mut CairoTraceTable, holes: &[Felt252]) { - holes.iter().enumerate().for_each(|(i, hole)| { - trace.set_or_extend(i, RC_HOLES, hole); - }); - - // Fill the rest of the RC_HOLES column to avoid inexistent zeros - let mut offsets = trace.merge_columns(&[OFF_DST, OFF_OP0, OFF_OP1, RC_HOLES]); - - offsets.sort_by_key(|x| x.representative()); - let greatest_offset = offsets.last().unwrap(); - (holes.len()..trace.n_rows()).for_each(|i| { - trace.set_or_extend(i, RC_HOLES, greatest_offset); - }); -} - -/// Get memory holes from accessed addresses. These memory holes appear -/// as a consequence of interaction with builtins. -/// Returns a vector of addresses that were not present in the input vector (holes) -/// -/// # Arguments -/// -/// * `sorted_addrs` - Vector of sorted memory addresses. -/// * `pub_memory` - The public memory of the executed program. -fn get_memory_holes( - sorted_addrs: &[Felt252], - pub_memory: &HashMap, -) -> Vec { - let mut memory_holes = Vec::new(); - let mut prev_addr = &sorted_addrs[0]; - - for addr in sorted_addrs.iter() { - let addr_diff = addr - prev_addr; - - // If the candidate memory hole has an address belonging to the program segment (public - // memory), that is not accounted here since public memory is added in a posterior step of - // the protocol. - if addr_diff != Felt252::one() && addr_diff != Felt252::zero() { - let mut hole_addr = prev_addr + Felt252::one(); - - while hole_addr.representative() < addr.representative() { - if !pub_memory.contains_key(&hole_addr) { - memory_holes.push(hole_addr); - } - hole_addr += Felt252::one(); - } - } - prev_addr = addr; - } - - memory_holes -} - -/// Fill memory holes in the extra address column of the trace with the missing addresses. -fn fill_memory_holes(trace: &mut CairoTraceTable, memory_holes: &[Felt252]) { - memory_holes.iter().enumerate().for_each(|(i, hole)| { - trace.set_or_extend(i, EXTRA_ADDR, hole); - }); -} - -/// Receives the raw Cairo trace and memory as outputted from the Cairo VM and returns -/// the trace table used to Felt252ed the Cairo STARK prover. -/// The constraints of the Cairo AIR are defined over this trace rather than the raw trace -/// obtained from the Cairo VM, this is why this function is needed. -pub fn build_cairo_execution_trace( - register_states: &RegisterStates, - memory: &CairoMemory, -) -> CairoTraceTable { - let n_steps = register_states.steps(); - - // Instruction flags and offsets are decoded from the raw instructions and represented - // by the CairoInstructionFlags and InstructionOffsets as an intermediate representation - let (flags, offsets): (Vec, Vec) = register_states - .flags_and_offsets(memory) - .unwrap() - .into_iter() - .unzip(); - - // dst, op0, op1 and res are computed from flags and offsets - let (dst_addrs, mut dsts): (Vec, Vec) = - compute_dst(&flags, &offsets, register_states, memory); - let (op0_addrs, mut op0s): (Vec, Vec) = - compute_op0(&flags, &offsets, register_states, memory); - let (op1_addrs, op1s): (Vec, Vec) = - compute_op1(&flags, &offsets, register_states, memory, &op0s); - let mut res = compute_res(&flags, &op0s, &op1s, &dsts); - - // In some cases op0, dst or res may need to be updated from the already calculated values - update_values(&flags, register_states, &mut op0s, &mut dsts, &mut res); - - // Flags and offsets are transformed to a bit representation. This is needed since - // the flag constraints of the Cairo AIR are defined over bit representations of these - let trace_repr_flags: Vec<[Felt252; 16]> = flags - .iter() - .map(CairoInstructionFlags::to_trace_representation) - .collect(); - let trace_repr_offsets: Vec<[Felt252; 3]> = offsets - .iter() - .map(InstructionOffsets::to_trace_representation) - .collect(); - - // ap, fp, pc and instruction columns are computed - let aps: Vec = register_states - .rows - .iter() - .map(|t| Felt252::from(t.ap)) - .collect(); - let fps: Vec = register_states - .rows - .iter() - .map(|t| Felt252::from(t.fp)) - .collect(); - let pcs: Vec = register_states - .rows - .iter() - .map(|t| Felt252::from(t.pc)) - .collect(); - let instructions: Vec = register_states - .rows - .iter() - .map(|t| *memory.get(&t.pc).unwrap()) - .collect(); - - // t0, t1 and mul derived values are constructed. For details reFelt252r to - // section 9.1 of the Cairo whitepaper - let two = Felt252::from(2); - let t0: Vec = trace_repr_flags - .iter() - .zip(&dsts) - .map(|(repr_flags, dst)| (repr_flags[9] - two * repr_flags[10]) * dst) - .collect(); - let t1: Vec = t0.iter().zip(&res).map(|(t, r)| t * r).collect(); - let mul: Vec = op0s.iter().zip(&op1s).map(|(op0, op1)| op0 * op1).collect(); - - // A structure change of the flags and offsets representations to fit into the arguments - // expected by the TraceTable constructor. A vector of columns of the representations - // is obtained from the rows representation. - let trace_repr_flags = rows_to_cols(&trace_repr_flags); - let trace_repr_offsets = rows_to_cols(&trace_repr_offsets); - - let extra_addrs = vec![Felt252::zero(); n_steps]; - let extra_vals = extra_addrs.clone(); - let rc_holes = extra_addrs.clone(); - - // Build Cairo trace columns to instantiate TraceTable struct as defined in the trace layout - let mut trace_cols: Vec> = Vec::new(); - (0..trace_repr_flags.len()).for_each(|n| trace_cols.push(trace_repr_flags[n].clone())); - trace_cols.push(res); - trace_cols.push(aps); - trace_cols.push(fps); - trace_cols.push(pcs); - trace_cols.push(dst_addrs); - trace_cols.push(op0_addrs); - trace_cols.push(op1_addrs); - trace_cols.push(instructions); - trace_cols.push(dsts); - trace_cols.push(op0s); - trace_cols.push(op1s); - (0..trace_repr_offsets.len()).for_each(|n| trace_cols.push(trace_repr_offsets[n].clone())); - trace_cols.push(t0); - trace_cols.push(t1); - trace_cols.push(mul); - trace_cols.push(extra_addrs); - trace_cols.push(extra_vals); - trace_cols.push(rc_holes); - - TraceTable::from_columns_main(trace_cols, 1) -} - -/// Returns the vector of res values. -fn compute_res( - flags: &[CairoInstructionFlags], - op0s: &[Felt252], - op1s: &[Felt252], - dsts: &[Felt252], -) -> Vec { - /* - Cairo whitepaper, page 33 - https://eprint.iacr.org/2021/1063.pdf - # Compute res. - if pc_update == 4: - if res_logic == 0 && opcode == 0 && ap_update != 1: - res = Unused - else: - Undefined Behavior - else if pc_update = 0, 1 or 2: - switch res_logic: - case 0: res = op1 - case 1: res = op0 + op1 - case 2: res = op0 * op1 - default: Undefined Behavior - else: Undefined Behavior - */ - flags - .iter() - .zip(op0s) - .zip(op1s) - .zip(dsts) - .map(|(((f, op0), op1), dst)| { - match f.pc_update { - PcUpdate::Jnz => { - match (&f.res_logic, &f.opcode, &f.ap_update) { - ( - ResLogic::Op1, - CairoOpcode::NOp, - ApUpdate::Regular | ApUpdate::Add1 | ApUpdate::Add2, - ) => { - // In a `jnz` instruction, res is not used, so it is used - // to hold the value v = dst^(-1) as an optimization. - // This is important for the calculation of the `t1` virtual column - // values later on. - // See section 9.5 of the Cairo whitepaper, page 53. - if dst == &Felt252::zero() { - *dst - } else { - dst.inv().unwrap() - } - } - _ => { - panic!("Undefined Behavior"); - } - } - } - PcUpdate::Regular | PcUpdate::Jump | PcUpdate::JumpRel => match f.res_logic { - ResLogic::Op1 => *op1, - ResLogic::Add => op0 + op1, - ResLogic::Mul => op0 * op1, - ResLogic::Unconstrained => { - panic!("Undefined Behavior"); - } - }, - } - }) - .collect() -} - -/// Returns the vector of: -/// - dst_addrs -/// - dsts -fn compute_dst( - flags: &[CairoInstructionFlags], - offsets: &[InstructionOffsets], - register_states: &RegisterStates, - memory: &CairoMemory, -) -> (Vec, Vec) { - /* Cairo whitepaper, page 33 - https://eprint.iacr.org/2021/1063.pdf - - # Compute dst - if dst_reg == 0: - dst = m(ap + offdst) - else: - dst = m(fp + offdst) - */ - flags - .iter() - .zip(offsets) - .zip(register_states.rows.iter()) - .map(|((f, o), t)| match f.dst_reg { - DstReg::AP => { - let addr = t.ap.checked_add_signed(o.off_dst.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - DstReg::FP => { - let addr = t.fp.checked_add_signed(o.off_dst.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - }) - .unzip() -} - -/// Returns the vector of: -/// - op0_addrs -/// - op0s -fn compute_op0( - flags: &[CairoInstructionFlags], - offsets: &[InstructionOffsets], - register_states: &RegisterStates, - memory: &CairoMemory, -) -> (Vec, Vec) { - /* Cairo whitepaper, page 33 - https://eprint.iacr.org/2021/1063.pdf - - # Compute op0. - if op0_reg == 0: - op0 = m(ap + offop0) - else: - op0 = m(fp + offop0) - */ - flags - .iter() - .zip(offsets) - .zip(register_states.rows.iter()) - .map(|((f, o), t)| match f.op0_reg { - Op0Reg::AP => { - let addr = t.ap.checked_add_signed(o.off_op0.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - Op0Reg::FP => { - let addr = t.fp.checked_add_signed(o.off_op0.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - }) - .unzip() -} - -/// Returns the vector of: -/// - op1_addrs -/// - op1s -fn compute_op1( - flags: &[CairoInstructionFlags], - offsets: &[InstructionOffsets], - register_states: &RegisterStates, - memory: &CairoMemory, - op0s: &[Felt252], -) -> (Vec, Vec) { - /* Cairo whitepaper, page 33 - https://eprint.iacr.org/2021/1063.pdf - # Compute op1 and instruction_size. - switch op1_src: - case 0: - instruction_size = 1 - op1 = m(op0 + offop1) - case 1: - instruction_size = 2 - op1 = m(pc + offop1) - # If offop1 = 1, we have op1 = immediate_value. - case 2: - instruction_size = 1 - op1 = m(fp + offop1) - case 4: - instruction_size = 1 - op1 = m(ap + offop1) - default: - Undefined Behavior - */ - flags - .iter() - .zip(offsets) - .zip(op0s) - .zip(register_states.rows.iter()) - .map(|(((flag, offset), op0), trace_state)| match flag.op1_src { - Op1Src::Op0 => { - let addr = aux_get_last_nim_of_field_element(op0) - .checked_add_signed(offset.off_op1.into()) - .unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - Op1Src::Imm => { - let pc = trace_state.pc; - let addr = pc.checked_add_signed(offset.off_op1.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - Op1Src::AP => { - let ap = trace_state.ap; - let addr = ap.checked_add_signed(offset.off_op1.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - Op1Src::FP => { - let fp = trace_state.fp; - let addr = fp.checked_add_signed(offset.off_op1.into()).unwrap(); - (Felt252::from(addr), *memory.get(&addr).unwrap()) - } - }) - .unzip() -} - -/// Depending on the instruction opcodes, some values should be updated. -/// This function updates op0s, dst, res in place when the conditions hold. -fn update_values( - flags: &[CairoInstructionFlags], - register_states: &RegisterStates, - op0s: &mut [Felt252], - dst: &mut [Felt252], - res: &mut [Felt252], -) { - for (i, f) in flags.iter().enumerate() { - if f.opcode == CairoOpcode::Call { - let instruction_size = if flags[i].op1_src == Op1Src::Imm { - 2 - } else { - 1 - }; - op0s[i] = (register_states.rows[i].pc + instruction_size).into(); - dst[i] = register_states.rows[i].fp.into(); - } else if f.opcode == CairoOpcode::AssertEq { - res[i] = dst[i]; - } - } -} - -/// Utility function to change from a rows representation to a columns -/// representation of a slice of arrays. -fn rows_to_cols(rows: &[[Felt252; N]]) -> Vec> { - let n_cols = rows[0].len(); - - (0..n_cols) - .map(|col_idx| { - rows.iter() - .map(|elem| elem[col_idx]) - .collect::>() - }) - .collect::>>() -} - -// NOTE: Leaving this function despite not being used anywhere. It could be useful once -// we implement layouts with the range-check builtin. -#[allow(dead_code)] -fn decompose_rc_values_into_trace_columns(rc_values: &[&Felt252]) -> [Vec; 8] { - let mask = UnsignedInteger::from_hex("FFFF").unwrap(); - let mut rc_base_types: Vec> = - rc_values.iter().map(|x| x.representative()).collect(); - - let mut decomposition_columns: Vec> = Vec::new(); - - for _ in 0..8 { - decomposition_columns.push( - rc_base_types - .iter() - .map(|&x| Felt252::from(&(x & mask))) - .collect(), - ); - - rc_base_types = rc_base_types.iter().map(|&x| x >> 16).collect(); - } - - // This can't fail since we have 8 pushes - decomposition_columns.try_into().unwrap() -} - -#[cfg(test)] -mod test { - use crate::air::EXTRA_VAL; - - use super::*; - use lambdaworks_math::field::element::FieldElement; - use stark_platinum_prover::table::Table; - - #[test] - fn test_rc_decompose() { - let fifteen = Felt252::from_hex("000F000F000F000F000F000F000F000F").unwrap(); - let sixteen = Felt252::from_hex("00100010001000100010001000100010").unwrap(); - let one_two_three = Felt252::from_hex("00010002000300040005000600070008").unwrap(); - - let decomposition_columns = - decompose_rc_values_into_trace_columns(&[&fifteen, &sixteen, &one_two_three]); - - for row in &decomposition_columns { - assert_eq!(row[0], Felt252::from_hex("F").unwrap()); - assert_eq!(row[1], Felt252::from_hex("10").unwrap()); - } - - assert_eq!(decomposition_columns[0][2], Felt252::from_hex("8").unwrap()); - assert_eq!(decomposition_columns[1][2], Felt252::from_hex("7").unwrap()); - assert_eq!(decomposition_columns[2][2], Felt252::from_hex("6").unwrap()); - assert_eq!(decomposition_columns[3][2], Felt252::from_hex("5").unwrap()); - assert_eq!(decomposition_columns[4][2], Felt252::from_hex("4").unwrap()); - assert_eq!(decomposition_columns[5][2], Felt252::from_hex("3").unwrap()); - assert_eq!(decomposition_columns[6][2], Felt252::from_hex("2").unwrap()); - assert_eq!(decomposition_columns[7][2], Felt252::from_hex("1").unwrap()); - } - - #[test] - fn test_fill_range_check_values() { - let columns = vec![ - vec![FieldElement::from(1); 3], - vec![FieldElement::from(4); 3], - vec![FieldElement::from(7); 3], - ]; - let expected_col = vec![ - FieldElement::from(2), - FieldElement::from(3), - FieldElement::from(5), - FieldElement::from(6), - FieldElement::from(7), - FieldElement::from(7), - ]; - let table = TraceTable::::from_columns(columns, 3, 1); - - let (col, rc_min, rc_max) = get_rc_holes(&table, &[0, 1, 2]); - assert_eq!(col, expected_col); - assert_eq!(rc_min, 1); - assert_eq!(rc_max, 7); - } - - #[test] - fn test_add_missing_values_to_rc_holes_column() { - let mut row = vec![Felt252::from(5); 36]; - row[35] = Felt252::zero(); - let data = row.repeat(8); - let table = Table::new(data, 36); - - let mut main_trace = TraceTable:: { - table, - num_main_columns: 36, - num_aux_columns: 23, - step_size: 1, - }; - - let rc_holes = vec![ - Felt252::from(1), - Felt252::from(2), - Felt252::from(3), - Felt252::from(4), - Felt252::from(5), - Felt252::from(6), - ]; - - fill_rc_holes(&mut main_trace, &rc_holes); - - let expected_rc_holes_column = vec![ - Felt252::from(1), - Felt252::from(2), - Felt252::from(3), - Felt252::from(4), - Felt252::from(5), - Felt252::from(6), - Felt252::from(6), - Felt252::from(6), - ]; - - let rc_holes_column = main_trace.columns()[35].clone(); - - assert_eq!(expected_rc_holes_column, rc_holes_column); - } - - #[test] - fn test_get_memory_holes_empty_pub_memory() { - // We construct a sorted addresses list [1, 2, 3, 6, 7, 8, 9, 13, 14, 15], and - // an empty public memory. This way, any holes present between - // the min and max addresses should be returned by the function. - let mut addrs: Vec = (1..4).map(Felt252::from).collect(); - let addrs_extension: Vec = (6..10).map(Felt252::from).collect(); - addrs.extend_from_slice(&addrs_extension); - let addrs_extension: Vec = (13..16).map(Felt252::from).collect(); - addrs.extend_from_slice(&addrs_extension); - let pub_memory = HashMap::new(); - - let expected_memory_holes = vec![ - Felt252::from(4), - Felt252::from(5), - Felt252::from(10), - Felt252::from(11), - Felt252::from(12), - ]; - let calculated_memory_holes = get_memory_holes(&addrs, &pub_memory); - - assert_eq!(expected_memory_holes, calculated_memory_holes); - } - - #[test] - fn test_get_memory_holes_inside_program_section() { - // We construct a sorted addresses list [1, 2, 3, 8, 9] and we - // set public memory from address 1 to 9. Since all the holes will be inside the - // program segment (meaning from addresses 1 to 9), the function - // should not return any of them. - let mut addrs: Vec = (1..4).map(Felt252::from).collect(); - let addrs_extension: Vec = (8..10).map(Felt252::from).collect(); - addrs.extend_from_slice(&addrs_extension); - - let mut pub_memory = HashMap::new(); - (1..=9).for_each(|k| { - let addr = Felt252::from(k); - pub_memory.insert(addr, addr * Felt252::from(2)); - }); - - let calculated_memory_holes = get_memory_holes(&addrs, &pub_memory); - let expected_memory_holes: Vec = Vec::new(); - - assert_eq!(expected_memory_holes, calculated_memory_holes); - } - - #[test] - fn test_get_memory_holes_outside_program_section() { - // We construct a sorted addresses list [1, 2, 3, 8, 9] and we - // set public memory from addresses 1 to 6. The holes found inside the program section, - // i.e. in the address range between 1 to 6, should not be returned. - // So addresses 4, 5 and 6 will no be returned, only address 7. - let mut addrs: Vec = (1..4).map(Felt252::from).collect(); - let addrs_extension: Vec = (8..10).map(Felt252::from).collect(); - addrs.extend_from_slice(&addrs_extension); - - let mut pub_memory = HashMap::new(); - (1..=6).for_each(|k| { - let addr = Felt252::from(k); - pub_memory.insert(addr, addr * Felt252::from(2)); - }); - - let calculated_memory_holes = get_memory_holes(&addrs, &pub_memory); - let expected_memory_holes = vec![Felt252::from(7)]; - - assert_eq!(expected_memory_holes, calculated_memory_holes); - } - - #[test] - fn test_fill_memory_holes() { - const TRACE_COL_LEN: usize = 2; - const NUM_TRACE_COLS: usize = EXTRA_VAL + 1; - - let mut trace_cols = vec![vec![Felt252::zero(); TRACE_COL_LEN]; NUM_TRACE_COLS]; - trace_cols[FRAME_PC][0] = Felt252::one(); - trace_cols[FRAME_DST_ADDR][0] = Felt252::from(2); - trace_cols[FRAME_OP0_ADDR][0] = Felt252::from(3); - trace_cols[FRAME_OP1_ADDR][0] = Felt252::from(5); - trace_cols[FRAME_PC][1] = Felt252::from(6); - trace_cols[FRAME_DST_ADDR][1] = Felt252::from(9); - trace_cols[FRAME_OP0_ADDR][1] = Felt252::from(10); - trace_cols[FRAME_OP1_ADDR][1] = Felt252::from(11); - let mut trace = TraceTable::from_columns(trace_cols, 2, 1); - - let memory_holes = vec![Felt252::from(4), Felt252::from(7), Felt252::from(8)]; - fill_memory_holes(&mut trace, &memory_holes); - - let extra_addr = &trace.columns()[EXTRA_ADDR]; - assert_eq!(extra_addr, &memory_holes); - } -} diff --git a/provers/cairo/src/lib.rs b/provers/cairo/src/lib.rs deleted file mode 100644 index 54384a63c..000000000 --- a/provers/cairo/src/lib.rs +++ /dev/null @@ -1,22 +0,0 @@ -use lambdaworks_math::field::{ - element::FieldElement, fields::fft_friendly::stark_252_prime_field::Stark252PrimeField, -}; - -pub mod air; -pub mod cairo_layout; -pub mod cairo_mem; -pub mod decode; -pub mod errors; -pub mod execution_trace; -pub mod register_states; -pub mod runner; -pub mod transition_constraints; - -#[cfg(test)] -pub mod tests; - -#[cfg(feature = "wasm")] -pub mod wasm_wrappers; - -pub type PrimeField = Stark252PrimeField; -pub type Felt252 = FieldElement; diff --git a/provers/cairo/src/main.rs b/provers/cairo/src/main.rs deleted file mode 100644 index b64a51f26..000000000 --- a/provers/cairo/src/main.rs +++ /dev/null @@ -1,350 +0,0 @@ -use cairo_platinum_prover::air::{generate_cairo_proof, verify_cairo_proof, PublicInputs}; -use cairo_platinum_prover::cairo_layout::CairoLayout; -use cairo_platinum_prover::runner::run::generate_prover_args; -use cairo_platinum_prover::runner::run::generate_prover_args_from_trace; -use lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField; -use stark_platinum_prover::proof::options::{ProofOptions, SecurityLevel}; -use stark_platinum_prover::proof::stark::StarkProof; -mod commands; -use clap::Parser; - -use std::env; -use std::fs::File; -use std::io::{Error, ErrorKind}; -use std::process::{Command, Stdio}; -use std::time::Instant; - -/// Get current directory and return it as a String -fn get_root_dir() -> Result { - let path_buf = env::current_dir()?.canonicalize()?; - if let Some(path) = path_buf.to_str() { - return Ok(path.to_string()); - } - - Err(Error::new(ErrorKind::NotFound, "not found")) -} - -/// Attemps to compile the Cairo program with `cairo-compile` -/// and then save it to the desired path. -/// Returns `Ok` on success else returns `Error` -fn cairo_compile(program_path: &String, out_file_path: &String) -> Result<(), Error> { - let out_file = File::create(out_file_path)?; - - match Command::new("cairo-compile") - .arg("--proof_mode") - .arg(program_path) - .stderr(Stdio::null()) - .stdout(out_file) - .spawn() - { - Ok(mut child) => { - // wait for spawned proccess to finish - match child.wait() { - Ok(_) => Ok(()), - Err(err) => Err(err), - } - } - Err(err) => Err(err), - } -} - -/// Attemps to compile the Cairo program with `docker` -/// and then save it to the desired path. -/// Returns `Ok` on success else returns `Error` -fn docker_compile(program_path: &String, out_file_path: &String) -> Result<(), Error> { - let out_file = File::create(out_file_path)?; - let root_dir = get_root_dir()?; - match Command::new("docker") - .arg("run") - .arg("--rm") - .arg("-v") - .arg(format!("{}/:/pwd", root_dir)) - .arg("cairo") - .arg("--proof_mode") - .arg(format!("/pwd/{}", program_path)) - .stderr(Stdio::null()) - .stdout(out_file) - .spawn() - { - Ok(mut child) => { - // wait for spawned proccess to finish - match child.wait() { - Ok(status) => match status.code() { - Some(0) => Ok(()), // exit success - _ => Err(Error::new( - ErrorKind::Other, - "File provided is not a Cairo uncompiled", - )), - }, - Err(err) => Err(err), - } - } - Err(err) => Err(err), - } -} - -/// Attemps to compile the Cairo program -/// with either `cairo-compile` or `docker`` -fn try_compile(program_path: &String, out_file_path: &String) -> Result<(), Error> { - if !program_path.contains(".cairo") { - return Err(Error::new( - ErrorKind::Other, - "Provided file is not a Cairo source file", - )); - } - - if cairo_compile(program_path, out_file_path).is_ok() - || docker_compile(program_path, out_file_path).is_ok() - { - Ok(()) - } else { - Err(Error::new( - ErrorKind::Other, - "Failed to compile cairo program, neither cairo-compile nor docker found", - )) - } -} - -fn generate_proof( - input_path: &String, - proof_options: &ProofOptions, -) -> Option<( - StarkProof, - PublicInputs, -)> { - let timer = Instant::now(); - - let Ok(program_content) = std::fs::read(input_path) else { - eprintln!("Error opening {input_path} file"); - return None; - }; - - // FIXME: We should set this through the CLI in the future - let layout = CairoLayout::Plain; - - let Ok((main_trace, pub_inputs)) = generate_prover_args(&program_content, layout) else { - eprintln!("Error generating prover args"); - return None; - }; - - println!(" Time spent: {:?} \n", timer.elapsed()); - - let timer = Instant::now(); - println!("Making proof ..."); - let proof = match generate_cairo_proof(&main_trace, &pub_inputs, proof_options) { - Ok(p) => p, - Err(err) => { - eprintln!("Error generating proof: {:?}", err); - return None; - } - }; - - println!(" Time spent in proving: {:?} \n", timer.elapsed()); - - Some((proof, pub_inputs)) -} - -fn generate_proof_from_trace( - trace_bin_path: &str, - memory_bin_path: &str, - proof_options: &ProofOptions, -) -> Option<( - StarkProof, - PublicInputs, -)> { - // ## Generating the prover args - let timer = Instant::now(); - let Ok((main_trace, pub_inputs)) = - generate_prover_args_from_trace(trace_bin_path, memory_bin_path) - else { - eprintln!("Error generating prover args"); - return None; - }; - println!(" Time spent: {:?} \n", timer.elapsed()); - - // ## Prove - let timer = Instant::now(); - println!("Making proof ..."); - let proof = match generate_cairo_proof(&main_trace, &pub_inputs, proof_options) { - Ok(p) => p, - Err(err) => { - eprintln!("Error generating proof: {:?}", err); - return None; - } - }; - println!(" Time spent in proving: {:?} \n", timer.elapsed()); - - Some((proof, pub_inputs)) -} - -fn verify_proof( - proof: StarkProof, - pub_inputs: PublicInputs, - proof_options: &ProofOptions, -) -> bool { - let timer = Instant::now(); - - println!("Verifying ..."); - let proof_verified = verify_cairo_proof(&proof, &pub_inputs, proof_options); - println!(" Time spent in verifying: {:?} \n", timer.elapsed()); - - if proof_verified { - println!("Verification succeeded"); - } else { - println!("Verification failed"); - } - - proof_verified -} - -fn write_proof( - proof: StarkProof, - pub_inputs: PublicInputs, - proof_path: String, -) { - let mut bytes = vec![]; - let proof_bytes: Vec = - bincode::serde::encode_to_vec(proof, bincode::config::standard()).unwrap(); - - let pub_inputs_bytes: Vec = - bincode::serde::encode_to_vec(&pub_inputs, bincode::config::standard()).unwrap(); - - // This should be reworked - // Public inputs shouldn't be stored in the proof if the verifier wants to check them - - // An u32 is enough for storing proofs up to 32 GiB - // They shouldn't exceed the order of kbs - // Reading an usize leads to problem in WASM (32 bit vs 64 bit architecture) - - bytes.extend((proof_bytes.len() as u32).to_le_bytes()); - bytes.extend(proof_bytes); - bytes.extend(pub_inputs_bytes); - - let Ok(()) = std::fs::write(&proof_path, bytes) else { - eprintln!("Error writing proof to file: {}", &proof_path); - return; - }; - - println!("Proof written to {}", &proof_path); -} - -fn main() { - let proof_options = ProofOptions::new_secure(SecurityLevel::Conjecturable100Bits, 3); - let args: commands::ProverArgs = commands::ProverArgs::parse(); - match args.entity { - commands::ProverEntity::Compile(args) => { - let out_file_path = args.program_path.replace(".cairo", ".json"); - if let Err(err) = try_compile(&args.program_path, &out_file_path) { - eprintln!("{}", err); - } else { - println!("Compiled cairo program"); - } - } - commands::ProverEntity::RunAndProve(args) => { - // verify input file is .cairo - if args.program_path.contains(".cairo") { - eprintln!("\nYou are trying to prove a non compiled Cairo program. Please compile it before sending it to the prover.\n"); - return; - } - - let Some((proof, pub_inputs)) = generate_proof(&args.program_path, &proof_options) - else { - return; - }; - - write_proof(proof, pub_inputs, args.proof_path); - } - commands::ProverEntity::Prove(args) => { - let Some((proof, pub_inputs)) = generate_proof_from_trace( - &args.trace_bin_path, - &args.memory_bin_path, - &proof_options, - ) else { - return; - }; - - write_proof(proof, pub_inputs, args.proof_path); - } - commands::ProverEntity::Verify(args) => { - let Ok(program_content) = std::fs::read(&args.proof_path) else { - eprintln!("Error opening {} file", args.proof_path); - return; - }; - let mut bytes = program_content.as_slice(); - if bytes.len() < 8 { - eprintln!("Error reading proof from file: {}", args.proof_path); - return; - } - - // Proof len was stored as an u32, 4u8 needs to be read - let proof_len = u32::from_le_bytes(bytes[0..4].try_into().unwrap()) as usize; - - bytes = &bytes[4..]; - if bytes.len() < proof_len { - eprintln!("Error reading proof from file: {}", args.proof_path); - return; - } - - let Ok((proof, _)) = bincode::serde::decode_from_slice( - &bytes[0..proof_len], - bincode::config::standard(), - ) else { - println!("Error reading proof from file: {}", args.proof_path); - return; - }; - bytes = &bytes[proof_len..]; - - let Ok((pub_inputs, _)) = - bincode::serde::decode_from_slice(bytes, bincode::config::standard()) - else { - println!("Error reading proof from file: {}", args.proof_path); - return; - }; - - verify_proof(proof, pub_inputs, &proof_options); - } - commands::ProverEntity::ProveAndVerify(args) => { - if args.program_path.contains(".cairo") { - eprintln!("\nYou are trying to prove a non compiled Cairo program. Please compile it before sending it to the prover.\n"); - return; - } - - let Some((proof, pub_inputs)) = generate_proof(&args.program_path, &proof_options) - else { - return; - }; - verify_proof(proof, pub_inputs, &proof_options); - } - commands::ProverEntity::CompileAndProve(args) => { - let out_file_path = args.program_path.replace(".cairo", ".json"); - match try_compile(&args.program_path, &out_file_path) { - Ok(_) => { - let Some((proof, pub_inputs)) = generate_proof(&out_file_path, &proof_options) - else { - return; - }; - - write_proof(proof, pub_inputs, args.proof_path); - } - Err(err) => { - eprintln!("{}", err) - } - } - } - commands::ProverEntity::CompileProveAndVerify(args) => { - let out_file_path = args.program_path.replace(".cairo", ".json"); - match try_compile(&args.program_path, &out_file_path) { - Ok(_) => { - let Some((proof, pub_inputs)) = generate_proof(&out_file_path, &proof_options) - else { - return; - }; - verify_proof(proof, pub_inputs, &proof_options); - } - Err(err) => { - eprintln!("{}", err) - } - } - } - } -} diff --git a/provers/cairo/src/register_states.rs b/provers/cairo/src/register_states.rs deleted file mode 100644 index a63afcbdf..000000000 --- a/provers/cairo/src/register_states.rs +++ /dev/null @@ -1,259 +0,0 @@ -use super::{ - cairo_mem::CairoMemory, - decode::{instruction_flags::CairoInstructionFlags, instruction_offsets::InstructionOffsets}, - errors::{CairoImportError, InstructionDecodingError}, -}; -use std::fs; - -#[derive(PartialEq, Clone, Debug)] -pub struct RegistersState { - pub pc: u64, - pub fp: u64, - pub ap: u64, -} - -impl RegistersState { - fn instruction_flags_and_offsets( - &self, - memory: &CairoMemory, - ) -> Result<(CairoInstructionFlags, InstructionOffsets), InstructionDecodingError> { - let instruction = memory - .get(&self.pc) - .ok_or(InstructionDecodingError::InstructionNotFound)?; - - let flags = CairoInstructionFlags::try_from(instruction)?; - let offsets = InstructionOffsets::new(instruction); - - Ok((flags, offsets)) - } -} - -#[derive(PartialEq, Clone, Debug)] -pub struct RegisterStates { - pub rows: Vec, -} - -impl RegisterStates { - pub fn steps(&self) -> usize { - self.rows.len() - } - - pub fn flags_and_offsets( - &self, - memory: &CairoMemory, - ) -> Result, InstructionDecodingError> { - self.rows - .iter() - .map(|state| state.instruction_flags_and_offsets(memory)) - .collect() - } - - pub fn from_bytes_le(bytes: &[u8]) -> Result { - // Each row of the trace is a RegisterState - // ap, fp, pc, each 8 bytes long (u64) - const ROW_SIZE: usize = 8 * 3; - - if bytes.len() % ROW_SIZE != 0 { - return Err(CairoImportError::IncorrectNumberOfBytes); - } - let num_rows = bytes.len() / ROW_SIZE; - - let rows = (0..num_rows) - .map(|i| RegistersState { - ap: u64::from_le_bytes(bytes[i * ROW_SIZE..i * ROW_SIZE + 8].try_into().unwrap()), - fp: u64::from_le_bytes( - bytes[i * ROW_SIZE + 8..i * ROW_SIZE + 16] - .try_into() - .unwrap(), - ), - pc: u64::from_le_bytes( - bytes[i * ROW_SIZE + 16..i * 24 + ROW_SIZE] - .try_into() - .unwrap(), - ), - }) - .collect::>(); - - Ok(Self { rows }) - } - - pub fn from_file(path: &str) -> Result { - let data = fs::read(path)?; - Self::from_bytes_le(&data) - } -} - -#[cfg(test)] -mod tests { - - use crate::{ - decode::instruction_flags::{ - ApUpdate, CairoOpcode, DstReg, Op0Reg, Op1Src, PcUpdate, ResLogic, - }, - Felt252, - }; - - use super::*; - use std::collections::HashMap; - - #[test] - fn mul_program_gives_expected_trace() { - /* - Hex from the trace of the following cairo program - - func main() { - let x = 2; - let y = 3; - assert x * y = 6; - return(); - } - - Generated with: - - cairo-compile multiply.cairo --output multiply.out - - cairo-run --layout all --trace_file trace.out --memory_file mem.out --program multiply.out - - xxd -p trace.out - */ - - let bytes = hex::decode("080000000000000008000000000000000100000000000000090000000000000008000000000000000300000000000000090000000000000008000000000000000500000000000000").unwrap(); - - let register_states = RegisterStates::from_bytes_le(&bytes); - - let expected_state0 = RegistersState { - ap: 8, - fp: 8, - pc: 1, - }; - - let expected_state1 = RegistersState { - ap: 9, - fp: 8, - pc: 3, - }; - - let expected_state2 = RegistersState { - ap: 9, - fp: 8, - pc: 5, - }; - - let expected_reg_states = RegisterStates { - rows: [expected_state0, expected_state1, expected_state2].to_vec(), - }; - - assert_eq!(register_states.unwrap(), expected_reg_states) - } - - #[test] - fn wrong_amount_of_bytes_gives_err() { - let bytes = hex::decode("080000000000").unwrap(); - - match RegisterStates::from_bytes_le(&bytes) { - Err(CairoImportError::IncorrectNumberOfBytes) => (), - Err(_) => panic!(), - Ok(_) => panic!(), - } - } - - #[test] - fn loads_mul_trace_from_file_correctly() { - let base_dir = env!("CARGO_MANIFEST_DIR"); - - dbg!(base_dir); - let dir = base_dir.to_owned() + "/src/tests/data/mul_trace.out"; - - let register_states = RegisterStates::from_file(&dir).unwrap(); - - let expected_state0 = RegistersState { - ap: 8, - fp: 8, - pc: 1, - }; - - let expected_state1 = RegistersState { - ap: 9, - fp: 8, - pc: 3, - }; - - let expected_state2 = RegistersState { - ap: 9, - fp: 8, - pc: 5, - }; - - let expected_reg_states = RegisterStates { - rows: [expected_state0, expected_state1, expected_state2].to_vec(), - }; - - assert_eq!(register_states, expected_reg_states); - } - - #[test] - fn decode_instruction_flags_and_offsets() { - let data = HashMap::from([ - (1u64, Felt252::from(0x480680017fff8000)), - (2u64, Felt252::from(0x1104800180018000)), - ]); - - let memory = CairoMemory::new(data); - let state1 = RegistersState { - ap: 8, - fp: 8, - pc: 1, - }; - let state2 = RegistersState { - ap: 9, - fp: 8, - pc: 2, - }; - - let trace = RegisterStates { - rows: [state1, state2].to_vec(), - }; - - let expected_flags1 = CairoInstructionFlags { - opcode: CairoOpcode::AssertEq, - pc_update: PcUpdate::Regular, - ap_update: ApUpdate::Add1, - op0_reg: Op0Reg::FP, - op1_src: Op1Src::Imm, - res_logic: ResLogic::Op1, - dst_reg: DstReg::AP, - }; - - let expected_offsets1 = InstructionOffsets { - off_dst: 0, - off_op0: -1, - off_op1: 1, - }; - - let expected_flags2 = CairoInstructionFlags { - opcode: CairoOpcode::Call, - pc_update: PcUpdate::JumpRel, - ap_update: ApUpdate::Regular, - op0_reg: Op0Reg::AP, - op1_src: Op1Src::Imm, - res_logic: ResLogic::Op1, - dst_reg: DstReg::AP, - }; - - let expected_offsets2 = InstructionOffsets { - off_dst: 0, - off_op0: 1, - off_op1: 1, - }; - - let flags_and_offsets = trace.flags_and_offsets(&memory).unwrap(); - - assert_eq!( - flags_and_offsets, - vec![ - (expected_flags1, expected_offsets1), - (expected_flags2, expected_offsets2) - ] - ); - } -} diff --git a/provers/cairo/src/runner/file_writer.rs b/provers/cairo/src/runner/file_writer.rs deleted file mode 100644 index a116c66cc..000000000 --- a/provers/cairo/src/runner/file_writer.rs +++ /dev/null @@ -1,35 +0,0 @@ -use bincode::enc::write::Writer; -use std::io::{self, Write}; - -pub struct FileWriter { - buf_writer: io::BufWriter, - bytes_written: usize, -} - -impl Writer for FileWriter { - fn write(&mut self, bytes: &[u8]) -> Result<(), bincode::error::EncodeError> { - self.buf_writer - .write_all(bytes) - .map_err(|e| bincode::error::EncodeError::Io { - inner: e, - index: self.bytes_written, - })?; - - self.bytes_written += bytes.len(); - - Ok(()) - } -} - -impl FileWriter { - pub fn new(buf_writer: io::BufWriter) -> Self { - Self { - buf_writer, - bytes_written: 0, - } - } - - pub fn flush(&mut self) -> io::Result<()> { - self.buf_writer.flush() - } -} diff --git a/provers/cairo/src/runner/mod.rs b/provers/cairo/src/runner/mod.rs deleted file mode 100644 index cb9e2c994..000000000 --- a/provers/cairo/src/runner/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod file_writer; -pub mod run; -pub mod vec_writer; diff --git a/provers/cairo/src/runner/run.rs b/provers/cairo/src/runner/run.rs deleted file mode 100644 index b46770630..000000000 --- a/provers/cairo/src/runner/run.rs +++ /dev/null @@ -1,187 +0,0 @@ -use crate::air::{PublicInputs, Segment, SegmentName}; -use crate::cairo_layout::CairoLayout; -use crate::cairo_mem::CairoMemory; -use crate::execution_trace::build_main_trace; -use crate::register_states::RegisterStates; -use crate::Felt252; - -use super::vec_writer::VecWriter; -use cairo_vm::cairo_run::{self, EncodeTraceError}; - -use cairo_vm::hint_processor::builtin_hint_processor::builtin_hint_processor_definition::BuiltinHintProcessor; - -use cairo_vm::vm::errors::{ - cairo_run_errors::CairoRunError, trace_errors::TraceError, vm_errors::VirtualMachineError, -}; - -use cairo_vm::without_std::collections::HashMap; -use lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField; -use stark_platinum_prover::trace::TraceTable; - -#[derive(Debug)] -pub enum Error { - IO(std::io::Error), - Runner(CairoRunError), - EncodeTrace(EncodeTraceError), - VirtualMachine(VirtualMachineError), - Trace(TraceError), -} - -impl From for Error { - fn from(err: std::io::Error) -> Error { - Error::IO(err) - } -} - -impl From for Error { - fn from(err: CairoRunError) -> Error { - Error::Runner(err) - } -} - -impl From for Error { - fn from(err: EncodeTraceError) -> Error { - Error::EncodeTrace(err) - } -} - -impl From for Error { - fn from(err: VirtualMachineError) -> Error { - Error::VirtualMachine(err) - } -} - -impl From for Error { - fn from(err: TraceError) -> Error { - Error::Trace(err) - } -} - -/// Runs a cairo program in JSON format and returns trace, memory and program length. -/// Uses [cairo-rs](https://github.com/lambdaclass/cairo-rs/) project to run the program. -/// -/// # Params -/// -/// `entrypoint_function` - the name of the entrypoint function tu run. If `None` is provided, the default value is `main`. -/// `layout` - type of layout of Cairo. -/// `program_content` - content of the input file. -/// `trace_path` - path where to store the generated trace file. -/// `memory_path` - path where to store the generated memory file. -/// -/// # Returns -/// -/// Ok() in case of succes, with the following values: -/// - register_states -/// - cairo_mem -/// - data_len -/// - range_check: an Option<(usize, usize)> containing the start and end of range check. -/// `Error` indicating the type of error. -#[allow(clippy::type_complexity)] -pub fn run_program( - entrypoint_function: Option<&str>, - layout: CairoLayout, - program_content: &[u8], -) -> Result<(RegisterStates, CairoMemory, PublicInputs), Error> { - // default value for entrypoint is "main" - let entrypoint = entrypoint_function.unwrap_or("main"); - - let trace_enabled = true; - let mut hint_executor = BuiltinHintProcessor::new_empty(); - let cairo_run_config = cairo_run::CairoRunConfig { - entrypoint, - trace_enabled, - relocate_mem: true, - layout: layout.as_str(), - proof_mode: true, - secure_run: None, - disable_trace_padding: false, - }; - - let (runner, vm) = - match cairo_run::cairo_run(program_content, &cairo_run_config, &mut hint_executor) { - Ok(runner) => runner, - Err(error) => { - eprintln!("{error}"); - panic!(); - } - }; - - let relocated_trace = vm.get_relocated_trace().unwrap(); - - let mut trace_vec = Vec::::new(); - let mut trace_writer = VecWriter::new(&mut trace_vec); - trace_writer.write_encoded_trace(relocated_trace); - - let relocated_memory = &runner.relocated_memory; - - let mut memory_vec = Vec::::new(); - let mut memory_writer = VecWriter::new(&mut memory_vec); - memory_writer.write_encoded_memory(relocated_memory); - - trace_writer.flush().unwrap(); - memory_writer.flush().unwrap(); - - //TO DO: Better error handling - let cairo_mem = CairoMemory::from_bytes_le(&memory_vec).unwrap(); - let register_states = RegisterStates::from_bytes_le(&trace_vec).unwrap(); - - let vm_pub_inputs = runner.get_air_public_input(&vm).unwrap(); - - let mut pub_memory: HashMap = HashMap::new(); - vm_pub_inputs.public_memory.iter().for_each(|mem_cell| { - let addr = Felt252::from(mem_cell.address as u64); - let value = Felt252::from_hex_unchecked(&mem_cell.value.as_ref().unwrap().to_str_radix(16)); - pub_memory.insert(addr, value); - }); - - let mut memory_segments: HashMap = HashMap::new(); - vm_pub_inputs.memory_segments.iter().for_each(|(k, v)| { - memory_segments.insert(SegmentName::from(*k), Segment::from(v)); - }); - - let num_steps = register_states.steps(); - let public_inputs = PublicInputs { - pc_init: Felt252::from(register_states.rows[0].pc), - ap_init: Felt252::from(register_states.rows[0].ap), - fp_init: Felt252::from(register_states.rows[0].fp), - pc_final: Felt252::from(register_states.rows[num_steps - 1].pc), - ap_final: Felt252::from(register_states.rows[num_steps - 1].ap), - range_check_min: Some(vm_pub_inputs.rc_min as u16), - range_check_max: Some(vm_pub_inputs.rc_max as u16), - memory_segments, - public_memory: pub_memory, - num_steps, - }; - - Ok((register_states, cairo_mem, public_inputs)) -} - -pub fn generate_prover_args( - program_content: &[u8], - layout: CairoLayout, -) -> Result<(TraceTable, PublicInputs), Error> { - let (register_states, memory, mut public_inputs) = run_program(None, layout, program_content)?; - - let main_trace = build_main_trace(®ister_states, &memory, &mut public_inputs); - - Ok((main_trace, public_inputs)) -} - -pub fn generate_prover_args_from_trace( - trace_bin_path: &str, - memory_bin_path: &str, -) -> Result<(TraceTable, PublicInputs), Error> { - // ## Generating the prover args - let register_states = - RegisterStates::from_file(trace_bin_path).expect("Cairo trace bin file not found"); - let memory = - CairoMemory::from_file(memory_bin_path).expect("Cairo memory binary file not found"); - - // data length - let data_len = 0_usize; - let mut pub_inputs = PublicInputs::from_regs_and_mem(®ister_states, &memory, data_len); - - let main_trace = build_main_trace(®ister_states, &memory, &mut pub_inputs); - - Ok((main_trace, pub_inputs)) -} diff --git a/provers/cairo/src/runner/vec_writer.rs b/provers/cairo/src/runner/vec_writer.rs deleted file mode 100644 index 7e8cb52d0..000000000 --- a/provers/cairo/src/runner/vec_writer.rs +++ /dev/null @@ -1,58 +0,0 @@ -use cairo_vm::felt::Felt252; -use std::io::{self, Write}; - -pub struct VecWriter<'a> { - buf_writer: &'a mut Vec, -} - -impl bincode::enc::write::Writer for VecWriter<'_> { - fn write(&mut self, bytes: &[u8]) -> Result<(), bincode::error::EncodeError> { - self.buf_writer - .write_all(bytes) - .expect("Shouldn't fail in memory vector"); - - Ok(()) - } -} - -impl<'a> VecWriter<'a> { - pub fn new(vec: &'a mut Vec) -> Self { - Self { buf_writer: vec } - } - - pub fn flush(&mut self) -> io::Result<()> { - self.buf_writer.flush() - } - - pub fn write_encoded_trace( - &mut self, - relocated_trace: &[cairo_vm::vm::trace::trace_entry::TraceEntry], - ) { - for entry in relocated_trace.iter() { - self.buf_writer - .extend_from_slice(&((entry.ap as u64).to_le_bytes())); - self.buf_writer - .extend_from_slice(&((entry.fp as u64).to_le_bytes())); - self.buf_writer - .extend_from_slice(&((entry.pc as u64).to_le_bytes())); - } - } - - /// Writes a binary representation of the relocated memory. - /// - /// The memory pairs (address, value) are encoded and concatenated: - /// * address -> 8-byte encoded - /// * value -> 32-byte encoded - pub fn write_encoded_memory(&mut self, relocated_memory: &[Option]) { - for (i, memory_cell) in relocated_memory.iter().enumerate() { - match memory_cell { - None => continue, - Some(unwrapped_memory_cell) => { - self.buf_writer.extend_from_slice(&(i as u64).to_le_bytes()); - self.buf_writer - .extend_from_slice(&unwrapped_memory_cell.to_le_bytes()); - } - } - } - } -} diff --git a/provers/cairo/src/tests/data/mul_mem.out b/provers/cairo/src/tests/data/mul_mem.out deleted file mode 100644 index f4f866c2dd56b3c7571324a967539e35d6d6a5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmZQ%fP#kq^^6T{9xyIC%>)%-Lzh6~Gei0R>%rzZph?5IEKn99^H`zk{sGPVU*D|& dHvo+RGlvsR9G%M!6(FRJ1F8;YF1k4|J^<$b3;h59 diff --git a/provers/cairo/src/tests/data/mul_trace.out b/provers/cairo/src/tests/data/mul_trace.out deleted file mode 100644 index a4a295fdb52952db4d5db326f73186433a4adc4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 Ycmd;JfB+6C%?PDA(Zrc?h_gb)0SS-*JOBUy diff --git a/provers/cairo/src/tests/integration_tests.rs b/provers/cairo/src/tests/integration_tests.rs deleted file mode 100644 index 79f051830..000000000 --- a/provers/cairo/src/tests/integration_tests.rs +++ /dev/null @@ -1,194 +0,0 @@ -use crate::{ - air::{generate_cairo_proof, verify_cairo_proof, CairoAIR}, - cairo_layout::CairoLayout, - runner::run::generate_prover_args, - tests::utils::{ - cairo0_program_path, test_prove_cairo_program, test_prove_cairo_program_from_trace, - }, - Felt252, -}; -use lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField; -use stark_platinum_prover::{ - debug::validate_trace, - domain::Domain, - proof::{ - options::{ProofOptions, SecurityLevel}, - stark::StarkProof, - }, - traits::AIR, - transcript::StoneProverTranscript, -}; - -#[test_log::test] -fn test_prove_cairo_simple_program() { - let layout = CairoLayout::Plain; - test_prove_cairo_program(&cairo0_program_path("simple_program.json"), layout); -} - -#[test_log::test] -fn test_prove_cairo_fibonacci_5() { - let layout = CairoLayout::Plain; - test_prove_cairo_program(&cairo0_program_path("fibonacci_5.json"), layout); -} - -#[test_log::test] -fn test_prove_cairo_fibonacci_5_from_trace() { - test_prove_cairo_program_from_trace( - &cairo0_program_path("fibonacci_5_trace.bin"), - &cairo0_program_path("fibonacci_5_memory.bin"), - ); -} - -#[test_log::test] -fn test_verifier_rejects_wrong_authentication_paths() { - // Setup - let proof_options = ProofOptions::default_test_options(); - let program_content = std::fs::read(cairo0_program_path("fibonacci_5.json")).unwrap(); - let (main_trace, pub_inputs) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - // Generate the proof - let mut proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - - // Change order of authentication path hashes - let query = 0; - let mut original_path = proof.deep_poly_openings[query] - .main_trace_polys - .proof - .merkle_path - .clone(); - original_path.swap(0, 1); - // For the test to make sense, we have to make sure - // that the two hashes are different. - assert_ne!(original_path[0], original_path[1]); - proof.deep_poly_openings[query] - .main_trace_polys - .proof - .merkle_path = original_path; - - // Verifier should reject the proof - assert!(!verify_cairo_proof(&proof, &pub_inputs, &proof_options)); -} - -#[test_log::test] -fn test_prove_cairo_fibonacci_1000() { - let layout = CairoLayout::Plain; - test_prove_cairo_program(&cairo0_program_path("fibonacci_1000.json"), layout); -} - -// #[cfg_attr(feature = "metal", ignore)] -// #[test_log::test] -// fn test_prove_cairo_fibonacci_casm() { -// let layout = CairoLayout::Plain; -// test_prove_cairo1_program(&cairo1_program_path("fibonacci_cairo1_mod.casm"), layout); -// } - -#[test_log::test] -fn test_verifier_rejects_proof_of_a_slightly_different_program() { - let program_content = std::fs::read(cairo0_program_path("simple_program.json")).unwrap(); - let (main_trace, mut pub_input) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - let proof_options = ProofOptions::default_test_options(); - - let proof = generate_cairo_proof(&main_trace, &pub_input, &proof_options).unwrap(); - - // We modify the original program and verify using this new "corrupted" version - let mut corrupted_program = pub_input.public_memory.clone(); - corrupted_program.insert(Felt252::one(), Felt252::from(5)); - corrupted_program.insert(Felt252::from(3), Felt252::from(5)); - - // Here we use the corrupted version of the program in the public inputs - pub_input.public_memory = corrupted_program; - assert!(!verify_cairo_proof(&proof, &pub_input, &proof_options)); -} - -#[test_log::test] -fn test_verifier_rejects_proof_with_different_range_bounds() { - let program_content = std::fs::read(cairo0_program_path("simple_program.json")).unwrap(); - let (main_trace, mut pub_inputs) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - let proof_options = ProofOptions::default_test_options(); - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - - pub_inputs.range_check_min = Some(pub_inputs.range_check_min.unwrap() + 1); - assert!(!verify_cairo_proof(&proof, &pub_inputs, &proof_options)); - - pub_inputs.range_check_min = Some(pub_inputs.range_check_min.unwrap() - 1); - pub_inputs.range_check_max = Some(pub_inputs.range_check_max.unwrap() - 1); - assert!(!verify_cairo_proof(&proof, &pub_inputs, &proof_options)); -} - -#[test_log::test] -fn test_verifier_rejects_proof_with_different_security_params() { - let program_content = std::fs::read(cairo0_program_path("fibonacci_5.json")).unwrap(); - let (main_trace, pub_inputs) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - let proof_options_prover = ProofOptions::new_secure(SecurityLevel::Conjecturable80Bits, 3); - - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options_prover).unwrap(); - - let proof_options_verifier = ProofOptions::new_secure(SecurityLevel::Conjecturable128Bits, 3); - - assert!(!verify_cairo_proof( - &proof, - &pub_inputs, - &proof_options_verifier - )); -} - -#[test] -fn check_simple_cairo_trace_evaluates_to_zero() { - let program_content = std::fs::read(cairo0_program_path("simple_program.json")).unwrap(); - let (main_trace, public_input) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - let mut trace_polys = main_trace.compute_trace_polys::(); - let mut transcript = StoneProverTranscript::new(&[]); - - let proof_options = ProofOptions::default_test_options(); - let cairo_air = CairoAIR::new(main_trace.n_rows(), &public_input, &proof_options); - let rap_challenges = cairo_air.build_rap_challenges(&mut transcript); - - let aux_trace = cairo_air.build_auxiliary_trace(&main_trace, &rap_challenges); - let aux_polys = aux_trace.compute_trace_polys::(); - - trace_polys.extend_from_slice(&aux_polys); - - let domain = Domain::new(&cairo_air); - - assert!(validate_trace( - &cairo_air, - &trace_polys, - &aux_polys, - &domain, - &rap_challenges - )); -} - -#[test] -fn deserialize_and_verify() { - let program_content = std::fs::read(cairo0_program_path("fibonacci_10.json")).unwrap(); - let (main_trace, pub_inputs) = - generate_prover_args(&program_content, CairoLayout::Plain).unwrap(); - - let proof_options = ProofOptions::default_test_options(); - - // The proof is generated and serialized. - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - let proof_bytes: Vec = serde_cbor::to_vec(&proof).unwrap(); - - // The trace and original proof are dropped to show that they are decoupled from - // the verifying process. - drop(main_trace); - drop(proof); - - // At this point, the verifier only knows about the serialized proof, the proof options - // and the public inputs. - let proof: StarkProof = - serde_cbor::from_slice(&proof_bytes).unwrap(); - - // The proof is verified successfully. - assert!(verify_cairo_proof(&proof, &pub_inputs, &proof_options)); -} diff --git a/provers/cairo/src/tests/mod.rs b/provers/cairo/src/tests/mod.rs deleted file mode 100644 index 8ffce3ed0..000000000 --- a/provers/cairo/src/tests/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod integration_tests; -pub mod utils; diff --git a/provers/cairo/src/tests/utils.rs b/provers/cairo/src/tests/utils.rs deleted file mode 100644 index 671d74f94..000000000 --- a/provers/cairo/src/tests/utils.rs +++ /dev/null @@ -1,49 +0,0 @@ -use crate::{ - air::{generate_cairo_proof, verify_cairo_proof}, - cairo_layout::CairoLayout, - runner::run::generate_prover_args, - runner::run::generate_prover_args_from_trace, -}; -use stark_platinum_prover::proof::options::ProofOptions; -use std::time::Instant; - -pub fn cairo0_program_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const CAIRO0_BASE_REL_PATH: &str = "/cairo_programs/cairo0/"; - let program_base_path = CARGO_DIR.to_string() + CAIRO0_BASE_REL_PATH; - program_base_path + program_name -} - -pub fn cairo1_program_path(program_name: &str) -> String { - const CARGO_DIR: &str = env!("CARGO_MANIFEST_DIR"); - const CAIRO1_BASE_REL_PATH: &str = "/cairo_programs/cairo1/"; - let program_base_path = CARGO_DIR.to_string() + CAIRO1_BASE_REL_PATH; - program_base_path + program_name -} - -/// Loads the program in path, runs it with the Cairo VM, and makes a proof of it -pub fn test_prove_cairo_program(file_path: &str, layout: CairoLayout) { - let proof_options = ProofOptions::default_test_options(); - let timer = Instant::now(); - println!("Making proof ..."); - - let program_content = std::fs::read(file_path).unwrap(); - let (main_trace, pub_inputs) = generate_prover_args(&program_content, layout).unwrap(); - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - println!(" Time spent in proving: {:?} \n", timer.elapsed()); - - assert!(verify_cairo_proof(&proof, &pub_inputs, &proof_options)); -} - -pub fn test_prove_cairo_program_from_trace(trace_bin_path: &str, memory_bin_path: &str) { - let proof_options = ProofOptions::default_test_options(); - let (main_trace, pub_inputs) = - generate_prover_args_from_trace(trace_bin_path, memory_bin_path).unwrap(); - - // println - let timer = Instant::now(); - println!("Making proof ..."); - let proof = generate_cairo_proof(&main_trace, &pub_inputs, &proof_options).unwrap(); - println!(" Time spent in proving: {:?} \n", timer.elapsed()); - assert!(verify_cairo_proof(&proof, &pub_inputs, &proof_options)); -} diff --git a/provers/cairo/src/transition_constraints.rs b/provers/cairo/src/transition_constraints.rs deleted file mode 100644 index c5a761622..000000000 --- a/provers/cairo/src/transition_constraints.rs +++ /dev/null @@ -1,3219 +0,0 @@ -use crate::Felt252; -use lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField; -use stark_platinum_prover::{ - constraints::transition::TransitionConstraint, frame::Frame, table::TableView, -}; - -#[derive(Clone)] -pub struct BitPrefixFlag0; -impl BitPrefixFlag0 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag0 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 0 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag1; -impl BitPrefixFlag1 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag1 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 1 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag2; -impl BitPrefixFlag2 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag2 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 2 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag3; -impl BitPrefixFlag3 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag3 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 3 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag4; -impl BitPrefixFlag4 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag4 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag4 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 4 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag5; -impl BitPrefixFlag5 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag5 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag5 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 5 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag6; -impl BitPrefixFlag6 { - pub fn new() -> Self { - Self - } -} -impl Default for BitPrefixFlag6 { - fn default() -> Self { - Self::new() - } -} - -impl TransitionConstraint for BitPrefixFlag6 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 6 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag7; -impl Default for BitPrefixFlag7 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag7 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag7 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 7 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag8; -impl Default for BitPrefixFlag8 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag8 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag8 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 8 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag9; -impl Default for BitPrefixFlag9 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag9 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag9 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 9 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -#[derive(Clone)] -pub struct BitPrefixFlag10; -impl Default for BitPrefixFlag10 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag10 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag10 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 10 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct BitPrefixFlag11; -impl Default for BitPrefixFlag11 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag11 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag11 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 11 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct BitPrefixFlag12; -impl Default for BitPrefixFlag12 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag12 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag12 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 12 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct BitPrefixFlag13; -impl Default for BitPrefixFlag13 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag13 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag13 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 13 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct BitPrefixFlag14; -impl Default for BitPrefixFlag14 { - fn default() -> Self { - Self::new() - } -} - -impl BitPrefixFlag14 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for BitPrefixFlag14 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 14 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let constraint_idx = self.constraint_idx(); - - let current_flag = current_step.get_main_evaluation_element(0, constraint_idx); - let next_flag = current_step.get_main_evaluation_element(0, constraint_idx + 1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let bit = current_flag - two * next_flag; - - let res = bit * (bit - one); - - transition_evaluations[constraint_idx] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct ZeroFlagConstraint; -impl Default for ZeroFlagConstraint { - fn default() -> Self { - Self::new() - } -} - -impl ZeroFlagConstraint { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for ZeroFlagConstraint { - fn degree(&self) -> usize { - 1 - } - - fn constraint_idx(&self) -> usize { - 15 - } - - fn evaluate( - &self, - frame: &stark_platinum_prover::frame::Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let zero_flag = current_step.get_main_evaluation_element(0, 15); - - transition_evaluations[self.constraint_idx()] = *zero_flag; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct FlagOp1BaseOp0BitConstraint; -impl Default for FlagOp1BaseOp0BitConstraint { - fn default() -> Self { - Self::new() - } -} - -impl FlagOp1BaseOp0BitConstraint { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for FlagOp1BaseOp0BitConstraint { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 54 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_op1_imm = current_step.get_main_evaluation_element(0, 2) - - two * current_step.get_main_evaluation_element(0, 3); - let f_op1_fp = current_step.get_main_evaluation_element(0, 3) - - two * current_step.get_main_evaluation_element(0, 4); - let f_op1_ap = current_step.get_main_evaluation_element(0, 4) - - two * current_step.get_main_evaluation_element(0, 5); - - let f_op1_base_op0_bit = one - f_op1_imm - f_op1_fp - f_op1_ap; - - let res = f_op1_base_op0_bit * (f_op1_base_op0_bit - one); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct FlagResOp1BitConstraint; -impl Default for FlagResOp1BitConstraint { - fn default() -> Self { - Self::new() - } -} - -impl FlagResOp1BitConstraint { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for FlagResOp1BitConstraint { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 55 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_res_add = current_step.get_main_evaluation_element(0, 5) - - two * current_step.get_main_evaluation_element(0, 6); - let f_res_mul = current_step.get_main_evaluation_element(0, 6) - - two * current_step.get_main_evaluation_element(0, 7); - let f_pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - - let f_res_op1_bit = one - f_res_add - f_res_mul - f_pc_jnz; - - let res = f_res_op1_bit * (f_res_op1_bit - one); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct FlagPcUpdateRegularBit; -impl Default for FlagPcUpdateRegularBit { - fn default() -> Self { - Self::new() - } -} - -impl FlagPcUpdateRegularBit { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for FlagPcUpdateRegularBit { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 56 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_jump_abs = current_step.get_main_evaluation_element(0, 7) - - two * current_step.get_main_evaluation_element(0, 8); - let f_jump_rel = current_step.get_main_evaluation_element(0, 8) - - two * current_step.get_main_evaluation_element(0, 9); - let f_pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - - let flag_pc_update_regular_bit = one - f_jump_abs - f_jump_rel - f_pc_jnz; - - let res = flag_pc_update_regular_bit * (flag_pc_update_regular_bit - one); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct FlagFpUpdateRegularBit; -impl Default for FlagFpUpdateRegularBit { - fn default() -> Self { - Self::new() - } -} - -impl FlagFpUpdateRegularBit { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for FlagFpUpdateRegularBit { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 57 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_opcode_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - let f_opcode_ret = current_step.get_main_evaluation_element(0, 13) - - two * current_step.get_main_evaluation_element(0, 14); - - let flag_fp_update_regular_bit = one - f_opcode_call - f_opcode_ret; - - let res = flag_fp_update_regular_bit * (flag_fp_update_regular_bit - one); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct InstructionUnpacking; -impl Default for InstructionUnpacking { - fn default() -> Self { - Self::new() - } -} - -impl InstructionUnpacking { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for InstructionUnpacking { - fn degree(&self) -> usize { - 1 - } - - fn constraint_idx(&self) -> usize { - 16 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - let b16 = two.pow(16u32); - let b32 = two.pow(32u32); - let b48 = two.pow(48u32); - - // Named like this to match the Cairo whitepaper's notation. - let f0_squiggle = current_step.get_main_evaluation_element(0, 0); - - let instruction = current_step.get_main_evaluation_element(0, 23); - let off_dst = current_step.get_main_evaluation_element(0, 27); - let off_op0 = current_step.get_main_evaluation_element(0, 28); - let off_op1 = current_step.get_main_evaluation_element(0, 29); - - let res = off_dst + b16 * off_op0 + b32 * off_op1 + b48 * f0_squiggle - instruction; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesCallOff0; -impl Default for CpuOpcodesCallOff0 { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesCallOff0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesCallOff0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 58 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let two = Felt252::from(2); - let b15 = two.pow(15u32); - - let f_opcode_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - - let off_dst = current_step.get_main_evaluation_element(0, 27); - - let res = f_opcode_call * (off_dst - b15); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesCallOff1; -impl Default for CpuOpcodesCallOff1 { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesCallOff1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesCallOff1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 59 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - let b15 = two.pow(15u32); - - let f_opcode_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - let off_op0 = current_step.get_main_evaluation_element(0, 28); - - let res = f_opcode_call * (off_op0 - b15 - one); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesCallFlags; -impl Default for CpuOpcodesCallFlags { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesCallFlags { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesCallFlags { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 60 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_opcode_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - - let bit_flag0 = current_step.get_main_evaluation_element(0, 0) - - two * current_step.get_main_evaluation_element(0, 1); - let bit_flag1 = current_step.get_main_evaluation_element(0, 1) - - two * current_step.get_main_evaluation_element(0, 2); - - let res = - f_opcode_call * (two * f_opcode_call + one + one - bit_flag0 - bit_flag1 - two - two); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesRetOff0; -impl Default for CpuOpcodesRetOff0 { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesRetOff0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesRetOff0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 61 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - let b15 = two.pow(15u32); - - let f_opcode_ret = current_step.get_main_evaluation_element(0, 13) - - two * current_step.get_main_evaluation_element(0, 14); - let off_dst = current_step.get_main_evaluation_element(0, 27); - - let res = f_opcode_ret * (off_dst + two - b15); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesRetOff2; -impl Default for CpuOpcodesRetOff2 { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesRetOff2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesRetOff2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 62 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - let b15 = two.pow(15u32); - - let f_opcode_ret = current_step.get_main_evaluation_element(0, 13) - - two * current_step.get_main_evaluation_element(0, 14); - let off_op1 = current_step.get_main_evaluation_element(0, 29); - - let res = f_opcode_ret * (off_op1 + one - b15); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesRetFlags; -impl Default for CpuOpcodesRetFlags { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesRetFlags { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesRetFlags { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 63 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let f_opcode_ret = current_step.get_main_evaluation_element(0, 13) - - two * current_step.get_main_evaluation_element(0, 14); - let flag0 = current_step.get_main_evaluation_element(0, 0) - - two * current_step.get_main_evaluation_element(0, 1); - let flag3 = current_step.get_main_evaluation_element(0, 3) - - two * current_step.get_main_evaluation_element(0, 4); - let flag7 = current_step.get_main_evaluation_element(0, 7) - - two * current_step.get_main_evaluation_element(0, 8); - - let f_res_add = current_step.get_main_evaluation_element(0, 5) - - two * current_step.get_main_evaluation_element(0, 6); - let f_res_mul = current_step.get_main_evaluation_element(0, 6) - - two * current_step.get_main_evaluation_element(0, 7); - let f_pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - - let f_res_op1_bit = one - f_res_add - f_res_mul - f_pc_jnz; - - let res = f_opcode_ret * (flag7 + flag0 + flag3 + f_res_op1_bit - two - two); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOperandsMemDstAddr; -impl Default for CpuOperandsMemDstAddr { - fn default() -> Self { - Self::new() - } -} - -impl CpuOperandsMemDstAddr { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOperandsMemDstAddr { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 17 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - let one = Felt252::one(); - let b15 = two.pow(15u32); - let dst_fp = current_step.get_main_evaluation_element(0, 0) - - two * current_step.get_main_evaluation_element(0, 1); - let ap = current_step.get_main_evaluation_element(0, 17); - let fp = current_step.get_main_evaluation_element(0, 18); - let off_dst = current_step.get_main_evaluation_element(0, 27); - let dst_addr = current_step.get_main_evaluation_element(0, 20); - - let res = dst_fp * fp + (one - dst_fp) * ap + (off_dst - b15) - dst_addr; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOperandsMem0Addr; -impl Default for CpuOperandsMem0Addr { - fn default() -> Self { - Self::new() - } -} - -impl CpuOperandsMem0Addr { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOperandsMem0Addr { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 18 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - let one = Felt252::one(); - let b15 = two.pow(15u32); - - let op0_fp = current_step.get_main_evaluation_element(0, 1) - - two * current_step.get_main_evaluation_element(0, 2); - - let ap = current_step.get_main_evaluation_element(0, 17); - let fp = current_step.get_main_evaluation_element(0, 18); - - let off_op0 = current_step.get_main_evaluation_element(0, 28); - let op0_addr = current_step.get_main_evaluation_element(0, 21); - - let res = op0_fp * fp + (one - op0_fp) * ap + (off_op0 - b15) - op0_addr; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOperandsMem1Addr; -impl Default for CpuOperandsMem1Addr { - fn default() -> Self { - Self::new() - } -} - -impl CpuOperandsMem1Addr { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOperandsMem1Addr { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 19 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - let two = Felt252::from(2); - let b15 = two.pow(15u32); - - let op1_val = current_step.get_main_evaluation_element(0, 2) - - two * current_step.get_main_evaluation_element(0, 3); - let op1_fp = current_step.get_main_evaluation_element(0, 3) - - two * current_step.get_main_evaluation_element(0, 4); - let op1_ap = current_step.get_main_evaluation_element(0, 4) - - two * current_step.get_main_evaluation_element(0, 5); - - let op0 = current_step.get_main_evaluation_element(0, 25); - let off_op1 = current_step.get_main_evaluation_element(0, 29); - let op1_addr = current_step.get_main_evaluation_element(0, 22); - - let ap = current_step.get_main_evaluation_element(0, 17); - let fp = current_step.get_main_evaluation_element(0, 18); - let pc = current_step.get_main_evaluation_element(0, 19); - - let res = op1_val * pc - + op1_ap * ap - + op1_fp * fp - + (one - op1_val - op1_ap - op1_fp) * op0 - + (off_op1 - b15) - - op1_addr; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -// cpu/update_registers/update_ap/ap_update -pub struct CpuUpdateRegistersApUpdate; -impl Default for CpuUpdateRegistersApUpdate { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersApUpdate { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuUpdateRegistersApUpdate { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 20 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let two = Felt252::from(2); - - let ap = current_step.get_main_evaluation_element(0, 17); - let next_ap = next_step.get_main_evaluation_element(0, 17); - let res = current_step.get_main_evaluation_element(0, 16); - - let ap_one = current_step.get_main_evaluation_element(0, 11) - - two * current_step.get_main_evaluation_element(0, 12); - let opc_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - let ap_add = current_step.get_main_evaluation_element(0, 10) - - two * current_step.get_main_evaluation_element(0, 11); - - let res = ap + ap_add * res + ap_one + opc_call * two - next_ap; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -pub struct CpuUpdateRegistersFpUpdate; -impl Default for CpuUpdateRegistersFpUpdate { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersFpUpdate { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuUpdateRegistersFpUpdate { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 21 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let ap = current_step.get_main_evaluation_element(0, 17); - let fp = current_step.get_main_evaluation_element(0, 18); - let next_fp = next_step.get_main_evaluation_element(0, 18); - let dst = current_step.get_main_evaluation_element(0, 24); - - let opc_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - let opc_ret = current_step.get_main_evaluation_element(0, 13) - - two * current_step.get_main_evaluation_element(0, 14); - - let res = opc_ret * dst + opc_call * (ap + two) + (one - opc_ret - opc_call) * fp - next_fp; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -// cpu/update_registers/update_pc/pc_cond_negative: -pub struct CpuUpdateRegistersPcCondNegative; -impl Default for CpuUpdateRegistersPcCondNegative { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersPcCondNegative { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint - for CpuUpdateRegistersPcCondNegative -{ - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 23 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let one = Felt252::one(); - let two = Felt252::from(2); - - let t0 = current_step.get_main_evaluation_element(0, 30); - let pc = current_step.get_main_evaluation_element(0, 19); - let next_pc = next_step.get_main_evaluation_element(0, 19); - let op1 = current_step.get_main_evaluation_element(0, 26); - - let pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - let pc_abs = current_step.get_main_evaluation_element(0, 7) - - two * current_step.get_main_evaluation_element(0, 8); - let pc_rel = current_step.get_main_evaluation_element(0, 8) - - two * current_step.get_main_evaluation_element(0, 9); - let res = current_step.get_main_evaluation_element(0, 16); - - let res = t0 * (next_pc - (pc + op1)) + (one - pc_jnz) * next_pc - - ((one - pc_abs - pc_rel - pc_jnz) * (pc + frame_inst_size(current_step)) - + pc_abs * res - + pc_rel * (pc + res)); - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -pub struct CpuUpdateRegistersPcCondPositive; -impl Default for CpuUpdateRegistersPcCondPositive { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersPcCondPositive { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint - for CpuUpdateRegistersPcCondPositive -{ - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 22 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let two = Felt252::from(2); - - let t1 = current_step.get_main_evaluation_element(0, 31); - let pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - let pc = current_step.get_main_evaluation_element(0, 19); - let next_pc = next_step.get_main_evaluation_element(0, 19); - - let res = (t1 - pc_jnz) * (next_pc - (pc + frame_inst_size(current_step))); - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -//cpu/update_registers/update_pc/tmp0 -pub struct CpuUpdateRegistersUpdatePcTmp0; -impl Default for CpuUpdateRegistersUpdatePcTmp0 { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersUpdatePcTmp0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint - for CpuUpdateRegistersUpdatePcTmp0 -{ - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 24 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - let dst = current_step.get_main_evaluation_element(0, 24); - let t0 = current_step.get_main_evaluation_element(0, 30); - let pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - - let res = pc_jnz * dst - t0; - - transition_evaluations[self.constraint_idx()] = res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuUpdateRegistersUpdatePcTmp1; -impl Default for CpuUpdateRegistersUpdatePcTmp1 { - fn default() -> Self { - Self::new() - } -} - -impl CpuUpdateRegistersUpdatePcTmp1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint - for CpuUpdateRegistersUpdatePcTmp1 -{ - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 25 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let t1 = current_step.get_main_evaluation_element(0, 31); - let t0 = current_step.get_main_evaluation_element(0, 30); - let res = current_step.get_main_evaluation_element(0, 16); - - let transition_res = t0 * res - t1; - - transition_evaluations[self.constraint_idx()] = transition_res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOperandsOpsMul; -impl Default for CpuOperandsOpsMul { - fn default() -> Self { - Self::new() - } -} - -impl CpuOperandsOpsMul { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOperandsOpsMul { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 26 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let mul = current_step.get_main_evaluation_element(0, 32); - let op0 = current_step.get_main_evaluation_element(0, 25); - let op1 = current_step.get_main_evaluation_element(0, 26); - - transition_evaluations[self.constraint_idx()] = mul - op0 * op1; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -// cpu/operands/res -pub struct CpuOperandsRes; -impl Default for CpuOperandsRes { - fn default() -> Self { - Self::new() - } -} - -impl CpuOperandsRes { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOperandsRes { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 27 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let one = Felt252::one(); - let two = Felt252::from(2); - - let mul = current_step.get_main_evaluation_element(0, 32); - let op0 = current_step.get_main_evaluation_element(0, 25); - let op1 = current_step.get_main_evaluation_element(0, 26); - let res = current_step.get_main_evaluation_element(0, 16); - - let res_add = current_step.get_main_evaluation_element(0, 5) - - two * current_step.get_main_evaluation_element(0, 6); - let res_mul = current_step.get_main_evaluation_element(0, 6) - - two * current_step.get_main_evaluation_element(0, 7); - let pc_jnz = current_step.get_main_evaluation_element(0, 9) - - two * current_step.get_main_evaluation_element(0, 10); - - let transition_res = - res_add * (op0 + op1) + res_mul * mul + (one - res_add - res_mul - pc_jnz) * op1 - - (one - pc_jnz) * res; - - transition_evaluations[self.constraint_idx()] = transition_res; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -// cpu/opcodes/call/push_fp -pub struct CpuOpcodesCallPushFp; -impl Default for CpuOpcodesCallPushFp { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesCallPushFp { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesCallPushFp { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 28 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - - let opc_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - - let dst = current_step.get_main_evaluation_element(0, 24); - let fp = current_step.get_main_evaluation_element(0, 18); - - transition_evaluations[self.constraint_idx()] = opc_call * (dst - fp); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct CpuOpcodesCallPushPc; -impl Default for CpuOpcodesCallPushPc { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesCallPushPc { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesCallPushPc { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 29 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - - let opc_call = current_step.get_main_evaluation_element(0, 12) - - two * current_step.get_main_evaluation_element(0, 13); - - let op0 = current_step.get_main_evaluation_element(0, 25); - let pc = current_step.get_main_evaluation_element(0, 19); - - transition_evaluations[self.constraint_idx()] = - opc_call * (op0 - (pc + frame_inst_size(current_step))); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -// cpu/opcodes/assert_eq/assert_eq -pub struct CpuOpcodesAssertEq; -impl Default for CpuOpcodesAssertEq { - fn default() -> Self { - Self::new() - } -} - -impl CpuOpcodesAssertEq { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for CpuOpcodesAssertEq { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 30 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let two = Felt252::from(2); - - let opc_aeq = current_step.get_main_evaluation_element(0, 14) - - two * current_step.get_main_evaluation_element(0, 15); - let dst = current_step.get_main_evaluation_element(0, 24); - let res = current_step.get_main_evaluation_element(0, 16); - - transition_evaluations[self.constraint_idx()] = opc_aeq * (dst - res) - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -// memory/diff_is_bit -pub struct MemoryDiffIsBit0; -impl Default for MemoryDiffIsBit0 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryDiffIsBit0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryDiffIsBit0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 31 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_0 = current_step.get_aux_evaluation_element(0, 4); - let mem_addr_sorted_1 = current_step.get_aux_evaluation_element(0, 5); - - transition_evaluations[self.constraint_idx()] = - (mem_addr_sorted_0 - mem_addr_sorted_1) * (mem_addr_sorted_1 - mem_addr_sorted_0 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryDiffIsBit1; -impl Default for MemoryDiffIsBit1 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryDiffIsBit1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryDiffIsBit1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 32 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_1 = current_step.get_aux_evaluation_element(0, 5); - let mem_addr_sorted_2 = current_step.get_aux_evaluation_element(0, 6); - - transition_evaluations[self.constraint_idx()] = - (mem_addr_sorted_1 - mem_addr_sorted_2) * (mem_addr_sorted_2 - mem_addr_sorted_1 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} -pub struct MemoryDiffIsBit2; -impl Default for MemoryDiffIsBit2 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryDiffIsBit2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryDiffIsBit2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 33 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_2 = current_step.get_aux_evaluation_element(0, 6); - let mem_addr_sorted_3 = current_step.get_aux_evaluation_element(0, 7); - - transition_evaluations[self.constraint_idx()] = - (mem_addr_sorted_2 - mem_addr_sorted_3) * (mem_addr_sorted_3 - mem_addr_sorted_2 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} -pub struct MemoryDiffIsBit3; -impl Default for MemoryDiffIsBit3 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryDiffIsBit3 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryDiffIsBit3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 34 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_3 = current_step.get_aux_evaluation_element(0, 7); - let mem_addr_sorted_4 = current_step.get_aux_evaluation_element(0, 8); - - transition_evaluations[self.constraint_idx()] = - (mem_addr_sorted_3 - mem_addr_sorted_4) * (mem_addr_sorted_4 - mem_addr_sorted_3 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} -pub struct MemoryDiffIsBit4; -impl Default for MemoryDiffIsBit4 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryDiffIsBit4 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryDiffIsBit4 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 35 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let one = Felt252::one(); - - let next_mem_addr_sorted_0 = next_step.get_aux_evaluation_element(0, 4); - let mem_addr_sorted_4 = current_step.get_aux_evaluation_element(0, 8); - - transition_evaluations[self.constraint_idx()] = (mem_addr_sorted_4 - - next_mem_addr_sorted_0) - * (next_mem_addr_sorted_0 - mem_addr_sorted_4 - one); - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -// memory/is_func (single-valued) -pub struct MemoryIsFunc0; -impl Default for MemoryIsFunc0 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryIsFunc0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryIsFunc0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 36 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_0 = current_step.get_aux_evaluation_element(0, 4); - let mem_addr_sorted_1 = current_step.get_aux_evaluation_element(0, 5); - - let mem_val_sorted_0 = current_step.get_aux_evaluation_element(0, 9); - let mem_val_sorted_1 = current_step.get_aux_evaluation_element(0, 10); - - transition_evaluations[self.constraint_idx()] = - (mem_val_sorted_0 - mem_val_sorted_1) * (mem_addr_sorted_1 - mem_addr_sorted_0 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryIsFunc1; -impl Default for MemoryIsFunc1 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryIsFunc1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryIsFunc1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 37 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_1 = current_step.get_aux_evaluation_element(0, 5); - let mem_addr_sorted_2 = current_step.get_aux_evaluation_element(0, 6); - - let mem_val_sorted_1 = current_step.get_aux_evaluation_element(0, 10); - let mem_val_sorted_2 = current_step.get_aux_evaluation_element(0, 11); - - transition_evaluations[self.constraint_idx()] = - (mem_val_sorted_1 - mem_val_sorted_2) * (mem_addr_sorted_2 - mem_addr_sorted_1 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryIsFunc2; -impl Default for MemoryIsFunc2 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryIsFunc2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryIsFunc2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 38 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_2 = current_step.get_aux_evaluation_element(0, 6); - let mem_addr_sorted_3 = current_step.get_aux_evaluation_element(0, 7); - - let mem_val_sorted_2 = current_step.get_aux_evaluation_element(0, 11); - let mem_val_sorted_3 = current_step.get_aux_evaluation_element(0, 12); - - transition_evaluations[self.constraint_idx()] = - (mem_val_sorted_2 - mem_val_sorted_3) * (mem_addr_sorted_3 - mem_addr_sorted_2 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryIsFunc3; -impl Default for MemoryIsFunc3 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryIsFunc3 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryIsFunc3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 39 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let one = Felt252::one(); - - let mem_addr_sorted_3 = current_step.get_aux_evaluation_element(0, 7); - let mem_addr_sorted_4 = current_step.get_aux_evaluation_element(0, 8); - - let mem_val_sorted_3 = current_step.get_aux_evaluation_element(0, 12); - let mem_val_sorted_4 = current_step.get_aux_evaluation_element(0, 13); - - transition_evaluations[self.constraint_idx()] = - (mem_val_sorted_3 - mem_val_sorted_4) * (mem_addr_sorted_4 - mem_addr_sorted_3 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} -pub struct MemoryIsFunc4; -impl Default for MemoryIsFunc4 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryIsFunc4 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryIsFunc4 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 40 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let one = Felt252::one(); - - let next_mem_addr_sorted_0 = next_step.get_aux_evaluation_element(0, 4); - let mem_addr_sorted_4 = current_step.get_aux_evaluation_element(0, 8); - - let next_mem_val_sorted_0 = next_step.get_aux_evaluation_element(0, 9); - let mem_val_sorted_4 = current_step.get_aux_evaluation_element(0, 13); - - transition_evaluations[self.constraint_idx()] = (mem_val_sorted_4 - next_mem_val_sorted_0) - * (next_mem_addr_sorted_0 - mem_addr_sorted_4 - one); - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -// memory/multi_column_perm/perm/step0 -pub struct MemoryMultiColumnPermStep0_0; -impl Default for MemoryMultiColumnPermStep0_0 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryMultiColumnPermStep0_0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryMultiColumnPermStep0_0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 41 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let alpha = rap_challenges[0]; - let z = rap_challenges[1]; - - let a1 = current_step.get_main_evaluation_element(0, 20); - let v1 = current_step.get_main_evaluation_element(0, 24); - - let p0 = current_step.get_aux_evaluation_element(0, 14); - let ap1 = current_step.get_aux_evaluation_element(0, 5); - let vp1 = current_step.get_aux_evaluation_element(0, 10); - let p1 = current_step.get_aux_evaluation_element(0, 15); - - transition_evaluations[self.constraint_idx()] = - (z - (ap1 + alpha * vp1)) * p1 - (z - (a1 + alpha * v1)) * p0; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryMultiColumnPermStep0_1; -impl Default for MemoryMultiColumnPermStep0_1 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryMultiColumnPermStep0_1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryMultiColumnPermStep0_1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 42 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let alpha = rap_challenges[0]; - let z = rap_challenges[1]; - - let a2 = current_step.get_main_evaluation_element(0, 21); - let v2 = current_step.get_main_evaluation_element(0, 25); - - let p1 = current_step.get_aux_evaluation_element(0, 15); - let ap2 = current_step.get_aux_evaluation_element(0, 6); - let vp2 = current_step.get_aux_evaluation_element(0, 11); - let p2 = current_step.get_aux_evaluation_element(0, 16); - - transition_evaluations[self.constraint_idx()] = - (z - (ap2 + alpha * vp2)) * p2 - (z - (a2 + alpha * v2)) * p1; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryMultiColumnPermStep0_2; -impl Default for MemoryMultiColumnPermStep0_2 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryMultiColumnPermStep0_2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryMultiColumnPermStep0_2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 43 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let alpha = rap_challenges[0]; - let z = rap_challenges[1]; - let a3 = current_step.get_main_evaluation_element(0, 22); - let v3 = current_step.get_main_evaluation_element(0, 26); - - let p2 = current_step.get_aux_evaluation_element(0, 16); - let ap3 = current_step.get_aux_evaluation_element(0, 7); - let vp3 = current_step.get_aux_evaluation_element(0, 12); - let p3 = current_step.get_aux_evaluation_element(0, 17); - - transition_evaluations[self.constraint_idx()] = - (z - (ap3 + alpha * vp3)) * p3 - (z - (a3 + alpha * v3)) * p2; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryMultiColumnPermStep0_3; -impl Default for MemoryMultiColumnPermStep0_3 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryMultiColumnPermStep0_3 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryMultiColumnPermStep0_3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 44 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let alpha = rap_challenges[0]; - let z = rap_challenges[1]; - let a4 = current_step.get_main_evaluation_element(0, 33); - let v4 = current_step.get_main_evaluation_element(0, 34); - - let p3 = current_step.get_aux_evaluation_element(0, 17); - let p4 = current_step.get_aux_evaluation_element(0, 18); - let ap4 = current_step.get_aux_evaluation_element(0, 8); - let vp4 = current_step.get_aux_evaluation_element(0, 13); - - transition_evaluations[self.constraint_idx()] = - (z - (ap4 + alpha * vp4)) * p4 - (z - (a4 + alpha * v4)) * p3; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct MemoryMultiColumnPermStep0_4; -impl Default for MemoryMultiColumnPermStep0_4 { - fn default() -> Self { - Self::new() - } -} - -impl MemoryMultiColumnPermStep0_4 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for MemoryMultiColumnPermStep0_4 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 45 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let alpha = rap_challenges[0]; - let z = rap_challenges[1]; - let next_a0 = next_step.get_main_evaluation_element(0, 19); - let next_v0 = next_step.get_main_evaluation_element(0, 23); - - let next_ap0 = next_step.get_aux_evaluation_element(0, 4); - let next_vp0 = next_step.get_aux_evaluation_element(0, 9); - let next_p0 = next_step.get_aux_evaluation_element(0, 14); - let p4 = current_step.get_aux_evaluation_element(0, 18); - - transition_evaluations[self.constraint_idx()] = - (z - (next_ap0 + alpha * next_vp0)) * next_p0 - (z - (next_a0 + alpha * next_v0)) * p4; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -// rc16/diff_is_bit -pub struct Rc16DiffIsBit0; -impl Default for Rc16DiffIsBit0 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16DiffIsBit0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16DiffIsBit0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 46 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let one = Felt252::one(); - - let rc_col_1 = current_step.get_aux_evaluation_element(0, 0); - let rc_col_2 = current_step.get_aux_evaluation_element(0, 1); - - transition_evaluations[self.constraint_idx()] = - (rc_col_1 - rc_col_2) * (rc_col_2 - rc_col_1 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16DiffIsBit1; -impl Default for Rc16DiffIsBit1 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16DiffIsBit1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16DiffIsBit1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 47 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let one = Felt252::one(); - - let rc_col_2 = current_step.get_aux_evaluation_element(0, 1); - let rc_col_3 = current_step.get_aux_evaluation_element(0, 2); - - transition_evaluations[self.constraint_idx()] = - (rc_col_2 - rc_col_3) * (rc_col_3 - rc_col_2 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16DiffIsBit2; -impl Default for Rc16DiffIsBit2 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16DiffIsBit2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16DiffIsBit2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 48 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let one = Felt252::one(); - - let rc_col_3 = current_step.get_aux_evaluation_element(0, 2); - let rc_col_4 = current_step.get_aux_evaluation_element(0, 3); - - transition_evaluations[self.constraint_idx()] = - (rc_col_3 - rc_col_4) * (rc_col_4 - rc_col_3 - one); - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16DiffIsBit3; -impl Default for Rc16DiffIsBit3 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16DiffIsBit3 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16DiffIsBit3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 49 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - _rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - let one = Felt252::one(); - - let rc_col_4 = current_step.get_aux_evaluation_element(0, 3); - let next_rc_col_1 = next_step.get_aux_evaluation_element(0, 0); - - transition_evaluations[self.constraint_idx()] = - (rc_col_4 - next_rc_col_1) * (next_rc_col_1 - rc_col_4 - one); - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -// rc16/perm/step0 -pub struct Rc16PermStep0_0; -impl Default for Rc16PermStep0_0 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16PermStep0_0 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16PermStep0_0 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 50 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let z = rap_challenges[2]; - let a1 = current_step.get_main_evaluation_element(0, 28); - - let ap1 = current_step.get_aux_evaluation_element(0, 1); - let p1 = current_step.get_aux_evaluation_element(0, 20); - let p0 = current_step.get_aux_evaluation_element(0, 19); - - transition_evaluations[self.constraint_idx()] = (z - ap1) * p1 - (z - a1) * p0; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16PermStep0_1; -impl Default for Rc16PermStep0_1 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16PermStep0_1 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16PermStep0_1 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 51 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let z = rap_challenges[2]; - - let a2 = current_step.get_main_evaluation_element(0, 29); - - let ap2 = current_step.get_aux_evaluation_element(0, 2); - let p2 = current_step.get_aux_evaluation_element(0, 21); - let p1 = current_step.get_aux_evaluation_element(0, 20); - - transition_evaluations[self.constraint_idx()] = (z - ap2) * p2 - (z - a2) * p1; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16PermStep0_2; -impl Default for Rc16PermStep0_2 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16PermStep0_2 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16PermStep0_2 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 52 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - - let z = rap_challenges[2]; - let a3 = current_step.get_main_evaluation_element(0, 35); - - let ap3 = current_step.get_aux_evaluation_element(0, 3); - let p3 = current_step.get_aux_evaluation_element(0, 22); - let p2 = current_step.get_aux_evaluation_element(0, 21); - - transition_evaluations[self.constraint_idx()] = (z - ap3) * p3 - (z - a3) * p2; - } - - fn end_exemptions(&self) -> usize { - 0 - } -} - -pub struct Rc16PermStep0_3; -impl Default for Rc16PermStep0_3 { - fn default() -> Self { - Self::new() - } -} - -impl Rc16PermStep0_3 { - pub fn new() -> Self { - Self - } -} - -impl TransitionConstraint for Rc16PermStep0_3 { - fn degree(&self) -> usize { - 2 - } - - fn constraint_idx(&self) -> usize { - 53 - } - - fn evaluate( - &self, - frame: &Frame, - transition_evaluations: &mut [Felt252], - _periodic_values: &[Felt252], - rap_challenges: &[Felt252], - ) { - let current_step = frame.get_evaluation_step(0); - let next_step = frame.get_evaluation_step(1); - - let z = rap_challenges[2]; - - let p3 = current_step.get_aux_evaluation_element(0, 22); - - let next_a0 = next_step.get_main_evaluation_element(0, 27); - let next_ap0 = next_step.get_aux_evaluation_element(0, 0); - - let next_p0 = next_step.get_aux_evaluation_element(0, 19); - - transition_evaluations[self.constraint_idx()] = - (z - next_ap0) * next_p0 - (z - next_a0) * p3; - } - - fn end_exemptions(&self) -> usize { - 1 - } -} - -fn frame_inst_size(step: &TableView) -> Felt252 { - let op1_val = step.get_main_evaluation_element(0, 2) - - Felt252::from(2) * step.get_main_evaluation_element(0, 3); - op1_val + Felt252::one() -} diff --git a/provers/cairo/src/wasm_wrappers.rs b/provers/cairo/src/wasm_wrappers.rs deleted file mode 100644 index 7ab9f3c14..000000000 --- a/provers/cairo/src/wasm_wrappers.rs +++ /dev/null @@ -1,73 +0,0 @@ -use super::air::CairoAIR; -use lambdaworks_math::field::element::FieldElement; -use lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::Stark252PrimeField; -use serde::{Deserialize, Serialize}; -use stark_platinum_prover::proof::options::ProofOptions; -use stark_platinum_prover::proof::options::SecurityLevel; -use stark_platinum_prover::transcript::StoneProverTranscript; -use stark_platinum_prover::verifier::{IsStarkVerifier, Verifier}; -use std::collections::HashMap; -use wasm_bindgen::prelude::wasm_bindgen; - -#[wasm_bindgen] -#[derive(Debug, Clone, Copy, Serialize, Deserialize, Eq, PartialEq, Hash)] -pub struct FE(FieldElement); - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct MemoryMap(HashMap); - -#[wasm_bindgen] -pub fn verify_cairo_proof_wasm(proof_bytes: &[u8], proof_options: &ProofOptions) -> bool { - let bytes = proof_bytes; - - // This logic is the same as main verify, with only error handling changing. In wasm, we simply return a false if the proof is invalid, instead of rising an error. - - // Proof len was stored as an u32, 4u8 needs to be read - let proof_len = u32::from_le_bytes(bytes[0..4].try_into().unwrap()) as usize; - - let bytes = &bytes[4..]; - if bytes.len() < proof_len { - return false; - } - - let Ok((proof, _)) = - bincode::serde::decode_from_slice(&bytes[0..proof_len], bincode::config::standard()) - else { - return false; - }; - let bytes = &bytes[proof_len..]; - - let Ok((pub_inputs, _)) = bincode::serde::decode_from_slice(bytes, bincode::config::standard()) - else { - return false; - }; - - Verifier::::verify( - &proof, - &pub_inputs, - proof_options, - StoneProverTranscript::new(&[]), - ) -} - -/// WASM Function for verifying a proof with default 100 bits of security -#[wasm_bindgen] -pub fn verify_cairo_proof_wasm_100_bits(proof_bytes: &[u8]) -> bool { - let proof_options = ProofOptions::new_secure(SecurityLevel::Conjecturable100Bits, 3); - verify_cairo_proof_wasm(proof_bytes, &proof_options) -} - -#[wasm_bindgen] -pub fn new_proof_options( - blowup_factor: u8, - fri_number_of_queries: usize, - coset_offset: usize, - grinding_factor: u8, -) -> ProofOptions { - ProofOptions { - blowup_factor, - fri_number_of_queries, - coset_offset: coset_offset as u64, - grinding_factor, - } -} diff --git a/provers/cairo/tests/wasm.rs b/provers/cairo/tests/wasm.rs deleted file mode 100644 index eb8fb6604..000000000 --- a/provers/cairo/tests/wasm.rs +++ /dev/null @@ -1,1238 +0,0 @@ -use wasm_bindgen_test::wasm_bindgen_test_configure; -wasm_bindgen_test_configure!(run_in_browser); - -#[cfg(feature = "wasm")] -use cairo_platinum_prover::wasm_wrappers::verify_cairo_proof_wasm; -#[cfg(feature = "wasm")] -use stark_platinum_prover::proof::options::ProofOptions; - -#[cfg(feature = "wasm")] -use wasm_bindgen_test::*; - -#[cfg(feature = "wasm")] -#[wasm_bindgen_test] -#[test] -fn test_prove_cairo1_program_wasm() { - let proof_options = ProofOptions::default_test_options(); - assert!(verify_cairo_proof_wasm(&PROOF, &proof_options)); -} - -// Test case is fibo5, with default test options -#[cfg(feature = "wasm")] -static PROOF: [u8; 25527] = [ - 189, 90, 0, 0, 64, 34, 150, 252, 123, 41, 36, 58, 219, 76, 25, 24, 145, 52, 128, 169, 121, 212, - 127, 31, 128, 230, 237, 60, 212, 165, 171, 81, 190, 191, 157, 241, 200, 1, 77, 31, 232, 212, - 215, 170, 34, 124, 137, 195, 171, 208, 228, 24, 74, 34, 237, 107, 135, 106, 205, 168, 33, 72, - 193, 202, 8, 15, 250, 12, 38, 185, 118, 32, 4, 121, 119, 154, 112, 215, 149, 181, 135, 19, 126, - 111, 29, 70, 31, 188, 18, 213, 57, 174, 39, 158, 20, 84, 21, 255, 108, 8, 130, 181, 210, 188, - 32, 6, 160, 9, 128, 25, 11, 118, 22, 20, 151, 71, 31, 175, 86, 16, 174, 137, 223, 219, 241, - 181, 35, 4, 196, 138, 91, 86, 112, 137, 228, 116, 81, 32, 7, 107, 149, 38, 34, 86, 96, 114, - 159, 34, 99, 135, 158, 58, 25, 31, 76, 30, 86, 40, 212, 147, 139, 195, 62, 99, 10, 139, 2, 32, - 214, 196, 32, 6, 108, 34, 191, 254, 254, 228, 247, 135, 134, 229, 235, 224, 97, 77, 120, 157, - 43, 153, 217, 41, 102, 201, 99, 134, 117, 228, 144, 48, 163, 25, 129, 32, 2, 20, 45, 228, 132, - 42, 246, 70, 86, 114, 189, 79, 91, 197, 193, 77, 249, 25, 48, 253, 126, 70, 191, 158, 197, 112, - 103, 222, 171, 146, 253, 45, 32, 7, 117, 162, 64, 207, 150, 67, 187, 96, 148, 96, 38, 49, 9, - 133, 44, 90, 236, 197, 169, 22, 115, 1, 96, 121, 62, 95, 14, 18, 245, 96, 28, 32, 5, 99, 63, - 92, 105, 2, 109, 50, 41, 189, 169, 18, 51, 142, 198, 244, 225, 45, 184, 128, 162, 195, 173, - 132, 26, 158, 29, 73, 185, 108, 189, 223, 32, 6, 177, 159, 174, 52, 129, 54, 161, 148, 222, - 212, 137, 25, 199, 99, 122, 112, 150, 220, 64, 81, 97, 214, 194, 13, 79, 14, 164, 220, 182, 94, - 240, 32, 7, 21, 63, 67, 83, 232, 93, 14, 9, 158, 191, 21, 234, 220, 250, 2, 20, 252, 77, 157, - 2, 107, 56, 219, 24, 198, 119, 137, 150, 248, 184, 108, 32, 6, 118, 104, 204, 170, 167, 72, 36, - 24, 28, 178, 178, 199, 153, 3, 48, 248, 109, 16, 177, 203, 221, 79, 51, 65, 123, 50, 17, 24, - 186, 245, 98, 32, 6, 53, 4, 218, 106, 98, 29, 135, 172, 151, 167, 87, 84, 29, 48, 173, 143, - 159, 203, 207, 109, 62, 43, 234, 243, 200, 173, 51, 81, 205, 214, 159, 32, 1, 192, 54, 174, - 176, 150, 192, 232, 159, 124, 165, 164, 227, 190, 10, 213, 99, 13, 175, 251, 178, 63, 130, 157, - 229, 200, 157, 4, 248, 245, 91, 170, 32, 3, 131, 77, 129, 155, 122, 112, 105, 14, 166, 108, 44, - 230, 88, 128, 192, 101, 208, 9, 193, 199, 170, 102, 165, 219, 33, 6, 149, 50, 190, 136, 4, 32, - 1, 166, 22, 90, 183, 236, 147, 229, 114, 124, 118, 30, 172, 157, 47, 152, 43, 185, 156, 176, - 233, 211, 41, 241, 244, 91, 35, 247, 220, 48, 167, 119, 32, 0, 143, 122, 153, 149, 158, 11, - 167, 120, 109, 143, 224, 180, 71, 224, 16, 242, 141, 173, 213, 78, 163, 226, 115, 12, 76, 130, - 51, 22, 181, 220, 175, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 2, 1, 253, 138, 34, 207, 195, 158, 101, 246, 72, 80, 69, 234, - 134, 69, 254, 0, 214, 200, 65, 117, 252, 210, 179, 241, 125, 139, 80, 132, 22, 88, 32, 5, 207, - 6, 122, 136, 121, 97, 74, 64, 92, 10, 82, 129, 253, 207, 93, 27, 141, 1, 155, 169, 154, 254, - 206, 37, 170, 143, 226, 127, 127, 197, 136, 32, 2, 82, 215, 180, 74, 233, 38, 140, 152, 162, - 68, 165, 53, 110, 9, 215, 1, 145, 213, 78, 167, 109, 84, 4, 109, 31, 245, 125, 198, 84, 65, - 158, 32, 6, 254, 118, 48, 225, 227, 141, 219, 18, 3, 186, 152, 178, 114, 191, 66, 55, 89, 219, - 95, 200, 151, 29, 176, 74, 41, 179, 109, 99, 230, 201, 88, 32, 6, 54, 190, 65, 189, 147, 32, - 77, 11, 90, 84, 204, 243, 122, 213, 92, 228, 209, 124, 145, 16, 62, 177, 252, 154, 93, 164, 93, - 254, 68, 192, 203, 32, 7, 146, 93, 121, 26, 128, 203, 73, 35, 188, 123, 51, 179, 189, 238, 11, - 106, 121, 76, 173, 19, 223, 23, 158, 122, 246, 192, 227, 134, 2, 231, 8, 32, 0, 158, 30, 24, - 198, 212, 205, 150, 208, 38, 174, 245, 134, 86, 168, 184, 120, 219, 209, 14, 217, 183, 243, - 240, 193, 102, 22, 97, 21, 230, 145, 150, 32, 4, 215, 231, 29, 42, 198, 22, 162, 226, 157, 128, - 71, 137, 216, 168, 228, 206, 159, 159, 52, 172, 88, 144, 103, 86, 202, 201, 230, 40, 78, 112, - 45, 32, 5, 235, 155, 127, 149, 142, 77, 54, 242, 17, 239, 182, 3, 107, 250, 74, 164, 113, 37, - 129, 249, 242, 46, 29, 220, 59, 254, 100, 15, 23, 32, 202, 32, 0, 100, 208, 10, 200, 88, 205, - 233, 28, 178, 96, 76, 200, 165, 11, 14, 9, 60, 200, 108, 74, 226, 251, 191, 116, 36, 106, 38, - 238, 105, 49, 59, 32, 3, 109, 137, 42, 78, 68, 171, 105, 86, 141, 182, 33, 18, 186, 138, 195, - 43, 158, 64, 240, 244, 44, 15, 82, 62, 95, 159, 208, 99, 128, 120, 166, 32, 6, 80, 221, 32, - 107, 188, 148, 20, 172, 97, 46, 213, 33, 96, 119, 194, 172, 209, 57, 171, 231, 161, 116, 77, - 146, 91, 127, 153, 116, 194, 6, 119, 32, 7, 95, 148, 33, 184, 38, 17, 124, 108, 165, 3, 157, - 11, 105, 123, 140, 78, 201, 252, 56, 201, 189, 40, 44, 160, 20, 181, 223, 97, 246, 63, 212, 32, - 4, 199, 196, 123, 36, 185, 76, 235, 127, 222, 243, 141, 18, 227, 51, 51, 179, 61, 186, 186, 17, - 65, 133, 204, 48, 129, 249, 79, 59, 212, 119, 134, 32, 1, 14, 184, 241, 108, 147, 105, 134, - 173, 126, 26, 113, 63, 210, 43, 210, 50, 231, 28, 98, 224, 126, 88, 254, 170, 63, 113, 191, - 174, 199, 229, 91, 32, 2, 188, 189, 236, 183, 2, 74, 99, 103, 10, 113, 112, 169, 116, 72, 218, - 15, 195, 180, 92, 244, 7, 8, 151, 187, 53, 116, 18, 145, 165, 235, 146, 32, 2, 213, 207, 119, - 50, 184, 15, 218, 181, 76, 123, 149, 88, 220, 220, 174, 163, 206, 82, 138, 209, 248, 253, 254, - 252, 104, 112, 41, 95, 243, 234, 85, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 254, 239, 253, 240, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 239, 255, 225, 32, 2, 58, 120, 103, 31, 144, 59, 36, 56, 216, 9, 143, 28, 152, 182, 24, - 101, 45, 40, 210, 92, 137, 3, 122, 137, 71, 129, 229, 131, 142, 200, 44, 32, 4, 95, 194, 144, - 22, 191, 76, 52, 100, 111, 16, 86, 25, 205, 60, 214, 40, 4, 73, 84, 53, 241, 111, 62, 89, 113, - 219, 34, 79, 171, 193, 213, 32, 4, 95, 194, 144, 22, 191, 76, 52, 100, 111, 16, 86, 25, 205, - 60, 214, 40, 4, 73, 84, 53, 241, 111, 62, 89, 113, 219, 34, 79, 171, 193, 213, 32, 4, 95, 194, - 144, 22, 191, 76, 52, 100, 111, 16, 86, 25, 205, 60, 214, 40, 4, 73, 84, 53, 241, 111, 62, 89, - 113, 219, 34, 79, 171, 193, 213, 32, 6, 170, 73, 20, 201, 41, 221, 95, 49, 88, 98, 198, 144, - 97, 178, 19, 20, 21, 54, 82, 199, 12, 45, 76, 215, 6, 123, 35, 238, 137, 202, 40, 32, 7, 100, - 98, 115, 53, 180, 216, 211, 207, 130, 160, 111, 216, 133, 121, 40, 24, 215, 122, 245, 214, 76, - 187, 71, 161, 160, 17, 97, 55, 180, 8, 5, 32, 2, 20, 170, 80, 81, 77, 23, 100, 85, 178, 255, - 127, 197, 138, 93, 120, 122, 114, 55, 153, 40, 18, 61, 181, 194, 255, 250, 174, 72, 182, 102, - 209, 32, 7, 20, 154, 141, 85, 62, 150, 185, 19, 107, 229, 104, 250, 70, 91, 203, 144, 9, 161, - 212, 234, 206, 29, 214, 118, 61, 199, 234, 111, 121, 255, 145, 32, 5, 113, 191, 41, 145, 51, - 220, 90, 222, 148, 12, 129, 249, 149, 236, 127, 207, 145, 201, 137, 53, 197, 218, 85, 9, 95, - 116, 43, 126, 1, 50, 243, 32, 7, 41, 143, 167, 119, 191, 45, 94, 57, 127, 51, 171, 183, 74, - 209, 143, 108, 123, 105, 127, 183, 37, 13, 103, 64, 232, 8, 200, 130, 138, 61, 78, 32, 7, 179, - 106, 203, 33, 8, 218, 190, 122, 33, 209, 80, 113, 38, 227, 184, 137, 24, 216, 11, 254, 221, - 197, 142, 70, 5, 141, 108, 0, 183, 75, 60, 32, 1, 117, 211, 84, 179, 151, 225, 227, 192, 48, - 144, 91, 223, 191, 221, 189, 250, 107, 130, 65, 174, 248, 46, 237, 4, 150, 1, 161, 15, 237, - 175, 140, 32, 7, 151, 193, 227, 109, 196, 148, 8, 12, 2, 93, 154, 254, 190, 168, 126, 115, 176, - 87, 244, 18, 245, 176, 255, 184, 74, 60, 134, 197, 64, 47, 198, 32, 1, 117, 234, 61, 180, 193, - 236, 53, 166, 68, 245, 7, 239, 133, 162, 169, 113, 184, 48, 142, 65, 35, 165, 252, 108, 157, - 51, 214, 79, 106, 127, 100, 32, 1, 55, 188, 132, 102, 25, 136, 86, 128, 254, 76, 150, 65, 68, - 67, 141, 141, 199, 5, 54, 5, 54, 193, 66, 219, 226, 231, 176, 237, 235, 86, 24, 32, 3, 13, 246, - 153, 18, 135, 58, 85, 177, 66, 112, 254, 233, 238, 154, 39, 78, 236, 149, 51, 145, 161, 115, - 190, 55, 59, 3, 153, 248, 255, 14, 59, 32, 4, 44, 148, 208, 135, 107, 26, 190, 55, 245, 96, - 224, 168, 146, 28, 132, 121, 112, 244, 136, 170, 187, 113, 14, 84, 158, 238, 144, 99, 64, 212, - 162, 32, 6, 3, 108, 124, 197, 209, 187, 234, 214, 106, 11, 99, 173, 24, 108, 50, 113, 93, 111, - 81, 184, 68, 126, 53, 149, 82, 4, 249, 241, 1, 38, 45, 32, 4, 99, 217, 80, 21, 33, 240, 160, - 192, 206, 148, 125, 201, 15, 226, 223, 205, 54, 196, 69, 238, 196, 211, 131, 106, 163, 155, 71, - 254, 69, 148, 35, 32, 2, 48, 20, 156, 33, 221, 241, 152, 186, 21, 217, 133, 210, 195, 96, 76, - 182, 89, 195, 57, 141, 140, 194, 34, 98, 73, 184, 74, 158, 222, 233, 204, 32, 2, 104, 146, 122, - 157, 155, 177, 23, 184, 43, 123, 16, 201, 28, 174, 245, 3, 129, 93, 122, 56, 72, 221, 119, 158, - 48, 136, 129, 156, 146, 129, 85, 32, 7, 204, 154, 228, 196, 116, 47, 11, 22, 136, 232, 70, 49, - 217, 80, 27, 27, 71, 148, 85, 106, 137, 239, 44, 60, 142, 255, 114, 199, 138, 131, 115, 32, 0, - 109, 148, 114, 107, 9, 10, 135, 133, 203, 14, 200, 143, 22, 176, 132, 91, 191, 120, 231, 4, 11, - 27, 29, 2, 144, 66, 74, 172, 180, 238, 173, 32, 5, 41, 106, 199, 66, 209, 86, 79, 26, 114, 96, - 115, 160, 206, 94, 45, 101, 109, 218, 61, 240, 250, 236, 254, 99, 11, 208, 173, 123, 237, 172, - 218, 32, 7, 195, 15, 52, 113, 31, 59, 106, 153, 94, 78, 59, 116, 234, 101, 79, 99, 50, 165, 71, - 164, 242, 93, 229, 173, 68, 76, 63, 130, 180, 245, 171, 32, 7, 178, 233, 172, 78, 145, 162, - 101, 232, 61, 41, 82, 127, 140, 193, 65, 50, 22, 164, 191, 140, 197, 45, 169, 27, 70, 249, 29, - 104, 25, 145, 54, 32, 5, 103, 27, 203, 24, 80, 17, 106, 37, 200, 66, 30, 240, 30, 10, 130, 161, - 220, 169, 53, 232, 88, 202, 248, 230, 100, 254, 37, 91, 86, 106, 130, 32, 1, 7, 154, 215, 176, - 200, 223, 248, 219, 75, 86, 84, 157, 153, 63, 218, 154, 146, 99, 255, 244, 68, 127, 59, 3, 133, - 63, 233, 75, 12, 125, 229, 32, 4, 162, 25, 132, 194, 188, 89, 153, 243, 148, 200, 111, 120, - 234, 187, 113, 250, 211, 203, 196, 216, 19, 241, 186, 152, 174, 93, 135, 96, 219, 84, 120, 32, - 3, 94, 57, 26, 147, 93, 208, 42, 251, 160, 44, 253, 234, 225, 221, 209, 83, 232, 56, 222, 73, - 86, 22, 34, 133, 66, 159, 217, 36, 198, 149, 248, 32, 1, 175, 28, 141, 73, 174, 232, 21, 125, - 208, 22, 126, 245, 112, 238, 232, 169, 244, 28, 111, 36, 171, 11, 17, 66, 161, 79, 236, 146, - 99, 74, 252, 32, 6, 105, 207, 161, 80, 227, 125, 57, 107, 219, 234, 242, 8, 57, 180, 6, 79, - 244, 114, 176, 90, 196, 160, 93, 93, 148, 250, 136, 178, 122, 77, 203, 32, 5, 170, 248, 163, - 232, 122, 43, 2, 147, 175, 63, 152, 67, 184, 111, 129, 199, 252, 147, 171, 35, 206, 159, 120, - 115, 29, 71, 80, 34, 233, 231, 67, 32, 5, 235, 92, 54, 78, 181, 54, 43, 197, 26, 242, 212, 164, - 133, 161, 32, 206, 244, 132, 107, 0, 119, 161, 192, 98, 107, 132, 45, 35, 61, 151, 241, 32, 1, - 52, 115, 199, 154, 130, 145, 138, 77, 44, 24, 92, 225, 232, 60, 191, 17, 133, 174, 225, 68, - 248, 253, 109, 190, 219, 85, 222, 106, 223, 199, 237, 32, 4, 65, 124, 175, 73, 120, 63, 43, 8, - 5, 100, 6, 79, 135, 103, 228, 149, 4, 66, 187, 228, 34, 215, 155, 81, 4, 227, 10, 152, 83, 210, - 90, 32, 2, 79, 92, 69, 142, 186, 27, 253, 104, 116, 175, 206, 98, 172, 37, 88, 202, 4, 207, 66, - 55, 197, 109, 23, 99, 221, 158, 135, 165, 106, 210, 221, 32, 2, 185, 239, 125, 115, 105, 23, - 36, 225, 46, 55, 153, 190, 215, 79, 62, 95, 252, 204, 25, 228, 81, 209, 96, 110, 51, 33, 214, - 59, 254, 17, 187, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 115, 185, 251, 251, 2, 194, 113, 34, 165, 158, 201, 2, 155, 58, - 231, 207, 183, 88, 168, 36, 176, 229, 83, 109, 5, 228, 104, 251, 149, 0, 169, 32, 0, 23, 30, - 73, 111, 138, 235, 54, 146, 59, 69, 100, 119, 174, 18, 9, 159, 47, 91, 41, 166, 49, 108, 197, - 98, 121, 163, 236, 57, 127, 71, 230, 32, 3, 135, 193, 17, 66, 204, 31, 13, 198, 104, 151, 87, - 201, 70, 48, 171, 93, 196, 213, 133, 72, 38, 70, 160, 168, 13, 131, 96, 7, 226, 139, 241, 32, - 0, 97, 102, 235, 176, 150, 14, 255, 3, 82, 45, 214, 73, 26, 71, 248, 125, 155, 45, 139, 124, - 80, 247, 214, 243, 124, 101, 179, 141, 154, 195, 162, 32, 6, 2, 0, 84, 32, 175, 214, 204, 21, - 56, 3, 253, 30, 16, 24, 127, 110, 182, 243, 196, 52, 84, 5, 188, 1, 231, 85, 219, 238, 138, - 212, 128, 32, 5, 41, 245, 43, 9, 88, 252, 140, 241, 50, 247, 88, 201, 134, 107, 10, 138, 185, - 129, 84, 20, 180, 247, 156, 48, 190, 41, 60, 144, 165, 148, 158, 32, 0, 128, 135, 202, 252, 45, - 176, 31, 143, 187, 108, 30, 148, 161, 37, 7, 111, 221, 225, 16, 14, 94, 38, 96, 113, 129, 116, - 34, 2, 216, 200, 159, 32, 6, 227, 189, 138, 109, 9, 174, 87, 133, 125, 196, 131, 133, 203, 175, - 233, 36, 232, 231, 106, 46, 254, 207, 133, 169, 31, 102, 114, 167, 133, 218, 49, 32, 0, 32, 35, - 156, 126, 100, 217, 21, 5, 4, 77, 161, 75, 187, 104, 12, 133, 33, 8, 191, 243, 252, 247, 101, - 117, 215, 71, 248, 98, 127, 216, 63, 32, 0, 115, 15, 50, 93, 55, 31, 152, 56, 32, 35, 75, 80, - 60, 95, 38, 34, 171, 102, 52, 111, 219, 210, 246, 116, 152, 47, 203, 146, 37, 25, 223, 32, 6, - 14, 95, 6, 196, 226, 244, 244, 239, 116, 1, 198, 58, 8, 219, 245, 5, 138, 203, 23, 67, 23, 84, - 232, 149, 164, 19, 227, 167, 195, 146, 206, 32, 7, 208, 64, 211, 244, 126, 177, 122, 187, 50, - 96, 64, 242, 176, 168, 204, 138, 69, 128, 232, 60, 106, 201, 93, 194, 23, 92, 253, 161, 90, 49, - 208, 32, 6, 0, 189, 207, 176, 242, 9, 66, 167, 122, 73, 10, 123, 39, 169, 19, 60, 103, 43, 164, - 118, 82, 94, 190, 127, 214, 40, 39, 73, 4, 49, 45, 32, 6, 144, 193, 234, 226, 255, 169, 98, - 233, 235, 134, 35, 35, 19, 131, 173, 15, 201, 217, 186, 130, 0, 141, 35, 195, 40, 10, 100, 18, - 7, 101, 159, 32, 2, 81, 151, 245, 177, 252, 226, 204, 173, 85, 24, 4, 95, 205, 23, 25, 251, 17, - 156, 214, 90, 28, 206, 86, 238, 192, 134, 49, 32, 50, 220, 6, 32, 1, 244, 205, 177, 90, 120, - 13, 60, 46, 86, 37, 234, 225, 106, 184, 139, 212, 169, 168, 244, 158, 52, 14, 135, 165, 147, - 70, 141, 255, 230, 132, 71, 32, 5, 82, 227, 139, 2, 40, 141, 165, 126, 161, 195, 112, 160, 172, - 14, 82, 222, 80, 169, 222, 77, 78, 246, 49, 169, 210, 143, 72, 95, 111, 245, 232, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 7, 255, 255, 255, 254, 239, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 225, 32, 0, 85, 163, 31, 56, - 23, 227, 210, 35, 188, 95, 188, 220, 211, 243, 28, 54, 224, 187, 98, 102, 204, 33, 75, 193, - 122, 112, 91, 160, 41, 141, 89, 32, 4, 82, 203, 137, 115, 201, 150, 191, 166, 99, 222, 69, 222, - 149, 93, 212, 145, 31, 93, 65, 137, 126, 195, 126, 14, 129, 233, 26, 176, 49, 82, 127, 32, 4, - 82, 203, 137, 115, 201, 150, 191, 166, 99, 222, 69, 222, 149, 93, 212, 145, 31, 93, 65, 137, - 126, 195, 126, 14, 129, 233, 26, 176, 49, 82, 127, 32, 4, 82, 203, 137, 115, 201, 150, 191, - 166, 99, 222, 69, 222, 149, 93, 212, 145, 31, 93, 65, 137, 126, 195, 126, 14, 129, 233, 26, - 176, 49, 82, 127, 32, 1, 233, 68, 16, 26, 231, 26, 13, 224, 136, 35, 186, 24, 94, 164, 6, 24, - 215, 201, 121, 43, 164, 110, 63, 246, 152, 162, 110, 47, 24, 96, 170, 32, 3, 68, 254, 241, 184, - 31, 136, 240, 123, 184, 28, 56, 127, 116, 64, 6, 24, 157, 254, 225, 103, 224, 242, 60, 247, - 114, 65, 92, 85, 90, 123, 96, 32, 1, 10, 116, 233, 164, 250, 215, 87, 154, 28, 170, 97, 52, - 177, 105, 39, 86, 87, 202, 11, 143, 8, 136, 89, 112, 142, 108, 124, 64, 80, 51, 114, 32, 4, 21, - 88, 73, 189, 248, 220, 154, 103, 98, 52, 113, 214, 220, 147, 30, 108, 56, 18, 71, 125, 178, - 247, 106, 67, 91, 72, 195, 182, 228, 234, 65, 32, 3, 116, 200, 211, 20, 250, 150, 46, 138, 158, - 89, 97, 125, 50, 0, 184, 211, 5, 226, 38, 227, 131, 150, 173, 187, 92, 236, 2, 129, 165, 162, - 90, 32, 7, 246, 141, 58, 113, 220, 125, 16, 230, 82, 174, 150, 52, 27, 174, 148, 207, 155, 224, - 31, 47, 161, 188, 93, 245, 241, 130, 244, 30, 255, 124, 38, 32, 0, 135, 49, 230, 77, 253, 147, - 32, 220, 149, 28, 235, 161, 217, 174, 36, 68, 19, 159, 36, 83, 233, 51, 51, 186, 156, 127, 58, - 125, 30, 96, 122, 32, 7, 240, 8, 218, 58, 141, 142, 100, 113, 185, 80, 234, 52, 191, 204, 177, - 223, 215, 24, 78, 11, 179, 213, 100, 59, 147, 142, 164, 74, 151, 202, 69, 32, 1, 140, 105, 137, - 196, 179, 164, 211, 17, 24, 142, 88, 14, 86, 92, 225, 103, 24, 147, 40, 187, 235, 183, 55, 67, - 206, 227, 76, 204, 85, 184, 0, 32, 1, 135, 21, 139, 177, 98, 238, 207, 121, 193, 232, 92, 193, - 84, 9, 31, 216, 230, 39, 94, 172, 170, 159, 131, 182, 200, 138, 149, 14, 209, 206, 112, 32, 7, - 11, 30, 72, 239, 66, 212, 25, 127, 66, 185, 63, 122, 54, 102, 90, 179, 208, 114, 222, 205, 233, - 100, 158, 102, 46, 172, 22, 211, 50, 169, 25, 32, 5, 248, 84, 239, 52, 205, 176, 109, 244, 251, - 122, 75, 246, 35, 127, 128, 70, 49, 32, 115, 224, 197, 164, 76, 145, 73, 103, 249, 203, 3, 8, - 34, 32, 3, 182, 251, 2, 76, 2, 142, 40, 178, 93, 156, 100, 212, 170, 206, 213, 16, 219, 191, - 26, 30, 42, 165, 137, 226, 93, 53, 48, 171, 66, 68, 90, 32, 2, 86, 24, 111, 255, 37, 44, 8, 32, - 247, 101, 8, 1, 159, 181, 86, 5, 193, 11, 78, 116, 183, 128, 190, 11, 37, 228, 66, 246, 42, 97, - 110, 32, 4, 117, 243, 32, 94, 173, 84, 240, 137, 39, 233, 131, 234, 166, 202, 0, 236, 27, 207, - 132, 222, 66, 210, 98, 108, 171, 189, 246, 230, 47, 41, 26, 32, 1, 199, 163, 213, 238, 169, - 173, 178, 245, 231, 214, 11, 255, 224, 62, 111, 59, 172, 254, 158, 85, 74, 156, 10, 152, 165, - 56, 235, 116, 4, 108, 183, 32, 2, 170, 60, 84, 163, 133, 239, 248, 198, 183, 45, 151, 159, 73, - 224, 53, 124, 40, 72, 25, 104, 121, 11, 35, 168, 248, 70, 79, 138, 210, 80, 221, 32, 1, 40, 99, - 5, 136, 12, 170, 142, 106, 37, 14, 66, 49, 32, 54, 247, 127, 114, 170, 81, 249, 107, 55, 134, - 56, 187, 193, 158, 240, 253, 108, 80, 32, 5, 182, 30, 113, 205, 238, 106, 8, 90, 89, 34, 99, - 100, 150, 116, 249, 10, 180, 155, 11, 70, 101, 71, 184, 180, 231, 244, 181, 56, 64, 98, 130, - 59, 2, 81, 40, 194, 94, 50, 95, 48, 102, 131, 97, 175, 28, 49, 71, 186, 139, 175, 98, 168, 189, - 34, 246, 11, 62, 140, 164, 7, 236, 183, 220, 165, 23, 2, 32, 3, 59, 152, 143, 8, 230, 240, 130, - 56, 157, 110, 161, 54, 201, 38, 88, 116, 51, 223, 114, 113, 15, 169, 45, 163, 3, 70, 102, 109, - 19, 244, 104, 32, 0, 186, 60, 10, 233, 92, 232, 39, 29, 239, 122, 223, 0, 178, 158, 152, 250, - 205, 162, 150, 109, 186, 214, 94, 94, 177, 99, 135, 250, 5, 221, 183, 5, 191, 197, 255, 113, - 37, 76, 111, 0, 114, 147, 242, 154, 7, 31, 117, 190, 38, 136, 123, 37, 94, 212, 249, 107, 104, - 80, 4, 117, 47, 28, 126, 105, 100, 93, 30, 7, 47, 90, 129, 239, 158, 228, 34, 172, 127, 112, - 154, 50, 12, 80, 235, 240, 221, 100, 64, 218, 90, 178, 60, 166, 125, 246, 131, 68, 196, 7, 41, - 61, 53, 191, 99, 192, 168, 51, 141, 240, 195, 73, 136, 178, 77, 77, 171, 230, 34, 95, 63, 72, - 43, 244, 57, 163, 39, 196, 98, 156, 57, 136, 29, 175, 0, 243, 46, 77, 13, 125, 6, 114, 48, 71, - 249, 99, 8, 128, 225, 34, 110, 147, 55, 27, 63, 175, 194, 217, 227, 77, 218, 94, 36, 156, 0, - 179, 231, 72, 31, 255, 38, 212, 167, 10, 174, 191, 110, 250, 162, 207, 161, 168, 79, 19, 104, - 168, 119, 188, 151, 153, 175, 9, 106, 34, 32, 7, 89, 44, 91, 159, 254, 36, 38, 170, 34, 219, - 45, 217, 23, 164, 181, 224, 3, 112, 229, 190, 172, 251, 223, 99, 32, 86, 157, 216, 159, 150, - 134, 3, 5, 6, 246, 179, 126, 106, 191, 68, 175, 91, 52, 134, 173, 220, 51, 251, 208, 40, 255, - 118, 102, 190, 251, 93, 123, 255, 212, 245, 224, 113, 116, 137, 206, 87, 57, 244, 148, 152, 0, - 128, 157, 16, 56, 116, 99, 227, 198, 250, 122, 186, 236, 42, 50, 76, 9, 83, 241, 89, 4, 230, - 27, 247, 214, 211, 214, 51, 101, 38, 74, 72, 251, 114, 60, 34, 69, 106, 109, 151, 42, 19, 129, - 17, 81, 158, 13, 73, 210, 188, 86, 240, 151, 220, 230, 52, 216, 38, 80, 103, 198, 152, 20, 115, - 160, 242, 252, 109, 20, 133, 222, 45, 134, 88, 23, 53, 141, 242, 248, 15, 11, 233, 149, 220, 8, - 24, 184, 75, 145, 67, 83, 65, 38, 70, 80, 71, 140, 74, 31, 138, 79, 5, 128, 132, 58, 43, 187, - 35, 22, 21, 18, 103, 216, 32, 162, 130, 102, 175, 17, 149, 195, 87, 73, 219, 140, 227, 135, - 197, 119, 17, 126, 237, 56, 57, 61, 0, 204, 10, 66, 81, 3, 129, 39, 95, 45, 65, 40, 41, 56, 45, - 134, 5, 204, 210, 97, 78, 5, 38, 124, 9, 101, 142, 27, 84, 214, 74, 16, 193, 162, 40, 79, 83, - 118, 130, 252, 144, 216, 117, 20, 36, 197, 120, 236, 91, 6, 122, 117, 5, 112, 130, 41, 45, 144, - 152, 96, 9, 196, 129, 48, 16, 255, 225, 194, 146, 230, 3, 53, 10, 11, 140, 129, 168, 180, 93, - 205, 17, 231, 9, 178, 140, 111, 27, 159, 166, 190, 249, 104, 99, 61, 107, 11, 219, 187, 68, - 171, 121, 0, 216, 199, 162, 138, 56, 29, 97, 137, 103, 186, 71, 26, 99, 115, 20, 70, 113, 12, - 29, 203, 98, 47, 50, 42, 188, 136, 157, 159, 108, 58, 187, 27, 127, 128, 169, 115, 229, 0, 246, - 172, 193, 39, 151, 134, 244, 58, 180, 120, 43, 49, 21, 2, 128, 38, 87, 184, 224, 109, 146, 99, - 207, 186, 154, 49, 150, 19, 204, 201, 19, 234, 99, 213, 91, 151, 9, 196, 58, 87, 229, 152, 4, - 4, 126, 143, 216, 213, 112, 139, 15, 201, 95, 2, 36, 217, 63, 3, 105, 156, 95, 192, 51, 127, - 107, 106, 121, 210, 131, 78, 183, 183, 69, 25, 120, 44, 193, 12, 209, 45, 134, 135, 222, 241, - 166, 46, 114, 171, 24, 250, 218, 189, 180, 56, 88, 31, 14, 10, 88, 91, 149, 46, 96, 221, 211, - 22, 124, 81, 167, 63, 169, 248, 220, 97, 31, 195, 229, 74, 177, 27, 61, 77, 171, 136, 91, 82, - 220, 194, 82, 248, 99, 188, 73, 122, 16, 71, 237, 134, 1, 196, 199, 25, 78, 137, 117, 178, 73, - 206, 207, 21, 100, 255, 225, 230, 110, 174, 195, 238, 33, 12, 156, 193, 51, 0, 240, 58, 209, - 103, 211, 116, 115, 3, 170, 100, 105, 36, 129, 157, 209, 253, 124, 53, 241, 6, 182, 23, 7, 159, - 88, 62, 158, 115, 188, 253, 2, 170, 17, 70, 168, 52, 61, 68, 51, 253, 196, 42, 0, 254, 183, - 240, 250, 12, 238, 185, 121, 26, 184, 50, 44, 34, 3, 2, 220, 217, 35, 28, 228, 108, 234, 188, - 173, 162, 148, 6, 20, 215, 109, 161, 59, 133, 175, 155, 138, 223, 67, 58, 208, 208, 57, 184, - 255, 208, 223, 253, 96, 77, 82, 94, 162, 149, 202, 120, 84, 168, 8, 120, 5, 21, 2, 228, 224, - 251, 183, 51, 241, 205, 70, 71, 174, 39, 70, 44, 98, 213, 82, 247, 7, 238, 179, 81, 161, 63, - 253, 211, 240, 78, 26, 76, 138, 88, 174, 238, 69, 131, 238, 10, 18, 9, 29, 216, 100, 199, 207, - 12, 176, 207, 8, 112, 14, 218, 7, 227, 62, 90, 189, 46, 251, 64, 37, 198, 110, 193, 8, 5, 32, - 2, 53, 177, 181, 73, 30, 205, 173, 220, 83, 85, 163, 122, 76, 72, 209, 174, 204, 185, 68, 148, - 87, 57, 211, 21, 124, 77, 1, 138, 67, 232, 204, 32, 5, 190, 49, 41, 170, 42, 123, 189, 134, 59, - 109, 96, 132, 2, 113, 248, 182, 19, 95, 37, 38, 246, 165, 169, 167, 77, 234, 132, 114, 252, - 193, 202, 32, 4, 99, 225, 118, 96, 244, 206, 204, 17, 221, 132, 21, 229, 37, 141, 247, 211, 4, - 68, 142, 191, 195, 88, 152, 220, 88, 76, 4, 197, 177, 12, 214, 32, 5, 38, 255, 173, 131, 70, - 110, 116, 26, 128, 12, 98, 202, 124, 252, 80, 65, 8, 229, 49, 246, 78, 241, 67, 60, 23, 64, - 185, 65, 39, 206, 81, 32, 4, 25, 69, 22, 53, 127, 102, 201, 107, 148, 46, 230, 100, 85, 108, - 147, 141, 9, 174, 163, 116, 96, 182, 151, 135, 10, 113, 114, 236, 245, 181, 238, 5, 6, 35, 206, - 103, 148, 205, 117, 76, 61, 12, 48, 23, 5, 242, 56, 0, 215, 228, 225, 136, 53, 59, 169, 81, 8, - 40, 155, 103, 197, 99, 235, 16, 209, 178, 57, 5, 119, 238, 168, 13, 118, 11, 238, 238, 224, - 190, 249, 62, 193, 98, 60, 71, 89, 220, 228, 201, 68, 103, 220, 150, 109, 187, 47, 224, 77, - 196, 7, 66, 181, 5, 42, 122, 97, 187, 255, 117, 22, 153, 101, 77, 11, 139, 70, 191, 8, 251, 29, - 151, 211, 11, 0, 186, 240, 214, 153, 111, 90, 88, 71, 125, 201, 195, 48, 92, 86, 191, 88, 229, - 232, 219, 36, 59, 39, 114, 20, 132, 73, 45, 70, 209, 110, 10, 29, 36, 145, 114, 251, 67, 187, - 198, 56, 212, 81, 250, 16, 79, 103, 92, 154, 98, 38, 219, 99, 170, 32, 195, 125, 84, 232, 191, - 119, 194, 156, 205, 244, 79, 241, 78, 89, 141, 126, 26, 205, 114, 67, 180, 106, 213, 33, 106, - 197, 243, 69, 119, 34, 222, 128, 69, 79, 102, 182, 187, 255, 109, 118, 158, 221, 63, 140, 221, - 181, 100, 171, 5, 133, 145, 42, 78, 125, 28, 43, 70, 42, 186, 177, 41, 99, 205, 160, 88, 110, - 62, 192, 104, 20, 151, 182, 248, 160, 121, 133, 52, 4, 160, 118, 246, 116, 92, 46, 138, 126, - 248, 114, 8, 31, 247, 96, 127, 173, 15, 249, 167, 220, 38, 136, 204, 21, 6, 121, 161, 160, 170, - 182, 226, 186, 169, 22, 163, 69, 162, 168, 54, 117, 238, 54, 206, 179, 27, 90, 253, 221, 89, - 105, 212, 143, 173, 228, 71, 158, 186, 45, 166, 56, 3, 126, 48, 100, 210, 124, 189, 23, 14, - 128, 47, 97, 219, 227, 61, 143, 51, 202, 139, 93, 234, 28, 241, 172, 82, 17, 137, 229, 105, - 116, 130, 254, 8, 172, 3, 64, 131, 41, 219, 198, 75, 234, 228, 214, 85, 172, 171, 128, 249, - 187, 230, 112, 23, 37, 20, 157, 7, 27, 41, 84, 224, 191, 3, 23, 75, 240, 27, 100, 70, 210, 195, - 4, 191, 241, 3, 182, 94, 188, 246, 181, 59, 105, 212, 62, 227, 163, 12, 135, 24, 51, 112, 25, - 199, 64, 13, 77, 147, 139, 80, 0, 92, 130, 148, 26, 17, 247, 231, 121, 216, 41, 3, 10, 252, - 187, 119, 114, 164, 108, 234, 49, 175, 234, 231, 41, 45, 30, 39, 1, 190, 145, 201, 15, 8, 22, - 55, 53, 139, 155, 53, 18, 168, 188, 29, 162, 181, 3, 207, 53, 159, 91, 89, 96, 109, 77, 124, - 29, 240, 31, 46, 218, 129, 77, 115, 141, 91, 102, 234, 124, 198, 244, 147, 73, 94, 30, 79, 130, - 91, 218, 2, 130, 225, 38, 52, 218, 233, 69, 30, 157, 212, 66, 234, 171, 133, 143, 124, 183, 11, - 235, 31, 177, 3, 204, 32, 166, 100, 39, 193, 38, 248, 52, 4, 129, 217, 9, 220, 182, 49, 251, - 39, 107, 211, 0, 245, 201, 107, 242, 143, 71, 121, 51, 249, 165, 46, 23, 128, 11, 61, 175, 105, - 39, 37, 155, 204, 121, 212, 38, 230, 164, 115, 57, 156, 245, 171, 246, 232, 129, 6, 254, 141, - 215, 29, 141, 58, 47, 66, 43, 4, 254, 39, 139, 195, 145, 92, 32, 238, 239, 240, 50, 213, 218, - 68, 133, 46, 151, 110, 52, 2, 169, 49, 135, 165, 218, 89, 49, 237, 210, 243, 2, 14, 84, 56, 39, - 228, 229, 73, 77, 195, 22, 26, 100, 255, 181, 102, 59, 30, 163, 16, 139, 27, 85, 234, 67, 146, - 230, 156, 100, 127, 246, 127, 171, 148, 223, 151, 248, 153, 169, 41, 238, 236, 5, 236, 194, - 181, 156, 241, 35, 232, 9, 159, 4, 166, 114, 64, 17, 238, 81, 45, 149, 246, 230, 19, 206, 5, - 32, 5, 11, 127, 120, 224, 216, 11, 231, 157, 196, 26, 184, 246, 76, 29, 50, 215, 189, 157, 230, - 11, 54, 160, 49, 108, 231, 52, 99, 92, 194, 102, 207, 32, 1, 214, 182, 1, 138, 8, 244, 88, 230, - 8, 201, 161, 57, 243, 99, 19, 79, 63, 229, 54, 218, 119, 91, 204, 48, 115, 27, 238, 119, 64, - 172, 118, 32, 4, 207, 122, 49, 125, 13, 117, 161, 85, 171, 186, 253, 30, 163, 122, 5, 237, 245, - 144, 169, 104, 212, 7, 140, 51, 160, 138, 148, 16, 34, 249, 195, 32, 0, 71, 172, 162, 180, 200, - 209, 207, 156, 53, 1, 127, 200, 71, 88, 190, 236, 124, 110, 38, 123, 155, 251, 231, 114, 116, - 156, 53, 89, 208, 61, 151, 32, 4, 113, 153, 32, 192, 100, 22, 16, 201, 77, 239, 20, 86, 1, 235, - 53, 150, 98, 235, 96, 18, 233, 179, 164, 25, 193, 63, 21, 122, 3, 248, 105, 5, 6, 164, 12, 33, - 111, 122, 156, 1, 168, 199, 62, 164, 37, 109, 13, 28, 3, 127, 52, 192, 217, 20, 217, 54, 30, - 87, 115, 28, 245, 103, 74, 204, 0, 33, 202, 205, 4, 20, 17, 50, 16, 132, 83, 34, 132, 92, 235, - 201, 102, 52, 188, 200, 76, 18, 228, 92, 83, 175, 155, 103, 228, 215, 118, 159, 182, 42, 16, - 72, 162, 176, 102, 176, 177, 203, 127, 144, 107, 144, 163, 132, 11, 78, 241, 164, 167, 58, 193, - 114, 216, 171, 102, 38, 70, 53, 126, 61, 191, 34, 147, 34, 168, 7, 171, 42, 57, 249, 70, 123, - 175, 213, 73, 149, 142, 114, 23, 172, 114, 124, 202, 224, 28, 255, 135, 221, 159, 60, 24, 20, - 74, 200, 160, 22, 80, 246, 8, 128, 255, 119, 25, 125, 123, 242, 124, 209, 136, 143, 121, 34, - 111, 211, 122, 132, 110, 158, 250, 151, 69, 95, 234, 251, 130, 26, 205, 114, 67, 180, 106, 213, - 33, 106, 197, 243, 69, 119, 34, 222, 128, 69, 79, 102, 182, 187, 255, 109, 118, 158, 221, 63, - 140, 221, 181, 100, 171, 5, 76, 4, 146, 12, 139, 155, 4, 69, 46, 236, 79, 234, 143, 225, 193, - 76, 161, 84, 99, 142, 60, 88, 70, 75, 192, 217, 64, 11, 133, 46, 61, 183, 94, 146, 82, 29, 91, - 253, 170, 49, 236, 176, 134, 51, 185, 95, 198, 253, 19, 65, 164, 204, 219, 223, 36, 211, 74, - 208, 80, 100, 57, 142, 168, 132, 37, 147, 49, 205, 88, 172, 2, 224, 153, 28, 130, 48, 63, 67, - 23, 141, 110, 169, 137, 140, 14, 158, 178, 115, 42, 63, 15, 138, 144, 192, 134, 183, 2, 97, - 142, 39, 229, 55, 34, 94, 78, 5, 218, 84, 0, 30, 78, 76, 82, 4, 220, 16, 244, 123, 162, 2, 206, - 104, 149, 68, 211, 41, 53, 120, 198, 75, 234, 228, 214, 85, 172, 171, 128, 249, 187, 230, 112, - 23, 37, 20, 157, 7, 27, 41, 84, 224, 191, 3, 23, 75, 240, 27, 100, 70, 210, 195, 4, 36, 147, - 74, 215, 10, 150, 175, 201, 114, 187, 212, 216, 113, 108, 70, 126, 123, 34, 249, 1, 16, 138, - 44, 152, 22, 64, 197, 6, 214, 137, 190, 124, 209, 146, 155, 107, 173, 13, 115, 125, 79, 120, - 64, 145, 109, 4, 128, 230, 136, 148, 180, 64, 244, 246, 189, 144, 211, 133, 148, 22, 165, 229, - 189, 148, 245, 16, 104, 133, 160, 196, 74, 85, 185, 148, 61, 92, 177, 127, 14, 181, 231, 188, - 46, 27, 197, 25, 218, 197, 52, 57, 15, 211, 31, 26, 193, 124, 198, 244, 147, 73, 94, 30, 79, - 130, 91, 218, 2, 130, 225, 38, 52, 218, 233, 69, 30, 157, 212, 66, 234, 171, 133, 143, 124, - 183, 11, 235, 31, 177, 3, 181, 87, 26, 195, 234, 251, 110, 37, 94, 116, 176, 226, 137, 38, 150, - 183, 154, 99, 204, 62, 251, 0, 160, 251, 54, 167, 246, 16, 125, 152, 175, 87, 96, 226, 24, 189, - 180, 160, 122, 77, 21, 164, 175, 149, 249, 178, 201, 78, 33, 211, 7, 235, 1, 46, 34, 226, 21, - 209, 136, 255, 205, 21, 88, 139, 43, 4, 254, 39, 139, 195, 145, 92, 32, 238, 239, 240, 50, 213, - 218, 68, 133, 46, 151, 110, 52, 2, 169, 49, 135, 165, 218, 89, 49, 237, 210, 243, 2, 22, 16, - 32, 133, 38, 144, 148, 13, 159, 247, 18, 246, 110, 7, 144, 92, 69, 243, 171, 15, 68, 175, 124, - 39, 1, 27, 129, 52, 118, 71, 249, 245, 148, 223, 151, 248, 153, 169, 41, 238, 236, 5, 236, 194, - 181, 156, 241, 35, 232, 9, 159, 4, 166, 114, 64, 17, 238, 81, 45, 149, 246, 230, 19, 206, 5, - 32, 0, 229, 232, 96, 40, 27, 42, 229, 74, 187, 121, 137, 94, 87, 197, 134, 9, 128, 187, 209, - 125, 112, 130, 153, 34, 103, 150, 223, 78, 208, 76, 194, 32, 1, 100, 26, 54, 125, 116, 61, 194, - 159, 148, 251, 27, 155, 109, 210, 52, 127, 174, 154, 134, 79, 0, 141, 136, 16, 13, 211, 200, - 65, 58, 146, 239, 32, 7, 6, 136, 117, 146, 55, 105, 142, 209, 136, 219, 203, 115, 223, 180, - 210, 28, 11, 196, 55, 79, 90, 201, 103, 72, 12, 59, 45, 112, 201, 24, 65, 32, 0, 7, 94, 141, - 111, 191, 0, 195, 202, 200, 119, 6, 132, 212, 134, 216, 57, 227, 2, 221, 200, 201, 178, 143, - 58, 84, 219, 80, 220, 2, 253, 92, 32, 1, 50, 62, 152, 210, 206, 241, 144, 59, 40, 86, 111, 87, - 191, 90, 95, 229, 37, 203, 207, 141, 0, 20, 107, 249, 224, 98, 219, 39, 215, 89, 68, 3, 7, 71, - 144, 201, 240, 215, 250, 18, 240, 139, 173, 118, 113, 1, 120, 216, 213, 149, 8, 143, 89, 203, - 46, 33, 53, 71, 53, 253, 178, 194, 46, 59, 100, 171, 107, 164, 145, 127, 127, 217, 45, 10, 226, - 211, 248, 68, 149, 90, 192, 188, 192, 30, 254, 73, 35, 168, 255, 180, 188, 48, 68, 197, 148, - 222, 213, 42, 119, 202, 24, 60, 23, 71, 111, 65, 143, 210, 93, 54, 41, 77, 47, 122, 249, 201, - 154, 44, 97, 221, 116, 227, 181, 225, 50, 142, 87, 197, 106, 67, 105, 202, 95, 192, 177, 11, - 247, 91, 10, 64, 41, 240, 160, 50, 16, 165, 50, 96, 148, 30, 52, 10, 84, 26, 209, 100, 142, 24, - 51, 60, 35, 69, 6, 89, 219, 68, 130, 201, 173, 86, 12, 163, 244, 36, 211, 115, 211, 9, 223, - 146, 68, 41, 67, 173, 118, 97, 81, 9, 162, 13, 100, 154, 99, 129, 111, 221, 39, 86, 255, 239, - 138, 10, 47, 174, 101, 145, 166, 252, 152, 243, 80, 232, 77, 7, 203, 91, 247, 4, 116, 31, 134, - 174, 248, 93, 33, 95, 169, 207, 128, 27, 89, 1, 160, 211, 197, 106, 105, 8, 18, 198, 172, 47, - 142, 177, 111, 50, 53, 251, 44, 163, 208, 234, 221, 23, 2, 131, 243, 7, 71, 144, 201, 240, 215, - 250, 18, 240, 139, 173, 118, 113, 1, 120, 216, 213, 149, 8, 143, 89, 203, 46, 33, 53, 71, 53, - 253, 178, 194, 46, 59, 100, 171, 107, 164, 145, 127, 127, 217, 45, 10, 226, 211, 248, 68, 149, - 90, 192, 188, 192, 30, 254, 73, 35, 168, 255, 180, 188, 48, 68, 197, 148, 222, 213, 42, 119, - 202, 24, 60, 23, 71, 111, 65, 143, 210, 93, 54, 41, 77, 47, 122, 249, 201, 154, 44, 97, 221, - 116, 227, 181, 225, 50, 142, 87, 197, 106, 67, 105, 202, 95, 192, 177, 11, 247, 91, 10, 64, 41, - 240, 160, 50, 16, 165, 50, 96, 148, 30, 52, 10, 84, 26, 209, 100, 142, 24, 51, 60, 35, 69, 6, - 89, 219, 68, 130, 201, 173, 86, 12, 163, 244, 36, 211, 115, 211, 9, 223, 146, 68, 41, 67, 173, - 118, 97, 81, 9, 162, 13, 100, 154, 99, 129, 111, 221, 39, 86, 255, 239, 138, 10, 47, 174, 101, - 145, 166, 252, 152, 243, 80, 232, 77, 7, 203, 91, 247, 4, 116, 31, 134, 174, 248, 93, 33, 95, - 169, 207, 128, 27, 89, 1, 160, 211, 197, 106, 105, 8, 18, 198, 172, 47, 142, 177, 111, 50, 53, - 251, 44, 163, 208, 234, 221, 23, 2, 131, 243, 2, 32, 0, 121, 56, 250, 191, 145, 92, 188, 216, - 190, 101, 171, 195, 113, 99, 119, 186, 15, 113, 37, 206, 159, 148, 1, 23, 162, 196, 34, 66, - 103, 235, 2, 32, 1, 185, 21, 77, 118, 124, 60, 175, 74, 130, 102, 105, 31, 124, 163, 66, 180, - 173, 28, 124, 14, 110, 11, 98, 167, 60, 140, 179, 22, 255, 254, 168, 2, 32, 7, 93, 221, 51, - 199, 202, 203, 104, 105, 110, 183, 155, 74, 106, 124, 166, 229, 248, 123, 245, 231, 137, 153, - 69, 29, 164, 232, 54, 185, 177, 144, 156, 32, 6, 92, 247, 229, 32, 239, 44, 49, 110, 136, 183, - 170, 109, 161, 234, 43, 34, 77, 148, 180, 29, 121, 194, 196, 241, 24, 8, 254, 84, 31, 188, 206, - 8, 194, 103, 122, 106, 133, 250, 174, 125, 151, 130, 221, 8, 187, 134, 62, 93, 238, 46, 68, 61, - 167, 238, 72, 165, 138, 70, 15, 221, 227, 108, 159, 211, 131, 70, 125, 230, 181, 220, 27, 253, - 58, 252, 147, 128, 189, 210, 74, 207, 212, 17, 72, 163, 85, 131, 170, 38, 103, 189, 141, 248, - 61, 249, 136, 57, 241, 119, 208, 181, 134, 105, 21, 33, 166, 131, 235, 219, 32, 129, 118, 34, - 232, 235, 114, 0, 195, 67, 28, 186, 223, 56, 179, 11, 237, 203, 61, 182, 16, 240, 189, 10, 233, - 240, 239, 118, 135, 208, 4, 191, 121, 46, 76, 28, 224, 7, 202, 70, 81, 20, 212, 158, 154, 216, - 34, 129, 208, 84, 111, 9, 55, 77, 55, 213, 97, 55, 55, 220, 12, 76, 40, 77, 61, 52, 184, 157, - 58, 168, 66, 193, 21, 82, 135, 102, 126, 82, 211, 245, 178, 95, 90, 192, 177, 115, 174, 223, - 201, 148, 203, 101, 124, 93, 251, 60, 92, 6, 129, 157, 253, 12, 39, 179, 125, 49, 33, 231, 78, - 160, 206, 9, 108, 129, 86, 213, 205, 155, 79, 131, 108, 160, 52, 154, 213, 1, 2, 193, 57, 70, - 160, 111, 191, 152, 93, 207, 46, 157, 48, 185, 149, 118, 242, 43, 120, 37, 73, 122, 229, 1, - 245, 56, 5, 205, 93, 162, 166, 145, 96, 161, 33, 161, 65, 184, 51, 169, 25, 255, 44, 212, 36, - 131, 40, 81, 24, 243, 77, 184, 160, 102, 8, 80, 73, 236, 40, 41, 138, 13, 203, 77, 220, 39, - 192, 112, 219, 4, 167, 70, 28, 67, 119, 81, 103, 37, 40, 147, 203, 205, 85, 240, 83, 155, 176, - 131, 70, 125, 230, 181, 220, 27, 253, 58, 252, 147, 128, 189, 210, 74, 207, 212, 17, 72, 163, - 85, 131, 170, 38, 103, 189, 141, 248, 61, 249, 136, 57, 241, 119, 208, 181, 134, 105, 21, 33, - 166, 131, 235, 219, 32, 129, 118, 34, 232, 235, 114, 0, 195, 67, 28, 186, 223, 56, 179, 11, - 237, 203, 61, 182, 16, 240, 189, 10, 233, 240, 239, 118, 135, 208, 4, 191, 121, 46, 76, 28, - 224, 7, 202, 70, 81, 20, 212, 158, 154, 216, 34, 129, 208, 84, 111, 9, 55, 77, 55, 213, 97, 55, - 55, 220, 12, 76, 40, 77, 61, 52, 184, 157, 58, 168, 66, 193, 21, 82, 135, 102, 126, 82, 211, - 245, 178, 95, 90, 192, 177, 115, 174, 223, 201, 148, 203, 101, 124, 93, 251, 60, 92, 6, 129, - 157, 253, 12, 39, 179, 125, 49, 33, 231, 78, 160, 206, 9, 108, 129, 86, 213, 205, 155, 79, 131, - 108, 160, 52, 154, 213, 1, 2, 193, 57, 70, 160, 111, 191, 152, 93, 207, 46, 157, 48, 185, 149, - 118, 242, 43, 120, 37, 73, 122, 229, 1, 245, 56, 5, 205, 93, 162, 166, 145, 96, 161, 33, 161, - 65, 184, 51, 169, 25, 255, 44, 212, 36, 131, 40, 81, 24, 243, 77, 184, 160, 102, 36, 32, 3, - 129, 119, 190, 233, 95, 78, 6, 164, 208, 157, 160, 250, 100, 42, 203, 176, 155, 49, 231, 195, - 75, 98, 177, 115, 153, 74, 226, 248, 25, 241, 7, 32, 6, 30, 171, 74, 37, 11, 19, 154, 170, 254, - 51, 117, 130, 110, 115, 62, 192, 170, 139, 56, 62, 57, 158, 94, 28, 100, 88, 173, 48, 170, 207, - 140, 32, 5, 20, 146, 220, 46, 138, 162, 114, 98, 139, 169, 186, 205, 89, 171, 101, 133, 249, - 107, 248, 175, 10, 75, 108, 59, 159, 233, 43, 80, 213, 109, 94, 32, 3, 98, 145, 109, 12, 196, - 173, 204, 125, 79, 154, 75, 3, 29, 114, 109, 4, 145, 157, 223, 188, 165, 15, 192, 123, 214, - 165, 253, 55, 68, 28, 81, 32, 2, 10, 123, 248, 147, 236, 105, 36, 203, 106, 196, 189, 79, 212, - 58, 99, 118, 26, 109, 22, 220, 58, 70, 105, 25, 56, 26, 154, 2, 136, 245, 131, 32, 7, 211, 194, - 187, 70, 236, 198, 225, 140, 232, 165, 89, 61, 51, 255, 74, 133, 166, 176, 129, 11, 21, 122, - 161, 83, 72, 148, 74, 11, 132, 45, 214, 32, 0, 55, 64, 185, 27, 30, 92, 171, 102, 124, 242, - 227, 150, 231, 16, 104, 44, 2, 124, 152, 92, 159, 52, 70, 171, 219, 107, 38, 84, 198, 8, 37, - 32, 4, 27, 160, 92, 141, 143, 46, 94, 51, 62, 121, 113, 203, 115, 136, 52, 22, 1, 62, 76, 46, - 79, 154, 35, 85, 237, 181, 147, 42, 99, 4, 19, 32, 3, 75, 39, 32, 29, 166, 11, 219, 98, 39, - 181, 83, 161, 195, 143, 239, 231, 232, 8, 88, 81, 117, 221, 8, 36, 251, 170, 187, 80, 31, 93, - 194, 32, 3, 6, 149, 89, 255, 239, 143, 122, 54, 188, 9, 228, 199, 26, 104, 189, 59, 237, 133, - 253, 67, 140, 226, 103, 143, 213, 180, 223, 107, 159, 236, 170, 32, 3, 60, 210, 185, 66, 121, - 78, 183, 213, 211, 116, 101, 54, 192, 162, 238, 230, 148, 228, 44, 51, 70, 109, 7, 123, 71, - 213, 240, 152, 54, 164, 65, 32, 3, 159, 58, 200, 43, 22, 119, 51, 45, 204, 247, 143, 15, 4, 98, - 94, 200, 132, 49, 204, 255, 169, 167, 158, 72, 20, 54, 106, 231, 84, 92, 52, 32, 1, 218, 176, - 67, 127, 66, 251, 233, 84, 65, 226, 188, 240, 237, 20, 202, 237, 113, 7, 46, 155, 214, 62, 226, - 28, 23, 237, 26, 102, 55, 39, 176, 32, 6, 232, 26, 234, 163, 156, 102, 112, 157, 20, 97, 94, - 108, 84, 24, 159, 81, 20, 93, 58, 189, 253, 163, 51, 224, 158, 57, 184, 122, 155, 142, 81, 32, - 4, 177, 100, 103, 40, 172, 167, 228, 151, 18, 169, 73, 242, 51, 216, 37, 133, 113, 151, 207, - 153, 76, 225, 144, 106, 83, 236, 205, 248, 59, 162, 225, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 71, 147, 94, 188, 32, - 176, 254, 19, 157, 26, 137, 172, 32, 163, 155, 79, 52, 255, 175, 229, 18, 186, 113, 105, 132, - 104, 52, 163, 248, 142, 208, 32, 4, 166, 238, 8, 11, 43, 74, 210, 63, 25, 67, 189, 207, 187, - 245, 253, 52, 248, 231, 14, 189, 154, 43, 250, 35, 76, 37, 215, 135, 65, 227, 22, 32, 4, 47, - 103, 10, 197, 213, 252, 162, 42, 145, 131, 167, 96, 151, 25, 47, 48, 38, 129, 163, 167, 107, - 249, 172, 38, 253, 151, 177, 87, 200, 173, 28, 32, 7, 186, 189, 130, 192, 153, 251, 2, 33, 229, - 165, 127, 180, 249, 35, 117, 112, 33, 115, 145, 147, 172, 33, 142, 187, 170, 4, 139, 29, 224, - 160, 210, 32, 4, 28, 184, 49, 152, 3, 85, 40, 119, 139, 199, 84, 181, 196, 60, 206, 122, 105, - 218, 219, 126, 46, 144, 52, 99, 90, 200, 68, 230, 112, 50, 7, 32, 0, 143, 89, 58, 248, 81, 33, - 199, 61, 217, 53, 87, 115, 72, 77, 3, 61, 95, 207, 90, 227, 78, 127, 46, 65, 119, 75, 251, 158, - 31, 6, 8, 32, 0, 1, 96, 195, 251, 88, 10, 103, 180, 61, 142, 122, 134, 133, 249, 113, 231, 174, - 231, 255, 139, 209, 47, 182, 98, 238, 34, 83, 54, 254, 99, 49, 32, 1, 82, 59, 58, 227, 77, 153, - 24, 209, 88, 85, 186, 180, 254, 171, 109, 253, 16, 57, 88, 219, 90, 239, 17, 0, 17, 100, 240, - 220, 183, 85, 182, 32, 1, 142, 178, 105, 92, 163, 212, 56, 242, 59, 143, 191, 116, 0, 215, 124, - 174, 173, 137, 49, 254, 194, 89, 242, 69, 21, 189, 14, 89, 248, 245, 88, 32, 2, 54, 63, 177, - 227, 177, 184, 102, 42, 51, 209, 207, 67, 54, 99, 26, 65, 219, 56, 113, 205, 38, 44, 209, 138, - 155, 63, 110, 28, 200, 151, 241, 32, 7, 229, 236, 148, 234, 123, 72, 117, 113, 139, 172, 110, - 99, 178, 167, 122, 62, 13, 136, 204, 74, 10, 226, 91, 173, 138, 154, 97, 151, 123, 223, 206, - 32, 5, 85, 34, 196, 27, 77, 181, 221, 26, 73, 1, 22, 10, 80, 110, 66, 21, 49, 199, 67, 162, - 116, 49, 144, 44, 61, 99, 198, 139, 76, 135, 36, 32, 4, 200, 179, 24, 128, 240, 75, 3, 198, - 248, 102, 12, 18, 182, 96, 105, 231, 198, 74, 33, 224, 93, 145, 21, 175, 17, 1, 237, 91, 204, - 229, 171, 32, 4, 227, 19, 99, 106, 229, 101, 222, 183, 158, 106, 45, 38, 55, 145, 83, 24, 92, - 146, 26, 59, 11, 30, 30, 92, 238, 22, 85, 224, 224, 21, 141, 32, 5, 161, 95, 191, 179, 148, 84, - 11, 254, 155, 247, 34, 140, 107, 99, 2, 47, 150, 238, 214, 74, 231, 255, 38, 86, 141, 136, 194, - 251, 152, 182, 131, 32, 5, 102, 212, 36, 93, 231, 48, 242, 148, 77, 217, 10, 122, 125, 133, - 208, 97, 3, 54, 255, 252, 0, 28, 14, 96, 187, 107, 212, 242, 23, 182, 175, 32, 7, 155, 119, - 145, 237, 64, 119, 216, 95, 27, 96, 211, 100, 166, 152, 172, 113, 70, 11, 18, 181, 196, 177, - 34, 236, 37, 32, 167, 27, 170, 157, 230, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 254, 239, 253, 240, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 239, 255, 225, 36, 32, 3, 199, 206, 107, 71, 236, 106, 177, 255, 227, 253, 123, 135, - 103, 188, 215, 62, 209, 46, 59, 208, 236, 108, 98, 191, 187, 157, 98, 142, 102, 121, 68, 32, 6, - 79, 95, 173, 160, 177, 131, 243, 161, 131, 164, 120, 178, 230, 68, 12, 56, 5, 13, 48, 171, 116, - 183, 133, 250, 53, 60, 106, 41, 207, 159, 70, 32, 3, 133, 132, 119, 163, 155, 63, 179, 68, 227, - 9, 34, 105, 250, 219, 126, 152, 35, 54, 6, 188, 215, 173, 99, 99, 246, 139, 178, 182, 111, 81, - 89, 32, 3, 16, 73, 63, 92, 193, 214, 229, 171, 227, 122, 234, 245, 100, 209, 126, 146, 63, 98, - 124, 212, 85, 39, 132, 238, 183, 145, 147, 71, 220, 109, 4, 32, 3, 194, 163, 50, 173, 39, 36, - 9, 15, 158, 149, 55, 207, 227, 100, 8, 83, 61, 204, 168, 66, 179, 54, 162, 168, 108, 22, 76, - 96, 202, 181, 204, 32, 2, 89, 76, 2, 204, 217, 35, 122, 196, 176, 124, 127, 210, 89, 82, 251, - 217, 83, 3, 112, 210, 231, 167, 157, 230, 105, 113, 233, 134, 228, 23, 85, 32, 3, 30, 155, 129, - 254, 166, 255, 133, 144, 179, 238, 60, 171, 69, 71, 87, 43, 120, 24, 0, 133, 178, 36, 127, 188, - 104, 76, 223, 203, 230, 99, 170, 32, 1, 143, 77, 192, 255, 83, 127, 194, 200, 89, 247, 30, 85, - 162, 163, 171, 149, 188, 12, 0, 66, 217, 18, 63, 222, 52, 38, 111, 229, 243, 49, 213, 32, 2, - 172, 109, 220, 174, 129, 204, 2, 220, 164, 38, 94, 136, 55, 130, 146, 75, 17, 206, 218, 3, 102, - 105, 224, 101, 153, 229, 87, 246, 68, 221, 135, 32, 1, 149, 198, 58, 96, 9, 49, 126, 79, 110, - 13, 207, 32, 134, 103, 226, 155, 88, 36, 213, 112, 46, 32, 203, 202, 12, 4, 107, 213, 240, 153, - 108, 32, 6, 193, 52, 80, 237, 249, 242, 12, 225, 6, 202, 166, 240, 255, 170, 218, 37, 43, 77, - 92, 142, 72, 136, 146, 178, 206, 145, 59, 149, 98, 224, 13, 32, 3, 83, 150, 131, 170, 224, 26, - 20, 11, 16, 234, 249, 188, 157, 51, 86, 97, 143, 44, 30, 124, 95, 47, 52, 177, 91, 85, 243, - 131, 66, 78, 105, 32, 1, 149, 172, 10, 54, 235, 79, 163, 113, 233, 57, 53, 160, 204, 17, 63, - 219, 80, 112, 152, 37, 92, 157, 224, 143, 148, 148, 85, 62, 136, 248, 71, 32, 4, 109, 1, 100, - 72, 51, 43, 48, 196, 211, 101, 180, 191, 222, 79, 39, 113, 135, 136, 221, 171, 144, 253, 79, - 224, 238, 92, 172, 253, 188, 250, 126, 32, 0, 27, 71, 174, 82, 241, 161, 177, 90, 224, 221, - 169, 189, 85, 88, 80, 56, 247, 141, 72, 183, 194, 95, 104, 102, 247, 0, 118, 130, 41, 193, 219, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 4, 82, 54, 7, 49, 101, 106, 214, 102, 1, 233, 244, 193, 93, 130, 32, 168, 188, 230, - 188, 102, 61, 93, 127, 170, 101, 59, 128, 142, 1, 166, 157, 32, 5, 22, 159, 20, 167, 73, 185, - 156, 152, 182, 115, 119, 33, 171, 4, 130, 136, 241, 249, 169, 27, 145, 189, 187, 225, 208, 142, - 201, 30, 217, 49, 142, 32, 1, 216, 131, 104, 255, 119, 205, 58, 40, 87, 24, 234, 123, 77, 230, - 124, 147, 18, 242, 223, 147, 224, 14, 78, 131, 214, 46, 209, 231, 96, 118, 128, 32, 6, 14, 2, - 93, 58, 182, 69, 1, 144, 4, 105, 104, 4, 165, 212, 174, 81, 110, 147, 28, 86, 3, 222, 22, 192, - 82, 65, 67, 142, 232, 202, 154, 32, 0, 29, 182, 99, 6, 235, 18, 171, 131, 144, 6, 40, 124, 61, - 43, 49, 232, 111, 44, 32, 9, 31, 137, 242, 110, 97, 17, 83, 106, 154, 215, 208, 32, 3, 235, - 152, 197, 209, 31, 116, 249, 67, 15, 152, 183, 253, 89, 66, 168, 244, 218, 238, 163, 71, 220, - 170, 229, 51, 105, 118, 51, 218, 30, 54, 126, 32, 3, 85, 95, 59, 189, 104, 31, 126, 237, 244, - 220, 58, 232, 85, 74, 3, 57, 252, 91, 195, 83, 196, 252, 25, 226, 26, 141, 71, 67, 177, 5, 6, - 32, 0, 46, 64, 74, 73, 217, 110, 9, 7, 230, 209, 80, 169, 79, 124, 10, 37, 62, 144, 81, 146, - 215, 48, 78, 42, 83, 60, 74, 132, 253, 137, 146, 32, 5, 0, 131, 147, 109, 164, 234, 81, 154, - 201, 228, 8, 110, 246, 226, 165, 245, 22, 162, 158, 87, 9, 197, 77, 179, 233, 77, 181, 211, - 242, 158, 42, 32, 6, 224, 18, 1, 92, 0, 105, 103, 2, 32, 249, 162, 231, 161, 253, 97, 76, 1, - 125, 180, 142, 51, 60, 18, 236, 206, 224, 84, 246, 57, 248, 19, 32, 7, 190, 69, 246, 70, 79, - 127, 166, 210, 157, 182, 194, 131, 128, 118, 120, 81, 24, 111, 209, 9, 32, 207, 178, 229, 124, - 201, 148, 246, 246, 142, 205, 32, 4, 134, 186, 120, 56, 3, 243, 134, 229, 174, 74, 246, 217, - 210, 192, 228, 1, 148, 39, 70, 28, 154, 56, 232, 132, 11, 232, 154, 249, 112, 55, 217, 32, 7, - 56, 41, 190, 58, 231, 12, 246, 237, 190, 195, 110, 213, 75, 31, 17, 222, 134, 100, 120, 71, 69, - 72, 1, 230, 15, 217, 66, 4, 248, 16, 124, 32, 5, 188, 38, 77, 159, 63, 83, 169, 219, 60, 152, - 18, 161, 242, 114, 61, 130, 47, 11, 179, 82, 207, 98, 10, 144, 216, 130, 239, 83, 193, 199, - 178, 32, 7, 132, 124, 61, 241, 128, 83, 243, 79, 248, 74, 43, 81, 202, 182, 233, 133, 100, 14, - 57, 111, 26, 126, 150, 64, 165, 234, 134, 181, 34, 55, 165, 32, 3, 31, 73, 229, 68, 144, 202, - 228, 21, 130, 252, 252, 27, 80, 25, 50, 89, 42, 169, 99, 161, 108, 162, 154, 112, 242, 72, 137, - 122, 241, 112, 17, 32, 4, 243, 143, 69, 72, 200, 7, 170, 13, 200, 59, 116, 20, 205, 217, 246, - 128, 202, 68, 44, 142, 204, 203, 42, 76, 164, 238, 72, 153, 122, 75, 246, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, - 255, 255, 254, 239, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 225, 1, 8, 237, 179, 98, 88, 233, 51, 210, 6, - 167, 130, 93, 55, 232, 127, 156, 91, 76, 239, 68, 134, 208, 25, 99, 61, 106, 114, 100, 100, - 202, 115, 37, 44, 218, 2, 186, 144, 37, 166, 153, 158, 219, 68, 61, 12, 200, 233, 21, 123, 232, - 231, 149, 163, 253, 55, 215, 25, 161, 141, 13, 65, 220, 15, 139, 189, 37, 60, 56, 238, 45, 238, - 233, 34, 144, 42, 54, 124, 105, 102, 152, 94, 136, 247, 211, 162, 165, 228, 46, 138, 68, 134, - 151, 182, 34, 159, 199, 90, 226, 219, 154, 242, 175, 197, 229, 250, 42, 205, 231, 1, 122, 176, - 198, 108, 147, 169, 190, 77, 175, 107, 114, 43, 235, 227, 197, 214, 26, 158, 224, 83, 185, 9, - 104, 243, 92, 148, 83, 190, 60, 176, 106, 175, 140, 147, 73, 101, 237, 188, 108, 19, 65, 116, - 145, 149, 253, 252, 105, 5, 138, 211, 73, 79, 204, 232, 61, 172, 180, 83, 99, 114, 24, 173, - 181, 9, 249, 66, 244, 243, 28, 6, 22, 9, 93, 177, 36, 120, 20, 204, 68, 64, 7, 53, 234, 171, - 124, 38, 37, 149, 112, 6, 12, 208, 212, 253, 153, 162, 216, 88, 168, 5, 228, 76, 95, 190, 212, - 22, 65, 3, 76, 99, 63, 137, 25, 155, 214, 236, 74, 55, 153, 234, 37, 81, 232, 1, 225, 172, 216, - 197, 57, 78, 49, 214, 188, 52, 42, 124, 251, 8, 13, 109, 160, 212, 245, 228, 41, 239, 40, 109, - 8, 146, 194, 27, 204, 132, 238, 53, 16, 202, 207, 17, 239, 164, 33, 229, 252, 20, 224, 104, - 164, 17, 183, 14, 67, 59, 128, 223, 116, 189, 121, 132, 18, 218, 2, 186, 144, 37, 166, 153, - 158, 219, 68, 61, 12, 200, 233, 21, 123, 232, 231, 149, 163, 253, 55, 215, 25, 161, 141, 13, - 65, 220, 15, 139, 189, 37, 60, 56, 238, 45, 238, 233, 34, 144, 42, 54, 124, 105, 102, 152, 94, - 136, 247, 211, 162, 165, 228, 46, 138, 68, 134, 151, 182, 34, 159, 199, 90, 226, 219, 154, 242, - 175, 197, 229, 250, 42, 205, 231, 1, 122, 176, 198, 108, 147, 169, 190, 77, 175, 107, 114, 43, - 235, 227, 197, 214, 26, 158, 224, 83, 185, 9, 104, 243, 92, 148, 83, 190, 60, 176, 106, 175, - 140, 147, 73, 101, 237, 188, 108, 19, 65, 116, 145, 149, 253, 252, 105, 5, 138, 211, 73, 79, - 204, 232, 61, 172, 180, 83, 99, 114, 24, 173, 181, 9, 249, 66, 244, 243, 28, 6, 22, 9, 93, 177, - 36, 120, 20, 204, 68, 64, 7, 53, 234, 171, 124, 38, 37, 149, 112, 6, 12, 208, 212, 253, 153, - 162, 216, 88, 168, 5, 228, 76, 95, 190, 212, 22, 65, 3, 76, 99, 63, 137, 25, 155, 214, 236, 74, - 55, 153, 234, 37, 81, 232, 1, 225, 172, 216, 197, 57, 78, 49, 214, 188, 52, 42, 124, 251, 8, - 13, 109, 160, 212, 245, 228, 41, 239, 40, 109, 23, 32, 2, 17, 191, 13, 65, 119, 85, 249, 17, - 92, 237, 204, 127, 184, 15, 49, 197, 226, 130, 126, 99, 36, 96, 197, 179, 187, 31, 31, 233, - 160, 68, 241, 32, 7, 206, 4, 40, 55, 114, 159, 241, 252, 234, 135, 168, 67, 180, 39, 1, 141, - 115, 86, 91, 161, 177, 119, 16, 209, 235, 177, 203, 87, 86, 251, 228, 32, 7, 206, 4, 40, 55, - 114, 159, 241, 252, 234, 135, 168, 67, 180, 39, 1, 141, 115, 86, 91, 161, 177, 119, 16, 209, - 235, 177, 203, 87, 86, 251, 228, 32, 7, 206, 4, 40, 55, 114, 159, 241, 252, 234, 135, 168, 67, - 180, 39, 1, 141, 115, 86, 91, 161, 177, 119, 16, 209, 235, 177, 203, 87, 86, 251, 228, 32, 5, - 126, 4, 169, 71, 226, 140, 162, 112, 243, 69, 253, 126, 213, 128, 226, 16, 138, 133, 74, 70, - 108, 227, 47, 153, 174, 224, 203, 12, 147, 52, 200, 32, 6, 193, 153, 141, 245, 54, 105, 175, - 163, 190, 14, 56, 253, 228, 176, 47, 69, 123, 172, 229, 19, 43, 113, 9, 64, 97, 146, 143, 28, - 203, 68, 10, 32, 0, 122, 157, 210, 13, 110, 158, 52, 190, 198, 246, 219, 175, 7, 178, 97, 22, - 253, 39, 96, 202, 39, 176, 47, 88, 122, 181, 4, 80, 217, 224, 135, 32, 2, 1, 65, 165, 19, 156, - 3, 194, 188, 84, 56, 251, 199, 184, 63, 212, 35, 203, 230, 255, 53, 40, 165, 222, 102, 153, - 115, 131, 114, 111, 166, 151, 32, 3, 213, 7, 129, 95, 200, 126, 66, 11, 191, 185, 128, 148, 80, - 66, 169, 92, 172, 239, 52, 14, 53, 250, 103, 91, 190, 3, 234, 137, 149, 105, 144, 32, 3, 43, - 147, 169, 240, 19, 141, 49, 203, 199, 89, 254, 62, 221, 82, 120, 12, 34, 18, 249, 33, 53, 55, - 248, 38, 98, 227, 188, 150, 92, 244, 204, 32, 7, 27, 152, 244, 181, 72, 109, 103, 173, 57, 198, - 123, 161, 69, 99, 86, 52, 64, 81, 176, 204, 94, 127, 95, 69, 136, 164, 152, 230, 3, 174, 14, - 32, 3, 247, 63, 85, 225, 79, 59, 246, 5, 110, 6, 58, 2, 194, 174, 172, 211, 221, 136, 206, 6, - 136, 213, 91, 112, 25, 229, 153, 20, 36, 168, 27, 32, 6, 131, 91, 36, 183, 36, 123, 45, 244, - 20, 248, 176, 94, 105, 52, 114, 33, 67, 143, 103, 160, 49, 228, 190, 75, 52, 26, 237, 192, 77, - 15, 46, 32, 2, 168, 103, 36, 140, 83, 102, 213, 43, 88, 27, 226, 198, 236, 195, 184, 25, 176, - 119, 124, 140, 173, 36, 73, 154, 193, 159, 230, 137, 186, 29, 71, 32, 7, 168, 168, 94, 122, - 106, 150, 128, 222, 47, 144, 21, 246, 173, 13, 236, 165, 178, 44, 71, 216, 199, 138, 141, 122, - 226, 164, 156, 123, 246, 17, 134, 32, 5, 9, 164, 60, 239, 241, 202, 222, 129, 1, 170, 58, 6, - 68, 66, 5, 242, 35, 239, 58, 230, 242, 157, 55, 32, 42, 0, 5, 43, 3, 101, 213, 32, 4, 51, 23, - 189, 56, 46, 233, 132, 3, 173, 9, 115, 191, 198, 227, 211, 90, 195, 182, 222, 243, 230, 167, - 143, 52, 49, 35, 53, 200, 207, 120, 99, 32, 0, 251, 241, 177, 6, 220, 102, 123, 6, 27, 124, 19, - 183, 66, 27, 37, 6, 216, 64, 143, 188, 82, 19, 147, 145, 80, 221, 202, 191, 60, 91, 86, 32, 0, - 214, 134, 34, 147, 200, 13, 138, 217, 65, 115, 234, 191, 204, 190, 82, 70, 202, 191, 80, 101, - 118, 51, 178, 192, 62, 242, 200, 56, 54, 192, 9, 32, 1, 110, 27, 195, 98, 170, 43, 59, 217, - 232, 98, 32, 22, 139, 57, 70, 169, 63, 110, 250, 22, 236, 155, 154, 100, 47, 198, 140, 235, - 204, 111, 217, 32, 3, 75, 35, 91, 24, 169, 136, 139, 155, 133, 24, 28, 191, 73, 57, 143, 9, - 241, 206, 251, 36, 93, 85, 135, 152, 143, 37, 92, 177, 223, 15, 184, 32, 0, 250, 132, 115, 105, - 253, 239, 192, 45, 73, 230, 199, 246, 175, 224, 180, 183, 37, 138, 177, 98, 51, 90, 49, 103, - 207, 76, 68, 99, 22, 187, 176, 32, 3, 201, 205, 13, 7, 146, 33, 137, 199, 197, 4, 205, 247, 22, - 234, 67, 160, 44, 65, 218, 237, 87, 174, 145, 11, 246, 234, 123, 215, 163, 253, 153, 23, 32, 7, - 40, 186, 42, 229, 144, 128, 104, 28, 141, 143, 69, 147, 62, 158, 76, 84, 172, 75, 247, 6, 108, - 67, 166, 2, 173, 252, 132, 4, 108, 124, 8, 32, 7, 83, 140, 31, 122, 3, 69, 159, 7, 232, 129, - 164, 132, 12, 48, 240, 50, 12, 148, 235, 148, 110, 234, 156, 238, 71, 230, 119, 211, 1, 228, - 27, 32, 7, 83, 140, 31, 122, 3, 69, 159, 7, 232, 129, 164, 132, 12, 48, 240, 50, 12, 148, 235, - 148, 110, 234, 156, 238, 71, 230, 119, 211, 1, 228, 27, 32, 7, 83, 140, 31, 122, 3, 69, 159, 7, - 232, 129, 164, 132, 12, 48, 240, 50, 12, 148, 235, 148, 110, 234, 156, 238, 71, 230, 119, 211, - 1, 228, 27, 32, 6, 81, 4, 5, 187, 206, 59, 110, 65, 84, 150, 241, 236, 179, 248, 177, 175, 111, - 158, 196, 105, 92, 71, 203, 232, 52, 75, 138, 69, 207, 241, 248, 32, 2, 128, 65, 140, 233, 102, - 199, 198, 75, 33, 0, 137, 159, 117, 51, 62, 172, 159, 215, 245, 74, 173, 55, 140, 15, 213, 196, - 132, 85, 135, 141, 98, 32, 0, 79, 210, 136, 54, 105, 220, 119, 179, 48, 57, 215, 193, 250, 145, - 108, 224, 19, 203, 205, 248, 52, 89, 144, 152, 17, 12, 251, 207, 67, 78, 64, 32, 4, 68, 211, - 92, 201, 60, 140, 253, 162, 89, 86, 1, 183, 232, 242, 134, 180, 46, 79, 222, 180, 52, 206, 84, - 243, 126, 55, 22, 133, 20, 72, 199, 32, 6, 186, 118, 199, 147, 149, 206, 181, 154, 137, 217, - 96, 17, 196, 58, 155, 244, 155, 82, 24, 143, 113, 126, 35, 144, 132, 72, 183, 54, 130, 16, 139, - 32, 2, 82, 36, 138, 153, 216, 233, 108, 58, 21, 22, 112, 231, 100, 131, 225, 204, 114, 67, 87, - 249, 103, 22, 219, 175, 183, 229, 88, 61, 185, 173, 141, 32, 6, 50, 107, 206, 160, 16, 163, - 226, 125, 10, 148, 73, 7, 46, 253, 201, 6, 236, 13, 218, 23, 224, 219, 131, 165, 46, 231, 93, - 204, 232, 50, 131, 32, 0, 239, 92, 91, 87, 138, 39, 92, 122, 130, 163, 126, 38, 34, 40, 255, - 69, 139, 139, 45, 213, 190, 8, 87, 196, 235, 249, 168, 78, 37, 250, 199, 32, 5, 120, 113, 181, - 132, 210, 218, 53, 230, 246, 181, 76, 26, 15, 74, 72, 106, 31, 116, 173, 140, 91, 219, 183, 32, - 187, 142, 89, 110, 132, 88, 129, 32, 7, 155, 198, 105, 157, 249, 47, 37, 44, 97, 123, 71, 251, - 65, 204, 111, 111, 14, 173, 217, 223, 153, 105, 223, 201, 210, 231, 85, 189, 135, 196, 0, 32, - 6, 200, 219, 128, 22, 203, 43, 126, 142, 87, 15, 86, 37, 243, 106, 43, 56, 156, 131, 15, 81, - 72, 66, 124, 77, 59, 157, 7, 42, 60, 244, 124, 32, 6, 181, 126, 106, 82, 115, 69, 76, 107, 51, - 167, 68, 162, 210, 117, 215, 89, 58, 243, 130, 155, 21, 234, 183, 250, 129, 155, 85, 155, 108, - 151, 140, 32, 0, 166, 82, 192, 45, 78, 203, 142, 155, 201, 20, 171, 193, 107, 184, 156, 89, 2, - 19, 198, 85, 209, 81, 76, 180, 82, 156, 58, 224, 52, 205, 221, 32, 1, 196, 61, 126, 137, 240, - 148, 9, 9, 253, 171, 13, 92, 127, 29, 56, 205, 152, 45, 138, 62, 254, 193, 238, 205, 70, 57, - 121, 179, 242, 138, 251, 32, 4, 75, 100, 121, 255, 134, 223, 225, 177, 159, 210, 35, 241, 156, - 130, 95, 120, 173, 124, 47, 177, 97, 224, 57, 23, 25, 165, 108, 57, 1, 155, 35, 32, 7, 171, 44, - 251, 194, 49, 135, 254, 79, 91, 67, 109, 186, 188, 59, 243, 55, 145, 223, 165, 19, 66, 57, 205, - 129, 32, 175, 119, 209, 167, 220, 183, 32, 5, 212, 43, 29, 105, 249, 35, 186, 54, 219, 114, 24, - 170, 94, 3, 224, 223, 145, 70, 62, 32, 101, 203, 15, 120, 138, 130, 73, 207, 197, 29, 83, 32, - 3, 31, 248, 59, 171, 202, 243, 209, 210, 123, 161, 240, 53, 28, 192, 168, 254, 69, 157, 162, - 74, 58, 196, 12, 171, 253, 192, 65, 67, 179, 176, 37, 32, 2, 180, 24, 98, 175, 164, 83, 76, - 108, 48, 87, 254, 102, 209, 34, 235, 189, 202, 219, 31, 1, 250, 240, 170, 135, 21, 82, 2, 124, - 240, 29, 223, 7, 192, 156, 247, 205, 120, 212, 60, 245, 215, 170, 209, 61, 234, 57, 186, 21, 3, - 201, 140, 27, 79, 94, 235, 24, 172, 136, 92, 51, 137, 84, 9, 162, 91, 13, 118, 116, 9, 129, 94, - 37, 189, 55, 94, 221, 169, 97, 203, 178, 72, 137, 43, 10, 37, 137, 39, 19, 214, 251, 44, 76, - 119, 4, 28, 219, 57, 31, 20, 137, 195, 106, 191, 245, 220, 79, 189, 93, 101, 69, 139, 76, 115, - 50, 176, 17, 248, 92, 90, 164, 247, 161, 171, 5, 122, 189, 196, 196, 66, 244, 153, 153, 71, - 115, 77, 64, 170, 99, 107, 104, 247, 203, 194, 73, 39, 223, 114, 133, 173, 168, 188, 208, 144, - 230, 249, 24, 120, 52, 18, 144, 188, 164, 84, 194, 241, 223, 113, 165, 231, 181, 152, 254, 41, - 240, 73, 64, 234, 214, 216, 171, 198, 249, 179, 124, 117, 181, 227, 21, 88, 139, 201, 99, 94, - 182, 137, 64, 49, 209, 57, 79, 45, 174, 180, 237, 177, 0, 192, 84, 117, 162, 245, 229, 181, - 108, 139, 243, 210, 255, 152, 33, 0, 94, 234, 148, 90, 146, 42, 221, 95, 80, 55, 238, 93, 29, - 130, 15, 78, 32, 160, 44, 76, 21, 121, 200, 67, 65, 126, 167, 75, 214, 73, 208, 141, 214, 158, - 78, 7, 192, 156, 247, 205, 120, 212, 60, 245, 215, 170, 209, 61, 234, 57, 186, 21, 3, 201, 140, - 27, 79, 94, 235, 24, 172, 136, 92, 51, 137, 84, 9, 162, 91, 13, 118, 116, 9, 129, 94, 37, 189, - 55, 94, 221, 169, 97, 203, 178, 72, 137, 43, 10, 37, 137, 39, 19, 214, 251, 44, 76, 119, 4, 28, - 219, 57, 31, 20, 137, 195, 106, 191, 245, 220, 79, 189, 93, 101, 69, 139, 76, 115, 50, 176, 17, - 248, 92, 90, 164, 247, 161, 171, 5, 122, 189, 196, 196, 66, 244, 153, 153, 71, 115, 77, 64, - 170, 99, 107, 104, 247, 203, 194, 73, 39, 223, 114, 133, 173, 168, 188, 208, 144, 230, 249, 24, - 120, 52, 18, 144, 188, 164, 84, 194, 241, 223, 113, 165, 231, 181, 152, 254, 41, 240, 73, 64, - 234, 214, 216, 171, 198, 249, 179, 124, 117, 181, 227, 21, 88, 139, 201, 99, 94, 182, 137, 64, - 49, 209, 57, 79, 45, 174, 180, 237, 177, 0, 192, 84, 117, 162, 245, 229, 181, 108, 139, 243, - 210, 255, 152, 33, 0, 94, 234, 148, 90, 146, 42, 221, 95, 80, 55, 238, 93, 29, 130, 15, 78, 32, - 160, 44, 76, 21, 121, 200, 67, 65, 126, 167, 75, 214, 73, 208, 141, 214, 158, 78, 2, 32, 7, 73, - 235, 9, 96, 20, 1, 215, 159, 45, 71, 249, 155, 149, 166, 224, 99, 74, 236, 37, 102, 72, 166, - 58, 55, 21, 85, 217, 244, 243, 72, 75, 32, 1, 13, 36, 205, 80, 43, 186, 90, 203, 147, 164, 116, - 81, 229, 76, 201, 109, 212, 114, 48, 146, 182, 200, 118, 87, 75, 161, 243, 178, 37, 82, 101, 2, - 32, 6, 9, 177, 156, 115, 142, 155, 161, 253, 247, 214, 243, 170, 39, 98, 33, 204, 207, 94, 91, - 84, 148, 82, 246, 133, 44, 70, 182, 42, 226, 140, 51, 32, 6, 167, 188, 136, 203, 46, 86, 45, - 139, 104, 250, 207, 142, 220, 121, 120, 13, 77, 141, 173, 142, 98, 192, 211, 104, 115, 136, 43, - 207, 116, 81, 241, 8, 44, 69, 185, 80, 55, 3, 222, 29, 34, 112, 141, 158, 251, 32, 144, 58, - 236, 247, 40, 69, 163, 108, 139, 175, 154, 118, 150, 145, 155, 186, 129, 74, 156, 34, 239, 170, - 195, 232, 217, 4, 82, 144, 237, 128, 36, 75, 172, 149, 49, 83, 164, 176, 123, 255, 208, 155, - 144, 249, 250, 146, 255, 221, 62, 114, 94, 108, 213, 105, 135, 23, 255, 209, 119, 48, 26, 243, - 196, 116, 100, 241, 131, 127, 39, 175, 8, 157, 247, 51, 21, 63, 74, 243, 121, 94, 98, 189, 204, - 198, 43, 185, 179, 198, 237, 189, 24, 32, 140, 222, 145, 236, 159, 0, 98, 215, 209, 124, 33, - 167, 49, 213, 50, 139, 220, 60, 210, 221, 125, 168, 113, 133, 214, 212, 35, 65, 15, 46, 66, - 236, 230, 143, 236, 201, 133, 220, 194, 11, 113, 221, 162, 252, 140, 61, 144, 114, 7, 147, 163, - 59, 168, 74, 91, 20, 121, 18, 62, 47, 39, 126, 212, 24, 254, 178, 85, 161, 200, 242, 152, 12, - 170, 188, 64, 83, 185, 115, 79, 110, 157, 110, 36, 70, 237, 105, 66, 144, 121, 111, 142, 106, - 110, 205, 82, 243, 51, 105, 97, 181, 211, 187, 170, 237, 19, 228, 114, 218, 82, 26, 79, 205, - 42, 79, 159, 194, 210, 203, 252, 89, 141, 6, 13, 139, 105, 158, 82, 26, 166, 148, 184, 91, 40, - 185, 45, 214, 150, 78, 230, 134, 109, 250, 24, 78, 249, 49, 197, 186, 141, 6, 8, 146, 74, 18, - 85, 100, 13, 160, 41, 134, 108, 126, 43, 243, 252, 80, 45, 42, 32, 73, 154, 141, 94, 93, 87, - 230, 56, 40, 29, 54, 181, 100, 203, 156, 34, 239, 170, 195, 232, 217, 4, 82, 144, 237, 128, 36, - 75, 172, 149, 49, 83, 164, 176, 123, 255, 208, 155, 144, 249, 250, 146, 255, 221, 62, 114, 94, - 108, 213, 105, 135, 23, 255, 209, 119, 48, 26, 243, 196, 116, 100, 241, 131, 127, 39, 175, 8, - 157, 247, 51, 21, 63, 74, 243, 121, 94, 98, 189, 204, 198, 43, 185, 179, 198, 237, 189, 24, 32, - 140, 222, 145, 236, 159, 0, 98, 215, 209, 124, 33, 167, 49, 213, 50, 139, 220, 60, 210, 221, - 125, 168, 113, 133, 214, 212, 35, 65, 15, 46, 66, 236, 230, 143, 236, 201, 133, 220, 194, 11, - 113, 221, 162, 252, 140, 61, 144, 114, 7, 147, 163, 59, 168, 74, 91, 20, 121, 18, 62, 47, 39, - 126, 212, 24, 254, 178, 85, 161, 200, 242, 152, 12, 170, 188, 64, 83, 185, 115, 79, 110, 157, - 110, 36, 70, 237, 105, 66, 144, 121, 111, 142, 106, 110, 205, 82, 243, 51, 105, 97, 181, 211, - 187, 170, 237, 19, 228, 114, 218, 82, 26, 79, 205, 42, 79, 159, 194, 210, 203, 252, 89, 141, 6, - 13, 139, 105, 158, 82, 26, 166, 148, 184, 91, 40, 185, 45, 214, 150, 78, 230, 134, 109, 250, - 24, 78, 249, 49, 197, 186, 141, 6, 36, 32, 5, 67, 65, 187, 226, 147, 101, 55, 58, 16, 241, 10, - 222, 30, 122, 37, 116, 98, 22, 42, 33, 141, 241, 197, 84, 85, 235, 89, 96, 51, 5, 148, 32, 7, - 57, 166, 250, 191, 201, 145, 30, 36, 33, 78, 36, 110, 97, 41, 23, 14, 208, 158, 12, 171, 238, - 42, 24, 91, 244, 153, 174, 242, 29, 141, 238, 32, 3, 16, 204, 119, 247, 145, 22, 195, 161, 228, - 105, 160, 17, 110, 233, 99, 231, 165, 51, 57, 130, 189, 131, 150, 20, 207, 140, 114, 217, 190, - 119, 155, 32, 1, 84, 54, 105, 1, 55, 44, 91, 134, 14, 245, 124, 185, 191, 101, 16, 224, 223, - 52, 105, 164, 87, 116, 234, 252, 114, 221, 170, 210, 119, 197, 160, 32, 2, 121, 230, 186, 66, - 142, 126, 114, 149, 48, 233, 26, 133, 252, 126, 117, 215, 180, 161, 174, 109, 20, 244, 214, - 208, 85, 76, 221, 212, 76, 95, 87, 32, 7, 161, 87, 170, 89, 229, 183, 27, 195, 82, 69, 132, - 104, 217, 130, 238, 151, 136, 174, 144, 184, 168, 140, 234, 36, 3, 176, 245, 25, 125, 41, 99, - 32, 0, 88, 67, 92, 71, 241, 32, 23, 38, 147, 66, 114, 209, 11, 251, 35, 112, 6, 86, 246, 23, - 45, 18, 208, 40, 24, 7, 103, 142, 243, 208, 70, 32, 0, 44, 33, 174, 35, 248, 144, 11, 147, 73, - 161, 57, 104, 133, 253, 145, 184, 3, 43, 123, 11, 150, 137, 104, 20, 12, 3, 179, 199, 121, 232, - 35, 32, 0, 190, 153, 0, 87, 9, 24, 136, 55, 141, 84, 141, 190, 137, 98, 86, 14, 167, 124, 221, - 20, 103, 195, 105, 147, 214, 11, 57, 232, 95, 60, 79, 32, 7, 2, 75, 27, 144, 45, 141, 18, 17, - 197, 29, 209, 193, 41, 103, 212, 203, 69, 251, 58, 229, 64, 68, 251, 196, 233, 158, 44, 7, 57, - 77, 100, 32, 3, 206, 150, 159, 110, 197, 166, 239, 109, 88, 196, 252, 96, 243, 114, 21, 183, - 251, 127, 145, 101, 84, 97, 22, 11, 151, 10, 216, 49, 162, 201, 213, 32, 3, 114, 96, 155, 157, - 209, 179, 39, 101, 148, 71, 255, 233, 3, 119, 212, 135, 111, 200, 173, 68, 173, 210, 162, 34, - 207, 12, 33, 180, 115, 164, 222, 32, 5, 102, 58, 97, 209, 193, 218, 107, 34, 46, 13, 224, 179, - 255, 212, 219, 152, 247, 162, 11, 146, 32, 247, 155, 254, 13, 124, 237, 185, 121, 20, 46, 32, - 3, 63, 36, 54, 81, 52, 160, 17, 1, 67, 68, 98, 127, 193, 149, 149, 108, 62, 236, 210, 156, 74, - 13, 68, 24, 49, 126, 219, 124, 12, 217, 131, 32, 2, 72, 26, 68, 109, 167, 32, 138, 238, 138, - 38, 34, 74, 39, 46, 87, 232, 197, 93, 136, 220, 193, 133, 87, 149, 232, 200, 205, 194, 168, - 180, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 6, 157, 51, 20, 126, 24, 171, 219, 83, 113, 176, 134, 159, 213, 92, 150, - 133, 67, 235, 2, 44, 141, 134, 94, 252, 183, 45, 81, 178, 193, 187, 88, 32, 7, 39, 244, 27, - 175, 73, 179, 134, 107, 184, 136, 76, 211, 49, 69, 110, 221, 22, 113, 80, 88, 44, 157, 146, - 196, 227, 83, 126, 41, 3, 139, 54, 32, 1, 49, 232, 14, 7, 76, 32, 178, 247, 39, 65, 91, 29, - 231, 93, 9, 136, 36, 176, 72, 92, 63, 78, 121, 43, 48, 56, 66, 70, 133, 99, 48, 32, 0, 145, - 154, 219, 32, 156, 27, 197, 255, 214, 192, 230, 207, 33, 197, 55, 174, 39, 213, 138, 192, 238, - 173, 22, 247, 249, 93, 8, 176, 31, 109, 71, 32, 2, 243, 229, 117, 197, 255, 122, 250, 110, 201, - 31, 116, 254, 193, 241, 228, 98, 239, 97, 168, 95, 254, 50, 197, 37, 219, 228, 30, 1, 75, 37, - 146, 32, 2, 251, 95, 40, 126, 75, 198, 15, 89, 219, 83, 79, 188, 119, 46, 143, 32, 239, 124, - 60, 150, 0, 99, 126, 170, 74, 181, 237, 134, 110, 55, 6, 32, 6, 149, 5, 76, 142, 231, 0, 142, - 241, 181, 85, 73, 250, 247, 101, 96, 235, 88, 30, 55, 194, 36, 239, 22, 72, 194, 253, 245, 170, - 77, 86, 138, 32, 1, 130, 28, 118, 182, 141, 212, 15, 115, 26, 105, 190, 143, 91, 142, 125, 93, - 179, 212, 15, 84, 203, 43, 152, 249, 215, 69, 53, 127, 186, 4, 123, 32, 7, 188, 212, 79, 117, - 224, 48, 21, 132, 24, 203, 184, 43, 159, 57, 44, 102, 65, 62, 39, 35, 169, 155, 34, 206, 199, - 163, 103, 4, 20, 100, 230, 32, 7, 177, 217, 196, 41, 199, 253, 106, 197, 179, 235, 189, 122, - 190, 152, 124, 130, 168, 39, 48, 150, 172, 176, 249, 186, 184, 183, 153, 193, 183, 190, 48, 32, - 6, 90, 178, 87, 183, 16, 44, 145, 121, 253, 254, 45, 149, 160, 193, 42, 145, 252, 195, 180, - 150, 92, 184, 72, 197, 24, 248, 54, 251, 236, 40, 157, 32, 2, 20, 178, 102, 77, 107, 189, 105, - 174, 137, 145, 138, 75, 136, 55, 149, 196, 168, 35, 11, 98, 2, 184, 73, 172, 135, 147, 69, 196, - 45, 250, 210, 32, 1, 14, 10, 106, 98, 138, 75, 176, 118, 144, 9, 206, 43, 165, 78, 196, 34, - 253, 229, 32, 158, 41, 166, 34, 95, 227, 24, 235, 84, 92, 131, 172, 32, 4, 133, 28, 17, 71, - 214, 252, 106, 118, 134, 29, 190, 64, 157, 56, 44, 222, 229, 18, 91, 194, 37, 190, 132, 97, 76, - 179, 57, 46, 209, 5, 252, 32, 6, 99, 7, 73, 218, 173, 225, 144, 13, 237, 152, 82, 222, 52, 173, - 137, 235, 94, 44, 138, 79, 181, 153, 108, 186, 165, 54, 135, 8, 9, 242, 235, 32, 5, 48, 127, - 150, 223, 172, 207, 58, 53, 228, 107, 136, 242, 14, 98, 85, 248, 152, 107, 106, 155, 84, 180, - 62, 11, 170, 99, 26, 119, 0, 26, 152, 32, 5, 150, 111, 125, 40, 103, 113, 4, 198, 91, 120, 42, - 55, 194, 34, 156, 213, 118, 98, 226, 116, 37, 35, 58, 203, 240, 123, 124, 167, 27, 86, 117, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 7, 255, 255, 255, 254, 239, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 225, 36, 32, 5, 113, 4, - 132, 41, 62, 211, 190, 57, 115, 226, 29, 236, 84, 66, 103, 143, 107, 143, 132, 0, 189, 123, 89, - 115, 151, 114, 173, 78, 206, 16, 27, 32, 5, 178, 169, 38, 158, 45, 64, 176, 152, 162, 46, 4, - 130, 160, 119, 48, 93, 180, 26, 159, 93, 16, 75, 9, 55, 73, 82, 63, 231, 143, 90, 240, 32, 5, - 129, 28, 11, 54, 157, 116, 223, 41, 180, 53, 230, 180, 162, 192, 75, 115, 52, 231, 160, 198, - 165, 202, 235, 171, 121, 171, 248, 69, 239, 171, 165, 32, 4, 148, 123, 66, 220, 147, 249, 219, - 22, 50, 133, 191, 3, 46, 204, 32, 255, 78, 7, 216, 144, 240, 197, 105, 37, 253, 144, 63, 219, - 5, 224, 19, 32, 3, 60, 206, 209, 73, 124, 219, 99, 213, 107, 200, 77, 39, 69, 30, 196, 245, 99, - 97, 155, 149, 23, 235, 133, 94, 106, 143, 237, 20, 113, 57, 16, 32, 6, 215, 232, 251, 136, 70, - 80, 241, 31, 10, 243, 237, 69, 23, 106, 178, 191, 65, 191, 22, 80, 78, 140, 254, 147, 136, 197, - 229, 171, 60, 73, 82, 32, 2, 73, 154, 109, 136, 227, 115, 86, 25, 32, 98, 40, 10, 104, 153, - 159, 21, 207, 107, 83, 67, 122, 144, 110, 234, 176, 129, 215, 92, 124, 242, 167, 32, 5, 36, - 205, 54, 196, 113, 185, 179, 140, 144, 49, 20, 5, 52, 76, 207, 138, 231, 181, 169, 161, 189, - 72, 55, 117, 88, 64, 235, 174, 62, 121, 84, 32, 5, 68, 225, 208, 192, 61, 230, 9, 15, 223, 141, - 211, 67, 156, 13, 203, 95, 95, 222, 131, 139, 121, 135, 42, 245, 42, 225, 196, 87, 150, 110, - 215, 32, 0, 48, 249, 21, 152, 12, 29, 189, 81, 197, 24, 228, 71, 100, 241, 213, 176, 240, 172, - 174, 58, 244, 166, 105, 180, 141, 41, 211, 204, 144, 52, 119, 32, 4, 158, 53, 245, 127, 169, - 138, 163, 190, 77, 178, 159, 168, 221, 104, 97, 40, 84, 47, 51, 32, 182, 223, 132, 101, 228, - 253, 118, 155, 61, 39, 204, 32, 1, 218, 189, 154, 24, 70, 25, 7, 212, 212, 9, 239, 129, 206, - 195, 175, 250, 196, 246, 46, 161, 224, 5, 132, 160, 134, 49, 255, 101, 109, 171, 227, 32, 5, - 24, 157, 127, 103, 49, 148, 150, 136, 145, 89, 44, 171, 187, 246, 34, 174, 33, 106, 73, 106, - 110, 254, 60, 162, 243, 176, 254, 18, 117, 217, 51, 32, 3, 228, 135, 71, 204, 17, 246, 220, - 230, 229, 141, 177, 226, 139, 118, 94, 18, 181, 218, 211, 157, 25, 217, 183, 65, 164, 213, 166, - 183, 18, 238, 125, 32, 0, 164, 190, 217, 68, 14, 4, 149, 61, 10, 60, 34, 50, 71, 162, 146, 163, - 70, 241, 24, 137, 39, 207, 234, 219, 81, 44, 33, 220, 0, 169, 107, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 149, 17, 221, - 202, 105, 0, 31, 33, 26, 217, 147, 78, 247, 103, 12, 128, 28, 193, 247, 88, 242, 51, 131, 79, - 111, 43, 121, 15, 105, 25, 22, 32, 7, 254, 27, 57, 67, 21, 121, 98, 12, 174, 115, 93, 211, 254, - 204, 55, 232, 22, 4, 49, 56, 27, 28, 183, 62, 74, 166, 103, 103, 84, 58, 71, 32, 3, 116, 89, - 217, 70, 248, 192, 197, 108, 66, 140, 160, 141, 248, 42, 92, 236, 59, 59, 118, 143, 222, 223, - 51, 13, 91, 20, 29, 2, 235, 222, 151, 32, 3, 233, 228, 245, 165, 212, 209, 212, 118, 120, 80, - 237, 22, 221, 66, 138, 123, 227, 47, 177, 61, 67, 228, 207, 198, 235, 236, 24, 167, 22, 69, 57, - 32, 0, 167, 220, 91, 5, 166, 130, 243, 38, 200, 208, 20, 171, 72, 125, 142, 242, 87, 141, 131, - 207, 224, 63, 172, 154, 165, 16, 140, 211, 85, 229, 155, 32, 1, 187, 10, 218, 105, 114, 29, 65, - 28, 236, 65, 201, 231, 214, 125, 89, 45, 16, 18, 67, 29, 220, 10, 134, 50, 174, 92, 75, 157, - 210, 25, 226, 32, 1, 162, 222, 29, 125, 140, 22, 50, 197, 50, 193, 120, 51, 189, 79, 43, 130, - 243, 16, 145, 195, 16, 89, 144, 212, 141, 96, 70, 233, 137, 71, 86, 32, 1, 53, 111, 177, 148, - 38, 252, 138, 106, 253, 254, 51, 189, 137, 67, 217, 198, 10, 50, 215, 34, 236, 120, 116, 86, - 141, 179, 242, 113, 190, 94, 149, 32, 7, 85, 179, 63, 144, 238, 1, 2, 243, 105, 223, 39, 168, - 36, 16, 104, 16, 101, 213, 7, 195, 16, 225, 251, 50, 116, 6, 54, 222, 193, 249, 106, 32, 1, - 243, 144, 133, 144, 53, 44, 106, 28, 171, 117, 167, 125, 229, 3, 94, 231, 111, 69, 162, 147, - 117, 120, 177, 130, 168, 13, 102, 120, 1, 68, 100, 32, 2, 115, 110, 122, 204, 241, 7, 97, 255, - 207, 137, 222, 176, 43, 103, 188, 223, 109, 97, 219, 46, 175, 66, 88, 158, 213, 204, 249, 182, - 122, 60, 32, 32, 4, 116, 237, 160, 162, 120, 154, 57, 103, 83, 24, 167, 167, 171, 109, 113, - 154, 127, 65, 11, 127, 101, 75, 54, 29, 191, 250, 131, 185, 132, 144, 113, 32, 6, 64, 89, 16, - 14, 28, 156, 232, 240, 95, 165, 200, 103, 135, 237, 37, 237, 54, 239, 7, 237, 0, 67, 167, 164, - 168, 224, 41, 173, 195, 93, 58, 32, 0, 163, 210, 15, 175, 253, 202, 171, 103, 170, 213, 57, 27, - 122, 238, 152, 153, 51, 232, 115, 193, 41, 145, 51, 237, 50, 57, 199, 72, 137, 185, 204, 32, 3, - 234, 223, 251, 69, 119, 7, 60, 185, 191, 161, 181, 126, 115, 59, 120, 53, 102, 193, 71, 170, - 44, 109, 9, 178, 70, 59, 85, 0, 43, 122, 23, 32, 1, 23, 143, 177, 10, 146, 76, 7, 182, 122, 8, - 57, 75, 111, 126, 122, 130, 218, 140, 246, 169, 115, 201, 66, 131, 194, 50, 179, 128, 32, 14, - 38, 32, 1, 17, 140, 170, 61, 218, 5, 177, 217, 117, 34, 160, 216, 36, 165, 117, 187, 250, 50, - 7, 187, 193, 228, 26, 4, 16, 182, 169, 164, 182, 255, 71, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 254, - 239, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 239, 255, 225, 1, 8, 53, 76, 190, 184, 244, 36, 126, 255, 134, 180, - 213, 61, 112, 41, 244, 182, 188, 22, 10, 147, 91, 158, 90, 131, 148, 157, 56, 245, 63, 60, 132, - 97, 179, 21, 130, 172, 74, 138, 253, 38, 56, 180, 102, 39, 111, 136, 166, 55, 53, 85, 254, 63, - 223, 5, 225, 253, 154, 57, 29, 217, 247, 8, 124, 152, 135, 34, 188, 151, 17, 187, 220, 0, 165, - 108, 251, 46, 107, 166, 181, 205, 71, 218, 163, 122, 119, 132, 70, 149, 13, 167, 45, 27, 16, - 248, 130, 246, 62, 140, 105, 159, 88, 38, 247, 37, 228, 16, 114, 143, 17, 195, 241, 138, 53, - 178, 151, 238, 26, 248, 33, 227, 5, 41, 194, 29, 250, 21, 194, 122, 94, 135, 249, 215, 243, 35, - 175, 188, 241, 148, 240, 29, 134, 150, 249, 169, 156, 239, 74, 76, 156, 247, 185, 194, 128, 66, - 214, 36, 211, 116, 90, 38, 107, 227, 92, 168, 83, 134, 109, 180, 211, 28, 204, 33, 14, 245, 72, - 86, 236, 114, 107, 238, 242, 209, 141, 32, 188, 207, 90, 66, 55, 99, 210, 105, 248, 192, 4, 62, - 145, 208, 140, 147, 51, 213, 13, 119, 168, 48, 157, 15, 196, 33, 110, 183, 87, 150, 74, 188, - 70, 155, 201, 215, 23, 246, 142, 253, 16, 200, 158, 124, 254, 165, 5, 73, 12, 53, 221, 137, - 122, 171, 78, 203, 75, 123, 4, 181, 50, 42, 37, 32, 13, 234, 176, 114, 190, 190, 94, 157, 8, - 34, 114, 134, 201, 115, 56, 140, 49, 142, 12, 86, 177, 21, 174, 54, 113, 237, 107, 139, 115, - 165, 7, 246, 48, 26, 84, 165, 99, 169, 89, 113, 30, 179, 21, 130, 172, 74, 138, 253, 38, 56, - 180, 102, 39, 111, 136, 166, 55, 53, 85, 254, 63, 223, 5, 225, 253, 154, 57, 29, 217, 247, 8, - 124, 152, 135, 34, 188, 151, 17, 187, 220, 0, 165, 108, 251, 46, 107, 166, 181, 205, 71, 218, - 163, 122, 119, 132, 70, 149, 13, 167, 45, 27, 16, 248, 130, 246, 62, 140, 105, 159, 88, 38, - 247, 37, 228, 16, 114, 143, 17, 195, 241, 138, 53, 178, 151, 238, 26, 248, 33, 227, 5, 41, 194, - 29, 250, 21, 194, 122, 94, 135, 249, 215, 243, 35, 175, 188, 241, 148, 240, 29, 134, 150, 249, - 169, 156, 239, 74, 76, 156, 247, 185, 194, 128, 66, 214, 36, 211, 116, 90, 38, 107, 227, 92, - 168, 83, 134, 109, 180, 211, 28, 204, 33, 14, 245, 72, 86, 236, 114, 107, 238, 242, 209, 141, - 32, 188, 207, 90, 66, 55, 99, 210, 105, 248, 192, 4, 62, 145, 208, 140, 147, 51, 213, 13, 119, - 168, 48, 157, 15, 196, 33, 110, 183, 87, 150, 74, 188, 70, 155, 201, 215, 23, 246, 142, 253, - 16, 200, 158, 124, 254, 165, 5, 73, 12, 53, 221, 137, 122, 171, 78, 203, 75, 123, 4, 181, 50, - 42, 37, 32, 13, 234, 176, 114, 190, 190, 94, 157, 23, 32, 5, 186, 158, 17, 4, 199, 30, 144, - 201, 38, 11, 250, 108, 122, 224, 128, 16, 54, 3, 22, 121, 52, 205, 27, 220, 62, 254, 5, 5, 96, - 103, 139, 32, 7, 59, 132, 58, 0, 159, 27, 9, 41, 149, 70, 135, 241, 46, 173, 1, 149, 22, 148, - 213, 68, 148, 155, 241, 153, 175, 198, 3, 251, 1, 177, 222, 32, 7, 59, 132, 58, 0, 159, 27, 9, - 41, 149, 70, 135, 241, 46, 173, 1, 149, 22, 148, 213, 68, 148, 155, 241, 153, 175, 198, 3, 251, - 1, 177, 222, 32, 7, 59, 132, 58, 0, 159, 27, 9, 41, 149, 70, 135, 241, 46, 173, 1, 149, 22, - 148, 213, 68, 148, 155, 241, 153, 175, 198, 3, 251, 1, 177, 222, 32, 0, 105, 212, 236, 199, - 239, 28, 54, 213, 225, 236, 74, 163, 155, 99, 70, 108, 178, 43, 245, 88, 11, 111, 170, 159, - 159, 33, 58, 96, 204, 29, 11, 32, 3, 206, 0, 174, 2, 104, 127, 150, 87, 237, 207, 22, 241, 3, - 9, 155, 152, 245, 234, 183, 232, 240, 217, 138, 46, 74, 161, 162, 39, 132, 23, 77, 32, 5, 208, - 70, 213, 49, 253, 16, 182, 213, 162, 3, 62, 154, 172, 201, 108, 198, 33, 9, 163, 29, 246, 138, - 142, 204, 208, 212, 219, 227, 218, 38, 125, 32, 5, 137, 156, 64, 105, 64, 51, 90, 199, 221, 86, - 116, 210, 235, 217, 67, 53, 99, 154, 234, 105, 110, 151, 32, 128, 61, 53, 240, 217, 19, 140, - 135, 32, 1, 32, 30, 162, 132, 42, 50, 45, 45, 82, 75, 169, 1, 127, 111, 8, 159, 37, 72, 164, - 217, 124, 74, 113, 81, 8, 196, 143, 85, 201, 211, 146, 32, 7, 192, 192, 46, 130, 184, 228, 219, - 107, 64, 19, 135, 51, 19, 38, 223, 184, 90, 194, 80, 30, 108, 99, 89, 69, 28, 35, 126, 196, 2, - 204, 98, 32, 1, 45, 221, 64, 177, 51, 59, 84, 97, 184, 119, 103, 199, 85, 35, 64, 59, 125, 12, - 239, 233, 77, 17, 59, 132, 59, 163, 179, 135, 199, 20, 223, 32, 1, 2, 251, 108, 216, 187, 36, - 189, 54, 162, 37, 18, 116, 131, 155, 30, 145, 213, 19, 36, 123, 201, 153, 119, 20, 216, 85, - 135, 36, 110, 185, 46, 32, 6, 123, 154, 60, 47, 212, 237, 207, 194, 253, 45, 101, 86, 179, 69, - 3, 34, 103, 64, 50, 131, 172, 22, 51, 87, 73, 218, 82, 220, 93, 150, 119, 32, 5, 120, 233, 13, - 54, 248, 167, 31, 72, 6, 136, 240, 245, 243, 230, 176, 66, 93, 46, 150, 109, 126, 60, 152, 221, - 91, 157, 136, 87, 139, 136, 234, 32, 4, 143, 65, 110, 148, 247, 167, 104, 3, 87, 209, 157, 58, - 96, 39, 81, 37, 2, 216, 55, 134, 215, 85, 47, 154, 183, 17, 242, 100, 50, 158, 95, 32, 0, 64, - 107, 195, 205, 225, 33, 232, 80, 95, 118, 77, 242, 68, 226, 166, 76, 13, 158, 58, 156, 126, 1, - 39, 113, 228, 237, 125, 194, 71, 219, 243, 32, 3, 203, 42, 99, 32, 148, 99, 137, 238, 191, 1, - 36, 39, 248, 146, 42, 50, 42, 150, 226, 174, 228, 246, 140, 163, 221, 70, 172, 9, 224, 161, - 141, 32, 1, 164, 166, 114, 98, 225, 94, 86, 220, 67, 159, 142, 200, 239, 158, 128, 59, 63, 244, - 200, 149, 178, 88, 122, 153, 159, 43, 229, 99, 130, 176, 213, 32, 6, 169, 97, 59, 109, 42, 177, - 241, 154, 69, 148, 121, 125, 6, 94, 174, 66, 175, 11, 229, 220, 249, 18, 34, 2, 160, 9, 239, - 122, 119, 121, 83, 32, 0, 113, 217, 179, 47, 12, 210, 21, 180, 101, 98, 32, 129, 125, 69, 23, - 156, 167, 69, 139, 17, 110, 127, 16, 32, 226, 158, 43, 211, 208, 95, 106, 32, 6, 66, 54, 132, - 34, 88, 227, 47, 71, 74, 74, 117, 11, 188, 95, 242, 236, 119, 26, 90, 56, 194, 126, 180, 87, - 48, 21, 155, 142, 228, 230, 211, 32, 1, 8, 232, 148, 173, 220, 235, 206, 152, 38, 185, 100, - 198, 14, 72, 189, 13, 12, 212, 47, 115, 244, 123, 221, 143, 219, 156, 97, 194, 199, 30, 182, - 32, 7, 142, 85, 159, 235, 76, 225, 193, 220, 214, 98, 183, 199, 106, 5, 128, 73, 21, 138, 21, - 133, 93, 23, 96, 224, 25, 220, 170, 83, 210, 66, 181, 23, 32, 2, 163, 37, 122, 174, 56, 142, - 216, 245, 244, 184, 125, 39, 223, 238, 134, 178, 190, 78, 68, 69, 240, 60, 60, 85, 185, 29, - 136, 8, 47, 77, 48, 32, 5, 134, 123, 84, 149, 88, 171, 143, 12, 2, 179, 5, 248, 244, 63, 61, - 250, 98, 223, 173, 74, 59, 42, 3, 141, 127, 106, 217, 226, 16, 176, 72, 32, 5, 134, 123, 84, - 149, 88, 171, 143, 12, 2, 179, 5, 248, 244, 63, 61, 250, 98, 223, 173, 74, 59, 42, 3, 141, 127, - 106, 217, 226, 16, 176, 72, 32, 5, 134, 123, 84, 149, 88, 171, 143, 12, 2, 179, 5, 248, 244, - 63, 61, 250, 98, 223, 173, 74, 59, 42, 3, 141, 127, 106, 217, 226, 16, 176, 72, 32, 4, 92, 215, - 77, 64, 206, 190, 217, 231, 204, 138, 52, 187, 225, 6, 195, 184, 148, 146, 98, 142, 10, 237, - 132, 238, 196, 103, 185, 79, 194, 106, 136, 32, 3, 46, 151, 117, 185, 146, 93, 232, 151, 44, - 106, 244, 141, 173, 239, 52, 56, 135, 91, 188, 25, 179, 249, 178, 233, 219, 75, 220, 85, 224, - 185, 209, 32, 2, 56, 187, 99, 96, 73, 48, 196, 162, 85, 121, 87, 137, 132, 0, 59, 48, 163, 133, - 42, 64, 251, 175, 198, 248, 130, 201, 199, 19, 56, 163, 114, 32, 2, 172, 72, 17, 36, 178, 144, - 116, 175, 221, 11, 124, 163, 187, 41, 241, 245, 235, 100, 187, 15, 172, 6, 189, 60, 251, 173, - 63, 2, 144, 176, 203, 32, 7, 194, 200, 168, 120, 214, 176, 202, 129, 184, 40, 234, 93, 192, 96, - 149, 93, 27, 207, 30, 82, 103, 197, 14, 57, 60, 237, 110, 40, 137, 127, 178, 32, 0, 146, 147, - 27, 150, 232, 183, 159, 61, 81, 156, 49, 23, 171, 214, 123, 84, 145, 61, 177, 155, 161, 247, - 107, 159, 235, 213, 8, 223, 170, 234, 88, 32, 3, 48, 147, 58, 168, 56, 95, 160, 86, 124, 159, - 140, 248, 6, 18, 224, 187, 96, 136, 232, 45, 215, 140, 153, 173, 36, 239, 28, 65, 147, 132, - 227, 32, 1, 39, 121, 52, 204, 102, 136, 60, 217, 100, 93, 56, 68, 161, 91, 53, 36, 118, 239, - 179, 199, 132, 39, 21, 134, 8, 127, 77, 214, 86, 1, 151, 32, 7, 15, 168, 86, 36, 5, 223, 136, - 141, 130, 114, 241, 60, 171, 135, 22, 64, 144, 76, 189, 171, 105, 238, 199, 215, 248, 15, 43, - 124, 82, 216, 100, 32, 6, 63, 121, 168, 212, 175, 97, 183, 41, 55, 6, 157, 118, 25, 237, 140, - 10, 226, 38, 108, 72, 133, 2, 20, 194, 105, 90, 234, 237, 127, 31, 135, 32, 3, 95, 90, 246, - 146, 220, 220, 126, 124, 221, 229, 120, 229, 121, 95, 66, 18, 111, 5, 39, 64, 234, 189, 232, - 60, 159, 0, 147, 67, 124, 160, 81, 32, 0, 128, 196, 177, 18, 102, 194, 247, 111, 5, 184, 24, - 121, 42, 79, 59, 157, 32, 59, 47, 201, 87, 49, 140, 36, 207, 154, 233, 55, 156, 85, 20, 32, 6, - 62, 129, 192, 53, 29, 18, 19, 220, 210, 210, 124, 2, 184, 146, 46, 63, 85, 62, 153, 96, 202, - 189, 179, 217, 249, 228, 208, 168, 157, 171, 85, 32, 4, 252, 20, 112, 128, 70, 142, 15, 151, - 58, 44, 107, 29, 87, 123, 89, 197, 199, 250, 144, 132, 224, 120, 23, 72, 171, 230, 249, 115, - 103, 168, 121, 32, 4, 60, 231, 255, 193, 168, 52, 217, 217, 202, 195, 20, 89, 217, 87, 29, 192, - 63, 88, 181, 124, 111, 98, 76, 244, 242, 19, 120, 128, 217, 152, 2, 32, 0, 191, 48, 142, 1, - 122, 139, 54, 112, 203, 106, 113, 208, 27, 51, 82, 50, 5, 74, 173, 182, 74, 138, 26, 102, 72, - 156, 187, 195, 46, 2, 64, 32, 6, 255, 188, 219, 98, 117, 141, 235, 142, 127, 232, 100, 141, - 181, 71, 41, 93, 30, 54, 159, 61, 216, 140, 181, 69, 141, 233, 175, 62, 217, 202, 156, 32, 4, - 99, 247, 11, 27, 207, 183, 69, 247, 182, 4, 61, 13, 223, 66, 13, 24, 87, 237, 199, 6, 87, 70, - 190, 204, 21, 255, 59, 202, 68, 204, 246, 32, 5, 225, 146, 39, 232, 171, 250, 119, 5, 75, 119, - 156, 34, 22, 69, 148, 221, 12, 244, 207, 17, 223, 208, 148, 99, 157, 19, 211, 91, 251, 107, - 184, 7, 252, 11, 21, 38, 31, 183, 75, 252, 11, 109, 101, 0, 223, 66, 171, 63, 19, 183, 139, - 142, 40, 174, 191, 87, 11, 222, 129, 124, 101, 75, 123, 70, 199, 158, 120, 185, 8, 172, 104, - 202, 129, 51, 166, 239, 100, 28, 87, 199, 146, 146, 226, 245, 22, 221, 52, 20, 178, 168, 107, - 218, 157, 192, 83, 17, 243, 148, 90, 0, 157, 43, 19, 77, 53, 64, 134, 77, 63, 197, 63, 243, 41, - 44, 218, 23, 127, 103, 9, 194, 201, 58, 143, 151, 62, 85, 75, 217, 143, 98, 74, 76, 140, 137, - 217, 143, 157, 127, 73, 13, 30, 154, 115, 104, 31, 52, 74, 172, 134, 205, 100, 44, 195, 181, - 60, 156, 125, 108, 163, 218, 226, 24, 112, 45, 211, 8, 154, 246, 16, 159, 237, 206, 177, 157, - 162, 154, 64, 186, 79, 84, 23, 81, 132, 104, 72, 66, 186, 25, 81, 168, 118, 233, 92, 41, 171, - 144, 132, 246, 76, 246, 142, 86, 209, 111, 24, 65, 183, 87, 141, 130, 215, 53, 217, 166, 72, - 61, 175, 41, 33, 248, 102, 55, 7, 57, 90, 146, 42, 221, 95, 80, 55, 238, 93, 29, 130, 15, 78, - 32, 160, 44, 76, 21, 121, 200, 67, 65, 126, 167, 75, 214, 73, 208, 141, 214, 158, 78, 7, 252, - 11, 21, 38, 31, 183, 75, 252, 11, 109, 101, 0, 223, 66, 171, 63, 19, 183, 139, 142, 40, 174, - 191, 87, 11, 222, 129, 124, 101, 75, 123, 70, 199, 158, 120, 185, 8, 172, 104, 202, 129, 51, - 166, 239, 100, 28, 87, 199, 146, 146, 226, 245, 22, 221, 52, 20, 178, 168, 107, 218, 157, 192, - 83, 17, 243, 148, 90, 0, 157, 43, 19, 77, 53, 64, 134, 77, 63, 197, 63, 243, 41, 44, 218, 23, - 127, 103, 9, 194, 201, 58, 143, 151, 62, 85, 75, 217, 143, 98, 74, 76, 140, 137, 217, 143, 157, - 127, 73, 13, 30, 154, 115, 104, 31, 52, 74, 172, 134, 205, 100, 44, 195, 181, 60, 156, 125, - 108, 163, 218, 226, 24, 112, 45, 211, 8, 154, 246, 16, 159, 237, 206, 177, 157, 162, 154, 64, - 186, 79, 84, 23, 81, 132, 104, 72, 66, 186, 25, 81, 168, 118, 233, 92, 41, 171, 144, 132, 246, - 76, 246, 142, 86, 209, 111, 24, 65, 183, 87, 141, 130, 215, 53, 217, 166, 72, 61, 175, 41, 33, - 248, 102, 55, 7, 57, 90, 146, 42, 221, 95, 80, 55, 238, 93, 29, 130, 15, 78, 32, 160, 44, 76, - 21, 121, 200, 67, 65, 126, 167, 75, 214, 73, 208, 141, 214, 158, 78, 2, 32, 0, 179, 251, 140, - 44, 139, 6, 94, 64, 141, 189, 35, 254, 12, 27, 211, 162, 142, 138, 211, 124, 152, 90, 62, 191, - 1, 150, 162, 11, 201, 237, 84, 32, 0, 5, 52, 81, 173, 157, 123, 17, 228, 220, 86, 223, 6, 220, - 169, 67, 186, 126, 121, 118, 203, 118, 138, 201, 72, 162, 221, 245, 67, 29, 54, 105, 2, 32, 4, - 59, 167, 10, 174, 78, 27, 164, 37, 184, 185, 58, 172, 94, 255, 217, 40, 43, 224, 65, 187, 205, - 196, 83, 218, 117, 172, 94, 162, 228, 116, 187, 32, 0, 59, 195, 41, 28, 105, 216, 158, 77, 47, - 61, 181, 95, 59, 232, 102, 220, 180, 100, 248, 53, 31, 84, 26, 212, 152, 188, 91, 145, 245, - 173, 130, 8, 72, 157, 52, 65, 131, 107, 51, 203, 161, 9, 236, 138, 220, 146, 47, 117, 159, 8, - 235, 198, 120, 15, 215, 252, 32, 210, 210, 40, 184, 17, 38, 68, 138, 172, 80, 210, 73, 228, - 117, 59, 0, 40, 28, 69, 91, 166, 191, 11, 97, 172, 37, 28, 174, 5, 94, 106, 50, 248, 229, 59, - 162, 89, 94, 231, 74, 147, 252, 163, 246, 133, 208, 151, 87, 189, 40, 208, 243, 159, 219, 5, - 173, 34, 96, 18, 158, 19, 99, 83, 193, 175, 94, 97, 238, 97, 169, 236, 150, 245, 207, 203, 230, - 180, 210, 239, 201, 38, 87, 47, 79, 103, 91, 115, 144, 169, 207, 195, 17, 196, 182, 226, 74, - 106, 171, 149, 236, 195, 101, 146, 225, 111, 62, 174, 168, 68, 214, 215, 129, 69, 23, 126, 173, - 62, 129, 192, 223, 180, 220, 93, 110, 122, 57, 46, 181, 95, 198, 39, 137, 90, 39, 24, 90, 125, - 16, 25, 41, 188, 114, 58, 89, 239, 63, 64, 105, 4, 102, 211, 3, 43, 180, 109, 69, 210, 168, 47, - 199, 3, 231, 17, 41, 201, 253, 197, 66, 155, 36, 12, 34, 61, 169, 95, 84, 39, 35, 149, 250, - 234, 76, 165, 17, 124, 40, 205, 185, 201, 27, 71, 191, 77, 148, 228, 244, 148, 31, 91, 252, 89, - 141, 6, 13, 139, 105, 158, 82, 26, 166, 148, 184, 91, 40, 185, 45, 214, 150, 78, 230, 134, 109, - 250, 24, 78, 249, 49, 197, 186, 141, 6, 8, 80, 32, 245, 250, 73, 182, 254, 224, 221, 201, 126, - 136, 9, 100, 226, 76, 104, 161, 124, 29, 227, 115, 194, 205, 218, 183, 229, 180, 154, 171, 16, - 114, 138, 172, 80, 210, 73, 228, 117, 59, 0, 40, 28, 69, 91, 166, 191, 11, 97, 172, 37, 28, - 174, 5, 94, 106, 50, 248, 229, 59, 162, 89, 94, 231, 74, 147, 252, 163, 246, 133, 208, 151, 87, - 189, 40, 208, 243, 159, 219, 5, 173, 34, 96, 18, 158, 19, 99, 83, 193, 175, 94, 97, 238, 97, - 169, 236, 150, 245, 207, 203, 230, 180, 210, 239, 201, 38, 87, 47, 79, 103, 91, 115, 144, 169, - 207, 195, 17, 196, 182, 226, 74, 106, 171, 149, 236, 195, 101, 146, 225, 111, 62, 174, 168, 68, - 214, 215, 129, 69, 23, 126, 173, 62, 129, 192, 223, 180, 220, 93, 110, 122, 57, 46, 181, 95, - 198, 39, 137, 90, 39, 24, 90, 125, 16, 25, 41, 188, 114, 58, 89, 239, 63, 64, 105, 4, 102, 211, - 3, 43, 180, 109, 69, 210, 168, 47, 199, 3, 231, 17, 41, 201, 253, 197, 66, 155, 36, 12, 34, 61, - 169, 95, 84, 39, 35, 149, 250, 234, 76, 165, 17, 124, 40, 205, 185, 201, 27, 71, 191, 77, 148, - 228, 244, 148, 31, 91, 252, 89, 141, 6, 13, 139, 105, 158, 82, 26, 166, 148, 184, 91, 40, 185, - 45, 214, 150, 78, 230, 134, 109, 250, 24, 78, 249, 49, 197, 186, 141, 6, 36, 32, 3, 11, 190, - 10, 245, 46, 197, 227, 241, 252, 227, 191, 255, 125, 8, 152, 30, 193, 129, 20, 117, 98, 43, - 205, 180, 85, 212, 192, 84, 108, 211, 147, 32, 6, 105, 154, 54, 32, 217, 251, 178, 189, 125, - 44, 74, 148, 158, 166, 35, 31, 32, 123, 202, 155, 237, 245, 244, 162, 130, 75, 66, 176, 19, 4, - 95, 32, 2, 53, 72, 92, 244, 10, 199, 85, 215, 98, 197, 202, 53, 55, 48, 73, 121, 142, 75, 201, - 211, 59, 249, 82, 99, 28, 177, 49, 24, 229, 179, 18, 32, 3, 147, 151, 167, 74, 59, 143, 23, - 251, 79, 191, 28, 36, 70, 115, 138, 125, 47, 234, 176, 10, 181, 87, 6, 92, 201, 241, 192, 251, - 131, 0, 88, 32, 4, 39, 97, 124, 163, 176, 81, 173, 238, 229, 62, 141, 71, 149, 157, 213, 58, - 29, 88, 81, 70, 210, 37, 247, 98, 32, 227, 122, 92, 107, 158, 25, 32, 1, 61, 39, 156, 131, 15, - 116, 96, 118, 150, 228, 16, 100, 173, 143, 116, 225, 32, 132, 100, 64, 218, 62, 42, 82, 24, - 237, 250, 224, 123, 138, 97, 32, 2, 146, 189, 233, 22, 145, 97, 183, 76, 47, 228, 86, 179, 24, - 44, 22, 187, 234, 165, 124, 212, 168, 28, 48, 170, 172, 113, 149, 59, 111, 126, 0, 32, 1, 73, - 94, 244, 139, 72, 176, 219, 166, 23, 242, 43, 89, 140, 22, 11, 93, 245, 82, 190, 106, 84, 14, - 24, 85, 86, 56, 202, 157, 183, 191, 0, 32, 7, 49, 84, 83, 237, 209, 73, 126, 221, 105, 98, 146, - 151, 69, 38, 138, 147, 197, 172, 158, 154, 130, 67, 143, 205, 176, 10, 185, 201, 66, 199, 20, - 32, 1, 75, 213, 109, 3, 8, 2, 241, 101, 42, 61, 134, 159, 48, 52, 142, 224, 44, 155, 89, 243, - 73, 37, 137, 11, 64, 126, 128, 131, 255, 70, 42, 32, 1, 104, 35, 95, 92, 228, 27, 175, 98, 140, - 205, 91, 31, 157, 252, 165, 220, 105, 251, 241, 140, 219, 12, 161, 65, 197, 62, 110, 124, 61, - 193, 122, 32, 1, 149, 72, 216, 225, 106, 116, 178, 76, 86, 77, 33, 43, 180, 163, 197, 44, 142, - 52, 198, 3, 206, 173, 228, 211, 204, 13, 227, 175, 28, 97, 231, 32, 2, 232, 98, 147, 59, 174, - 70, 149, 38, 167, 15, 131, 123, 149, 113, 85, 110, 221, 121, 170, 84, 232, 24, 79, 75, 130, 8, - 99, 192, 32, 16, 235, 32, 2, 115, 182, 7, 186, 57, 90, 222, 26, 175, 88, 28, 210, 226, 219, - 114, 205, 112, 174, 240, 165, 47, 13, 207, 147, 229, 120, 162, 31, 51, 215, 163, 32, 3, 198, - 127, 221, 133, 73, 158, 119, 151, 181, 21, 139, 83, 240, 137, 62, 75, 131, 90, 183, 183, 239, - 195, 107, 108, 247, 170, 165, 138, 0, 211, 101, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 148, 216, 207, 2, 3, 139, 221, - 191, 137, 87, 81, 23, 179, 133, 145, 206, 30, 137, 32, 236, 3, 210, 246, 126, 171, 104, 57, - 139, 240, 51, 41, 32, 4, 36, 244, 60, 5, 202, 242, 129, 217, 68, 10, 21, 74, 144, 101, 2, 160, - 60, 17, 219, 171, 167, 13, 137, 161, 241, 186, 130, 225, 71, 234, 214, 32, 1, 120, 99, 212, 90, - 47, 150, 255, 235, 159, 211, 99, 64, 152, 122, 210, 217, 205, 190, 167, 6, 216, 51, 109, 66, - 132, 35, 200, 191, 124, 240, 108, 32, 0, 85, 76, 196, 128, 0, 235, 158, 110, 54, 224, 100, 184, - 2, 249, 168, 88, 22, 127, 135, 187, 9, 7, 183, 255, 194, 35, 136, 175, 95, 212, 5, 32, 6, 232, - 9, 192, 228, 11, 65, 179, 232, 87, 242, 201, 109, 203, 41, 107, 35, 226, 68, 234, 223, 245, 93, - 27, 222, 156, 178, 238, 17, 166, 94, 17, 32, 4, 211, 244, 238, 153, 155, 124, 251, 84, 27, 24, - 181, 30, 62, 39, 10, 205, 80, 36, 200, 169, 126, 135, 91, 34, 243, 59, 138, 71, 139, 81, 122, - 32, 4, 249, 127, 248, 99, 200, 239, 97, 58, 47, 101, 113, 234, 47, 153, 251, 99, 195, 238, 58, - 209, 62, 79, 82, 158, 246, 104, 189, 122, 227, 79, 141, 32, 4, 216, 135, 181, 159, 147, 233, - 118, 112, 189, 56, 66, 185, 24, 223, 247, 190, 251, 107, 14, 55, 253, 118, 20, 103, 13, 146, - 118, 84, 217, 114, 68, 32, 3, 55, 72, 118, 32, 193, 11, 90, 79, 171, 240, 210, 127, 212, 50, - 136, 202, 240, 242, 91, 53, 27, 176, 114, 48, 235, 25, 155, 191, 85, 215, 179, 32, 7, 60, 186, - 164, 44, 164, 3, 52, 158, 62, 202, 42, 164, 34, 156, 39, 97, 241, 242, 57, 98, 16, 0, 46, 234, - 50, 242, 103, 36, 5, 42, 220, 32, 3, 54, 237, 18, 222, 139, 112, 60, 46, 63, 108, 110, 174, 47, - 57, 160, 216, 32, 41, 246, 139, 129, 182, 57, 27, 28, 201, 29, 194, 2, 3, 166, 32, 1, 231, 166, - 140, 238, 19, 197, 108, 196, 234, 26, 189, 31, 111, 60, 13, 157, 180, 28, 203, 124, 18, 218, - 112, 151, 28, 237, 157, 142, 74, 234, 145, 32, 1, 222, 126, 43, 229, 237, 144, 32, 71, 228, - 134, 109, 56, 4, 9, 182, 82, 226, 22, 57, 57, 96, 237, 189, 201, 188, 250, 143, 228, 168, 242, - 134, 32, 3, 84, 196, 181, 38, 231, 130, 57, 41, 14, 217, 197, 28, 205, 198, 192, 14, 222, 219, - 165, 223, 64, 96, 139, 249, 108, 125, 122, 1, 206, 33, 168, 32, 4, 127, 37, 41, 40, 69, 83, - 115, 128, 57, 163, 238, 214, 120, 89, 132, 32, 75, 86, 205, 195, 101, 38, 142, 53, 46, 0, 96, - 56, 121, 245, 198, 32, 3, 131, 244, 217, 63, 35, 70, 189, 36, 185, 108, 151, 105, 132, 254, - 196, 196, 113, 57, 67, 7, 30, 248, 110, 177, 121, 138, 20, 4, 224, 60, 97, 32, 1, 53, 24, 227, - 221, 240, 49, 77, 110, 222, 152, 144, 32, 81, 121, 130, 16, 67, 138, 39, 2, 205, 235, 235, 21, - 253, 57, 139, 32, 242, 128, 248, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 254, 239, 253, 240, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 239, 255, 225, 36, 32, 1, 95, 221, 207, 191, 219, 55, 97, 99, 251, 192, 205, 3, 114, 74, - 92, 4, 36, 106, 253, 169, 75, 241, 254, 245, 24, 64, 21, 99, 212, 158, 109, 32, 0, 168, 155, - 93, 165, 62, 251, 124, 91, 82, 159, 226, 74, 255, 187, 119, 61, 168, 110, 222, 26, 135, 252, - 101, 233, 211, 126, 44, 147, 141, 111, 220, 32, 5, 244, 149, 55, 66, 246, 81, 145, 22, 178, - 191, 85, 183, 29, 228, 251, 146, 44, 196, 156, 226, 189, 245, 232, 111, 128, 226, 94, 134, 161, - 94, 215, 32, 0, 124, 211, 136, 212, 237, 132, 89, 190, 157, 73, 240, 3, 81, 253, 127, 143, 159, - 153, 111, 44, 228, 127, 176, 196, 153, 73, 204, 148, 222, 43, 243, 32, 2, 41, 134, 84, 204, 74, - 209, 68, 173, 234, 92, 215, 26, 246, 3, 176, 88, 94, 125, 120, 106, 171, 106, 25, 227, 153, - 146, 168, 108, 130, 87, 102, 32, 1, 167, 29, 172, 208, 222, 255, 9, 85, 21, 140, 71, 76, 106, - 241, 229, 213, 23, 86, 218, 165, 151, 6, 14, 227, 167, 2, 244, 194, 160, 109, 207, 32, 4, 255, - 123, 163, 6, 56, 129, 72, 164, 9, 96, 223, 95, 8, 21, 6, 147, 165, 46, 5, 220, 82, 218, 95, 65, - 51, 106, 29, 31, 60, 158, 170, 32, 2, 127, 189, 209, 131, 28, 64, 164, 82, 4, 176, 111, 175, - 132, 10, 131, 73, 210, 151, 2, 238, 41, 109, 47, 160, 153, 181, 14, 143, 158, 79, 85, 32, 0, - 180, 83, 227, 153, 248, 117, 67, 240, 124, 101, 20, 41, 99, 46, 170, 12, 1, 89, 22, 76, 105, - 220, 131, 35, 133, 36, 67, 140, 78, 156, 196, 32, 7, 103, 245, 221, 83, 165, 245, 206, 121, - 240, 5, 30, 33, 100, 156, 91, 148, 19, 184, 179, 147, 241, 121, 17, 38, 224, 246, 100, 155, - 166, 20, 195, 32, 5, 78, 64, 59, 220, 248, 56, 206, 236, 165, 189, 155, 85, 14, 110, 172, 58, - 48, 178, 228, 63, 118, 241, 158, 35, 122, 56, 31, 125, 113, 108, 125, 32, 4, 226, 254, 215, - 177, 61, 91, 140, 61, 196, 148, 104, 63, 127, 119, 114, 0, 4, 21, 91, 215, 147, 158, 175, 142, - 12, 235, 253, 25, 228, 146, 119, 32, 0, 49, 226, 144, 38, 216, 177, 200, 182, 133, 44, 17, 153, - 251, 225, 40, 140, 62, 69, 147, 216, 223, 181, 69, 77, 206, 246, 108, 141, 251, 71, 52, 32, 2, - 120, 169, 191, 163, 21, 134, 50, 114, 57, 38, 164, 59, 95, 233, 84, 82, 198, 149, 156, 22, 245, - 226, 237, 44, 80, 87, 238, 10, 34, 252, 194, 32, 4, 176, 201, 218, 169, 245, 24, 19, 128, 150, - 160, 46, 111, 81, 30, 18, 144, 123, 88, 98, 224, 208, 23, 97, 233, 96, 117, 179, 73, 144, 243, - 123, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 6, 173, 49, 21, 158, 122, 84, 204, 189, 120, 170, 50, 50, 9, 148, 55, 132, 167, - 68, 143, 159, 255, 247, 71, 172, 115, 243, 3, 155, 196, 167, 138, 32, 4, 217, 76, 180, 139, - 176, 217, 11, 243, 207, 252, 154, 192, 137, 41, 111, 57, 90, 135, 71, 231, 114, 174, 44, 36, - 171, 238, 221, 46, 44, 4, 212, 32, 3, 104, 235, 170, 158, 191, 37, 78, 41, 40, 108, 103, 133, - 159, 242, 130, 224, 242, 191, 52, 213, 37, 102, 143, 126, 151, 189, 193, 84, 210, 197, 175, 32, - 3, 89, 248, 104, 149, 197, 48, 181, 235, 34, 205, 235, 12, 240, 143, 145, 205, 250, 4, 236, 30, - 10, 92, 101, 252, 193, 159, 143, 180, 230, 6, 225, 32, 5, 136, 251, 4, 187, 109, 185, 93, 122, - 224, 220, 126, 200, 40, 109, 217, 39, 36, 21, 190, 240, 232, 250, 196, 91, 188, 89, 172, 80, - 121, 251, 197, 32, 1, 111, 83, 106, 97, 202, 254, 209, 6, 173, 240, 252, 164, 82, 7, 224, 97, - 43, 170, 100, 11, 116, 202, 231, 251, 250, 128, 242, 226, 82, 136, 48, 32, 4, 153, 150, 239, - 193, 196, 177, 132, 172, 200, 165, 223, 53, 24, 235, 76, 250, 245, 197, 80, 180, 170, 139, 2, - 254, 136, 131, 70, 46, 37, 49, 231, 32, 0, 86, 74, 64, 98, 112, 228, 198, 26, 65, 236, 91, 39, - 36, 6, 154, 69, 20, 124, 58, 213, 99, 176, 37, 229, 246, 236, 43, 208, 15, 23, 156, 32, 4, 103, - 120, 243, 154, 150, 52, 17, 243, 253, 106, 159, 106, 191, 121, 159, 177, 200, 92, 26, 253, 67, - 248, 230, 35, 16, 176, 38, 229, 139, 47, 217, 32, 6, 222, 171, 49, 136, 19, 201, 120, 131, 213, - 222, 1, 253, 81, 182, 155, 115, 141, 254, 169, 37, 142, 182, 74, 161, 16, 21, 243, 201, 239, - 166, 237, 32, 3, 194, 35, 118, 25, 203, 239, 88, 140, 107, 15, 136, 189, 11, 41, 196, 36, 17, - 147, 104, 53, 45, 41, 248, 175, 68, 242, 183, 160, 235, 76, 182, 32, 5, 17, 199, 242, 192, 147, - 65, 0, 240, 120, 32, 247, 227, 118, 152, 107, 93, 4, 25, 227, 81, 107, 67, 188, 206, 52, 204, - 225, 191, 11, 196, 128, 32, 6, 186, 164, 209, 236, 178, 225, 233, 6, 195, 82, 146, 237, 249, - 168, 60, 158, 33, 10, 76, 196, 40, 127, 22, 31, 165, 117, 101, 239, 29, 7, 76, 32, 1, 226, 126, - 209, 63, 20, 29, 90, 89, 251, 20, 179, 140, 218, 217, 69, 48, 115, 38, 193, 235, 196, 169, 22, - 196, 204, 232, 239, 3, 239, 92, 41, 32, 0, 5, 15, 121, 103, 3, 117, 142, 239, 173, 234, 237, - 79, 27, 214, 108, 5, 207, 244, 232, 195, 236, 211, 88, 66, 32, 141, 141, 132, 196, 193, 86, 32, - 7, 158, 68, 239, 145, 204, 224, 145, 205, 170, 63, 191, 196, 153, 22, 160, 11, 146, 44, 74, - 225, 60, 110, 38, 49, 152, 149, 191, 244, 145, 10, 194, 32, 5, 173, 0, 28, 169, 187, 187, 96, - 93, 152, 117, 4, 157, 177, 36, 34, 201, 16, 52, 49, 208, 136, 121, 107, 138, 228, 95, 165, 135, - 26, 69, 47, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 254, 239, 253, 240, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 225, 1, 8, - 122, 107, 46, 123, 111, 34, 21, 230, 57, 88, 106, 172, 247, 89, 5, 135, 225, 209, 37, 8, 43, - 63, 196, 70, 132, 198, 92, 63, 41, 32, 3, 37, 79, 82, 161, 150, 171, 6, 235, 166, 230, 28, 75, - 255, 199, 173, 5, 64, 127, 243, 17, 216, 246, 121, 201, 242, 72, 71, 190, 113, 0, 94, 74, 254, - 1, 190, 5, 61, 96, 250, 121, 19, 39, 152, 157, 244, 3, 124, 85, 63, 93, 4, 173, 148, 68, 213, - 168, 183, 190, 219, 147, 115, 143, 161, 69, 180, 197, 73, 177, 234, 208, 27, 60, 41, 216, 97, - 7, 238, 84, 243, 112, 223, 124, 198, 87, 62, 100, 1, 182, 121, 114, 68, 57, 96, 130, 251, 242, - 178, 56, 157, 104, 149, 253, 46, 114, 210, 221, 95, 187, 154, 66, 26, 149, 116, 247, 66, 212, - 37, 90, 22, 88, 55, 4, 71, 127, 215, 53, 53, 16, 36, 165, 107, 85, 164, 80, 243, 242, 36, 235, - 226, 199, 191, 219, 14, 217, 84, 59, 78, 176, 165, 80, 100, 218, 54, 140, 125, 197, 249, 99, - 247, 17, 71, 160, 180, 121, 49, 249, 172, 16, 189, 110, 38, 119, 42, 116, 95, 138, 195, 26, - 201, 251, 87, 172, 17, 108, 168, 101, 136, 252, 118, 147, 242, 33, 11, 16, 200, 158, 124, 254, - 165, 5, 73, 12, 53, 221, 137, 122, 171, 78, 203, 75, 123, 4, 181, 50, 42, 37, 32, 13, 234, 176, - 114, 190, 190, 94, 157, 8, 119, 121, 78, 36, 5, 32, 246, 204, 151, 153, 10, 5, 249, 73, 32, - 144, 122, 132, 32, 190, 22, 176, 120, 255, 129, 202, 116, 185, 1, 55, 125, 178, 79, 82, 161, - 150, 171, 6, 235, 166, 230, 28, 75, 255, 199, 173, 5, 64, 127, 243, 17, 216, 246, 121, 201, - 242, 72, 71, 190, 113, 0, 94, 74, 254, 1, 190, 5, 61, 96, 250, 121, 19, 39, 152, 157, 244, 3, - 124, 85, 63, 93, 4, 173, 148, 68, 213, 168, 183, 190, 219, 147, 115, 143, 161, 69, 180, 197, - 73, 177, 234, 208, 27, 60, 41, 216, 97, 7, 238, 84, 243, 112, 223, 124, 198, 87, 62, 100, 1, - 182, 121, 114, 68, 57, 96, 130, 251, 242, 178, 56, 157, 104, 149, 253, 46, 114, 210, 221, 95, - 187, 154, 66, 26, 149, 116, 247, 66, 212, 37, 90, 22, 88, 55, 4, 71, 127, 215, 53, 53, 16, 36, - 165, 107, 85, 164, 80, 243, 242, 36, 235, 226, 199, 191, 219, 14, 217, 84, 59, 78, 176, 165, - 80, 100, 218, 54, 140, 125, 197, 249, 99, 247, 17, 71, 160, 180, 121, 49, 249, 172, 16, 189, - 110, 38, 119, 42, 116, 95, 138, 195, 26, 201, 251, 87, 172, 17, 108, 168, 101, 136, 252, 118, - 147, 242, 33, 11, 16, 200, 158, 124, 254, 165, 5, 73, 12, 53, 221, 137, 122, 171, 78, 203, 75, - 123, 4, 181, 50, 42, 37, 32, 13, 234, 176, 114, 190, 190, 94, 157, 23, 32, 2, 185, 190, 201, - 81, 118, 127, 96, 227, 30, 92, 42, 34, 163, 3, 82, 215, 27, 61, 147, 164, 148, 214, 45, 15, 93, - 249, 51, 219, 250, 115, 162, 32, 7, 41, 187, 255, 90, 251, 72, 136, 90, 235, 48, 9, 216, 9, 78, - 76, 17, 47, 221, 89, 51, 162, 235, 172, 239, 223, 131, 112, 12, 195, 222, 159, 32, 7, 41, 187, - 255, 90, 251, 72, 136, 90, 235, 48, 9, 216, 9, 78, 76, 17, 47, 221, 89, 51, 162, 235, 172, 239, - 223, 131, 112, 12, 195, 222, 159, 32, 7, 41, 187, 255, 90, 251, 72, 136, 90, 235, 48, 9, 216, - 9, 78, 76, 17, 47, 221, 89, 51, 162, 235, 172, 239, 223, 131, 112, 12, 195, 222, 159, 32, 4, - 25, 60, 113, 191, 207, 181, 53, 117, 122, 157, 0, 52, 14, 179, 224, 96, 126, 206, 249, 137, - 120, 223, 79, 77, 70, 102, 148, 246, 30, 58, 59, 32, 0, 13, 140, 11, 79, 101, 213, 145, 52, - 151, 147, 74, 78, 103, 93, 96, 173, 180, 60, 14, 117, 196, 252, 7, 85, 187, 0, 72, 233, 241, - 227, 226, 32, 5, 73, 104, 77, 54, 58, 127, 149, 22, 14, 148, 198, 175, 42, 217, 184, 24, 217, - 191, 17, 201, 39, 5, 212, 245, 108, 51, 110, 191, 153, 243, 73, 32, 2, 19, 137, 96, 155, 213, - 247, 87, 65, 5, 174, 150, 54, 6, 243, 229, 50, 214, 13, 128, 243, 254, 241, 107, 94, 56, 172, - 117, 35, 224, 76, 237, 32, 7, 165, 244, 153, 74, 91, 203, 107, 64, 211, 140, 180, 235, 183, 23, - 25, 98, 144, 119, 65, 0, 11, 136, 213, 221, 77, 186, 231, 81, 54, 204, 250, 32, 4, 234, 254, - 109, 135, 47, 223, 117, 85, 66, 213, 205, 86, 115, 126, 131, 201, 76, 195, 96, 235, 238, 108, - 170, 120, 240, 43, 149, 170, 111, 0, 202, 32, 3, 108, 248, 59, 224, 216, 59, 170, 178, 81, 36, - 101, 253, 115, 81, 14, 17, 134, 248, 147, 250, 14, 134, 171, 69, 10, 197, 67, 112, 96, 26, 248, - 32, 6, 11, 203, 39, 1, 5, 246, 221, 26, 247, 230, 248, 242, 187, 79, 151, 83, 135, 41, 139, 29, - 158, 127, 26, 249, 133, 73, 37, 39, 95, 41, 201, 32, 0, 245, 100, 132, 184, 51, 39, 115, 169, - 27, 16, 178, 240, 215, 220, 85, 146, 222, 3, 48, 155, 249, 104, 95, 142, 12, 146, 91, 23, 143, - 224, 32, 32, 5, 136, 91, 212, 33, 174, 9, 235, 179, 25, 47, 15, 159, 1, 199, 174, 64, 153, 78, - 210, 20, 183, 139, 87, 134, 132, 0, 77, 92, 31, 145, 68, 32, 4, 79, 182, 21, 112, 215, 33, 13, - 211, 20, 53, 56, 100, 79, 14, 49, 52, 108, 154, 163, 96, 203, 186, 242, 206, 132, 194, 83, 204, - 125, 206, 119, 32, 2, 47, 144, 43, 30, 233, 166, 165, 0, 216, 53, 137, 49, 126, 40, 117, 130, - 187, 14, 197, 190, 84, 5, 54, 119, 243, 71, 96, 254, 84, 174, 78, 32, 5, 172, 2, 122, 225, 228, - 225, 136, 13, 98, 203, 118, 42, 130, 102, 124, 29, 193, 182, 209, 61, 122, 87, 168, 75, 146, - 115, 225, 201, 185, 209, 185, 32, 2, 29, 234, 213, 87, 181, 6, 132, 210, 24, 41, 25, 13, 46, - 248, 241, 45, 101, 13, 194, 102, 214, 0, 251, 58, 130, 37, 67, 216, 247, 28, 192, 32, 4, 85, - 26, 129, 216, 192, 23, 218, 104, 224, 233, 37, 158, 65, 139, 21, 169, 239, 82, 54, 103, 184, - 61, 123, 239, 22, 53, 51, 25, 203, 56, 10, 32, 1, 197, 88, 69, 30, 42, 29, 232, 20, 113, 239, - 94, 203, 74, 129, 148, 18, 136, 8, 228, 174, 19, 89, 19, 99, 143, 33, 65, 121, 209, 186, 64, - 32, 1, 40, 249, 95, 107, 238, 241, 61, 121, 0, 251, 76, 248, 241, 141, 199, 14, 252, 192, 174, - 99, 252, 21, 125, 236, 237, 205, 31, 17, 122, 136, 65, 32, 3, 58, 205, 98, 230, 49, 144, 14, - 123, 71, 11, 32, 127, 229, 127, 214, 174, 17, 86, 204, 202, 214, 91, 189, 188, 173, 197, 42, - 131, 68, 53, 158, 32, 2, 148, 100, 44, 115, 248, 179, 128, 111, 48, 110, 86, 181, 103, 101, - 153, 25, 42, 122, 126, 63, 38, 39, 182, 68, 109, 62, 203, 152, 1, 182, 93, 23, 32, 0, 177, 112, - 221, 230, 64, 11, 164, 35, 3, 8, 65, 218, 108, 182, 90, 245, 190, 38, 24, 154, 229, 253, 43, - 142, 0, 130, 222, 131, 163, 199, 191, 32, 5, 253, 167, 130, 154, 76, 153, 7, 23, 68, 51, 154, - 166, 154, 10, 20, 9, 65, 61, 135, 73, 47, 129, 187, 29, 120, 18, 32, 204, 8, 228, 138, 32, 5, - 253, 167, 130, 154, 76, 153, 7, 23, 68, 51, 154, 166, 154, 10, 20, 9, 65, 61, 135, 73, 47, 129, - 187, 29, 120, 18, 32, 204, 8, 228, 138, 32, 5, 253, 167, 130, 154, 76, 153, 7, 23, 68, 51, 154, - 166, 154, 10, 20, 9, 65, 61, 135, 73, 47, 129, 187, 29, 120, 18, 32, 204, 8, 228, 138, 32, 4, - 204, 242, 235, 254, 170, 58, 180, 146, 175, 33, 98, 116, 149, 249, 198, 214, 176, 105, 176, 63, - 251, 152, 191, 49, 93, 107, 35, 141, 179, 214, 198, 32, 5, 88, 0, 73, 35, 11, 51, 169, 127, - 189, 228, 4, 80, 200, 106, 181, 180, 224, 42, 189, 206, 155, 93, 50, 70, 78, 17, 221, 63, 122, - 64, 87, 32, 0, 65, 187, 83, 167, 237, 79, 88, 148, 50, 180, 230, 202, 144, 62, 23, 152, 26, - 148, 150, 210, 159, 60, 162, 94, 88, 128, 241, 0, 62, 177, 87, 32, 6, 202, 120, 8, 33, 88, 198, - 76, 203, 241, 179, 83, 210, 208, 13, 97, 224, 119, 3, 192, 245, 59, 54, 140, 117, 59, 97, 76, - 216, 121, 67, 255, 32, 1, 218, 169, 233, 62, 98, 15, 85, 98, 119, 31, 162, 109, 182, 171, 175, - 155, 59, 166, 160, 232, 76, 98, 188, 118, 125, 117, 24, 130, 227, 157, 116, 32, 2, 10, 131, - 133, 220, 5, 113, 0, 251, 247, 79, 249, 46, 174, 45, 4, 106, 227, 192, 154, 202, 126, 111, 12, - 70, 49, 42, 138, 182, 129, 119, 206, 32, 2, 177, 236, 177, 120, 193, 106, 63, 83, 255, 158, 47, - 96, 53, 228, 187, 29, 82, 48, 98, 144, 58, 32, 181, 93, 166, 99, 160, 16, 147, 126, 205, 32, 3, - 124, 158, 193, 250, 134, 70, 161, 37, 180, 66, 215, 240, 91, 103, 81, 55, 119, 151, 240, 122, - 49, 152, 253, 21, 157, 194, 118, 204, 154, 50, 210, 32, 1, 130, 58, 19, 35, 168, 37, 175, 91, - 187, 4, 137, 46, 126, 147, 175, 240, 122, 106, 145, 247, 4, 6, 28, 219, 110, 6, 89, 106, 171, - 122, 46, 32, 7, 46, 219, 171, 86, 142, 56, 253, 17, 210, 82, 40, 178, 123, 251, 223, 224, 181, - 1, 51, 161, 211, 168, 142, 233, 27, 44, 173, 149, 68, 196, 148, 32, 2, 195, 209, 107, 42, 33, - 250, 250, 220, 20, 186, 72, 57, 139, 57, 243, 166, 239, 195, 172, 209, 146, 1, 198, 238, 81, - 17, 120, 140, 123, 53, 66, 32, 1, 89, 244, 9, 149, 65, 28, 145, 169, 192, 160, 50, 161, 195, - 170, 236, 161, 142, 62, 193, 177, 63, 71, 153, 208, 64, 177, 255, 91, 82, 10, 156, 32, 4, 243, - 116, 187, 26, 108, 113, 71, 86, 1, 14, 120, 31, 168, 141, 184, 220, 29, 214, 174, 245, 90, 149, - 208, 226, 238, 117, 214, 233, 212, 252, 241, 32, 7, 229, 192, 89, 78, 105, 2, 255, 174, 236, - 100, 177, 115, 255, 9, 182, 190, 4, 53, 118, 48, 193, 8, 237, 45, 177, 217, 202, 9, 79, 121, 7, - 32, 5, 90, 40, 57, 46, 10, 89, 140, 53, 199, 232, 129, 134, 25, 222, 218, 39, 42, 143, 83, 161, - 44, 6, 191, 133, 174, 201, 176, 207, 148, 97, 131, 32, 7, 132, 111, 173, 88, 120, 117, 200, - 143, 251, 234, 181, 34, 111, 125, 83, 133, 144, 97, 13, 6, 68, 53, 15, 112, 15, 45, 196, 240, - 246, 250, 24, 32, 7, 15, 67, 4, 99, 90, 199, 22, 114, 244, 176, 34, 72, 8, 195, 232, 234, 216, - 152, 130, 213, 75, 146, 49, 248, 226, 79, 226, 240, 28, 170, 55, 32, 6, 7, 240, 50, 223, 56, - 217, 122, 130, 10, 217, 101, 58, 143, 84, 234, 212, 3, 132, 11, 197, 138, 192, 188, 30, 131, - 169, 7, 245, 175, 161, 162, 32, 6, 232, 158, 56, 95, 230, 63, 244, 175, 237, 55, 162, 218, 226, - 159, 76, 184, 15, 30, 11, 204, 189, 241, 87, 181, 136, 203, 175, 53, 110, 126, 67, 1, 0, 32, 7, - 255, 255, 255, 255, 255, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 32, 7, 255, 255, 255, 255, 255, - 185, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 251, 225, 32, 7, 255, 255, 255, 255, 255, 185, 240, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 251, 225, 32, 7, 255, 255, 255, 255, 255, 245, 112, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 32, 7, 255, 255, - 255, 255, 255, 103, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 247, 1, 1, 251, 251, 127, 1, 251, 1, 128, 2, 2, 1, 5, - 3, 33, 72, 32, 32, 7, 255, 255, 255, 255, 255, 200, 208, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 193, 32, 6, 47, - 252, 208, 5, 81, 69, 218, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 246, 251, 47, 255, 208, 0, 80, 19, 43, 32, 7, 255, 255, 255, 255, 255, 194, 112, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 252, 97, 32, 0, 0, 0, 0, 0, 0, 21, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 64, 32, 7, 255, 255, 255, 255, 255, 209, 80, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 65, 32, 7, - 144, 1, 16, 1, 16, 151, 69, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 251, 238, 144, 0, 16, 0, 16, 8, 230, 32, 7, 255, 255, 255, 255, 255, 243, 80, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 65, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, 255, 255, 255, 224, 48, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 33, 32, 2, - 47, 252, 208, 1, 17, 35, 65, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 247, 255, 47, 255, 208, 0, 16, 17, 34, 32, 7, 255, 255, 255, 255, 255, 213, 144, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 253, 129, 32, 1, 176, 7, 112, 1, 17, 69, 82, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 246, 254, 176, 0, 112, 0, 16, 19, 35, 32, 7, 255, 255, 255, - 255, 255, 192, 80, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 252, 65, 32, 7, 144, 1, 16, 1, 16, 151, 69, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 238, 144, 0, 16, 0, 16, 8, - 230, 32, 7, 255, 255, 255, 255, 255, 205, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 1, 32, 1, 176, 7, 112, 1, 17, - 69, 82, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 254, - 176, 0, 112, 0, 16, 19, 35, 32, 7, 255, 255, 255, 255, 255, 251, 208, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 193, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 7, 255, 255, 255, 255, 255, 230, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 129, 32, 7, 255, 255, - 255, 255, 255, 245, 112, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 32, 7, 255, 255, 255, 255, 255, 249, 176, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 161, 32, 6, 111, 252, 207, 252, 208, 76, 229, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 253, 223, 111, 255, 207, 255, 208, 4, 134, 32, 7, 255, - 255, 255, 255, 255, 196, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 129, 32, 6, 111, 252, 207, 252, 208, 76, 229, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 223, 111, 255, - 207, 255, 208, 4, 134, 32, 7, 255, 255, 255, 255, 255, 232, 176, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 161, 32, - 2, 47, 252, 208, 1, 17, 69, 65, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 246, 255, 47, 255, 208, 0, 16, 19, 34, 32, 7, 255, 255, 255, 255, 255, 226, 80, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 254, 65, 32, 7, 255, 255, 255, 255, 255, 245, 112, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 32, 7, - 255, 255, 255, 255, 255, 198, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 161, 32, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 7, 255, 255, 255, 255, - 255, 222, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 254, 1, 32, 7, 255, 255, 255, 255, 255, 228, 112, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 254, 97, 32, 7, 255, 255, 255, 255, 255, 188, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 1, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 7, 255, 255, - 255, 255, 255, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 32, 0, 15, 252, 208, 1, 16, 20, 81, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 15, 255, 208, 0, 16, - 1, 50, 32, 7, 255, 255, 255, 255, 255, 241, 48, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 32, 2, 47, 252, 208, - 1, 17, 69, 65, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, - 255, 47, 255, 208, 0, 16, 19, 34, 32, 7, 255, 255, 255, 255, 255, 219, 240, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, - 225, 32, 7, 144, 1, 16, 1, 16, 151, 69, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 251, 238, 144, 0, 16, 0, 16, 8, 230, 32, 7, 255, 255, 255, 255, 255, 217, - 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 253, 193, 32, 0, 15, 252, 208, 1, 16, 15, 137, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 191, 15, 255, 208, 0, 16, 0, 234, 32, 7, - 255, 255, 255, 255, 255, 211, 112, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 97, 32, 1, 176, 7, 112, 1, 17, 69, 82, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 254, 176, 0, - 112, 0, 16, 19, 35, 32, 7, 255, 255, 255, 255, 255, 234, 208, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 193, 32, - 7, 255, 255, 255, 255, 255, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 32, 7, 255, 255, 255, 255, - 255, 215, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 253, 161, 32, 7, 255, 255, 255, 255, 255, 245, 112, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 97, 32, 7, 255, 255, 255, 255, 255, 228, 112, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 97, 32, 6, 111, 252, - 207, 252, 208, 76, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 253, 223, 111, 255, 207, 255, 208, 4, 134, 32, 7, 255, 255, 255, 255, 255, 202, 240, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 252, 225, 32, 0, 176, 3, 48, 1, 17, 69, 116, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 246, 253, 176, 0, 48, 0, 16, 19, 37, 32, 7, 255, 255, 255, - 255, 255, 247, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 129, 32, 7, 255, 255, 255, 255, 255, 247, 144, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 129, 32, 7, 255, 255, 255, 255, 255, 245, 112, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 32, 0, - 15, 252, 208, 1, 16, 6, 197, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 223, 15, 255, 208, 0, 16, 0, 102, 32, 7, 255, 255, 255, 255, 255, 236, 240, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 254, 225, 32, 2, 47, 252, 208, 1, 17, 69, 65, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 246, 255, 47, 255, 208, 0, 16, 19, 34, 32, 7, 255, 255, 255, - 255, 255, 190, 48, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 252, 33, 32, 7, 255, 255, 255, 255, 255, 185, 240, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 251, 225, 32, 7, 255, 255, 255, 255, 255, 239, 16, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 32, 7, 255, 255, - 255, 255, 255, 253, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 32, 7, 255, 255, 255, 255, 255, 207, 48, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 253, 33, 32, 5, 176, 7, 112, 9, 145, 69, 235, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 246, 250, 176, 0, 112, 0, 144, 19, 44, 64, -]; From 89b33ed38bf6fa1bdb34f2039a20da19dceb385d Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:20:58 -0300 Subject: [PATCH 04/10] remove cairo ffi --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index afb8eb160..52c7e1edf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] -members = ["math", "crypto", "gpu", "benches", "provers/plonk", "provers/stark", "provers/groth16", "provers/groth16/arkworks-adapter", "provers/groth16/circom-adapter", "examples/merkle-tree-cli", "examples/prove-miden", "provers/winterfell_adapter", "examples/shamir_secret_sharing","examples/pinocchio", "examples/prove-verify-circom", "provers/cairo/ffi", "examples/baby-snark"] +members = ["math", "crypto", "gpu", "benches", "provers/plonk", "provers/stark", "provers/groth16", "provers/groth16/arkworks-adapter", "provers/groth16/circom-adapter", "examples/merkle-tree-cli", "examples/prove-miden", "provers/winterfell_adapter", "examples/shamir_secret_sharing","examples/pinocchio", "examples/prove-verify-circom", "examples/baby-snark"] exclude = ["ensure-no_std"] resolver = "2" From 9ed611b2b80e364b0669703f5d0fb0e6e039eaf9 Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:24:42 -0300 Subject: [PATCH 05/10] fmt --- provers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provers/README.md b/provers/README.md index 315acec48..bca05a49a 100644 --- a/provers/README.md +++ b/provers/README.md @@ -6,7 +6,7 @@ This folder contains the different provers currently supported by lambdaworks: - [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16) - [Plonk](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk) - [STARKs](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark) -- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/a591186e6c4dd53301b03b4ddd69369abe99f960/provers/cairo) - This is only for learning purposes and no longer supported. +- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/a591186e6c4dd53301b03b4ddd69369abe99f960/provers/cairo) - This is only for learning purposes and no longer supported. The [docs](../docs/src/starks/) still contain information that could be useful to understand and learn how Cairo works. The reference papers for each of the provers is given below: - [Groth 16](https://eprint.iacr.org/2016/260) From 55dcd7aa7e146f509e0fe097d0f3c43b7c4c385a Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:34:12 -0300 Subject: [PATCH 06/10] clean things --- Makefile | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 627feec6f..0f5bbb441 100644 --- a/Makefile +++ b/Makefile @@ -4,20 +4,7 @@ FUZZ_DIR = fuzz/no_gpu_fuzz ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -CAIRO0_PROGRAMS_DIR=provers/cairo/cairo_programs/cairo0 -CAIRO0_PROGRAMS:=$(wildcard $(CAIRO0_PROGRAMS_DIR)/*.cairo) -COMPILED_CAIRO0_PROGRAMS:=$(patsubst $(CAIRO0_PROGRAMS_DIR)/%.cairo, $(CAIRO0_PROGRAMS_DIR)/%.json, $(CAIRO0_PROGRAMS)) - -# Rule to compile Cairo programs for testing purposes. -# If the `cairo-lang` toolchain is installed, programs will be compiled with it. -# Otherwise, the cairo_compile docker image will be used -# When using the docker version, be sure to build the image using `make docker_build_cairo_compiler`. -$(CAIRO0_PROGRAMS_DIR)/%.json: $(CAIRO0_PROGRAMS_DIR)/%.cairo - @echo "Compiling Cairo program..." - @cairo-compile --cairo_path="$(CAIRO0_PROGRAMS_DIR)" $< --output $@ 2> /dev/null --proof_mode || \ - docker run --rm -v $(ROOT_DIR)/$(CAIRO0_PROGRAMS_DIR):/pwd/$(CAIRO0_PROGRAMS_DIR) cairo --proof_mode /pwd/$< > $@ - -test: $(COMPILED_CAIRO0_PROGRAMS) +test: cargo test clippy: @@ -91,9 +78,3 @@ run-metal-fuzzer: run-cuda-fuzzer: cd fuzz/cuda_fuzz cargo hfuzz run $(CUDAFUZZER) - -build_wasm: - cd provers/cairo && wasm-pack build --release --target=web -- --features wasm - -test_wasm_with_firefox: - cd provers/cairo && wasm-pack test --release --firefox --headless -- --features wasm From 503f449fdb5f190c6f689cfcca5c010f3e433319 Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 12:41:15 -0300 Subject: [PATCH 07/10] remove dependencies --- .github/workflows/ci.yaml | 14 -------------- .github/workflows/criterion_benchs.yml | 6 +----- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0156177cc..cac41a04d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -110,8 +110,6 @@ jobs: python-version: "3.9" cache: "pip" - - name: Install cairo-lang toolchain and dependencies - run: pip install -r provers/cairo/requirements.txt - name: Install testing tools uses: taiki-e/install-action@v2 @@ -171,12 +169,6 @@ jobs: - name: Install wasm-pack tools for testing run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - - name: Run wasm-pack tests in firefox - run: cd provers/cairo && wasm-pack test --release --firefox --headless -- --features wasm - - - name: Run wasm-pack tests in chrome - run: cd provers/cairo && wasm-pack test --release --chrome --headless -- --features wasm - test_macos: name: Test (macOS, Apple sillicon) runs-on: macos-latest @@ -202,12 +194,6 @@ jobs: python-version: "3.9" cache: "pip" - - name: Install cairo-lang toolchain and dependencies - env: - CFLAGS: "-I/opt/homebrew/opt/gmp/include" - LDFLAGS: "-L/opt/homebrew/opt/gmp/lib" - run: pip install -r provers/cairo/requirements.txt - - name: Run clippy run: make clippy-metal diff --git a/.github/workflows/criterion_benchs.yml b/.github/workflows/criterion_benchs.yml index a4b9a69ee..df8d8cafb 100644 --- a/.github/workflows/criterion_benchs.yml +++ b/.github/workflows/criterion_benchs.yml @@ -56,11 +56,7 @@ jobs: with: python-version: "3.9" cache: "pip" - - name: Install cairo-lang toolchain and dependencies - env: - CFLAGS: "-I/opt/homebrew/opt/gmp/include" - LDFLAGS: "-L/opt/homebrew/opt/gmp/lib" - run: pip install -r provers/cairo/requirements.txt + - name: Run benchmark run: | cargo bench -F metal --no-fail-fast --bench "criterion_metal" \ From 07e956b9772adbd5fbe8c26e2eeb3df15ef78d0f Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 14:26:00 -0300 Subject: [PATCH 08/10] fix cli --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cac41a04d..e5a9260f5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,13 +30,13 @@ jobs: - name: Run cargo check run: cargo check - - name: Run cargo check cli and stark instruments + - name: Run cargo check and stark instruments run: | - cargo check --features cli,instruments + cargo check --features instruments - name: Run cargo check cli, stark instruments and parallel run: | - cargo check --features cli,instruments,parallel + cargo check --features instruments,parallel - name: Run cargo check for math with no-std run: cargo check --package lambdaworks-math --no-default-features From 0472e6499f8caafc388e1745d3ffe9133b0523ea Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 14:36:09 -0300 Subject: [PATCH 09/10] fix --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0f5bbb441..1369132d5 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,6 @@ test: clippy: cargo clippy --workspace --all-targets -- -D warnings cargo clippy --workspace --all-targets --features wasm -- -D warnings - cargo clippy --workspace --all-targets --features cli -- -D warnings cargo clippy --workspace --all-targets --features parallel -- -D warnings cargo clippy --tests @@ -34,7 +33,7 @@ benchmark: flamegraph_stark: CARGO_PROFILE_BENCH_DEBUG=true cargo flamegraph --root --bench stark_benchmarks -- --bench -coverage: $(COMPILED_CAIRO0_PROGRAMS) +coverage: cargo llvm-cov nextest --lcov --output-path lcov.info METAL_DIR = math/src/gpu/metal @@ -44,7 +43,7 @@ build-metal: clippy-metal: cargo clippy --workspace --all-targets -F metal -- -D warnings -test-metal: $(COMPILED_CAIRO0_PROGRAMS) +test-metal: cargo test -F metal CUDA_DIR = math/src/gpu/cuda/shaders From 2c60295c8f1418c5b879da786447e354526e5516 Mon Sep 17 00:00:00 2001 From: diegokingston Date: Thu, 26 Sep 2024 14:38:31 -0300 Subject: [PATCH 10/10] fix --- .github/workflows/ci.yaml | 13 ------------- .github/workflows/criterion_benchs.yml | 5 ----- 2 files changed, 18 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e5a9260f5..41080eb25 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -104,13 +104,6 @@ jobs: - name: Set up cargo cache uses: Swatinem/rust-cache@v2 - - name: Python3 build - uses: actions/setup-python@v4 - with: - python-version: "3.9" - cache: "pip" - - - name: Install testing tools uses: taiki-e/install-action@v2 with: @@ -188,12 +181,6 @@ jobs: toolchain: stable components: clippy - - name: Python3 build - uses: actions/setup-python@v4 - with: - python-version: "3.9" - cache: "pip" - - name: Run clippy run: make clippy-metal diff --git a/.github/workflows/criterion_benchs.yml b/.github/workflows/criterion_benchs.yml index df8d8cafb..5586f5a76 100644 --- a/.github/workflows/criterion_benchs.yml +++ b/.github/workflows/criterion_benchs.yml @@ -51,11 +51,6 @@ jobs: run: | brew install gcc brew install gmp - - name: Python3 build - uses: actions/setup-python@v4 - with: - python-version: "3.9" - cache: "pip" - name: Run benchmark run: |