From 653e8c51d65852294c2ccc3917a02603be045afb Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Fri, 20 Dec 2024 13:16:40 -0800 Subject: [PATCH 01/13] feat(sdk): `get_proof_status`, `request`, `cycle_limit` (#1883) --- crates/sdk/src/cpu/builder.rs | 6 ++- crates/sdk/src/network/prove.rs | 65 ++++++++++++++++++++++++++++-- crates/sdk/src/network/prover.rs | 69 +++++++++++++++++++++++++++++--- 3 files changed, 129 insertions(+), 11 deletions(-) diff --git a/crates/sdk/src/cpu/builder.rs b/crates/sdk/src/cpu/builder.rs index 3bd17ebc2..6cdcf3b38 100644 --- a/crates/sdk/src/cpu/builder.rs +++ b/crates/sdk/src/cpu/builder.rs @@ -26,6 +26,10 @@ impl CpuProverBuilder { /// ``` #[must_use] pub fn build(self) -> CpuProver { - if self.mock { CpuProver::mock() } else { CpuProver::new() } + if self.mock { + CpuProver::mock() + } else { + CpuProver::new() + } } } diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index 2d33ea628..293c69f20 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -23,6 +23,7 @@ pub struct NetworkProveBuilder<'a> { pub(crate) timeout: Option, pub(crate) strategy: FulfillmentStrategy, pub(crate) skip_simulation: bool, + pub(crate) cycle_limit: Option, } impl<'a> NetworkProveBuilder<'a> { @@ -231,6 +232,62 @@ impl<'a> NetworkProveBuilder<'a> { self } + /// Sets the cycle limit for the proof request. + /// + /// # Details + /// The cycle limit determines the maximum number of cycles that the program should take to + /// execute. By default, the cycle limit is determined by simulating the program locally. + /// However, you can manually set it if you know the exact cycle count needed and want to skip + /// the simulation step locally. + /// + /// The cycle limit ensures that a prover on the network will stop generating a proof once the + /// cycle limit is reached, which prevents DoS attacks. + /// + /// # Example + /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let proof = client.prove(&pk, &stdin) + /// .cycle_limit(1_000_000) // Set 1M cycle limit. + /// .skip_simulation(true) // Skip simulation since the limit is set manually. + /// .run() + /// .unwrap(); + /// ``` + #[must_use] + pub fn cycle_limit(mut self, cycle_limit: u64) -> Self { + self.cycle_limit = Some(cycle_limit); + self + } + + /// Request a proof from the prover network. + /// + /// # Details + /// This method will request a proof from the prover network. If the prover fails to request + /// a proof, the method will return an error. It will not wait for the proof to be generated. + /// + /// # Example + /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let request_id = client.prove(&pk, &stdin) + /// .request() + /// .unwrap(); + /// ``` + pub async fn request(self) -> Result> { + let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation, cycle_limit } = self; + prover.request_proof_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit).await + } + /// Run the prover with the built arguments. /// /// # Details @@ -251,7 +308,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub fn run(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = self; // Check for deprecated environment variable if let Ok(val) = std::env::var("SKIP_SIMULATION") { @@ -263,7 +320,7 @@ impl<'a> NetworkProveBuilder<'a> { sp1_dump(&pk.elf, &stdin); - block_on(prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation)) + block_on(prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit)) } /// Run the prover with the built arguments asynchronously. @@ -284,7 +341,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .run_async(); /// ``` pub async fn run_async(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = self; // Check for deprecated environment variable if let Ok(val) = std::env::var("SKIP_SIMULATION") { @@ -296,6 +353,6 @@ impl<'a> NetworkProveBuilder<'a> { sp1_dump(&pk.elf, &stdin); - prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation).await + prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit).await } } diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 4927acca3..f6a718686 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -5,6 +5,7 @@ use std::time::{Duration, Instant}; +use super::proto::network::GetProofRequestStatusResponse; use super::prove::NetworkProveBuilder; use super::DEFAULT_CYCLE_LIMIT; use crate::cpu::execute::CpuExecuteBuilder; @@ -108,6 +109,7 @@ impl NetworkProver { timeout: None, strategy: FulfillmentStrategy::Hosted, skip_simulation: false, + cycle_limit: None, } } @@ -134,6 +136,26 @@ impl NetworkProver { self.client.register_program(vk, elf).await } + /// Gets the status of a proof request. + /// + /// # Details + /// * `request_id`: The request ID to get the status of. + /// + /// # Example + /// ```rust,no_run + /// use sp1_sdk::{ProverClient} + /// + /// let request_id = vec![1u8; 32]; + /// let client = ProverClient::builder().network().build(); + /// let (status, maybe_proof) = client.get_proof_status(&request_id).await?; + /// ``` + pub async fn get_proof_status( + &self, + request_id: &[u8], + ) -> Result<(GetProofRequestStatusResponse, Option)> { + self.client.get_proof_request_status(request_id).await + } + /// Requests a proof from the prover network, returning the request ID. pub(crate) async fn request_proof( &self, @@ -210,7 +232,11 @@ impl NetworkProver { } let remaining_timeout = timeout.map(|t| { let elapsed = start_time.elapsed(); - if elapsed < t { t - elapsed } else { Duration::from_secs(0) } + if elapsed < t { + t - elapsed + } else { + Duration::from_secs(0) + } }); // Get status with retries. @@ -247,6 +273,22 @@ impl NetworkProver { } } + /// Requests a proof from the prover network. + pub(crate) async fn request_proof_impl( + &self, + pk: &SP1ProvingKey, + stdin: &SP1Stdin, + mode: SP1ProofMode, + strategy: FulfillmentStrategy, + timeout: Option, + skip_simulation: bool, + cycle_limit: Option, + ) -> Result> { + let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; + let cycle_limit = self.get_cycle_limit(cycle_limit, &pk.elf, stdin, skip_simulation)?; + self.request_proof(&vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout).await + } + /// Requests a proof from the prover network and waits for it to be generated. pub(crate) async fn prove_impl( &self, @@ -256,16 +298,31 @@ impl NetworkProver { strategy: FulfillmentStrategy, timeout: Option, skip_simulation: bool, + cycle_limit: Option, ) -> Result { - let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; - let cycle_limit = self.get_cycle_limit(&pk.elf, stdin, skip_simulation)?; let request_id = self - .request_proof(&vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout) + .request_proof_impl(pk, stdin, mode, strategy, timeout, skip_simulation, cycle_limit) .await?; self.wait_proof(&request_id, timeout).await } - fn get_cycle_limit(&self, elf: &[u8], stdin: &SP1Stdin, skip_simulation: bool) -> Result { + /// The cycle limit is determined according to the following priority: + /// + /// 1. If a cycle limit was explicitly set by the requester, use the specified value. + /// 2. If simulation is enabled, calculate the limit by simulating the + /// execution of the program. This is the default behavior. + /// 3. Otherwise, use the default cycle limit ([`DEFAULT_CYCLE_LIMIT`]). + fn get_cycle_limit( + &self, + cycle_limit: Option, + elf: &[u8], + stdin: &SP1Stdin, + skip_simulation: bool, + ) -> Result { + if let Some(cycle_limit) = cycle_limit { + return Ok(cycle_limit); + } + if skip_simulation { Ok(DEFAULT_CYCLE_LIMIT) } else { @@ -291,7 +348,7 @@ impl Prover for NetworkProver { stdin: &SP1Stdin, mode: SP1ProofMode, ) -> Result { - block_on(self.prove_impl(pk, stdin, mode, FulfillmentStrategy::Hosted, None, false)) + block_on(self.prove_impl(pk, stdin, mode, FulfillmentStrategy::Hosted, None, false, None)) } } From a1e362340be2856caa138b48e4527522a8192621 Mon Sep 17 00:00:00 2001 From: Matt Stam Date: Fri, 20 Dec 2024 14:03:28 -0800 Subject: [PATCH 02/13] feat(sdk): latest network proto + error handling + fix examples (#1884) --- book/docs/generating-proofs/proof-types.md | 6 +- .../generating-proofs/prover-network/usage.md | 2 +- book/docs/writing-programs/cycle-tracking.mdx | 20 +- ...les_fibonacci_script_bin_compressed.rs.mdx | 2 +- ...amples_fibonacci_script_bin_execute.rs.mdx | 2 +- ..._fibonacci_script_bin_groth16_bn254.rs.mdx | 2 +- .../examples_fibonacci_script_src_main.rs.mdx | 4 +- .../examples_groth16_script_src_main.rs.mdx | 4 +- .../generating-proofs/proof-types.md | 8 +- .../generating-proofs/prover-network/usage.md | 2 +- crates/perf/src/main.rs | 4 +- crates/sdk/src/network/client.rs | 60 +++++- crates/sdk/src/network/error.rs | 39 ++++ crates/sdk/src/network/mod.rs | 13 +- crates/sdk/src/network/proto/artifact.rs | 62 +++++- crates/sdk/src/network/proto/mod.rs | 2 + crates/sdk/src/network/proto/network.rs | 204 ++++++++++++++---- crates/sdk/src/network/prove.rs | 25 ++- crates/sdk/src/network/prover.rs | 43 ++-- crates/sdk/src/network/sign_message.rs | 97 --------- crates/sdk/src/network/utils.rs | 56 +---- examples/aggregation/script/src/main.rs | 8 +- examples/bls12381/script/src/main.rs | 2 +- examples/bn254/script/src/main.rs | 2 +- examples/chess/script/src/main.rs | 2 +- examples/cycle-tracking/script/src/main.rs | 5 +- examples/fibonacci/script/Cargo.toml | 4 + examples/fibonacci/script/bin/compressed.rs | 2 +- examples/fibonacci/script/bin/execute.rs | 2 +- .../fibonacci/script/bin/groth16_bn254.rs | 2 +- examples/fibonacci/script/bin/network.rs | 77 +++++++ examples/fibonacci/script/bin/plonk_bn254.rs | 2 +- examples/fibonacci/script/src/main.rs | 4 +- examples/groth16/script/src/main.rs | 4 +- examples/io/script/src/main.rs | 2 +- examples/is-prime/script/src/main.rs | 2 +- examples/json/script/src/main.rs | 2 +- examples/patch-testing/script/src/main.rs | 2 +- examples/regex/script/src/main.rs | 2 +- examples/rsa/script/src/main.rs | 2 +- examples/rsp/script/src/main.rs | 5 +- examples/ssz-withdrawals/script/src/main.rs | 2 +- examples/tendermint/script/src/main.rs | 4 +- 43 files changed, 510 insertions(+), 286 deletions(-) create mode 100644 crates/sdk/src/network/error.rs delete mode 100644 crates/sdk/src/network/sign_message.rs create mode 100644 examples/fibonacci/script/bin/network.rs diff --git a/book/docs/generating-proofs/proof-types.md b/book/docs/generating-proofs/proof-types.md index 581a751d3..dfdae364d 100644 --- a/book/docs/generating-proofs/proof-types.md +++ b/book/docs/generating-proofs/proof-types.md @@ -13,7 +13,7 @@ the size of the execution. Use this in settings where you don't care about **ver ```rust,noplayground let client = ProverClient::from_env(); -client.prove(&pk, stdin).run().unwrap(); +client.prove(&pk, &stdin).run().unwrap(); ``` ## Compressed @@ -23,7 +23,7 @@ care about **verification cost / proof size**, but not onchain verification. Com ```rust,noplayground let client = ProverClient::from_env(); -client.prove(&pk, stdin).compressed().run().unwrap(); +client.prove(&pk, &stdin).compressed().run().unwrap(); ``` ## Groth16 (Recommended) @@ -45,5 +45,5 @@ PLONK does not require a trusted setup and reuses contributions from the Aztec I ```rust,noplayground let client = ProverClient::from_env(); -client.prove(&pk, stdin).plonk().run().unwrap(); +client.prove(&pk, &stdin).plonk().run().unwrap(); ``` diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 388c61efd..77eef1f08 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -10,7 +10,7 @@ To use the prover network to generate a proof, you can run your script that uses // Generate the proof for the given program. let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); -let mut proof = client.prove(&pk, stdin).run().unwrap(); +let mut proof = client.prove(&pk, &stdin).run().unwrap(); ``` ```sh diff --git a/book/docs/writing-programs/cycle-tracking.mdx b/book/docs/writing-programs/cycle-tracking.mdx index d46da0709..f38f50d74 100644 --- a/book/docs/writing-programs/cycle-tracking.mdx +++ b/book/docs/writing-programs/cycle-tracking.mdx @@ -8,7 +8,7 @@ When writing a program, it is useful to know how many RISC-V cycles a portion of To track the number of cycles spent in a portion of the program, you can either put `println!("cycle-tracker-start: block name")` + `println!("cycle-tracker-end: block name")` statements (block name must be same between start and end) around the portion of your program you want to profile or use the `#[sp1_derive::cycle_tracker]` macro on a function. An example is shown below: - + Note that to use the macro, you must add the `sp1-derive` crate to your dependencies for your program. @@ -56,11 +56,12 @@ fn main() { This will log the cycle count for `block name` and include it in the `ExecutionReport` in the `cycle_tracker` map. -### Profiling a ZKVM program +### Profiling a ZKVM program Profiling a zkVM program produces a useful visualization ([example profile](https://share.firefox.dev/3Om1pzz)) which makes it easy to examine program performance and see exactly where VM cycles are being spent without needing to modify the program at all. To profile a program, you need to: + 1. Enable the profiling feature for `sp1-sdk` in `script/Cargo.toml` 2. Set the env variable `TRACE_FILE=trace.json` and then call `ProverClient::execute()` in your script. @@ -68,13 +69,15 @@ If you're executing a larger program (>100M cycles), you should set `TRACE_SAMPL Many examples can be found in the repo, such as this ['fibonacci'](https://github.com/succinctlabs/sp1/blob/dev/examples/fibonacci/script/src/main.rs#L22) script. -Once you have your script it should look like the following: -```rs +Once you have your script it should look like the following: + +```rs // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); + let (_, report) = client.execute(ELF, &stdin).run().unwrap(); ``` As well you must enable the profiling feature on the SDK: + ```toml sp1-sdk = { version = "3.0.0", features = ["profiling"] } ``` @@ -83,11 +86,13 @@ The `TRACE_FILE` env var tells the executor where to save the profile, and the ` A larger sample rate will give you a smaller profile, it is the number of instructions in between each sample. The full command to profile should look something like this + ```sh TRACE_FILE=output.json TRACE_SAMPLE_RATE=100 cargo run ... ``` To view these profiles, we recommend [Samply](https://github.com/mstange/samply). + ```sh cargo install --locked samply samply load output.json @@ -97,7 +102,8 @@ Samply uses the Firefox profiler to create a nice visualization of your programs ![An example screenshot of the Firefox Profiler](@site/static/profiling.png) #### Interpreting the Profile -- The "time" measurement in the profiler is actually the number of cycles spent, -in general the less cycles for a given callframe the better. + +- The "time" measurement in the profiler is actually the number of cycles spent, + in general the less cycles for a given callframe the better. - The CPU usage of the program will always be constant, as its running in the VM which is single threaded. diff --git a/book/static/examples_fibonacci_script_bin_compressed.rs.mdx b/book/static/examples_fibonacci_script_bin_compressed.rs.mdx index 5c9409f8d..1b17c75f3 100644 --- a/book/static/examples_fibonacci_script_bin_compressed.rs.mdx +++ b/book/static/examples_fibonacci_script_bin_compressed.rs.mdx @@ -16,7 +16,7 @@ fn main() { // Generate the constant-sized proof for the given program and input. let client = ProverClient::new(); let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); + let mut proof = client.prove(&pk, &stdin).compressed().run().unwrap(); println!("generated proof"); // Read and verify the output. diff --git a/book/static/examples_fibonacci_script_bin_execute.rs.mdx b/book/static/examples_fibonacci_script_bin_execute.rs.mdx index 46d2bb875..84175f301 100644 --- a/book/static/examples_fibonacci_script_bin_execute.rs.mdx +++ b/book/static/examples_fibonacci_script_bin_execute.rs.mdx @@ -16,7 +16,7 @@ fn main() { // Only execute the program and get a `SP1PublicValues` object. let client = ProverClient::new(); - let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); + let (mut public_values, execution_report) = client.execute(ELF, &stdin).run().unwrap(); // Print the total number of cycles executed and the full execution report with a breakdown of // the RISC-V opcode and syscall counts. diff --git a/book/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx b/book/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx index 6b2d6a7f0..a2ef52fc7 100644 --- a/book/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx +++ b/book/static/examples_fibonacci_script_bin_groth16_bn254.rs.mdx @@ -20,7 +20,7 @@ fn main() { println!("vk: {:?}", vk.bytes32()); // Generate the Groth16 proof. - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + let proof = client.prove(&pk, &stdin).groth16().run().unwrap(); println!("generated proof"); // Get the public values as bytes. diff --git a/book/static/examples_fibonacci_script_src_main.rs.mdx b/book/static/examples_fibonacci_script_src_main.rs.mdx index 0aa64a958..c779c5f94 100644 --- a/book/static/examples_fibonacci_script_src_main.rs.mdx +++ b/book/static/examples_fibonacci_script_src_main.rs.mdx @@ -20,12 +20,12 @@ fn main() { let client = ProverClient::new(); // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); + let (_, report) = client.execute(ELF, &stdin).run().unwrap(); println!("executed program with {} cycles", report.total_instruction_count()); // Generate the proof for the given program and input. let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); println!("generated proof"); diff --git a/book/static/examples_groth16_script_src_main.rs.mdx b/book/static/examples_groth16_script_src_main.rs.mdx index 7be12e7e3..771a90861 100644 --- a/book/static/examples_groth16_script_src_main.rs.mdx +++ b/book/static/examples_groth16_script_src_main.rs.mdx @@ -29,7 +29,7 @@ fn generate_fibonacci_proof() -> (Vec, Vec, String) { // Generate the groth16 proof for the Fibonacci program. let (pk, vk) = client.setup(FIBONACCI_ELF); println!("vk: {:?}", vk.bytes32()); - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + let proof = client.prove(&pk, &stdin).groth16().run().unwrap(); (proof.bytes(), proof.public_values.to_vec(), vk.bytes32()) } @@ -50,7 +50,7 @@ fn main() { let client = ProverClient::new(); // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); + let (_, report) = client.execute(GROTH16_ELF, &stdin).run().unwrap(); println!("executed groth16 program with {} cycles", report.total_instruction_count()); println!("{}", report); } diff --git a/book/versioned_docs/version-3.4.0/generating-proofs/proof-types.md b/book/versioned_docs/version-3.4.0/generating-proofs/proof-types.md index c6d713e75..ece6318ed 100644 --- a/book/versioned_docs/version-3.4.0/generating-proofs/proof-types.md +++ b/book/versioned_docs/version-3.4.0/generating-proofs/proof-types.md @@ -13,7 +13,7 @@ the size of the execution. Use this in settings where you don't care about **ver ```rust let client = ProverClient::new(); -client.prove(&pk, stdin).run().unwrap(); +client.prove(&pk, &stdin).run().unwrap(); ``` ## Compressed @@ -23,7 +23,7 @@ care about **verification cost / proof size**, but not onchain verification. Com ```rust let client = ProverClient::new(); -client.prove(&pk, stdin).compressed().run().unwrap(); +client.prove(&pk, &stdin).compressed().run().unwrap(); ``` ## Groth16 (Recommended) @@ -34,7 +34,7 @@ The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony ```rust let client = ProverClient::new(); -client.prove(&pk, stdin).groth16().run().unwrap(); +client.prove(&pk, &stdin).groth16().run().unwrap(); ``` ## PLONK @@ -45,5 +45,5 @@ PLONK does not require a trusted setup. ```rust let client = ProverClient::new(); -client.prove(&pk, stdin).plonk().run().unwrap(); +client.prove(&pk, &stdin).plonk().run().unwrap(); ``` diff --git a/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/usage.md b/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/usage.md index 12ef4ac4e..f17324113 100644 --- a/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/usage.md +++ b/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/usage.md @@ -10,7 +10,7 @@ To use the prover network to generate a proof, you can run your script that uses // Generate the proof for the given program. let client = ProverClient::new(); let (pk, vk) = client.setup(ELF); -let mut proof = client.prove(&pk, stdin).run().unwrap(); +let mut proof = client.prove(&pk, &stdin).run().unwrap(); ``` ```sh diff --git a/crates/perf/src/main.rs b/crates/perf/src/main.rs index 04ca61317..7449d67c7 100644 --- a/crates/perf/src/main.rs +++ b/crates/perf/src/main.rs @@ -177,13 +177,13 @@ fn main() { let (_, _) = time_operation(|| prover.execute(&elf, &stdin)); let (proof, _) = time_operation(|| { - prover.prove(&pk, stdin.clone()).groth16().skip_simulation(true).run().unwrap() + prover.prove(&pk, &stdin).groth16().skip_simulation(true).run().unwrap() }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); let (proof, _) = time_operation(|| { - prover.prove(&pk, stdin).plonk().skip_simulation(true).run().unwrap() + prover.prove(&pk, &stdin).plonk().skip_simulation(true).run().unwrap() }); let (_, _) = time_operation(|| prover.verify(&proof, &vk)); diff --git a/crates/sdk/src/network/client.rs b/crates/sdk/src/network/client.rs index 880352c5c..6758ffa3d 100644 --- a/crates/sdk/src/network/client.rs +++ b/crates/sdk/src/network/client.rs @@ -20,14 +20,14 @@ use tonic::{ use super::utils::Signable; use crate::network::proto::artifact::{ - artifact_store_client::ArtifactStoreClient, CreateArtifactRequest, + artifact_store_client::ArtifactStoreClient, ArtifactType, CreateArtifactRequest, }; use crate::network::proto::network::{ prover_network_client::ProverNetworkClient, CreateProgramRequest, CreateProgramRequestBody, - CreateProgramResponse, FulfillmentStatus, FulfillmentStrategy, GetNonceRequest, - GetProgramRequest, GetProgramResponse, GetProofRequestStatusRequest, - GetProofRequestStatusResponse, MessageFormat, ProofMode, RequestProofRequest, - RequestProofRequestBody, RequestProofResponse, + CreateProgramResponse, FulfillmentStatus, FulfillmentStrategy, GetFilteredProofRequestsRequest, + GetFilteredProofRequestsResponse, GetNonceRequest, GetProgramRequest, GetProgramResponse, + GetProofRequestStatusRequest, GetProofRequestStatusResponse, MessageFormat, ProofMode, + RequestProofRequest, RequestProofRequestBody, RequestProofResponse, }; /// A client for interacting with the network. @@ -105,7 +105,8 @@ impl NetworkClient { ) -> Result { // Create the program artifact. let mut store = self.artifact_store_client().await?; - let program_uri = self.create_artifact_with_content(&mut store, &elf).await?; + let program_uri = + self.create_artifact_with_content(&mut store, ArtifactType::Program, &elf).await?; // Serialize the verifying key. let vk_encoded = bincode::serialize(&vk)?; @@ -130,6 +131,44 @@ impl NetworkClient { .into_inner()) } + /// Get all the proof requests that meet the filter criteria. + #[allow(clippy::too_many_arguments)] + pub async fn get_filtered_proof_requests( + &self, + version: Option, + fulfillment_status: Option, + execution_status: Option, + minimum_deadline: Option, + vk_hash: Option>, + requester: Option>, + fulfiller: Option>, + from: Option, + to: Option, + limit: Option, + page: Option, + mode: Option, + ) -> Result { + let mut rpc = self.prover_network_client().await?; + let res = rpc + .get_filtered_proof_requests(GetFilteredProofRequestsRequest { + version, + fulfillment_status, + execution_status, + minimum_deadline, + vk_hash, + requester, + fulfiller, + from, + to, + limit, + page, + mode, + }) + .await? + .into_inner(); + Ok(res) + } + /// Get the status of a given proof. /// /// # Details @@ -190,7 +229,8 @@ impl NetworkClient { // Create the stdin artifact. let mut store = self.artifact_store_client().await?; - let stdin_uri = self.create_artifact_with_content(&mut store, &stdin).await?; + let stdin_uri = + self.create_artifact_with_content(&mut store, ArtifactType::Stdin, &stdin).await?; // Send the request. let mut rpc = self.prover_network_client().await?; @@ -248,10 +288,14 @@ impl NetworkClient { pub(crate) async fn create_artifact_with_content( &self, store: &mut ArtifactStoreClient, + artifact_type: ArtifactType, item: &T, ) -> Result { let signature = self.signer.sign_message_sync("create_artifact".as_bytes())?; - let request = CreateArtifactRequest { signature: signature.as_bytes().to_vec() }; + let request = CreateArtifactRequest { + artifact_type: artifact_type.into(), + signature: signature.as_bytes().to_vec(), + }; let response = store.create_artifact(request).await?.into_inner(); let presigned_url = response.artifact_presigned_url; diff --git a/crates/sdk/src/network/error.rs b/crates/sdk/src/network/error.rs new file mode 100644 index 000000000..3cde6d604 --- /dev/null +++ b/crates/sdk/src/network/error.rs @@ -0,0 +1,39 @@ +use thiserror::Error; +use tonic::Status; + +/// An error that can occur when interacting with the prover network. +#[derive(Error, Debug)] +pub enum Error { + /// The program execution failed. + #[error("Program simulation failed")] + SimulationFailed, + + /// The proof request is unexecutable. + #[error("Proof request 0x{} is unexecutable", hex::encode(.request_id))] + RequestUnexecutable { + /// The ID of the request that cannot be executed. + request_id: Vec, + }, + + /// The proof request is unfulfillable. + #[error("Proof request 0x{} is unfulfillable", hex::encode(.request_id))] + RequestUnfulfillable { + /// The ID of the request that cannot be fulfilled. + request_id: Vec, + }, + + /// The proof request timed out. + #[error("Proof request 0x{} timed out", hex::encode(.request_id))] + RequestTimedOut { + /// The ID of the request that timed out. + request_id: Vec, + }, + + /// An error occurred while interacting with the RPC server. + #[error("RPC error")] + RpcError(#[from] Status), + + /// An unknown error occurred. + #[error("Other error: {0}")] + Other(#[from] anyhow::Error), +} diff --git a/crates/sdk/src/network/mod.rs b/crates/sdk/src/network/mod.rs index 6cc201f32..6ebb2790d 100644 --- a/crates/sdk/src/network/mod.rs +++ b/crates/sdk/src/network/mod.rs @@ -4,19 +4,28 @@ pub mod client; pub mod prover; -mod sign_message; #[rustfmt::skip] #[allow(missing_docs)] #[allow(clippy::default_trait_access)] #[allow(clippy::too_many_lines)] pub mod proto; pub mod builder; +mod error; pub mod prove; pub mod utils; +pub use error::*; + pub use crate::network::client::NetworkClient; pub use crate::network::proto::network::FulfillmentStrategy; -pub(crate) const DEFAULT_PROVER_NETWORK_RPC: &str = "https://rpc.production.succinct.tools/"; +/// The default RPC URL for the prover network. +pub(crate) const DEFAULT_NETWORK_RPC_URL: &str = "https://rpc.production.succinct.tools/"; + +/// The default timeout for the prover network (4 hours). pub(crate) const DEFAULT_TIMEOUT_SECS: u64 = 14400; + +/// The default cycle limit for the prover network (100M cycles). +/// +/// This will only be used if both simulation is skipped and the cycle limit is not explicitly set. pub(crate) const DEFAULT_CYCLE_LIMIT: u64 = 100_000_000; diff --git a/crates/sdk/src/network/proto/artifact.rs b/crates/sdk/src/network/proto/artifact.rs index e1ff3ad03..bda90769e 100644 --- a/crates/sdk/src/network/proto/artifact.rs +++ b/crates/sdk/src/network/proto/artifact.rs @@ -4,6 +4,9 @@ pub struct CreateArtifactRequest { /// The signature of the user on a pre-defined message. Used for authentication. #[prost(bytes = "vec", tag = "1")] pub signature: ::prost::alloc::vec::Vec, + /// The type of artifact to create. + #[prost(enumeration = "ArtifactType", tag = "2")] + pub artifact_type: i32, } #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] pub struct CreateArtifactResponse { @@ -14,11 +17,58 @@ pub struct CreateArtifactResponse { #[prost(string, tag = "2")] pub artifact_presigned_url: ::prost::alloc::string::String, } +#[derive( + serde::Serialize, + serde::Deserialize, + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration, +)] +#[repr(i32)] +pub enum ArtifactType { + UnspecifiedArtifactType = 0, + /// A program artifact. + Program = 1, + /// A stdin artifact. + Stdin = 2, + /// A proof artifact. + Proof = 3, +} +impl ArtifactType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::UnspecifiedArtifactType => "UNSPECIFIED_ARTIFACT_TYPE", + Self::Program => "PROGRAM", + Self::Stdin => "STDIN", + Self::Proof => "PROOF", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "UNSPECIFIED_ARTIFACT_TYPE" => Some(Self::UnspecifiedArtifactType), + "PROGRAM" => Some(Self::Program), + "STDIN" => Some(Self::Stdin), + "PROOF" => Some(Self::Proof), + _ => None, + } + } +} /// Generated client implementations. pub mod artifact_store_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::http::Uri; - use tonic::codegen::{Body, Bytes, CompressionEncoding, GrpcMethod, InterceptedService, StdError, http}; + use tonic::codegen::*; #[derive(Debug, Clone)] pub struct ArtifactStoreClient { inner: tonic::client::Grpc, @@ -57,11 +107,11 @@ pub mod artifact_store_client { F: tonic::service::Interceptor, T::ResponseBody: Default, T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, + http::Request, + Response = http::Response< + >::ResponseBody, >, + >, >>::Error: Into + std::marker::Send + std::marker::Sync, { @@ -123,7 +173,7 @@ pub mod artifact_store_client { /// Generated server implementations. pub mod artifact_store_server { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::{Arc, Body, BoxFuture, CompressionEncoding, Context, EnabledCompressionEncodings, InterceptedService, Poll, StdError, async_trait, empty_body, http}; + use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with ArtifactStoreServer. #[async_trait] pub trait ArtifactStore: std::marker::Send + std::marker::Sync + 'static { diff --git a/crates/sdk/src/network/proto/mod.rs b/crates/sdk/src/network/proto/mod.rs index 48eb63675..95ba33205 100644 --- a/crates/sdk/src/network/proto/mod.rs +++ b/crates/sdk/src/network/proto/mod.rs @@ -1,2 +1,4 @@ +#![allow(clippy::doc_markdown, clippy::must_use_candidate, clippy::wildcard_imports)] + pub mod artifact; pub mod network; diff --git a/crates/sdk/src/network/proto/network.rs b/crates/sdk/src/network/proto/network.rs index 52691b93a..6c411f84a 100644 --- a/crates/sdk/src/network/proto/network.rs +++ b/crates/sdk/src/network/proto/network.rs @@ -254,20 +254,28 @@ pub struct ProofRequest { /// The unix timestamp of when the request was updated. #[prost(uint64, tag = "19")] pub updated_at: u64, - /// The unix timestamp of when the request was fulfilled. + /// The unix timestamp of when the request was fulfilled. Only included if + /// the request has a fulfillment status of FULFILLED. #[prost(uint64, optional, tag = "20")] pub fulfilled_at: ::core::option::Option, /// The transaction hash of the request. #[prost(bytes = "vec", tag = "21")] pub tx_hash: ::prost::alloc::vec::Vec, - /// The cycle count for the request. + /// The cycle used during the execution of the request. Only included if the + /// request has an execution status of EXECUTED. #[prost(uint64, optional, tag = "22")] pub cycles: ::core::option::Option, - /// The amount deducted from the fulfiller's balance. - #[prost(string, optional, tag = "23")] - pub deduction_amount: ::core::option::Option<::prost::alloc::string::String>, - /// The amount refunded to the fulfiller's balance. + /// The public values hash from the execution of the request. Only included if + /// the request has an execution status of EXECUTED. + #[prost(bytes = "vec", optional, tag = "23")] + pub public_values_hash: ::core::option::Option<::prost::alloc::vec::Vec>, + /// The amount deducted from the fulfiller's balance. Only included if the + /// request has a fulfillment status of ASSIGNED. #[prost(string, optional, tag = "24")] + pub deduction_amount: ::core::option::Option<::prost::alloc::string::String>, + /// The amount refunded to the fulfiller's balance. Only included if the + /// request has a fulfillment status of EXECUTED. + #[prost(string, optional, tag = "25")] pub refund_amount: ::core::option::Option<::prost::alloc::string::String>, } #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] @@ -287,14 +295,22 @@ pub struct GetProofRequestStatusResponse { /// The transaction hash of the request. #[prost(bytes = "vec", tag = "3")] pub request_tx_hash: ::prost::alloc::vec::Vec, + /// The deadline of the request. A request should be ignored if it is past + /// its deadline. + #[prost(uint64, tag = "4")] + pub deadline: u64, /// The optional transaction hash of the proof fulfill. Only included if the /// request has a fulfillment status of FULFILLED. - #[prost(bytes = "vec", optional, tag = "4")] + #[prost(bytes = "vec", optional, tag = "5")] pub fulfill_tx_hash: ::core::option::Option<::prost::alloc::vec::Vec>, /// The optional proof URI, where you can download the result of the request. /// Only included if the request has a fulfillment status of FULFILLED. - #[prost(string, optional, tag = "5")] + #[prost(string, optional, tag = "6")] pub proof_uri: ::core::option::Option<::prost::alloc::string::String>, + /// The optional public values hash from the execution of the request. Only + /// included if the request has an execution status of EXECUTED. + #[prost(bytes = "vec", optional, tag = "7")] + pub public_values_hash: ::core::option::Option<::prost::alloc::vec::Vec>, } #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] pub struct GetProofRequestDetailsRequest { @@ -557,6 +573,38 @@ pub struct RemoveDelegationResponse { #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] pub struct RemoveDelegationResponseBody {} #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct TerminateDelegationRequest { + /// The message format of the body. + #[prost(enumeration = "MessageFormat", tag = "1")] + pub format: i32, + /// The signature of the sender. + #[prost(bytes = "vec", tag = "2")] + pub signature: ::prost::alloc::vec::Vec, + /// The body of the request. + #[prost(message, optional, tag = "3")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct TerminateDelegationRequestBody { + /// The account nonce of the sender. + #[prost(uint64, tag = "1")] + pub nonce: u64, + /// The address of the owner whose delegation to terminate. + #[prost(bytes = "vec", tag = "2")] + pub owner: ::prost::alloc::vec::Vec, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] +pub struct TerminateDelegationResponse { + /// The transaction hash. + #[prost(bytes = "vec", tag = "1")] + pub tx_hash: ::prost::alloc::vec::Vec, + /// The body of the response. + #[prost(message, optional, tag = "2")] + pub body: ::core::option::Option, +} +#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +pub struct TerminateDelegationResponseBody {} +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] pub struct AcceptDelegationRequest { /// The message format of the body. #[prost(enumeration = "MessageFormat", tag = "1")] @@ -949,14 +997,17 @@ pub struct Reservation { #[prost(uint64, tag = "5")] pub created_at: u64, } -#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] pub struct GetFilteredReservationsRequest { + /// Requester address to filter for. + #[prost(bytes = "vec", optional, tag = "1")] + pub requester: ::core::option::Option<::prost::alloc::vec::Vec>, /// The optional maximum number of reservations to return (default is 10, /// maximum is 100). - #[prost(uint32, optional, tag = "1")] + #[prost(uint32, optional, tag = "2")] pub limit: ::core::option::Option, /// The optional page number to return (default is 1). - #[prost(uint32, optional, tag = "2")] + #[prost(uint32, optional, tag = "3")] pub page: ::core::option::Option, } #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)] @@ -1120,19 +1171,19 @@ pub enum MessageFormat { Json = 2, } impl MessageFormat { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedMessageFormat => "UNSPECIFIED_MESSAGE_FORMAT", Self::Binary => "BINARY", Self::Json => "JSON", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_MESSAGE_FORMAT" => Some(Self::UnspecifiedMessageFormat), "BINARY" => Some(Self::Binary), @@ -1167,11 +1218,11 @@ pub enum ProofMode { Groth16 = 4, } impl ProofMode { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedProofMode => "UNSPECIFIED_PROOF_MODE", Self::Core => "CORE", @@ -1180,8 +1231,8 @@ impl ProofMode { Self::Groth16 => "GROTH16", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_PROOF_MODE" => Some(Self::UnspecifiedProofMode), "CORE" => Some(Self::Core), @@ -1219,11 +1270,11 @@ pub enum FulfillmentStrategy { Auction = 3, } impl FulfillmentStrategy { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedFulfillmentStrategy => "UNSPECIFIED_FULFILLMENT_STRATEGY", Self::Hosted => "HOSTED", @@ -1231,8 +1282,8 @@ impl FulfillmentStrategy { Self::Auction => "AUCTION", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_FULFILLMENT_STRATEGY" => Some(Self::UnspecifiedFulfillmentStrategy), "HOSTED" => Some(Self::Hosted), @@ -1269,11 +1320,11 @@ pub enum FulfillmentStatus { Unfulfillable = 4, } impl FulfillmentStatus { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedFulfillmentStatus => "UNSPECIFIED_FULFILLMENT_STATUS", Self::Requested => "REQUESTED", @@ -1282,8 +1333,8 @@ impl FulfillmentStatus { Self::Unfulfillable => "UNFULFILLABLE", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_FULFILLMENT_STATUS" => Some(Self::UnspecifiedFulfillmentStatus), "REQUESTED" => Some(Self::Requested), @@ -1319,11 +1370,11 @@ pub enum ExecutionStatus { Unexecutable = 3, } impl ExecutionStatus { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedExecutionStatus => "UNSPECIFIED_EXECUTION_STATUS", Self::Unexecuted => "UNEXECUTED", @@ -1331,8 +1382,8 @@ impl ExecutionStatus { Self::Unexecutable => "UNEXECUTABLE", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_EXECUTION_STATUS" => Some(Self::UnspecifiedExecutionStatus), "UNEXECUTED" => Some(Self::Unexecuted), @@ -1373,11 +1424,11 @@ pub enum BalanceOperation { Bid = 6, } impl BalanceOperation { - /// String value of the enum field names used in the `ProtoBuf` definition. + /// String value of the enum field names used in the ProtoBuf definition. /// /// The values are not transformed in any way and thus are considered stable - /// (if the `ProtoBuf` definition does not change) and safe for programmatic use. - #[must_use] pub fn as_str_name(&self) -> &'static str { + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { match self { Self::UnspecifiedBalanceChangeOperation => "UNSPECIFIED_BALANCE_CHANGE_OPERATION", Self::Deposit => "DEPOSIT", @@ -1388,8 +1439,8 @@ impl BalanceOperation { Self::Bid => "BID", } } - /// Creates an enum from field names used in the `ProtoBuf` definition. - #[must_use] pub fn from_str_name(value: &str) -> ::core::option::Option { + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { match value { "UNSPECIFIED_BALANCE_CHANGE_OPERATION" => Some(Self::UnspecifiedBalanceChangeOperation), "DEPOSIT" => Some(Self::Deposit), @@ -1406,7 +1457,7 @@ impl BalanceOperation { pub mod prover_network_client { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] use tonic::codegen::http::Uri; - use tonic::codegen::{Body, Bytes, CompressionEncoding, GrpcMethod, InterceptedService, StdError, http}; + use tonic::codegen::*; #[derive(Debug, Clone)] pub struct ProverNetworkClient { inner: tonic::client::Grpc, @@ -1806,6 +1857,26 @@ pub mod prover_network_client { .insert(GrpcMethod::new("network.ProverNetwork", "RemoveDelegation")); self.inner.unary(req, path, codec).await } + /// Terminate a delegation. Only callable by the delegate of a delegation. + pub async fn terminate_delegation( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> + { + self.inner.ready().await.map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = + http::uri::PathAndQuery::from_static("/network.ProverNetwork/TerminateDelegation"); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("network.ProverNetwork", "TerminateDelegation")); + self.inner.unary(req, path, codec).await + } /// Accept a delegation. Only callable by the delegate of a delegation. pub async fn accept_delegation( &mut self, @@ -2181,7 +2252,7 @@ pub mod prover_network_client { /// Generated server implementations. pub mod prover_network_server { #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::{Arc, Body, BoxFuture, CompressionEncoding, Context, EnabledCompressionEncodings, InterceptedService, Poll, StdError, async_trait, empty_body, http}; + use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with ProverNetworkServer. #[async_trait] pub trait ProverNetwork: std::marker::Send + std::marker::Sync + 'static { @@ -2277,6 +2348,11 @@ pub mod prover_network_server { &self, request: tonic::Request, ) -> std::result::Result, tonic::Status>; + /// Terminate a delegation. Only callable by the delegate of a delegation. + async fn terminate_delegation( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; /// Accept a delegation. Only callable by the delegate of a delegation. async fn accept_delegation( &self, @@ -3123,6 +3199,48 @@ pub mod prover_network_server { }; Box::pin(fut) } + "/network.ProverNetwork/TerminateDelegation" => { + #[allow(non_camel_case_types)] + struct TerminateDelegationSvc(pub Arc); + impl + tonic::server::UnaryService + for TerminateDelegationSvc + { + type Response = super::TerminateDelegationResponse; + type Future = BoxFuture, tonic::Status>; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::terminate_delegation(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = TerminateDelegationSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/network.ProverNetwork/AcceptDelegation" => { #[allow(non_camel_case_types)] struct AcceptDelegationSvc(pub Arc); diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index 293c69f20..92057640d 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -241,7 +241,7 @@ impl<'a> NetworkProveBuilder<'a> { /// the simulation step locally. /// /// The cycle limit ensures that a prover on the network will stop generating a proof once the - /// cycle limit is reached, which prevents DoS attacks. + /// cycle limit is reached, which prevents `DoS` attacks. /// /// # Example /// ```rust,no_run @@ -284,8 +284,11 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub async fn request(self) -> Result> { - let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation, cycle_limit } = self; - prover.request_proof_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit).await + let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation, cycle_limit } = + self; + prover + .request_proof_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit) + .await } /// Run the prover with the built arguments. @@ -308,7 +311,8 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub fn run(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = + self; // Check for deprecated environment variable if let Ok(val) = std::env::var("SKIP_SIMULATION") { @@ -320,7 +324,15 @@ impl<'a> NetworkProveBuilder<'a> { sp1_dump(&pk.elf, &stdin); - block_on(prover.prove_impl(pk, &stdin, mode, strategy, timeout, skip_simulation, cycle_limit)) + block_on(prover.prove_impl( + pk, + &stdin, + mode, + strategy, + timeout, + skip_simulation, + cycle_limit, + )) } /// Run the prover with the built arguments asynchronously. @@ -341,7 +353,8 @@ impl<'a> NetworkProveBuilder<'a> { /// .run_async(); /// ``` pub async fn run_async(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = self; + let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = + self; // Check for deprecated environment variable if let Ok(val) = std::env::var("SKIP_SIMULATION") { diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index f6a718686..ca1f71f98 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -5,12 +5,12 @@ use std::time::{Duration, Instant}; -use super::proto::network::GetProofRequestStatusResponse; use super::prove::NetworkProveBuilder; use super::DEFAULT_CYCLE_LIMIT; use crate::cpu::execute::CpuExecuteBuilder; use crate::cpu::CpuProver; -use crate::network::{DEFAULT_PROVER_NETWORK_RPC, DEFAULT_TIMEOUT_SECS}; +use crate::network::proto::network::GetProofRequestStatusResponse; +use crate::network::{Error, DEFAULT_NETWORK_RPC_URL, DEFAULT_TIMEOUT_SECS}; use crate::{ network::client::NetworkClient, network::proto::network::{ExecutionStatus, FulfillmentStatus, FulfillmentStrategy, ProofMode}, @@ -203,7 +203,7 @@ impl NetworkProver { let request_id_hex = "0x".to_string() + &hex::encode(request_id.clone()); log::info!("Created request {} in transaction {}", request_id_hex, tx_hash_hex); - if self.client.rpc_url == DEFAULT_PROVER_NETWORK_RPC { + if self.client.rpc_url == DEFAULT_NETWORK_RPC_URL { log::info!( "View request status at: https://network.succinct.xyz/request/{}", request_id_hex @@ -215,7 +215,7 @@ impl NetworkProver { /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the /// function will return an error if the proof is not generated within the timeout. - pub(crate) async fn wait_proof( + pub async fn wait_proof( &self, request_id: &[u8], timeout: Option, @@ -227,7 +227,7 @@ impl NetworkProver { // Calculate the remaining timeout. if let Some(timeout) = timeout { if start_time.elapsed() > timeout { - return Err(anyhow::anyhow!("proof request timed out.")); + return Err(Error::RequestTimedOut { request_id: request_id.to_vec() }.into()); } } let remaining_timeout = timeout.map(|t| { @@ -239,17 +239,24 @@ impl NetworkProver { } }); - // Get status with retries. + // Get the status with retries. let (status, maybe_proof) = with_retry( - || async { self.client.get_proof_request_status::

(request_id).await }, + || async { self.client.get_proof_request_status(request_id).await }, remaining_timeout, "getting proof request status", ) .await?; + // Check the deadline. + if status.deadline < Instant::now().elapsed().as_secs() { + return Err(Error::RequestTimedOut { request_id: request_id.to_vec() }.into()); + } + // Check the execution status. - if status.execution_status == ExecutionStatus::Unexecutable as i32 { - return Err(anyhow::anyhow!("proof request is unexecutable")); + if let Ok(ExecutionStatus::Unexecutable) = + ExecutionStatus::try_from(status.execution_status) + { + return Err(Error::RequestUnexecutable { request_id: request_id.to_vec() }.into()); } // Check the fulfillment status. @@ -259,12 +266,14 @@ impl NetworkProver { } Ok(FulfillmentStatus::Assigned) => { if !is_assigned { - log::info!("proof request assigned, proving..."); + log::info!("Proof request assigned, proving..."); is_assigned = true; } } Ok(FulfillmentStatus::Unfulfillable) => { - return Err(anyhow::anyhow!("proof request is unfulfillable")); + return Err( + Error::RequestUnfulfillable { request_id: request_id.to_vec() }.into() + ); } _ => {} } @@ -273,7 +282,7 @@ impl NetworkProver { } } - /// Requests a proof from the prover network. + #[allow(clippy::too_many_arguments)] pub(crate) async fn request_proof_impl( &self, pk: &SP1ProvingKey, @@ -289,7 +298,7 @@ impl NetworkProver { self.request_proof(&vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout).await } - /// Requests a proof from the prover network and waits for it to be generated. + #[allow(clippy::too_many_arguments)] pub(crate) async fn prove_impl( &self, pk: &SP1ProvingKey, @@ -326,9 +335,11 @@ impl NetworkProver { if skip_simulation { Ok(DEFAULT_CYCLE_LIMIT) } else { - let (_, report) = self.prover.inner().execute(elf, stdin, SP1Context::default())?; - let cycles = report.total_instruction_count(); - Ok(cycles) + self.prover + .inner() + .execute(elf, stdin, SP1Context::default()) + .map(|(_, report)| report.total_instruction_count()) + .map_err(|_| Error::SimulationFailed.into()) } } } diff --git a/crates/sdk/src/network/sign_message.rs b/crates/sdk/src/network/sign_message.rs deleted file mode 100644 index 9d1289152..000000000 --- a/crates/sdk/src/network/sign_message.rs +++ /dev/null @@ -1,97 +0,0 @@ -use alloy_primitives::{Address, Signature}; -use prost::Message; -use thiserror::Error; - -use crate::network::proto::network::{FulfillProofRequest, MessageFormat, RequestProofRequest}; -use crate::network::utils::{format_json_message, JsonFormatError}; - -#[allow(dead_code)] -pub trait SignedMessage { - fn signature(&self) -> Vec; - fn nonce(&self) -> Result; - fn message(&self) -> Result, MessageError>; - fn recover_sender(&self) -> Result<(Address, Vec), RecoverSenderError>; -} - -#[derive(Error, Debug)] -#[allow(dead_code)] -pub enum MessageError { - #[error("Empty message")] - EmptyMessage, - #[error("JSON error: {0}")] - JsonError(String), - #[error("Binary error: {0}")] - BinaryError(String), -} - -#[derive(Error, Debug)] -pub enum RecoverSenderError { - #[error("Failed to deserialize signature: {0}")] - SignatureDeserializationError(String), - #[error("Empty message")] - EmptyMessage, - #[error("Failed to recover address: {0}")] - AddressRecoveryError(String), -} - -macro_rules! impl_signed_message { - ($type:ty) => { - impl SignedMessage for $type { - fn signature(&self) -> Vec { - self.signature.clone() - } - - fn nonce(&self) -> Result { - match &self.body { - Some(body) => Ok(body.nonce as u64), - None => Err(MessageError::EmptyMessage), - } - } - - fn message(&self) -> Result, MessageError> { - let format = MessageFormat::try_from(self.format).unwrap_or(MessageFormat::Binary); - - match &self.body { - Some(body) => match format { - MessageFormat::Json => format_json_message(body).map_err(|e| match e { - JsonFormatError::SerializationError(msg) => { - MessageError::JsonError(msg) - } - }), - MessageFormat::Binary => { - let proto_bytes = body.encode_to_vec(); - Ok(proto_bytes) - } - MessageFormat::UnspecifiedMessageFormat => { - let proto_bytes = body.encode_to_vec(); - Ok(proto_bytes) - } - }, - None => Err(MessageError::EmptyMessage), - } - } - - fn recover_sender(&self) -> Result<(Address, Vec), RecoverSenderError> { - let message = self.message().map_err(|_| RecoverSenderError::EmptyMessage)?; - let sender = recover_sender_raw(self.signature.clone(), message.clone())?; - Ok((sender, message)) - } - } - }; -} - -impl_signed_message!(RequestProofRequest); -impl_signed_message!(FulfillProofRequest); - -#[allow(clippy::needless_pass_by_value)] -pub fn recover_sender_raw( - signature: Vec, - message: Vec, -) -> Result { - let signature = Signature::try_from(signature.as_slice()) - .map_err(|e| RecoverSenderError::SignatureDeserializationError(e.to_string()))?; - - signature - .recover_address_from_msg(message) - .map_err(|e| RecoverSenderError::AddressRecoveryError(e.to_string())) -} diff --git a/crates/sdk/src/network/utils.rs b/crates/sdk/src/network/utils.rs index e1b7d749b..22ded7c94 100644 --- a/crates/sdk/src/network/utils.rs +++ b/crates/sdk/src/network/utils.rs @@ -1,11 +1,11 @@ +#![allow(deprecated)] + //! # Network Utils //! //! This module provides utility functions for the network module. use alloy_signer::{Signature, SignerSync}; use prost::Message; -use serde::Serialize; -use thiserror::Error; pub(crate) trait Signable: Message { fn sign(&self, signer: &S) -> Signature; @@ -16,55 +16,3 @@ impl Signable for T { signer.sign_message_sync(&self.encode_to_vec()).unwrap() } } - -#[derive(Error, Debug)] -pub(crate) enum JsonFormatError { - #[error("Serialization error: {0}")] - SerializationError(String), -} - -pub(crate) fn format_json_message(body: &T) -> Result, JsonFormatError> -where - T: Message + Serialize, -{ - match serde_json::to_string(body) { - Ok(json_str) => { - if json_str.starts_with('"') && json_str.ends_with('"') { - let inner = &json_str[1..json_str.len() - 1]; - let unescaped = inner.replace("\\\"", "\""); - Ok(unescaped.into_bytes()) - } else { - Ok(json_str.into_bytes()) - } - } - Err(e) => Err(JsonFormatError::SerializationError(e.to_string())), - } -} - -#[cfg(test)] -mod tests { - use super::*; - use prost::Message as ProstMessage; - use serde::{Deserialize, Serialize}; - - // Test message for JSON formatting. - #[derive(Clone, ProstMessage, Serialize, Deserialize)] - struct TestMessage { - #[prost(string, tag = 1)] - value: String, - } - - #[test] - fn test_format_json_message_simple() { - let msg = TestMessage { value: "hello".to_string() }; - let result = format_json_message(&msg).unwrap(); - assert_eq!(result, b"{\"value\":\"hello\"}"); - } - - #[test] - fn test_format_json_message_with_quotes() { - let msg = TestMessage { value: "hello \"world\"".to_string() }; - let result = format_json_message(&msg).unwrap(); - assert_eq!(result, b"{\"value\":\"hello \\\"world\\\"\"}"); - } -} diff --git a/examples/aggregation/script/src/main.rs b/examples/aggregation/script/src/main.rs index 2b1227d6c..554e2c6de 100644 --- a/examples/aggregation/script/src/main.rs +++ b/examples/aggregation/script/src/main.rs @@ -34,17 +34,17 @@ fn main() { let proof_1 = tracing::info_span!("generate fibonacci proof n=10").in_scope(|| { let mut stdin = SP1Stdin::new(); stdin.write(&10); - client.prove(&fibonacci_pk, stdin).compressed().run().expect("proving failed") + client.prove(&fibonacci_pk, &stdin).compressed().run().expect("proving failed") }); let proof_2 = tracing::info_span!("generate fibonacci proof n=20").in_scope(|| { let mut stdin = SP1Stdin::new(); stdin.write(&20); - client.prove(&fibonacci_pk, stdin).compressed().run().expect("proving failed") + client.prove(&fibonacci_pk, &stdin).compressed().run().expect("proving failed") }); let proof_3 = tracing::info_span!("generate fibonacci proof n=30").in_scope(|| { let mut stdin = SP1Stdin::new(); stdin.write(&30); - client.prove(&fibonacci_pk, stdin).compressed().run().expect("proving failed") + client.prove(&fibonacci_pk, &stdin).compressed().run().expect("proving failed") }); // Setup the inputs to the aggregation program. @@ -76,6 +76,6 @@ fn main() { } // Generate the plonk bn254 proof. - client.prove(&aggregation_pk, stdin).plonk().run().expect("proving failed"); + client.prove(&aggregation_pk, &stdin).plonk().run().expect("proving failed"); }); } diff --git a/examples/bls12381/script/src/main.rs b/examples/bls12381/script/src/main.rs index 7e6c02fd4..096c805db 100644 --- a/examples/bls12381/script/src/main.rs +++ b/examples/bls12381/script/src/main.rs @@ -7,7 +7,7 @@ fn main() { let stdin = SP1Stdin::new(); let client = ProverClient::from_env(); - let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); + let (_public_values, report) = client.execute(ELF, &stdin).run().expect("failed to prove"); println!("executed: {}", report); } diff --git a/examples/bn254/script/src/main.rs b/examples/bn254/script/src/main.rs index cd9c6e505..7aa091e1f 100644 --- a/examples/bn254/script/src/main.rs +++ b/examples/bn254/script/src/main.rs @@ -7,7 +7,7 @@ fn main() { let stdin = SP1Stdin::new(); let client = ProverClient::from_env(); - let (_public_values, report) = client.execute(ELF, stdin).run().expect("failed to prove"); + let (_public_values, report) = client.execute(ELF, &stdin).run().expect("failed to prove"); println!("executed: {}", report); } diff --git a/examples/chess/script/src/main.rs b/examples/chess/script/src/main.rs index 3a1df33e5..a08496647 100644 --- a/examples/chess/script/src/main.rs +++ b/examples/chess/script/src/main.rs @@ -15,7 +15,7 @@ fn main() { let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); // Read output. let is_valid_move = proof.public_values.read::(); diff --git a/examples/cycle-tracking/script/src/main.rs b/examples/cycle-tracking/script/src/main.rs index 03a76a80f..ee845c6ce 100644 --- a/examples/cycle-tracking/script/src/main.rs +++ b/examples/cycle-tracking/script/src/main.rs @@ -10,10 +10,11 @@ fn main() { // Execute the normal program. let client = ProverClient::from_env(); - let (_, _) = client.execute(NORMAL_ELF, SP1Stdin::new()).run().expect("proving failed"); + let stdin = SP1Stdin::new(); + let (_, _) = client.execute(NORMAL_ELF, &stdin).run().expect("proving failed"); // Execute the report program. - let (_, report) = client.execute(REPORT_ELF, SP1Stdin::new()).run().expect("proving failed"); + let (_, report) = client.execute(REPORT_ELF, &stdin).run().expect("proving failed"); // Get the "setup" cycle count from the report program. let setup_cycles = report.cycle_tracker.get("setup").unwrap(); diff --git a/examples/fibonacci/script/Cargo.toml b/examples/fibonacci/script/Cargo.toml index 308d3eeed..a7ffb4d7a 100644 --- a/examples/fibonacci/script/Cargo.toml +++ b/examples/fibonacci/script/Cargo.toml @@ -28,6 +28,10 @@ path = "bin/compressed.rs" name = "execute" path = "bin/execute.rs" +[[bin]] +name = "network" +path = "bin/network.rs" + [[bin]] name = "fibonacci-script" path = "src/main.rs" diff --git a/examples/fibonacci/script/bin/compressed.rs b/examples/fibonacci/script/bin/compressed.rs index 632f9cd15..c14b23736 100644 --- a/examples/fibonacci/script/bin/compressed.rs +++ b/examples/fibonacci/script/bin/compressed.rs @@ -15,7 +15,7 @@ fn main() { // Generate the constant-sized proof for the given program and input. let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).compressed().run().unwrap(); + let mut proof = client.prove(&pk, &stdin).compressed().run().unwrap(); println!("generated proof"); // Read and verify the output. diff --git a/examples/fibonacci/script/bin/execute.rs b/examples/fibonacci/script/bin/execute.rs index 7b92525a7..7ded48ad3 100644 --- a/examples/fibonacci/script/bin/execute.rs +++ b/examples/fibonacci/script/bin/execute.rs @@ -15,7 +15,7 @@ fn main() { // Only execute the program and get a `SP1PublicValues` object. let client = ProverClient::from_env(); - let (mut public_values, execution_report) = client.execute(ELF, stdin).run().unwrap(); + let (mut public_values, execution_report) = client.execute(ELF, &stdin).run().unwrap(); // Print the total number of cycles executed and the full execution report with a breakdown of // the RISC-V opcode and syscall counts. diff --git a/examples/fibonacci/script/bin/groth16_bn254.rs b/examples/fibonacci/script/bin/groth16_bn254.rs index 98e9fa96a..55f421b9c 100644 --- a/examples/fibonacci/script/bin/groth16_bn254.rs +++ b/examples/fibonacci/script/bin/groth16_bn254.rs @@ -19,7 +19,7 @@ fn main() { println!("vk: {:?}", vk.bytes32()); // Generate the Groth16 proof. - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + let proof = client.prove(&pk, &stdin).groth16().run().unwrap(); println!("generated proof"); // Get the public values as bytes. diff --git a/examples/fibonacci/script/bin/network.rs b/examples/fibonacci/script/bin/network.rs new file mode 100644 index 000000000..153a60949 --- /dev/null +++ b/examples/fibonacci/script/bin/network.rs @@ -0,0 +1,77 @@ +use sp1_sdk::network::Error; +use sp1_sdk::{include_elf, utils, ProverClient, SP1ProofWithPublicValues, SP1Stdin}; + +/// The ELF we want to execute inside the zkVM. +const ELF: &[u8] = include_elf!("fibonacci-program"); + +fn main() { + // Setup logging. + utils::setup_logger(); + + // Create an input stream and write '500' to it. + let n = 1000u32; + + // The input stream that the program will read from using `sp1_zkvm::io::read`. Note that the + // types of the elements in the input stream must match the types being read in the program. + let mut stdin = SP1Stdin::new(); + stdin.write(&n); + + // Create a `ProverClient` method. + let client = ProverClient::from_env(); + + // Generate the proof for the given program and input. + let (pk, vk) = client.setup(ELF); + let proof_result = client.prove(&pk, &stdin).compressed().run(); + + // Handle possible prover network errors. + let mut proof = match proof_result { + Ok(proof) => proof, + Err(e) => { + if let Some(network_error) = e.downcast_ref::() { + match network_error { + Error::RequestUnexecutable { request_id: _ } => { + eprintln!("Program is unexecutable: {}", e); + std::process::exit(1); + } + Error::RequestUnfulfillable { request_id: _ } => { + eprintln!("Proof request cannot be fulfilled: {}", e); + std::process::exit(1); + } + _ => { + eprintln!("Unexpected error: {}", e); + std::process::exit(1); + } + } + } else { + eprintln!("Unexpected error: {}", e); + std::process::exit(1); + } + } + }; + + println!("generated proof"); + + // Read and verify the output. + // + // Note that this output is read from values committed to in the program using + // `sp1_zkvm::io::commit`. + let _ = proof.public_values.read::(); + let a = proof.public_values.read::(); + let b = proof.public_values.read::(); + + println!("a: {}", a); + println!("b: {}", b); + + // Verify proof and public values + client.verify(&proof, &vk).expect("verification failed"); + + // Test a round trip of proof serialization and deserialization. + proof.save("proof-with-pis.bin").expect("saving proof failed"); + let deserialized_proof = + SP1ProofWithPublicValues::load("proof-with-pis.bin").expect("loading proof failed"); + + // Verify the deserialized proof. + client.verify(&deserialized_proof, &vk).expect("verification failed"); + + println!("successfully generated and verified proof for the program!") +} diff --git a/examples/fibonacci/script/bin/plonk_bn254.rs b/examples/fibonacci/script/bin/plonk_bn254.rs index 48f9c51a3..5f7b3be90 100644 --- a/examples/fibonacci/script/bin/plonk_bn254.rs +++ b/examples/fibonacci/script/bin/plonk_bn254.rs @@ -19,7 +19,7 @@ fn main() { println!("vk: {:?}", vk.bytes32()); // Generate the Plonk proof. - let proof = client.prove(&pk, stdin).plonk().run().unwrap(); + let proof = client.prove(&pk, &stdin).plonk().run().unwrap(); println!("generated proof"); // Get the public values as bytes. diff --git a/examples/fibonacci/script/src/main.rs b/examples/fibonacci/script/src/main.rs index 442fce04c..eb3a16f4d 100644 --- a/examples/fibonacci/script/src/main.rs +++ b/examples/fibonacci/script/src/main.rs @@ -19,12 +19,12 @@ fn main() { let client = ProverClient::from_env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(ELF, stdin.clone()).run().unwrap(); + let (_, report) = client.execute(ELF, &stdin).run().unwrap(); println!("executed program with {} cycles", report.total_instruction_count()); // Generate the proof for the given program and input. let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); println!("generated proof"); diff --git a/examples/groth16/script/src/main.rs b/examples/groth16/script/src/main.rs index 2fecb5493..498a2e65c 100644 --- a/examples/groth16/script/src/main.rs +++ b/examples/groth16/script/src/main.rs @@ -28,7 +28,7 @@ fn generate_fibonacci_proof() -> (Vec, Vec, String) { // Generate the groth16 proof for the Fibonacci program. let (pk, vk) = client.setup(FIBONACCI_ELF); println!("vk: {:?}", vk.bytes32()); - let proof = client.prove(&pk, stdin).groth16().run().unwrap(); + let proof = client.prove(&pk, &stdin).groth16().run().unwrap(); (proof.bytes(), proof.public_values.to_vec(), vk.bytes32()) } @@ -49,7 +49,7 @@ fn main() { let client = ProverClient::from_env(); // Execute the program using the `ProverClient.execute` method, without generating a proof. - let (_, report) = client.execute(GROTH16_ELF, stdin.clone()).run().unwrap(); + let (_, report) = client.execute(GROTH16_ELF, &stdin).run().unwrap(); println!("executed groth16 program with {} cycles", report.total_instruction_count()); println!("{}", report); } diff --git a/examples/io/script/src/main.rs b/examples/io/script/src/main.rs index 008c69e09..fa8812c38 100644 --- a/examples/io/script/src/main.rs +++ b/examples/io/script/src/main.rs @@ -25,7 +25,7 @@ fn main() { // Generate the proof for the given program. let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); // Read the output. let r = proof.public_values.read::(); diff --git a/examples/is-prime/script/src/main.rs b/examples/is-prime/script/src/main.rs index c96577574..1d866645e 100644 --- a/examples/is-prime/script/src/main.rs +++ b/examples/is-prime/script/src/main.rs @@ -16,7 +16,7 @@ fn main() { // Generate and verify the proof let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); - let mut proof = client.prove(&pk, stdin).run().unwrap(); + let mut proof = client.prove(&pk, &stdin).run().unwrap(); let is_prime = proof.public_values.read::(); println!("Is 29 prime? {}", is_prime); diff --git a/examples/json/script/src/main.rs b/examples/json/script/src/main.rs index 4c3eaa03a..6c98a6e48 100644 --- a/examples/json/script/src/main.rs +++ b/examples/json/script/src/main.rs @@ -36,7 +36,7 @@ fn main() { let client = ProverClient::from_env(); let (pk, vk) = client.setup(JSON_ELF); - let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); + let mut proof = client.prove(&pk, &stdin).run().expect("proving failed"); // Read output. let val = proof.public_values.read::(); diff --git a/examples/patch-testing/script/src/main.rs b/examples/patch-testing/script/src/main.rs index 5e85f2b82..7195bfee4 100644 --- a/examples/patch-testing/script/src/main.rs +++ b/examples/patch-testing/script/src/main.rs @@ -9,7 +9,7 @@ pub fn main() { let stdin = SP1Stdin::new(); let client = ProverClient::from_env(); - let (_, report) = client.execute(PATCH_TEST_ELF, stdin).run().expect("executing failed"); + let (_, report) = client.execute(PATCH_TEST_ELF, &stdin).run().expect("executing failed"); // Confirm there was at least 1 SHA_COMPUTE syscall. assert_ne!(report.syscall_counts[sp1_core_executor::syscalls::SyscallCode::SHA_COMPRESS], 0); diff --git a/examples/regex/script/src/main.rs b/examples/regex/script/src/main.rs index 63c8c6fe6..e5ddb0c07 100644 --- a/examples/regex/script/src/main.rs +++ b/examples/regex/script/src/main.rs @@ -20,7 +20,7 @@ fn main() { // Generate the proof for the given program and input. let client = ProverClient::from_env(); let (pk, vk) = client.setup(REGEX_IO_ELF); - let mut proof = client.prove(&pk, stdin).run().expect("proving failed"); + let mut proof = client.prove(&pk, &stdin).run().expect("proving failed"); // Read the output. let res = proof.public_values.read::(); diff --git a/examples/rsa/script/src/main.rs b/examples/rsa/script/src/main.rs index 991a458d7..1b7cae848 100644 --- a/examples/rsa/script/src/main.rs +++ b/examples/rsa/script/src/main.rs @@ -54,7 +54,7 @@ fn main() { // Generate the proof for the given program and input. let client = ProverClient::from_env(); let (pk, vk) = client.setup(RSA_ELF); - let proof = client.prove(&pk, stdin).run().expect("proving failed"); + let proof = client.prove(&pk, &stdin).run().expect("proving failed"); // Verify proof. client.verify(&proof, &vk).expect("verification failed"); diff --git a/examples/rsp/script/src/main.rs b/examples/rsp/script/src/main.rs index 08ded491e..f1dabaceb 100644 --- a/examples/rsp/script/src/main.rs +++ b/examples/rsp/script/src/main.rs @@ -42,8 +42,7 @@ fn main() { stdin.write_vec(buffer); // Only execute the program. - let (mut public_values, execution_report) = - client.execute(&pk.elf, stdin.clone()).run().unwrap(); + let (mut public_values, execution_report) = client.execute(&pk.elf, &stdin).run().unwrap(); println!( "Finished executing the block in {} cycles", execution_report.total_instruction_count() @@ -57,7 +56,7 @@ fn main() { // It is strongly recommended you use the network prover given the size of these programs. if args.prove { println!("Starting proof generation."); - let proof = client.prove(&pk, stdin).run().expect("Proving should work."); + let proof = client.prove(&pk, &stdin).run().expect("Proving should work."); println!("Proof generation finished."); client.verify(&proof, &vk).expect("proof verification should succeed"); diff --git a/examples/ssz-withdrawals/script/src/main.rs b/examples/ssz-withdrawals/script/src/main.rs index 9a6450bc7..0da068396 100644 --- a/examples/ssz-withdrawals/script/src/main.rs +++ b/examples/ssz-withdrawals/script/src/main.rs @@ -10,7 +10,7 @@ fn main() { let stdin = SP1Stdin::new(); let client = ProverClient::from_env(); let (pk, vk) = client.setup(ELF); - let proof = client.prove(&pk, stdin).run().expect("proving failed"); + let proof = client.prove(&pk, &stdin).run().expect("proving failed"); // Verify proof. client.verify(&proof, &vk).expect("verification failed"); diff --git a/examples/tendermint/script/src/main.rs b/examples/tendermint/script/src/main.rs index 298b8ee75..43ac8cbef 100644 --- a/examples/tendermint/script/src/main.rs +++ b/examples/tendermint/script/src/main.rs @@ -44,9 +44,9 @@ pub fn main() { let client = ProverClient::from_env(); let (pk, vk) = client.setup(TENDERMINT_ELF); - client.execute(TENDERMINT_ELF, stdin.clone()).run().expect("proving failed"); + client.execute(TENDERMINT_ELF, &stdin).run().expect("proving failed"); - let proof = client.prove(&pk, stdin).run().expect("proving failed"); + let proof = client.prove(&pk, &stdin).run().expect("proving failed"); // Verify proof. client.verify(&proof, &vk).expect("verification failed"); From 57b107c7db7ef2a31bb32a0054020fdb018623af Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Fri, 20 Dec 2024 17:17:23 -0800 Subject: [PATCH 03/13] feat: use `B256` + `request_async` + bump `alloy` + fix CI (#1886) --- .github/workflows/pr.yml | 4 +- Cargo.lock | 216 +++++--- crates/sdk/Cargo.toml | 5 +- crates/sdk/src/network/client.rs | 24 +- crates/sdk/src/network/mod.rs | 2 + crates/sdk/src/network/prove.rs | 55 +- crates/sdk/src/network/prover.rs | 45 +- examples/Cargo.lock | 622 ++++++++++++----------- examples/elf/riscv32im-succinct-zkvm-elf | Bin 145784 -> 1242656 bytes examples/tendermint/script/Cargo.toml | 2 +- 10 files changed, 567 insertions(+), 408 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 0b63d294a..0046f1319 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -151,7 +151,7 @@ jobs: check: name: Cargo Check - runs-on: [runs-on, runner=16cpu-linux-x64, disk=medium, "run-id=${{ github.run_id }}"] + runs-on: [runs-on, runner=16cpu-linux-x64, disk=large, "run-id=${{ github.run_id }}"] env: CARGO_NET_GIT_FETCH_WITH_CLI: "true" steps: @@ -248,7 +248,7 @@ jobs: - name: Run cargo prove new run: | - cargo prove new fibonacci --version dev --evm + cargo prove new fibonacci --evm --version dev - name: Build program and run script run: | diff --git a/Cargo.lock b/Cargo.lock index 103eb41a6..034824d0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,20 +111,35 @@ checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "alloy-consensus" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" +checksum = "e88e1edea70787c33e11197d3f32ae380f3db19e6e061e539a5bcf8184a6b326" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", + "alloy-trie", "auto_impl", "c-kzg", "derive_more", "serde", ] +[[package]] +name = "alloy-consensus-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b1bb53f40c0273cd1975573cd457b39213e68584e36d1401d25fd0398a1d65" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-eip2930" version = "0.1.0" @@ -138,9 +153,9 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.3.2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" +checksum = "4c986539255fb839d1533c128e190e557e52ff652c9ef62939e233a81dd93f7e" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -150,9 +165,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" +checksum = "5f9fadfe089e9ccc0650473f2d4ef0a28bc015bbca5631d9f0f09e49b557fdb3" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -168,9 +183,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84c506bf264110fa7e90d9924f742f40ef53c6572ea56a0b0bd714a567ed389" +checksum = "c357da577dfb56998d01f574d81ad7a1958d248740a7981b205d69d65a7da404" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -180,29 +195,31 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" +checksum = "e29040b9d5fe2fb70415531882685b64f8efd08dfbd6cc907120650504821105" dependencies = [ "alloy-primitives", "alloy-sol-types", "serde", "serde_json", - "thiserror", + "thiserror 2.0.8", "tracing", ] [[package]] name = "alloy-network" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" +checksum = "510cc00b318db0dfccfdd2d032411cfae64fc144aef9679409e014145d3dacc4" dependencies = [ "alloy-consensus", + "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", + "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", @@ -210,14 +227,16 @@ dependencies = [ "async-trait", "auto_impl", "futures-utils-wasm", - "thiserror", + "serde", + "serde_json", + "thiserror 2.0.8", ] [[package]] name = "alloy-network-primitives" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" +checksum = "9081c099e798b8a2bba2145eb82a9a146f01fc7a35e9ab6e7b43305051f97550" dependencies = [ "alloy-consensus", "alloy-eips", @@ -228,9 +247,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fce5dbd6a4f118eecc4719eaa9c7ffc31c315e6c5ccde3642db927802312425" +checksum = "6259a506ab13e1d658796c31e6e39d2e2ee89243bcc505ddc613b35732e0a430" dependencies = [ "alloy-rlp", "bytes 1.8.0", @@ -276,13 +295,25 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "alloy-rpc-types-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed98e1af55a7d856bfa385f30f63d8d56be2513593655c904a8f4a7ec963aa3e" +dependencies = [ + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", +] + [[package]] name = "alloy-rpc-types-eth" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" +checksum = "8737d7a6e37ca7bba9c23e9495c6534caec6760eb24abc9d5ffbaaba147818e1" dependencies = [ "alloy-consensus", + "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", "alloy-primitives", @@ -297,9 +328,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" +checksum = "5851bf8d5ad33014bd0c45153c603303e730acc8a209450a7ae6b4a12c2789e2" dependencies = [ "alloy-primitives", "serde", @@ -308,23 +339,23 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" +checksum = "7e10ca565da6500cca015ba35ee424d59798f2e1b85bc0dd8f81dafd401f029a" dependencies = [ "alloy-primitives", "async-trait", "auto_impl", "elliptic-curve", "k256", - "thiserror", + "thiserror 2.0.8", ] [[package]] name = "alloy-signer-local" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" +checksum = "47fababf5a745133490cde927d48e50267f97d3d1209b9fc9f1d1d666964d172" dependencies = [ "alloy-consensus", "alloy-network", @@ -333,14 +364,14 @@ dependencies = [ "async-trait", "k256", "rand 0.8.5", - "thiserror", + "thiserror 2.0.8", ] [[package]] name = "alloy-sol-macro" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9343289b4a7461ed8bab8618504c995c049c082b70c7332efd7b32125633dc05" +checksum = "d9d64f851d95619233f74b310f12bcf16e0cbc27ee3762b6115c14a84809280a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -352,9 +383,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4222d70bec485ceccc5d8fd4f2909edd65b5d5e43d4aca0b5dcee65d519ae98f" +checksum = "6bf7ed1574b699f48bf17caab4e6e54c6d12bc3c006ab33d58b1e227c1c3559f" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -370,9 +401,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e17f2677369571b976e51ea1430eb41c3690d344fef567b840bfc0b01b6f83a" +checksum = "8c02997ccef5f34f9c099277d4145f183b422938ed5322dc57a089fe9b9ad9ee" dependencies = [ "const-hex", "dunce", @@ -385,9 +416,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa64d80ae58ffaafdff9d5d84f58d03775f66c84433916dc9a64ed16af5755da" +checksum = "ce13ff37285b0870d0a0746992a4ae48efaf34b766ae4c2640fa15e5305f8e73" dependencies = [ "serde", "winnow 0.6.20", @@ -395,9 +426,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6520d427d4a8eb7aa803d852d7a52ceb0c519e784c292f64bb339e636918cf27" +checksum = "1174cafd6c6d810711b4e00383037bdb458efc4fe3dbafafa16567e0320c54d8" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -406,6 +437,22 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-trie" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5fd8fea044cc9a8c8a50bb6f28e31f0385d820f116c5b98f6f4e55d6e5590b" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arrayvec", + "derive_more", + "nybbles", + "serde", + "smallvec", + "tracing", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -629,6 +676,9 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +dependencies = [ + "serde", +] [[package]] name = "async-attributes" @@ -1192,7 +1242,7 @@ dependencies = [ "semver 1.0.23", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1362,9 +1412,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -3575,6 +3625,17 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "nybbles" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" +dependencies = [ + "const-hex", + "serde", + "smallvec", +] + [[package]] name = "object" version = "0.36.5" @@ -4022,7 +4083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.69", "ucd-trie", ] @@ -4368,7 +4429,7 @@ dependencies = [ "rustc-hash 2.0.0", "rustls 0.23.16", "socket2", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -4385,7 +4446,7 @@ dependencies = [ "rustc-hash 2.0.0", "rustls 0.23.16", "slab", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tracing", ] @@ -4546,7 +4607,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4654,7 +4715,7 @@ dependencies = [ "http 1.1.0", "reqwest", "serde", - "thiserror", + "thiserror 1.0.69", "tower-service", ] @@ -5138,7 +5199,7 @@ checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ "percent-encoding", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -5355,6 +5416,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "smawk" @@ -5454,7 +5518,7 @@ dependencies = [ "strum", "strum_macros", "test-artifacts", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "tracing", "typenum", @@ -5502,7 +5566,7 @@ dependencies = [ "strum_macros", "tempfile", "test-artifacts", - "thiserror", + "thiserror 1.0.69", "tiny-keccak", "tracing", "tracing-forest", @@ -5665,7 +5729,7 @@ dependencies = [ "sp1-recursion-gnark-ffi", "sp1-stark", "test-artifacts", - "thiserror", + "thiserror 1.0.69", "tracing", "tracing-appender", "tracing-subscriber", @@ -5762,7 +5826,7 @@ dependencies = [ "sp1-primitives", "sp1-stark", "static_assertions", - "thiserror", + "thiserror 1.0.69", "tracing", "vec_map", "zkhash", @@ -5848,8 +5912,9 @@ dependencies = [ "strum_macros", "tempfile", "test-artifacts", - "thiserror", + "thiserror 1.0.69", "tokio", + "tokio-test", "tonic", "tracing", "twirp-rs", @@ -6124,9 +6189,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76fe0a3e1476bdaa0775b9aec5b869ed9520c2b2fedfe9c6df3618f8ea6290b" +checksum = "219389c1ebe89f8333df8bdfb871f6631c552ff399c23cac02480b6088aad8f0" dependencies = [ "paste", "proc-macro2", @@ -6256,7 +6321,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +dependencies = [ + "thiserror-impl 2.0.8", ] [[package]] @@ -6270,6 +6344,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "thiserror-impl" +version = "2.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "thiserror-impl-no-std" version = "2.0.2" @@ -6485,6 +6570,19 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-test" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +dependencies = [ + "async-stream", + "bytes 1.8.0", + "futures-core", + "tokio", + "tokio-stream", +] + [[package]] name = "tokio-util" version = "0.7.12" @@ -6626,7 +6724,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.69", "time 0.3.36", "tracing-subscriber", ] @@ -6660,7 +6758,7 @@ checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" dependencies = [ "ansi_term", "smallvec", - "thiserror", + "thiserror 1.0.69", "tracing", "tracing-subscriber", ] @@ -6724,7 +6822,7 @@ dependencies = [ "log", "rand 0.8.5", "sha1 0.10.6", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", ] @@ -6754,7 +6852,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tower 0.5.1", "url", diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index 36a186db9..e1156d7ce 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -49,13 +49,14 @@ sp1-primitives = { workspace = true } itertools = { workspace = true } tonic = { version = "0.12", features = ["tls", "tls-roots"], optional = true } alloy-sol-types = { version = "0.8", optional = true } -alloy-signer = { version = "0.5", optional = true } -alloy-signer-local = { version = "0.5", optional = true } +alloy-signer = { version = "0.8", optional = true } +alloy-signer-local = { version = "0.8", optional = true } alloy-primitives = { version = "0.8", optional = true } backoff = { version = "0.4", features = ["tokio"], optional = true } [dev-dependencies] test-artifacts = { workspace = true } +tokio-test = { version = "0.4"} [features] default = ["cuda", "network"] diff --git a/crates/sdk/src/network/client.rs b/crates/sdk/src/network/client.rs index 6758ffa3d..ae0b405c6 100644 --- a/crates/sdk/src/network/client.rs +++ b/crates/sdk/src/network/client.rs @@ -6,6 +6,7 @@ use std::result::Result::Ok as StdOk; use std::str::FromStr; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use alloy_primitives::B256; use alloy_signer::SignerSync; use alloy_signer_local::PrivateKeySigner; use anyhow::{Context, Ok, Result}; @@ -61,24 +62,23 @@ impl NetworkClient { /// /// # Details /// The verifying key hash is used to identify a program. - pub fn get_vk_hash(vk: &SP1VerifyingKey) -> Result> { - let vk_hash_str = vk.bytes32(); - let vk_hash = hex::decode(vk_hash_str.strip_prefix("0x").unwrap_or(&vk_hash_str))?; - Ok(vk_hash) + pub fn get_vk_hash(vk: &SP1VerifyingKey) -> Result { + let vk_hash_str = B256::from_str(&vk.bytes32())?; + Ok(vk_hash_str) } /// Registers a program with the network if it is not already registered. - pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { + pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result { let vk_hash = Self::get_vk_hash(vk)?; // Try to get the existing program. - if (self.get_program(&vk_hash).await?).is_some() { + if (self.get_program(vk_hash).await?).is_some() { // The program already exists. Ok(vk_hash) } else { // The program doesn't exist, create it. - self.create_program(&vk_hash, vk, elf).await?; - log::info!("Registered program 0x{}", hex::encode(vk_hash.clone())); + self.create_program(vk_hash, vk, elf).await?; + log::info!("Registered program {:?}", vk_hash); Ok(vk_hash) } } @@ -87,7 +87,7 @@ impl NetworkClient { /// /// # Details /// Returns `None` if the program does not exist. - pub async fn get_program(&self, vk_hash: &[u8]) -> Result> { + pub async fn get_program(&self, vk_hash: B256) -> Result> { let mut rpc = self.prover_network_client().await?; match rpc.get_program(GetProgramRequest { vk_hash: vk_hash.to_vec() }).await { StdOk(response) => Ok(Some(response.into_inner())), @@ -99,7 +99,7 @@ impl NetworkClient { /// Creates a new program on the network. pub async fn create_program( &self, - vk_hash: &[u8], + vk_hash: B256, vk: &SP1VerifyingKey, elf: &[u8], ) -> Result { @@ -175,7 +175,7 @@ impl NetworkClient { /// If the status is Fulfilled, the proof is also returned. pub async fn get_proof_request_status( &self, - request_id: &[u8], + request_id: B256, ) -> Result<(GetProofRequestStatusResponse, Option

)> { let mut rpc = self.prover_network_client().await?; let res = rpc @@ -214,7 +214,7 @@ impl NetworkClient { #[allow(clippy::too_many_arguments)] pub async fn request_proof( &self, - vk_hash: &[u8], + vk_hash: B256, stdin: &SP1Stdin, mode: ProofMode, version: &str, diff --git a/crates/sdk/src/network/mod.rs b/crates/sdk/src/network/mod.rs index 6ebb2790d..bcec52ab1 100644 --- a/crates/sdk/src/network/mod.rs +++ b/crates/sdk/src/network/mod.rs @@ -18,6 +18,8 @@ pub use error::*; pub use crate::network::client::NetworkClient; pub use crate::network::proto::network::FulfillmentStrategy; +// Re-export for verification key hash + request ID. +pub use alloy_primitives::B256; /// The default RPC URL for the prover network. pub(crate) const DEFAULT_NETWORK_RPC_URL: &str = "https://rpc.production.succinct.tools/"; diff --git a/crates/sdk/src/network/prove.rs b/crates/sdk/src/network/prove.rs index 92057640d..f7f9a0b67 100644 --- a/crates/sdk/src/network/prove.rs +++ b/crates/sdk/src/network/prove.rs @@ -4,6 +4,7 @@ use std::time::Duration; +use alloy_primitives::B256; use anyhow::Result; use sp1_core_machine::io::SP1Stdin; use sp1_prover::SP1ProvingKey; @@ -241,7 +242,7 @@ impl<'a> NetworkProveBuilder<'a> { /// the simulation step locally. /// /// The cycle limit ensures that a prover on the network will stop generating a proof once the - /// cycle limit is reached, which prevents `DoS` attacks. + /// cycle limit is reached, which prevents denial of service attacks. /// /// # Example /// ```rust,no_run @@ -283,7 +284,34 @@ impl<'a> NetworkProveBuilder<'a> { /// .request() /// .unwrap(); /// ``` - pub async fn request(self) -> Result> { + pub fn request(self) -> Result { + block_on(self.request_async()) + } + + /// Request a proof from the prover network asynchronously. + /// + /// # Details + /// This method will request a proof from the prover network asynchronously. If the prover fails + /// to request a proof, the method will return an error. It will not wait for the proof to be + /// generated. + /// + /// # Example + /// ```rust,no_run + /// use sp1_sdk::{ProverClient, SP1Stdin, Prover}; + /// + /// tokio_test::block_on(async { + /// let elf = &[1, 2, 3]; + /// let stdin = SP1Stdin::new(); + /// + /// let client = ProverClient::builder().network().build(); + /// let (pk, vk) = client.setup(elf); + /// let request_id = client.prove(&pk, &stdin) + /// .request_async() + /// .await + /// .unwrap(); + /// }) + /// ``` + pub async fn request_async(self) -> Result { let Self { prover, mode, pk, stdin, timeout, strategy, skip_simulation, cycle_limit } = self; prover @@ -311,28 +339,7 @@ impl<'a> NetworkProveBuilder<'a> { /// .unwrap(); /// ``` pub fn run(self) -> Result { - let Self { prover, mode, pk, stdin, timeout, strategy, mut skip_simulation, cycle_limit } = - self; - - // Check for deprecated environment variable - if let Ok(val) = std::env::var("SKIP_SIMULATION") { - eprintln!( - "Warning: SKIP_SIMULATION environment variable is deprecated. Please use .skip_simulation() instead." - ); - skip_simulation = matches!(val.to_lowercase().as_str(), "true" | "1"); - } - - sp1_dump(&pk.elf, &stdin); - - block_on(prover.prove_impl( - pk, - &stdin, - mode, - strategy, - timeout, - skip_simulation, - cycle_limit, - )) + block_on(self.run_async()) } /// Run the prover with the built arguments asynchronously. diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index ca1f71f98..2c97ef45b 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -16,6 +16,7 @@ use crate::{ network::proto::network::{ExecutionStatus, FulfillmentStatus, FulfillmentStrategy, ProofMode}, Prover, SP1ProofMode, SP1ProofWithPublicValues, SP1ProvingKey, SP1VerifyingKey, }; +use alloy_primitives::B256; use anyhow::Result; use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; use serde::de::DeserializeOwned; @@ -132,7 +133,7 @@ impl NetworkProver { /// /// let vk_hash = client.register_program(&vk, elf); /// ``` - pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result> { + pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result { self.client.register_program(vk, elf).await } @@ -143,29 +144,38 @@ impl NetworkProver { /// /// # Example /// ```rust,no_run - /// use sp1_sdk::{ProverClient} - /// - /// let request_id = vec![1u8; 32]; - /// let client = ProverClient::builder().network().build(); - /// let (status, maybe_proof) = client.get_proof_status(&request_id).await?; + /// use sp1_sdk::{ProverClient, network::B256}; + /// + /// tokio_test::block_on(async { + /// let request_id = B256::from_slice(&vec![1u8; 32]); + /// let client = ProverClient::builder().network().build(); + /// let (status, maybe_proof) = client.get_proof_status(request_id).await.unwrap(); + /// }) /// ``` pub async fn get_proof_status( &self, - request_id: &[u8], + request_id: B256, ) -> Result<(GetProofRequestStatusResponse, Option)> { self.client.get_proof_request_status(request_id).await } /// Requests a proof from the prover network, returning the request ID. + /// + /// # Details + /// * `vk_hash`: The hash of the verifying key to use for the proof. + /// * `stdin`: The input to use for the proof. + /// * `mode`: The proof mode to use for the proof. + /// * `strategy`: The fulfillment strategy to use for the proof. + /// * `cycle_limit`: The cycle limit to use for the proof. pub(crate) async fn request_proof( &self, - vk_hash: &[u8], + vk_hash: B256, stdin: &SP1Stdin, mode: ProofMode, strategy: FulfillmentStrategy, cycle_limit: u64, timeout: Option, - ) -> Result> { + ) -> Result { // Get the timeout. let timeout_secs = timeout.map_or(DEFAULT_TIMEOUT_SECS, |dur| dur.as_secs()); @@ -198,15 +208,14 @@ impl NetworkProver { .await?; // Log the request ID and transaction hash. - let tx_hash_hex = "0x".to_string() + &hex::encode(response.tx_hash); - let request_id = response.body.unwrap().request_id; - let request_id_hex = "0x".to_string() + &hex::encode(request_id.clone()); - log::info!("Created request {} in transaction {}", request_id_hex, tx_hash_hex); + let tx_hash = B256::from_slice(&response.tx_hash); + let request_id = B256::from_slice(&response.body.unwrap().request_id); + log::info!("Created request {} in transaction {:?}", request_id, tx_hash); if self.client.rpc_url == DEFAULT_NETWORK_RPC_URL { log::info!( "View request status at: https://network.succinct.xyz/request/{}", - request_id_hex + request_id ); } @@ -217,7 +226,7 @@ impl NetworkProver { /// function will return an error if the proof is not generated within the timeout. pub async fn wait_proof( &self, - request_id: &[u8], + request_id: B256, timeout: Option, ) -> Result

{ let mut is_assigned = false; @@ -292,10 +301,10 @@ impl NetworkProver { timeout: Option, skip_simulation: bool, cycle_limit: Option, - ) -> Result> { + ) -> Result { let vk_hash = self.register_program(&pk.vk, &pk.elf).await?; let cycle_limit = self.get_cycle_limit(cycle_limit, &pk.elf, stdin, skip_simulation)?; - self.request_proof(&vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout).await + self.request_proof(vk_hash, stdin, mode.into(), strategy, cycle_limit, timeout).await } #[allow(clippy::too_many_arguments)] @@ -312,7 +321,7 @@ impl NetworkProver { let request_id = self .request_proof_impl(pk, stdin, mode, strategy, timeout, skip_simulation, cycle_limit) .await?; - self.wait_proof(&request_id, timeout).await + self.wait_proof(request_id, timeout).await } /// The cycle limit is determined according to the following priority: diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 7e8cbf164..2c51170f2 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -68,17 +68,17 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.47" +version = "0.1.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" +checksum = "830045a4421ee38d3ab570d36d4d2b5152c066e72797139224da8de5d5981fd0" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "num_enum 0.7.3", "serde", @@ -92,7 +92,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-serde 0.3.6", "c-kzg", @@ -101,27 +101,42 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" +checksum = "e88e1edea70787c33e11197d3f32ae380f3db19e6e061e539a5bcf8184a6b326" dependencies = [ - "alloy-eips 0.5.4", - "alloy-primitives 0.8.14", + "alloy-eips 0.8.3", + "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.5.4", + "alloy-serde 0.8.3", + "alloy-trie 0.7.6", "auto_impl", "c-kzg", "derive_more 1.0.0", "serde", ] +[[package]] +name = "alloy-consensus-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b1bb53f40c0273cd1975573cd457b39213e68584e36d1401d25fd0398a1d65" +dependencies = [ + "alloy-consensus 0.8.3", + "alloy-eips 0.8.3", + "alloy-primitives 0.8.15", + "alloy-rlp", + "alloy-serde 0.8.3", + "serde", +] + [[package]] name = "alloy-eip2930" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "serde", ] @@ -132,7 +147,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "k256", "serde", @@ -140,11 +155,11 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.3.2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" +checksum = "4c986539255fb839d1533c128e190e557e52ff652c9ef62939e233a81dd93f7e" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "derive_more 1.0.0", "serde", @@ -158,7 +173,7 @@ checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.1.1", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-serde 0.3.6", "c-kzg", @@ -170,15 +185,15 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" +checksum = "5f9fadfe089e9ccc0650473f2d4ef0a28bc015bbca5631d9f0f09e49b557fdb3" dependencies = [ "alloy-eip2930", - "alloy-eip7702 0.3.2", - "alloy-primitives 0.8.14", + "alloy-eip7702 0.4.2", + "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.5.4", + "alloy-serde 0.8.3", "c-kzg", "derive_more 1.0.0", "once_cell", @@ -192,18 +207,18 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-serde 0.3.6", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac4b22b3e51cac09fd2adfcc73b55f447b4df669f983c13f7894ec82b607c63f" +checksum = "c357da577dfb56998d01f574d81ad7a1958d248740a7981b205d69d65a7da404" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-sol-type-parser", "serde", "serde_json", @@ -211,37 +226,41 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" +checksum = "e29040b9d5fe2fb70415531882685b64f8efd08dfbd6cc907120650504821105" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-sol-types", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.8", "tracing", ] [[package]] name = "alloy-network" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" +checksum = "510cc00b318db0dfccfdd2d032411cfae64fc144aef9679409e014145d3dacc4" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus 0.8.3", + "alloy-consensus-any", + "alloy-eips 0.8.3", "alloy-json-rpc", - "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.14", - "alloy-rpc-types-eth 0.5.4", - "alloy-serde 0.5.4", + "alloy-network-primitives 0.8.3", + "alloy-primitives 0.8.15", + "alloy-rpc-types-any", + "alloy-rpc-types-eth 0.8.3", + "alloy-serde 0.8.3", "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", "futures-utils-wasm", - "thiserror 1.0.69", + "serde", + "serde_json", + "thiserror 2.0.8", ] [[package]] @@ -251,21 +270,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-serde 0.3.6", "serde", ] [[package]] name = "alloy-network-primitives" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" +checksum = "9081c099e798b8a2bba2145eb82a9a146f01fc7a35e9ab6e7b43305051f97550" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", - "alloy-primitives 0.8.14", - "alloy-serde 0.5.4", + "alloy-consensus 0.8.3", + "alloy-eips 0.8.3", + "alloy-primitives 0.8.15", + "alloy-serde 0.8.3", "serde", ] @@ -293,9 +312,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9db948902dfbae96a73c2fbf1f7abec62af034ab883e4c777c3fd29702bd6e2c" +checksum = "6259a506ab13e1d658796c31e6e39d2e2ee89243bcc505ddc613b35732e0a430" dependencies = [ "alloy-rlp", "bytes", @@ -306,7 +325,7 @@ dependencies = [ "getrandom", "hashbrown 0.15.2", "hex-literal", - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "k256", "keccak-asm", @@ -314,7 +333,7 @@ dependencies = [ "proptest", "rand 0.8.5", "ruint", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "serde", "sha3", "tiny-keccak", @@ -322,9 +341,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "alloy-rlp-derive", "arrayvec 0.7.6", @@ -333,9 +352,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" +checksum = "5a833d97bf8a5f0f878daf2c8451fff7de7f9de38baa5a45d936ec718d81255a" dependencies = [ "proc-macro2", "quote", @@ -353,6 +372,17 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-rpc-types-any" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed98e1af55a7d856bfa385f30f63d8d56be2513593655c904a8f4a7ec963aa3e" +dependencies = [ + "alloy-consensus-any", + "alloy-rpc-types-eth 0.8.3", + "alloy-serde 0.8.3", +] + [[package]] name = "alloy-rpc-types-eth" version = "0.3.6" @@ -362,7 +392,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-serde 0.3.6", "alloy-sol-types", @@ -376,16 +406,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" +checksum = "8737d7a6e37ca7bba9c23e9495c6534caec6760eb24abc9d5ffbaaba147818e1" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", - "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.14", + "alloy-consensus 0.8.3", + "alloy-consensus-any", + "alloy-eips 0.8.3", + "alloy-network-primitives 0.8.3", + "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.5.4", + "alloy-serde 0.8.3", "alloy-sol-types", "derive_more 1.0.0", "itertools 0.13.0", @@ -399,57 +430,57 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "serde", "serde_json", ] [[package]] name = "alloy-serde" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" +checksum = "5851bf8d5ad33014bd0c45153c603303e730acc8a209450a7ae6b4a12c2789e2" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" +checksum = "7e10ca565da6500cca015ba35ee424d59798f2e1b85bc0dd8f81dafd401f029a" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "async-trait", "auto_impl", "elliptic-curve", "k256", - "thiserror 1.0.69", + "thiserror 2.0.8", ] [[package]] name = "alloy-signer-local" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" +checksum = "47fababf5a745133490cde927d48e50267f97d3d1209b9fc9f1d1d666964d172" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus 0.8.3", "alloy-network", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-signer", "async-trait", "k256", "rand 0.8.5", - "thiserror 1.0.69", + "thiserror 2.0.8", ] [[package]] name = "alloy-sol-macro" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfd7853b65a2b4f49629ec975fee274faf6dff15ab8894c620943398ef283c0" +checksum = "d9d64f851d95619233f74b310f12bcf16e0cbc27ee3762b6115c14a84809280a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -461,14 +492,14 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82ec42f342d9a9261699f8078e57a7a4fda8aaa73c1a212ed3987080e6a9cd13" +checksum = "6bf7ed1574b699f48bf17caab4e6e54c6d12bc3c006ab33d58b1e227c1c3559f" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error2", "proc-macro2", "quote", @@ -479,9 +510,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2c50e6a62ee2b4f7ab3c6d0366e5770a21cad426e109c2f40335a1b3aff3df" +checksum = "8c02997ccef5f34f9c099277d4145f183b422938ed5322dc57a089fe9b9ad9ee" dependencies = [ "const-hex", "dunce", @@ -494,9 +525,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac17c6e89a50fb4a758012e4b409d9a0ba575228e69b539fe37d7a1bd507ca4a" +checksum = "ce13ff37285b0870d0a0746992a4ae48efaf34b766ae4c2640fa15e5305f8e73" dependencies = [ "serde", "winnow 0.6.20", @@ -504,12 +535,12 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9dc0fffe397aa17628160e16b89f704098bf3c9d74d5d369ebc239575936de5" +checksum = "1174cafd6c6d810711b4e00383037bdb458efc4fe3dbafafa16567e0320c54d8" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-sol-macro", "const-hex", "serde", @@ -521,7 +552,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -531,6 +562,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-trie" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5fd8fea044cc9a8c8a50bb6f28e31f0385d820f116c5b98f6f4e55d6e5590b" +dependencies = [ + "alloy-primitives 0.8.15", + "alloy-rlp", + "arrayvec 0.7.6", + "derive_more 1.0.0", + "nybbles", + "serde", + "smallvec", + "tracing", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -606,9 +653,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "ark-ff" @@ -751,6 +798,9 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +dependencies = [ + "serde", +] [[package]] name = "async-stream" @@ -844,9 +894,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", - "tower 0.5.1", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -867,7 +917,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.2", + "sync_wrapper", "tower-layer", "tower-service", "tracing", @@ -958,18 +1008,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" @@ -1120,18 +1170,18 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.20.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", @@ -1194,7 +1244,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.24", "serde", "serde_json", "thiserror 1.0.69", @@ -1202,9 +1252,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.2" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ "jobserver", "libc", @@ -1262,9 +1312,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1286,9 +1336,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -1296,9 +1346,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -1320,9 +1370,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" @@ -1332,15 +1382,15 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "console" -version = "0.15.8" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "unicode-width 0.1.14", - "windows-sys 0.52.0", + "once_cell", + "unicode-width", + "windows-sys 0.59.0", ] [[package]] @@ -1440,9 +1490,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1459,9 +1509,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" @@ -1848,15 +1898,18 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +version = "0.16.8" +source = "git+https://github.com/sp1-patches/signatures?branch=umadayal/secp256r1#49b6288468aff7f88f0be8cfd3719c7c20b2ba47" dependencies = [ + "anyhow", + "cfg-if", "der 0.7.9", "digest 0.10.7", "elliptic-curve", + "hex-literal", "rfc6979", "signature", + "sp1-lib 3.0.0", "spki 0.7.3", ] @@ -1947,9 +2000,9 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "enr" @@ -2049,9 +2102,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -2155,9 +2208,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "form_urlencoded" @@ -2385,7 +2438,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2488,9 +2541,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -2534,9 +2587,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", @@ -2555,9 +2608,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http", @@ -2810,9 +2863,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2828,7 +2881,7 @@ dependencies = [ "console", "number_prefix", "portable-atomic", - "unicode-width 0.2.0", + "unicode-width", "web-time", ] @@ -2929,10 +2982,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.73" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2983,7 +3037,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", - "ecdsa 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ecdsa 0.16.8", "elliptic-curve", "once_cell", "sha2 0.10.8", @@ -3033,9 +3087,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.167" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libgit2-sys" @@ -3147,9 +3201,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memuse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" [[package]] name = "mime" @@ -3165,9 +3219,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] @@ -3493,7 +3547,7 @@ checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-serde 0.3.6", "derive_more 1.0.0", @@ -3509,7 +3563,7 @@ checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" dependencies = [ "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rpc-types-eth 0.3.6", "alloy-serde 0.3.6", "cfg-if", @@ -3549,7 +3603,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ecdsa 0.16.8", "elliptic-curve", "primeorder", "sha2 0.10.8", @@ -3805,29 +3859,28 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", - "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.7.0" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 1.0.109", ] [[package]] @@ -3893,7 +3946,7 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" name = "patch-testing-program" version = "1.1.0" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "curve25519-dalek", "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", "ed25519-consensus", @@ -3943,12 +3996,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 2.0.8", "ucd-trie", ] @@ -4136,9 +4189,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", @@ -4166,12 +4219,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive 0.13.3", + "prost-derive 0.13.4", ] [[package]] @@ -4189,9 +4242,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools 0.13.0", @@ -4225,10 +4278,10 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "socket2", - "thiserror 2.0.3", + "thiserror 2.0.8", "tokio", "tracing", ] @@ -4243,11 +4296,11 @@ dependencies = [ "getrandom", "rand 0.8.5", "ring", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.3", + "thiserror 2.0.8", "tinyvec", "tracing", "web-time", @@ -4255,9 +4308,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -4399,9 +4452,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags", ] @@ -4507,7 +4560,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-util", @@ -4556,8 +4609,8 @@ dependencies = [ "alloy-chains", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.14", - "alloy-trie", + "alloy-primitives 0.8.15", + "alloy-trie 0.5.3", "auto_impl", "derive_more 1.0.0", "once_cell", @@ -4578,8 +4631,8 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.14", - "alloy-trie", + "alloy-primitives 0.8.15", + "alloy-trie 0.5.3", "bytes", "modular-bitfield", "reth-codecs-derive", @@ -4660,13 +4713,13 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "auto_impl", "crc", "dyn-clone", "once_cell", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "serde", "thiserror-no-std", ] @@ -4733,7 +4786,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "derive_more 1.0.0", "nybbles", @@ -4770,7 +4823,7 @@ name = "reth-network-peers" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "enr", "serde_with", @@ -4784,7 +4837,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "derive_more 1.0.0", "once_cell", "reth-chainspec", @@ -4813,7 +4866,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-rpc-types", "alloy-serde 0.3.6", @@ -4842,7 +4895,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-rpc-types-eth 0.3.6", "byteorder", @@ -4860,7 +4913,7 @@ name = "reth-prune-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "bytes", "derive_more 1.0.0", "modular-bitfield", @@ -4889,7 +4942,7 @@ name = "reth-stages-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "bytes", "modular-bitfield", "reth-codecs", @@ -4902,7 +4955,7 @@ name = "reth-static-file-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "derive_more 1.0.0", "serde", "strum", @@ -4961,9 +5014,9 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "alloy-consensus 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-trie", + "alloy-trie 0.5.3", "bytes", "derive_more 1.0.0", "itertools 0.13.0", @@ -5026,7 +5079,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "auto_impl", "bitflags", "bitvec", @@ -5043,8 +5096,7 @@ dependencies = [ [[package]] name = "rfc6979" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +source = "git+https://github.com/sp1-patches/signatures?branch=umadayal/secp256r1#49b6288468aff7f88f0be8cfd3719c7c20b2ba47" dependencies = [ "hmac", "subtle", @@ -5086,9 +5138,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.7" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81dc953b2244ddd5e7860cb0bb2a790494b898ef321d4aff8e260efab60cc88" +checksum = "41589aba99537475bf697f2118357cad1c31590c5a1b9f6d9fc4ad6d07503661" dependencies = [ "bytemuck", "byteorder", @@ -5168,7 +5220,7 @@ name = "rsp-client-executor" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "eyre", "futures", @@ -5201,7 +5253,7 @@ name = "rsp-mpt" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-rlp", "alloy-rpc-types", "anyhow", @@ -5251,7 +5303,7 @@ dependencies = [ name = "rsp-script" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "bincode", "clap", "rsp-client-executor", @@ -5315,9 +5367,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" dependencies = [ "rand 0.8.5", ] @@ -5343,27 +5395,27 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.24", ] [[package]] name = "rustix" -version = "0.38.41" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", "once_cell", @@ -5397,9 +5449,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" dependencies = [ "web-time", ] @@ -5465,9 +5517,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" +checksum = "94b13f8ea6177672c49d12ed964cca44836f59621981b04a3e26b87e675181de" dependencies = [ "sdd", ] @@ -5489,9 +5541,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdd" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" +checksum = "478f121bb72bbf63c52c93011ea1791dca40140dfe13f8336c4c5ac952c33aa9" [[package]] name = "sec1" @@ -5513,7 +5565,7 @@ version = "0.29.0" source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#c78195abe3c5bc11163d69588a5559ef21bdff31" dependencies = [ "cfg-if", - "ecdsa 0.16.9 (git+https://github.com/sp1-patches/signatures?branch=patch-ecdsa-v0.16.9)", + "ecdsa 0.16.9", "elliptic-curve", "k256", "rand 0.8.5", @@ -5562,9 +5614,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ "serde", ] @@ -5580,9 +5632,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] @@ -5608,9 +5660,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", @@ -5623,7 +5675,7 @@ version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "memchr", "ryu", @@ -5673,7 +5725,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -5798,9 +5850,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -5945,7 +5997,7 @@ version = "3.4.0" dependencies = [ "bincode", "ctrlc", - "prost 0.13.3", + "prost 0.13.4", "serde", "sp1-core-machine", "sp1-prover", @@ -5996,6 +6048,15 @@ dependencies = [ "snowbridge-amcl", ] +[[package]] +name = "sp1-lib" +version = "3.0.0" +source = "git+https://github.com/succinctlabs/sp1.git?rev=e443fc9ca17edbfffb8af8a6d3834659739f7705#e443fc9ca17edbfffb8af8a6d3834659739f7705" +dependencies = [ + "bincode", + "serde", +] + [[package]] name = "sp1-lib" version = "3.4.0" @@ -6188,7 +6249,7 @@ dependencies = [ name = "sp1-sdk" version = "3.4.0" dependencies = [ - "alloy-primitives 0.8.14", + "alloy-primitives 0.8.15", "alloy-signer", "alloy-signer-local", "alloy-sol-types", @@ -6207,7 +6268,7 @@ dependencies = [ "p3-baby-bear", "p3-field", "p3-fri", - "prost 0.13.3", + "prost 0.13.4", "reqwest", "reqwest-middleware", "serde", @@ -6497,9 +6558,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0523f59468a2696391f2a772edc089342aacd53c3caa2ac3264e598edf119b" +checksum = "219389c1ebe89f8333df8bdfb871f6631c552ff399c23cac02480b6088aad8f0" dependencies = [ "paste", "proc-macro2", @@ -6507,12 +6568,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -6670,11 +6725,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.8", ] [[package]] @@ -6690,9 +6745,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" dependencies = [ "proc-macro2", "quote", @@ -6740,9 +6795,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -6763,9 +6818,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -6792,9 +6847,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -6807,9 +6862,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -6836,12 +6891,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] @@ -6858,9 +6912,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -6881,7 +6935,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] @@ -6892,7 +6946,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.6.20", ] @@ -6917,7 +6971,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.3", + "prost 0.13.4", "rustls-native-certs", "rustls-pemfile", "socket2", @@ -6952,14 +7006,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 0.1.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -7083,13 +7137,13 @@ dependencies = [ "http", "http-body-util", "hyper", - "prost 0.13.3", + "prost 0.13.4", "reqwest", "serde", "serde_json", "thiserror 1.0.69", "tokio", - "tower 0.5.1", + "tower 0.5.2", "url", ] @@ -7135,12 +7189,6 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - [[package]] name = "unicode-width" version = "0.2.0" @@ -7254,9 +7302,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.96" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -7265,13 +7313,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.96" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn 2.0.90", @@ -7280,9 +7327,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.46" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", @@ -7293,9 +7340,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.96" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7303,9 +7350,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.96" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", @@ -7316,9 +7363,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.96" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wasm-streams" @@ -7335,9 +7382,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.73" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" dependencies = [ "js-sys", "wasm-bindgen", @@ -7755,11 +7802,6 @@ dependencies = [ "subtle", ] -[[patch.unused]] -name = "ecdsa" -version = "0.16.8" -source = "git+https://github.com/sp1-patches/signatures?branch=umadayal/secp256r1#49b6288468aff7f88f0be8cfd3719c7c20b2ba47" - [[patch.unused]] name = "sha2" version = "0.10.6" diff --git a/examples/elf/riscv32im-succinct-zkvm-elf b/examples/elf/riscv32im-succinct-zkvm-elf index dbd4cfab994c920e538d9c66156ee5d554547c41..e2873d98e003dae4d5046b5327d9bb36902bf115 100755 GIT binary patch literal 1242656 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ξ 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 h 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%0Dk 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 z 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%0ABx96Mn@P2TCx zuF`VHo<-jeB#dU=jKBD-mOH?=$DV~J9`e4=4lswJkv}HC8EAbVkUNmoa~qiFW6v5n zt9qO{7QQ<)N8mX4v-^G~@ErW@{Ri!EHFZQkOg_1=Hu&@N4&`q<$H><_Oz!L&^<4Ib zaq}E%j6*Y7Y+Y;+PX;9ZCBJqp^#0+=%CK3b-#4a_8jeFM~r!F&k@$uu% zJwK)%_^;8a=%8Mn-CJ|qz4yZ7&Q|I;_g?s#6Zs9gm~2apSg8k0oo=dWy40-iNou~A z)=!OGwf-=5WS1D;`j=o^l-9q7=X*RQMf3vSiA!+Oi_w#RuTY z`%Q5R8d$TPy+z0xy!{K`RO<&0*xT0N*YB5gKO*a8Z}W%^z2&Ag(MQn|8g(|^sOPQi znv;GOnV$)yR<0&59J#mWBIl9$@lcZk}`oikN*B|-7PZfVprB)^T$oPt$lji9~ zmtuzoFI^^lP~z>~*rT~D|NAU5Rb(!5I&O*lMeZWIcVnaGvd50d^WE5})IO;jlHop| zGY?bt9Ao)BEww?TtSRb7lTr2-QT7&&(Ux(bf5(`sJFKzMXwNjd?a4;tEWOb^tJuJP zqsiYVU=K|8^XE!D0(tTy#qzqBsb2Ri`m)Pft8vDR5cv+`@5Bt;uD>QorIf&&9>DV#kt5vy~ zf9I6lR;aKKSbA!fya#?)ShecC4V}8ZY>QrcxAdJ;A>YlHF-&`d;QoNTGs*krS^h5j zrmPS7uGGh7)kgwYd+QQdQ}0G}qYu#3u=l>dJ23xJlvrQ$z8n(4zM&@i%U32HffFgJj**{rPwke#fNz zo4q#UdF#I_zPeR+q7BOb9(?{){Ead`FnUStNr9id zX%y*!~PG}pH_Kfv$mBn z#V<&oB|N;tUbaRjCo}eaSa;O#8f|l+yV40HL-v8y`evQB10mf}zpFJ>lSW%WZ8q)0 zZrgd}>+B-NW0mF*7n8G&7y_GA-L6@7m1f3+_a&4a!?+&awZ9yKA#1STF-^n%K<4)Z zoO^bb`D~c;N=3h45WkhvWd>6}|JZcb=@9K_$kT2$Wh z^!M|tT9dX_V6U<*5D)I+LrIWaBLF!U(NWc3zAM(PcU_44||}+=r(lwD(3F-s}oy!D593>>YiE#o>baMWO-g-cV3tR(8LN&AdpZ`4er4O&C zKgNDJ*B(81FfMSO_h#t2Kn!~tUW1p8gXX7*{P{lyXD21U|80!?etrvlRq|h#WMQHee2tdhKU6YW z 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

@BYw4#C8B%V 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 Date: Fri, 20 Dec 2024 18:24:08 -0800 Subject: [PATCH 04/13] docs: add conventional commit guidelines to CONTRIBUTING.md (#1854) --- CONTRIBUTING.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 85557b635..c2c99353f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -107,6 +107,25 @@ changes that are split across multiple commits. That said, if you have a number of commits that are "checkpoints" and don't represent a single logical change, please squash those together. +**Conventional Commit Messages and PR Titles:** +To ensure consistency and aid in automated tooling (such as changelog generation), please follow the +[Conventional Commits](https://www.conventionalcommits.org/) style for commit messages and PR titles. Prefix your commit +messages and PR titles with one of the following types: + +- **feat:** for new features +- **fix:** for bug fixes +- **docs:** for documentation-only changes +- **refactor:** for code changes that neither fix a bug nor add a feature +- **chore:** for changes to the build process or auxiliary tools +- **test:** for adding or updating tests + +For example: +- `docs: Update README with corrected links` +- `fix: Resolve race condition in event loop` + +If your pull request title does not contain a valid prefix, automated checks may fail. You can amend your commit and +force-push to correct this before merging. + #### Opening the pull request From within GitHub, opening a new pull request will present you with a template that should be filled out. Please try @@ -162,4 +181,4 @@ _Adapted from the [Reth contributing guide](https://raw.githubusercontent.com/pa [mcve]: https://stackoverflow.com/help/mcve -[hiding-a-comment]: https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment \ No newline at end of file +[hiding-a-comment]: https://help.github.com/articles/managing-disruptive-comments/#hiding-a-comment From bfb0c6d8e045b5f40422b9c06cb0e9ee21b3c19c Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Sun, 22 Dec 2024 15:40:55 -0800 Subject: [PATCH 05/13] fix(ci): remove docker login (#1887) --- .github/actions/setup/action.yml | 6 +- Cargo.lock | 751 ++++++++++++++++--------------- crates/sdk/Cargo.toml | 2 +- crates/sdk/src/network/prover.rs | 2 +- 4 files changed, 394 insertions(+), 367 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index d928b91df..e9c7ba7f2 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -1,6 +1,7 @@ # Note: this is only compatible with Linux runners. -name: Test setup +name: Setup +description: "Setup the environment for the CI" inputs: pull_token: description: "Token to use for private repo access" @@ -101,6 +102,3 @@ runs: else echo "pkg-config and libssl-dev are already installed." fi - - - name: Set up Docker - uses: docker/setup-buildx-action@v3 diff --git a/Cargo.lock b/Cargo.lock index 034824d0b..8bcfa7506 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,9 +105,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" @@ -252,14 +252,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6259a506ab13e1d658796c31e6e39d2e2ee89243bcc505ddc613b35732e0a430" dependencies = [ "alloy-rlp", - "bytes 1.8.0", + "bytes 1.9.0", "cfg-if", "const-hex", "derive_more", "foldhash", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "hex-literal", - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "k256", "keccak-asm", @@ -267,7 +267,7 @@ dependencies = [ "proptest", "rand 0.8.5", "ruint", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "serde", "sha3", "tiny-keccak", @@ -275,24 +275,24 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "alloy-rlp-derive", "arrayvec", - "bytes 1.8.0", + "bytes 1.9.0", ] [[package]] name = "alloy-rlp-derive" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" +checksum = "5a833d97bf8a5f0f878daf2c8451fff7de7f9de38baa5a45d936ec718d81255a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -378,7 +378,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -390,11 +390,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity", "tiny-keccak", ] @@ -410,7 +410,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn-solidity", ] @@ -534,9 +534,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" dependencies = [ "backtrace", ] @@ -721,7 +721,7 @@ checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.2.0", + "fastrand 2.3.0", "futures-lite 2.5.0", "slab", ] @@ -817,7 +817,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -847,7 +847,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -877,7 +877,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -888,15 +888,15 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -912,9 +912,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "tokio", - "tower 0.5.1", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -927,15 +927,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper", "tower-layer", "tower-service", "tracing", @@ -1033,7 +1033,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1159,22 +1159,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" +checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1191,9 +1191,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" dependencies = [ "serde", ] @@ -1224,9 +1224,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -1239,7 +1239,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.24", "serde", "serde_json", "thiserror 1.0.69", @@ -1253,9 +1253,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.0" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aeb932158bd710538c73702db6945cb68a8fb08c519e6e12706b94263b36db8" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ "jobserver", "libc", @@ -1285,9 +1285,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1344,9 +1344,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -1354,9 +1354,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -1373,14 +1373,14 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" @@ -1399,15 +1399,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" dependencies = [ - "encode_unicode 0.3.6", - "lazy_static", + "encode_unicode", "libc", - "unicode-width 0.1.14", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] @@ -1468,6 +1468,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1476,9 +1486,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1527,18 +1537,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1555,9 +1565,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" @@ -1838,7 +1848,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "unicode-xid", ] @@ -1919,7 +1929,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1980,12 +1990,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encode_unicode" version = "1.0.0" @@ -2019,7 +2023,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2030,12 +2034,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2057,9 +2061,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ "event-listener 5.3.1", "pin-project-lite", @@ -2086,9 +2090,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -2098,7 +2102,18 @@ checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.8.0", + "bytes 1.9.0", +] + +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes 1.9.0", ] [[package]] @@ -2178,9 +2193,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "foreign-types" @@ -2281,7 +2296,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand 2.2.0", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -2296,7 +2311,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2365,9 +2380,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" dependencies = [ "serde", "typenum", @@ -2391,8 +2406,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -2499,17 +2516,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2568,9 +2585,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -2646,18 +2663,18 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "itoa", ] [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "fnv", "itoa", ] @@ -2668,8 +2685,8 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.8.0", - "http 1.1.0", + "bytes 1.9.0", + "http 1.2.0", ] [[package]] @@ -2678,9 +2695,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "pin-project-lite", ] @@ -2735,15 +2752,15 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-util", "h2", - "http 1.1.0", + "http 1.2.0", "http-body", "httparse", "httpdate", @@ -2756,20 +2773,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.2.0", "hyper", "hyper-util", - "rustls 0.23.16", + "rustls 0.23.20", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", ] [[package]] @@ -2791,7 +2808,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "http-body-util", "hyper", "hyper-util", @@ -2807,10 +2824,10 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body", "hyper", "pin-project-lite", @@ -2958,7 +2975,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2999,13 +3016,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -3026,12 +3043,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] @@ -3138,9 +3155,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jobserver" @@ -3153,10 +3170,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -3227,9 +3245,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.162" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libgit2-sys" @@ -3245,9 +3263,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -3299,9 +3317,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -3328,7 +3346,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -3354,9 +3372,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memuse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" [[package]] name = "mime" @@ -3382,20 +3400,19 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -3419,7 +3436,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -3686,7 +3703,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3734,7 +3751,7 @@ dependencies = [ [[package]] name = "p3-air" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -3743,7 +3760,7 @@ dependencies = [ [[package]] name = "p3-baby-bear" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "num-bigint 0.4.6", "p3-field", @@ -3757,7 +3774,7 @@ dependencies = [ [[package]] name = "p3-bn254-fr" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "ff 0.13.0", "num-bigint 0.4.6", @@ -3771,7 +3788,7 @@ dependencies = [ [[package]] name = "p3-challenger" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -3784,7 +3801,7 @@ dependencies = [ [[package]] name = "p3-commit" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-challenger", @@ -3797,7 +3814,7 @@ dependencies = [ [[package]] name = "p3-dft" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -3809,7 +3826,7 @@ dependencies = [ [[package]] name = "p3-field" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", @@ -3822,7 +3839,7 @@ dependencies = [ [[package]] name = "p3-fri" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-challenger", @@ -3840,7 +3857,7 @@ dependencies = [ [[package]] name = "p3-interpolation" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-field", "p3-matrix", @@ -3850,7 +3867,7 @@ dependencies = [ [[package]] name = "p3-keccak-air" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "p3-air", "p3-field", @@ -3863,7 +3880,7 @@ dependencies = [ [[package]] name = "p3-matrix" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-field", @@ -3877,7 +3894,7 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "rayon", ] @@ -3885,7 +3902,7 @@ dependencies = [ [[package]] name = "p3-mds" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-dft", @@ -3899,7 +3916,7 @@ dependencies = [ [[package]] name = "p3-merkle-tree" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-commit", @@ -3915,7 +3932,7 @@ dependencies = [ [[package]] name = "p3-poseidon2" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "gcd", "p3-field", @@ -3928,7 +3945,7 @@ dependencies = [ [[package]] name = "p3-symmetric" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-field", @@ -3938,7 +3955,7 @@ dependencies = [ [[package]] name = "p3-uni-stark" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "itertools 0.12.1", "p3-air", @@ -3956,7 +3973,7 @@ dependencies = [ [[package]] name = "p3-util" version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#d33eaa69b1ef96ad678ebd96ae8e75aef3508b2a" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#bba88386261c3eaceb7f922b99bea56c1d6c6c58" dependencies = [ "serde", ] @@ -4078,12 +4095,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 2.0.8", "ucd-trie", ] @@ -4094,7 +4111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.6.0", + "indexmap 2.7.0", ] [[package]] @@ -4114,7 +4131,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4136,7 +4153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.2.0", + "fastrand 2.3.0", "futures-io", ] @@ -4218,9 +4235,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -4244,7 +4261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4254,7 +4271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" dependencies = [ "csv", - "encode_unicode 1.0.0", + "encode_unicode", "is-terminal", "lazy_static", "term", @@ -4319,7 +4336,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4330,9 +4347,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -4359,21 +4376,20 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "prost-derive", ] [[package]] name = "prost-build" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" +checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ - "bytes 1.8.0", "heck", "itertools 0.13.0", "log", @@ -4384,28 +4400,28 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.87", + "syn 2.0.90", "tempfile", ] [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "prost-types" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ "prost", ] @@ -4418,44 +4434,47 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", - "rustls 0.23.16", + "rustc-hash 2.1.0", + "rustls 0.23.20", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.8", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", + "getrandom 0.2.15", "rand 0.8.5", "ring 0.17.8", - "rustc-hash 2.0.0", - "rustls 0.23.16", + "rustc-hash 2.1.0", + "rustls 0.23.20", + "rustls-pki-types", "slab", - "thiserror 1.0.69", + "thiserror 2.0.8", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -4592,9 +4611,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags", ] @@ -4661,12 +4680,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", - "bytes 1.8.0", + "bytes 1.9.0", "encoding_rs", "futures-core", "futures-util", "h2", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -4682,13 +4701,13 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.16", + "rustls 0.23.20", "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -4700,7 +4719,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", "windows-registry", ] @@ -4712,7 +4731,7 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", + "http 1.2.0", "reqwest", "serde", "thiserror 1.0.69", @@ -4765,7 +4784,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "rustc-hex", ] @@ -4794,16 +4813,18 @@ dependencies = [ [[package]] name = "ruint" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", - "bytes 1.8.0", - "fastrlp", + "bytes 1.9.0", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint 0.4.6", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -4836,9 +4857,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc-hex" @@ -4870,20 +4891,20 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.24", ] [[package]] name = "rustix" -version = "0.38.40" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4901,9 +4922,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", "once_cell", @@ -4916,15 +4937,14 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.1.0", ] [[package]] @@ -4938,9 +4958,12 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -4988,9 +5011,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ "cfg-if", "derive_more", @@ -5000,30 +5023,30 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.5" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "scc" -version = "2.2.4" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" +checksum = "94b13f8ea6177672c49d12ed964cca44836f59621981b04a3e26b87e675181de" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -5051,7 +5074,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5066,9 +5089,9 @@ dependencies = [ [[package]] name = "sdd" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" +checksum = "478f121bb72bbf63c52c93011ea1791dca40140dfe13f8336c4c5ac952c33aa9" [[package]] name = "sec1" @@ -5091,7 +5114,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +dependencies = [ + "bitflags", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -5099,9 +5135,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ "core-foundation-sys", "libc", @@ -5122,14 +5158,14 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.2", + "semver-parser 0.10.3", ] [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ "serde", ] @@ -5142,38 +5178,38 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] [[package]] name = "serde" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -5258,7 +5294,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5438,9 +5474,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -5533,7 +5569,7 @@ dependencies = [ "cfg-if", "criterion", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -5600,7 +5636,7 @@ dependencies = [ "cfg-if", "dashu", "elliptic-curve", - "generic-array 1.1.0", + "generic-array 1.1.1", "itertools 0.13.0", "k256", "num", @@ -5637,7 +5673,7 @@ dependencies = [ "sp1-prover", "sp1-sdk", "sp1-stark", - "time 0.3.36", + "time 0.3.37", "tokio", ] @@ -5650,9 +5686,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8744af050832df5ca44fcd63979a83b93ca3010b2d5a5ce2a2b91f7438065c" +version = "3.4.0" dependencies = [ "bincode", "serde", @@ -5661,6 +5695,8 @@ dependencies = [ [[package]] name = "sp1-lib" version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5729da1b05d56c01457e5ecabdc77f1cc941df23f2921163a2f325aec22428" dependencies = [ "bincode", "serde", @@ -5679,7 +5715,7 @@ dependencies = [ "sp1-sdk", "sp1-stark", "test-artifacts", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -6116,7 +6152,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6133,7 +6169,7 @@ dependencies = [ "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.2.1", + "sp1-lib 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -6178,9 +6214,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -6196,20 +6232,14 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -6222,7 +6252,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6247,7 +6277,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -6280,7 +6310,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand 2.2.0", + "fastrand 2.3.0", "once_cell", "rustix", "windows-sys 0.59.0", @@ -6341,7 +6371,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6352,7 +6382,7 @@ checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6411,9 +6441,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -6423,7 +6453,7 @@ dependencies = [ "powerfmt", "serde", "time-core", - "time-macros 0.2.18", + "time-macros 0.2.19", ] [[package]] @@ -6444,9 +6474,9 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -6496,9 +6526,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -6511,12 +6541,12 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", - "bytes 1.8.0", + "bytes 1.9.0", "libc", "mio", "parking_lot", @@ -6535,7 +6565,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6550,20 +6580,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.16", - "rustls-pki-types", + "rustls 0.23.20", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -6577,7 +6606,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", - "bytes 1.8.0", + "bytes 1.9.0", "futures-core", "tokio", "tokio-stream", @@ -6585,11 +6614,11 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ - "bytes 1.8.0", + "bytes 1.9.0", "futures-core", "futures-sink", "pin-project-lite", @@ -6608,7 +6637,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] @@ -6619,7 +6648,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.6.20", ] @@ -6634,9 +6663,9 @@ dependencies = [ "async-trait", "axum", "base64 0.22.1", - "bytes 1.8.0", + "bytes 1.9.0", "h2", - "http 1.1.0", + "http 1.2.0", "http-body", "http-body-util", "hyper", @@ -6679,14 +6708,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 0.1.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -6707,9 +6736,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -6725,26 +6754,26 @@ checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", "thiserror 1.0.69", - "time 0.3.36", + "time 0.3.37", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -6786,9 +6815,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -6816,7 +6845,7 @@ checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.8.0", + "bytes 1.9.0", "http 0.2.12", "httparse", "log", @@ -6845,7 +6874,7 @@ dependencies = [ "async-trait", "axum", "futures", - "http 1.1.0", + "http 1.2.0", "http-body-util", "hyper", "prost", @@ -6854,7 +6883,7 @@ dependencies = [ "serde_json", "thiserror 1.0.69", "tokio", - "tower 0.5.1", + "tower 0.5.2", "url", ] @@ -6896,9 +6925,9 @@ checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-linebreak" @@ -6948,9 +6977,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -7025,7 +7054,7 @@ dependencies = [ "cfg-if", "git2", "rustversion", - "time 0.3.36", + "time 0.3.37", ] [[package]] @@ -7082,9 +7111,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -7093,36 +7122,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7130,22 +7159,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wasm-streams" @@ -7162,9 +7191,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" dependencies = [ "js-sys", "wasm-bindgen", @@ -7201,9 +7230,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -7483,9 +7512,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -7495,13 +7524,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] @@ -7523,27 +7552,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] @@ -7564,7 +7593,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7586,7 +7615,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index e1156d7ce..d8e8f7e14 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -56,7 +56,7 @@ backoff = { version = "0.4", features = ["tokio"], optional = true } [dev-dependencies] test-artifacts = { workspace = true } -tokio-test = { version = "0.4"} +tokio-test = { version = "0.4" } [features] default = ["cuda", "network"] diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 2c97ef45b..7208e65fe 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -145,7 +145,7 @@ impl NetworkProver { /// # Example /// ```rust,no_run /// use sp1_sdk::{ProverClient, network::B256}; - /// + /// /// tokio_test::block_on(async { /// let request_id = B256::from_slice(&vec![1u8; 32]); /// let client = ProverClient::builder().network().build(); From 3f539fbee7da25c0316ed25ca00ac0cd2947cf62 Mon Sep 17 00:00:00 2001 From: N Date: Tue, 7 Jan 2025 15:35:57 -0800 Subject: [PATCH 06/13] chore: migrate book from dev repo (#1915) --- book/docs/developers/common-issues.md | 4 +- book/docs/developers/rv32im-deviations.md | 2 + book/docs/developers/rv32im-specification.md | 8 -- book/docs/generating-proofs/advanced.mdx | 2 +- book/docs/generating-proofs/proof-types.md | 2 +- .../prover-network/versions.md | 11 +-- book/docs/generating-proofs/setup.md | 2 +- book/docs/getting-started/install.md | 2 +- .../verification/off-chain-verification.md | 4 +- .../onchain/contract-addresses.md | 58 +++++++------- book/docs/writing-programs/compiling.mdx | 2 +- book/docs/writing-programs/cycle-tracking.mdx | 4 +- book/docs/writing-programs/patched-crates.md | 75 +++++------------ book/docs/writing-programs/setup.md | 2 +- book/sidebars.ts | 80 +++++++++---------- book/verification/onchain/getting-started.md | 2 +- .../version-3.4.0/developers/common-issues.md | 2 +- .../generating-proofs/advanced.mdx | 2 +- .../prover-network/versions.md | 4 +- .../writing-programs/compiling.mdx | 2 +- .../writing-programs/cycle-tracking.mdx | 2 +- .../version-3.4.0/writing-programs/setup.md | 2 +- 22 files changed, 115 insertions(+), 159 deletions(-) delete mode 100644 book/docs/developers/rv32im-specification.md diff --git a/book/docs/developers/common-issues.md b/book/docs/developers/common-issues.md index 5b06ec3b4..96a91eee5 100644 --- a/book/docs/developers/common-issues.md +++ b/book/docs/developers/common-issues.md @@ -8,7 +8,7 @@ If you are using a library that has an MSRV specified, you may encounter an erro package `alloy v0.1.1 cannot be built because it requires rustc 1.76 or newer, while the currently active rustc version is 1.75.0-nightly` ``` -This is due to the fact that your current Succinct Rust toolchain has been built with a lower version than the MSRV of the crates you are using. +This is due to the fact that your current Succinct Rust toolchain has been built with a lower version than the MSRV of the crates you are using. You can check the version of your local Succinct Rust toolchain by running `cargo +succinct --version`. The latest release of the Succinct Rust toolchain is **1.81**. You can update to the latest version by running [`sp1up`](../getting-started/install.md). @@ -51,7 +51,7 @@ This is likely due to two different versions of `alloy_sol_types` being used. To ```toml [dependencies] -sp1-sdk = { version = "3.0.0", default-features = false } +sp1-sdk = { version = "4.0.0-rc.8", default-features = false } ``` This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. diff --git a/book/docs/developers/rv32im-deviations.md b/book/docs/developers/rv32im-deviations.md index e28f29445..9456c08aa 100644 --- a/book/docs/developers/rv32im-deviations.md +++ b/book/docs/developers/rv32im-deviations.md @@ -15,6 +15,8 @@ deviations are outlined below: - LW/SW memory access must be word aligned. - LH/LHU/SH memory access must be half-word aligned. - The ECALL instruction is used for system calls and precompiles. Only valid syscall IDs should be called, and only using the specific convention of loading the ID into register T0 and arguments into registers A0 and A1. If the arguments are addresses, they must be word-aligned. Failure to follow this convention can result in undefined behavior. Correct usages can be found in the `sp1_zkvm` and `sp1_lib` crates. +- The instructions FENCE, WFI, MRET, and CSR related instructions will be categorized as not implemented, + and hence not allowed by the SP1 zkvm. ## Security Considerations diff --git a/book/docs/developers/rv32im-specification.md b/book/docs/developers/rv32im-specification.md deleted file mode 100644 index 84e8aa758..000000000 --- a/book/docs/developers/rv32im-specification.md +++ /dev/null @@ -1,8 +0,0 @@ -# RV32IM Specification - -SP1 implements the RISC-V RV32IM instruction set with some implementation details that make it more suitable for proving. - -- LW/SW memory access must be word aligned. -- LH/LHU/SH memory access must be half-word aligned. -- Memory access is only valid for addresses `0x20, 0x78000000`. Accessing addresses outside of this range will result in undefined behavior. The global heap allocator in `sp1_zkvm` will panic if memory exceeds this range. -- The ECALL instruction is used for system calls and precompiles. Only valid syscall IDs should be called, and only using the specific convention of loading the ID into register T0 and arguments into registers A0 and A1. If the arguments are addresses, they must be word-aligned. Failure to follow this convention can result in undefined behavior. Correct usages can be found in the `sp1_zkvm` and `sp1_lib` crates. diff --git a/book/docs/generating-proofs/advanced.mdx b/book/docs/generating-proofs/advanced.mdx index da9e3548a..50ac3df8a 100644 --- a/book/docs/generating-proofs/advanced.mdx +++ b/book/docs/generating-proofs/advanced.mdx @@ -47,7 +47,7 @@ RUSTFLAGS='-C target-cpu=native' cargo run --release Currently there is support for AVX512 and NEON SIMD instructions. For NEON, you must also enable the `sp1-sdk` feature `neon` in your script crate's `Cargo.toml` file. ```toml -sp1-sdk = { version = "3.0.0", features = ["neon"] } +sp1-sdk = { version = "...", features = ["neon"] } ``` ## Performance diff --git a/book/docs/generating-proofs/proof-types.md b/book/docs/generating-proofs/proof-types.md index dfdae364d..62bc4ce90 100644 --- a/book/docs/generating-proofs/proof-types.md +++ b/book/docs/generating-proofs/proof-types.md @@ -34,7 +34,7 @@ The trusted setup for the Groth16 circuit keys uses the [Aztec Ignition ceremony ```rust,noplayground let client = ProverClient::from_env(); -client.prove(&pk, stdin).groth16().run().unwrap(); +client.prove(&pk, &stdin).groth16().run().unwrap(); ``` ## PLONK diff --git a/book/docs/generating-proofs/prover-network/versions.md b/book/docs/generating-proofs/prover-network/versions.md index 3060a610a..e69af7b9b 100644 --- a/book/docs/generating-proofs/prover-network/versions.md +++ b/book/docs/generating-proofs/prover-network/versions.md @@ -2,9 +2,10 @@ The prover network currently only supports specific versions of SP1: -| Version | Description | -| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| v3.X.X | V3 Release. Latest performant & production ready version. | +| Version | Description | +| ------- | ---------------------------------------------------------------- | +| v4.X.X | V4 Release. Latest performant & production ready version. | +| v3.X.X | V3 Release. Previous circuit version deprecated in January 2025. | `X` denotes that any minor and patch version is supported (e.g. `v2.1.0`, `v2.1.1`). @@ -16,14 +17,14 @@ You must switch to a supported version before submitting a proof. To do so, repl ```toml [dependencies] -sp1-zkvm = "3.0.0" +sp1-zkvm = "4.0.0-rc.8" ``` replace the `sp1-sdk` version in your script's `Cargo.toml`: ```toml [dependencies] -sp1-sdk = "3.0.0" +sp1-sdk = "4.0.0-rc.8" ``` Re-build your program and script, and then try again. diff --git a/book/docs/generating-proofs/setup.md b/book/docs/generating-proofs/setup.md index 52fc7f66f..9055d15a8 100644 --- a/book/docs/generating-proofs/setup.md +++ b/book/docs/generating-proofs/setup.md @@ -32,7 +32,7 @@ name = "script" edition = "2021" [dependencies] -sp1-sdk = "3.0.0" +sp1-sdk = "4.0.0-rc.8" ``` The `sp1-sdk` crate includes the necessary utilities to generate, save, and verify proofs. diff --git a/book/docs/getting-started/install.md b/book/docs/getting-started/install.md index e58b9a624..7c1a4ae85 100644 --- a/book/docs/getting-started/install.md +++ b/book/docs/getting-started/install.md @@ -91,7 +91,7 @@ git clone git@github.com:succinctlabs/sp1.git cd sp1 cd crates cd cli -cargo install --locked --path . +cargo install --locked --force --path . cd ~ cargo prove build-toolchain ``` diff --git a/book/docs/verification/off-chain-verification.md b/book/docs/verification/off-chain-verification.md index 1b8fd1b9a..1738301ab 100644 --- a/book/docs/verification/off-chain-verification.md +++ b/book/docs/verification/off-chain-verification.md @@ -16,7 +16,7 @@ the [Groth16 Example](https://github.com/succinctlabs/sp1/tree/main/examples/gro Import the following dependency in your `Cargo.toml`: ```toml -sp1-verifier = {version = "3.0.0", default-features = false} +sp1-verifier = {version = "4.0.0-rc.8", default-features = false} ``` ### Usage @@ -40,7 +40,7 @@ Here, the proof, public inputs, and vkey hash are read from stdin. See the follo -> Note that the SP1 SDK itself is *not* `no_std` compatible. +> Note that the SP1 SDK itself is _not_ `no_std` compatible. ## Wasm Verification diff --git a/book/docs/verification/onchain/contract-addresses.md b/book/docs/verification/onchain/contract-addresses.md index 6986d7cee..fc5136c2d 100644 --- a/book/docs/verification/onchain/contract-addresses.md +++ b/book/docs/verification/onchain/contract-addresses.md @@ -1,6 +1,6 @@ # Contract Addresses -> The current officially supported version of SP1 is **V3.0.0**. +> The current officially supported version of SP1 is **V4.0.0**. > > All previous versions are deprecated and may not work as expected on the gateways. @@ -15,35 +15,35 @@ must use the correct verifier gateway depending on if you are verifying a Groth1 ### Groth16 -| Chain ID | Chain | Gateway | -| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | Mainnet | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 11155111 | Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 17000 | Holesky | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://holesky.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 42161 | Arbitrum One | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 421614 | Arbitrum Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 8453 | Base | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 84532 | Base Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 10 | Optimism | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://optimistic.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 11155420 | Optimism Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia-optimism.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 534351 | Scroll Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | -| 534352 | Scroll | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| Chain ID | Chain | Gateway | +| -------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155111 | Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 17000 | Holesky | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://holesky.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 42161 | Arbitrum One | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 421614 | Arbitrum Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.arbiscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 8453 | Base | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 84532 | Base Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.basescan.org/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 10 | Optimism | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://optimistic.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 11155420 | Optimism Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia-optimism.etherscan.io/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534351 | Scroll Sepolia | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://sepolia.scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | +| 534352 | Scroll | [0x397A5f7f3dBd538f23DE225B51f532c34448dA9B](https://scrollscan.com/address/0x397A5f7f3dBd538f23DE225B51f532c34448dA9B) | ### PLONK -| Chain ID | Chain | Gateway | -| -------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | -| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | -| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| Chain ID | Chain | Gateway | +| -------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Mainnet | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 11155111 | Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 17000 | Holesky | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://holesky.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 42161 | Arbitrum One | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 421614 | Arbitrum Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.arbiscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 8453 | Base | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 84532 | Base Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.basescan.org/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 10 | Optimism | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://optimistic.etherscan.io/address/0x3b6041173b80e77f038f3f2c0f9744f04837185e) | +| 11155420 | Optimism Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia-optimism.etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534351 | Scroll Sepolia | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://sepolia.scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | +| 534352 | Scroll | [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://scrollscan.com/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e) | The most up-to-date reference on each chain can be found in the [deployments](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/deployments) @@ -70,9 +70,9 @@ verifier contract by following the instructions in the Since both the `SP1VerifierGateway` and each `SP1Verifier` implement the [ISP1Verifier interface](https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/ISP1Verifier.sol), you can choose to either: -* Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the +- Deploy the `SP1VerifierGateway` and add `SP1Verifier` contracts to it. Then point to the `SP1VerifierGateway` address in your contracts. -* Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` +- Deploy just the `SP1Verifier` contract that you want to use. Then point to the `SP1Verifier` address in your contracts. diff --git a/book/docs/writing-programs/compiling.mdx b/book/docs/writing-programs/compiling.mdx index 0bc50d9fd..5d6d9ac6a 100644 --- a/book/docs/writing-programs/compiling.mdx +++ b/book/docs/writing-programs/compiling.mdx @@ -61,7 +61,7 @@ The path passed in to `build_program` should point to the directory containing t ```toml [build-dependencies] -sp1-build = "3.0.0" +sp1-build = "4.0.0-rc.8" ``` You will see output like the following from the build script if the program has changed, indicating that the program was rebuilt: diff --git a/book/docs/writing-programs/cycle-tracking.mdx b/book/docs/writing-programs/cycle-tracking.mdx index f38f50d74..f0808d33d 100644 --- a/book/docs/writing-programs/cycle-tracking.mdx +++ b/book/docs/writing-programs/cycle-tracking.mdx @@ -14,7 +14,7 @@ Note that to use the macro, you must add the `sp1-derive` crate to your dependen ```toml [dependencies] -sp1-derive = "3.0.0" +sp1-derive = "4.0.0-rc.8" ``` In the script for proof generation, setup the logger with `utils::setup_logger()` and run the script with `RUST_LOG=info cargo run --release`. You should see the following output: @@ -79,7 +79,7 @@ Once you have your script it should look like the following: As well you must enable the profiling feature on the SDK: ```toml - sp1-sdk = { version = "3.0.0", features = ["profiling"] } + sp1-sdk = { version = "4.0.0-rc.8", features = ["profiling"] } ``` The `TRACE_FILE` env var tells the executor where to save the profile, and the `TRACE_SAMPLE_RATE` env var tells the executor how often to sample the program. diff --git a/book/docs/writing-programs/patched-crates.md b/book/docs/writing-programs/patched-crates.md index 0ebda2169..2feb3a5e5 100644 --- a/book/docs/writing-programs/patched-crates.md +++ b/book/docs/writing-programs/patched-crates.md @@ -9,8 +9,8 @@ Under the hood, we use [precompiles](./precompiles) to achieve tremendous perfor | Crate Name | Repository | Notes | Versions | |---------------------|---------------------------------------------------------------------------------------|------------------|-----------------------| -| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | 0.9.8, 0.10.6, 0.10.8 | -| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | 0.9.8, 0.10.6, 0.10.8 | +| sha2 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | sha256 | 0.10.6, 0.10.8 | +| sha3 | [sp1-patches/RustCrypto-hashes](https://github.com/sp1-patches/RustCrypto-hashes) | keccak256 | 0.10.8 | | bigint | [sp1-patches/RustCrypto-bigint](https://github.com/sp1-patches/RustCrypto-bigint) | bigint | 0.5.5 | | tiny-keccak | [sp1-patches/tiny-keccak](https://github.com/sp1-patches/tiny-keccak) | keccak256 | 2.0.2 | | curve25519-dalek | [sp1-patches/curve25519-dalek](https://github.com/sp1-patches/curve25519-dalek) | ed25519 verify | 4.1.3, 3.2.0 | @@ -28,34 +28,18 @@ To use the patched libraries, you can use corresponding patch entries in your pr ```toml [patch.crates-io] -sha2-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.9.8-patch-v1" } -sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.6-patch-v1" } -sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "sha2-v0.10.8-patch-v1" } -sha3-v0-9-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.9.8-patch-v1" } -sha3-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.6-patch-v1" } -sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "sha3-v0.10.8-patch-v1" } -crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "crypto_bigint-v0.5.5-patch-v1" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "tiny_keccak-v2.0.2-patch-v1" } -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } -curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } -ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "substrate_bn-v0.6.0-patch-v1" } -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "bls12_381-v0.8.0-patch-v1" } - -# For sp1 versions >= 3.4.0 -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-v4.1.3-v3.4.0" } -# For sp1 versions < 3.4.0 -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } -curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } -ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } -# For sp1 versions >= 3.3.0 -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v3.3.0" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v3.3.0" } -# For sp1 versions < 3.3.0 -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "ecdsa-v0.16.9-patch-v1" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } +sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.6-sp1-4.0.0-rc.3" } +sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.8-sp1-4.0.0-rc.3" } +sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0-rc.3" } +crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "patch-0.5.5-sp1-4.0.0-rc.3" } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "patch-2.0.2-sp1-4.0.0-rc.3 } +curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-4.1.3-sp1-4.0.0-rc.3" } +curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "patch-4.1.1-sp1-4.0.0-rc.3" } +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "patch-0.16.9-sp1-4.0.0-rc.3" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "patch-0.29.1-sp1-4.0.0"-rc.3 } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-4.0.0-rc.3" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "patch-0.8.0-sp1-4.0.0-rc.3", features = ["groups"] } +rsa = { git = "https://github.com/sp1-patches/RustCrypto-RSA/", tag = "patch-0.9.6-sp1-4.0.0-rc.3" } ``` If you are patching a crate from Github instead of from crates.io, you need to specify the @@ -81,13 +65,9 @@ Apply the following patches based on what crates are in your dependencies. - `ed25519-consensus` ```toml - ed25519-consensus = { git = "https://github.com/sp1-patches/ed25519-consensus", tag = "ed25519_consensus-v2.1.0-patch-v1" } + curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "patch-4.1.1-sp1-4.0.0-rc.3" } ``` - Note: The curve operations for Ed25519 occur mainly inside of `curve25519-dalek-ng`, but the crate also exposes - a `u32_backend` feature flag which accelerates signature recovery by 10% over the default `u64_backend`, which is why - `ed25519-consensus` is patched rather than `ed25519-dalek`. - - `ed25519-dalek` If using `ed25519-dalek` version `2.1`, you can patch it with the following: @@ -96,28 +76,6 @@ Apply the following patches based on what crates are in your dependencies. curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } ``` - If using `ed25519-dalek` version `1.0.1`, you can patch it with the following: - - ```toml - ed25519-dalek = { git = "https://github.com/sp1-patches/ed25519-dalek", tag = "ed25519_dalek-v1.0.1-patch-v1" } - ``` - - Note: We need to patch the underlying Ed25519 curve operations in the `curve25519-dalek` crate. `ed25519-dalek` - version `2.1` uses `curve25519-dalek` version `4.1.3`, while `1.0.1` uses `3.2.0`. For version `2.1`, we patch - `curve25519-dalek` directly, while for version `1.0.1`, we patch `ed25519-dalek`. - -- `curve25519-dalek` - - ```toml - curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "curve25519_dalek-v4.1.3-patch-v1" } - ``` - -- `curve25519-dalek-ng` - - ```toml - curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "curve25519_dalek_ng-v4.1.1-patch-v1" } - ``` - ## Secp256k1 Acceleration To accelerate Secp256k1 operations, you'll need to patch `k256` or `secp256k1` depending on your usage. @@ -140,8 +98,11 @@ Apply the following patches based on what crates are in your dependencies. ```toml secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "secp256k1-v0.29.0-patch-v1" } + ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "patch-0.16.9-sp1-4.0.0-rc.3 } ``` +While `secp256k1` doesnt usually rely on `ecdsa-core` the patched version does, so you must patch it as well. + ## BN254 Acceleration To accelerate BN254 (Also known as BN128 and Alt-BN128), you will need to patch the `substrate-bn` crate. diff --git a/book/docs/writing-programs/setup.md b/book/docs/writing-programs/setup.md index 42ab5383b..bca2706f6 100644 --- a/book/docs/writing-programs/setup.md +++ b/book/docs/writing-programs/setup.md @@ -32,7 +32,7 @@ name = "program" edition = "2021" [dependencies] -sp1-zkvm = "3.0.0" +sp1-zkvm = "4.0.0-rc.8" ``` The `sp1-zkvm` crate includes necessary utilities for your program, including handling inputs and outputs, diff --git a/book/sidebars.ts b/book/sidebars.ts index b2c0ce681..c6248ee9b 100644 --- a/book/sidebars.ts +++ b/book/sidebars.ts @@ -1,4 +1,4 @@ -import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) @@ -16,34 +16,34 @@ const sidebars: SidebarsConfig = { docs: [ "introduction", { - type: 'category', - label: 'Getting Started', + type: "category", + label: "Getting Started", items: [ - 'getting-started/install', - 'getting-started/quickstart', - 'getting-started/hardware-requirements', - 'getting-started/project-template' + "getting-started/install", + "getting-started/quickstart", + "getting-started/hardware-requirements", + "getting-started/project-template", ], collapsed: false, }, { - type: 'category', - label: 'Writing Programs', + type: "category", + label: "Writing Programs", items: [ - 'writing-programs/basics', - 'writing-programs/compiling', - 'writing-programs/cycle-tracking', - 'writing-programs/inputs-and-outputs', - 'writing-programs/patched-crates', - 'writing-programs/precompiles', - 'writing-programs/proof-aggregation', - 'writing-programs/setup' + "writing-programs/basics", + "writing-programs/compiling", + "writing-programs/cycle-tracking", + "writing-programs/inputs-and-outputs", + "writing-programs/patched-crates", + "writing-programs/precompiles", + "writing-programs/proof-aggregation", + "writing-programs/setup", ], collapsed: true, }, { - type: 'category', - label: 'Generating Proofs', + type: "category", + label: "Generating Proofs", items: [ "generating-proofs/basics", "generating-proofs/setup", @@ -51,23 +51,23 @@ const sidebars: SidebarsConfig = { "generating-proofs/recommended-workflow", "generating-proofs/sp1-sdk-faq", { - type: 'category', - label: 'Hardware Acceleration', - link: { type: 'doc', id: 'generating-proofs/hardware-acceleration' }, + type: "category", + label: "Hardware Acceleration", + link: { type: "doc", id: "generating-proofs/hardware-acceleration" }, items: [ "generating-proofs/hardware-acceleration", "generating-proofs/hardware-acceleration/avx", - "generating-proofs/hardware-acceleration/cuda" + "generating-proofs/hardware-acceleration/cuda", ], }, { - type: 'category', - label: 'Prover Network', - link: { type: 'doc', id: 'generating-proofs/prover-network' }, + type: "category", + label: "Prover Network", + link: { type: "doc", id: "generating-proofs/prover-network" }, items: [ "generating-proofs/prover-network/key-setup", "generating-proofs/prover-network/usage", - "generating-proofs/prover-network/versions" + "generating-proofs/prover-network/versions", ], }, "generating-proofs/advanced", @@ -75,33 +75,33 @@ const sidebars: SidebarsConfig = { collapsed: true, }, { - type: 'category', - label: 'Verification', + type: "category", + label: "Verification", items: [ - 'verification/off-chain-verification', + "verification/off-chain-verification", { - type: 'category', - label: 'On-Chain Verification', + type: "category", + label: "On-Chain Verification", items: [ "verification/onchain/getting-started", "verification/onchain/contract-addresses", - "verification/onchain/solidity-sdk" + "verification/onchain/solidity-sdk", ], }, - ] + ], }, { - type: 'category', - label: 'Developers', + type: "category", + label: "Developers", items: [ "developers/common-issues", "developers/usage-in-ci", "developers/building-circuit-artifacts", - "developers/rv32im-specification", - ] + "developers/rv32im-deviations", + ], }, - 'what-is-a-zkvm', - 'why-use-sp1', + "what-is-a-zkvm", + "why-use-sp1", ], }; diff --git a/book/verification/onchain/getting-started.md b/book/verification/onchain/getting-started.md index 834a23dc1..8519d620a 100644 --- a/book/verification/onchain/getting-started.md +++ b/book/verification/onchain/getting-started.md @@ -29,5 +29,5 @@ You can run the above script with `RUST_LOG=info cargo run --bin groth16_bn254 - If you would like to run the Groth16 or PLONK prover directly without Docker, you must have Go 1.22 installed and enable the `native-gnark` feature in `sp1-sdk`. This path is not recommended and may require additional native dependencies. ```toml -sp1-sdk = { version = "2.0.0", features = ["native-gnark"] } +sp1-sdk = { version = "3.0.0", features = ["native-gnark"] } ``` diff --git a/book/versioned_docs/version-3.4.0/developers/common-issues.md b/book/versioned_docs/version-3.4.0/developers/common-issues.md index 5d0a50e80..5b06ec3b4 100644 --- a/book/versioned_docs/version-3.4.0/developers/common-issues.md +++ b/book/versioned_docs/version-3.4.0/developers/common-issues.md @@ -51,7 +51,7 @@ This is likely due to two different versions of `alloy_sol_types` being used. To ```toml [dependencies] -sp1-sdk = { version = "2.0.0", default-features = false } +sp1-sdk = { version = "3.0.0", default-features = false } ``` This will configure out the `network` feature which will remove the dependency on `alloy_sol_types` and configure out the `NetworkProver`. diff --git a/book/versioned_docs/version-3.4.0/generating-proofs/advanced.mdx b/book/versioned_docs/version-3.4.0/generating-proofs/advanced.mdx index 192ab3cb9..da9e3548a 100644 --- a/book/versioned_docs/version-3.4.0/generating-proofs/advanced.mdx +++ b/book/versioned_docs/version-3.4.0/generating-proofs/advanced.mdx @@ -47,7 +47,7 @@ RUSTFLAGS='-C target-cpu=native' cargo run --release Currently there is support for AVX512 and NEON SIMD instructions. For NEON, you must also enable the `sp1-sdk` feature `neon` in your script crate's `Cargo.toml` file. ```toml -sp1-sdk = { version = "2.0.0", features = ["neon"] } +sp1-sdk = { version = "3.0.0", features = ["neon"] } ``` ## Performance diff --git a/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/versions.md b/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/versions.md index 31503adb8..4190b713f 100644 --- a/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/versions.md +++ b/book/versioned_docs/version-3.4.0/generating-proofs/prover-network/versions.md @@ -17,14 +17,14 @@ You must switch to a supported version before submitting a proof. To do so, repl ```toml [dependencies] -sp1-zkvm = "2.0.0" +sp1-zkvm = "3.0.0" ``` replace the `sp1-sdk` version in your script's `Cargo.toml`: ```toml [dependencies] -sp1-sdk = "2.0.0" +sp1-sdk = "3.0.0" ``` Re-build your program and script, and then try again. diff --git a/book/versioned_docs/version-3.4.0/writing-programs/compiling.mdx b/book/versioned_docs/version-3.4.0/writing-programs/compiling.mdx index 0041ba8fa..54bf01811 100644 --- a/book/versioned_docs/version-3.4.0/writing-programs/compiling.mdx +++ b/book/versioned_docs/version-3.4.0/writing-programs/compiling.mdx @@ -61,7 +61,7 @@ The path passed in to `build_program` should point to the directory containing t ```toml [build-dependencies] -sp1-build = "2.0.0" +sp1-build = "3.0.0" ``` You will see output like the following from the build script if the program has changed, indicating that the program was rebuilt: diff --git a/book/versioned_docs/version-3.4.0/writing-programs/cycle-tracking.mdx b/book/versioned_docs/version-3.4.0/writing-programs/cycle-tracking.mdx index f29c303a0..0281f5fdc 100644 --- a/book/versioned_docs/version-3.4.0/writing-programs/cycle-tracking.mdx +++ b/book/versioned_docs/version-3.4.0/writing-programs/cycle-tracking.mdx @@ -14,7 +14,7 @@ Note that to use the macro, you must add the `sp1-derive` crate to your dependen ```toml [dependencies] -sp1-derive = "2.0.0" +sp1-derive = "3.0.0" ``` In the script for proof generation, setup the logger with `utils::setup_logger()` and run the script with `RUST_LOG=info cargo run --release`. You should see the following output: diff --git a/book/versioned_docs/version-3.4.0/writing-programs/setup.md b/book/versioned_docs/version-3.4.0/writing-programs/setup.md index 2cd677f4a..42ab5383b 100644 --- a/book/versioned_docs/version-3.4.0/writing-programs/setup.md +++ b/book/versioned_docs/version-3.4.0/writing-programs/setup.md @@ -32,7 +32,7 @@ name = "program" edition = "2021" [dependencies] -sp1-zkvm = "2.0.0" +sp1-zkvm = "3.0.0" ``` The `sp1-zkvm` crate includes necessary utilities for your program, including handling inputs and outputs, From c0845a6613efa5e32f171ced91feb2ed7cf0974a Mon Sep 17 00:00:00 2001 From: N Date: Wed, 8 Jan 2025 09:35:00 -0800 Subject: [PATCH 07/13] fix: v4 rc3 patch fixes (#1918) Co-authored-by: Ratan Kaliani --- book/docs/writing-programs/patched-crates.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/book/docs/writing-programs/patched-crates.md b/book/docs/writing-programs/patched-crates.md index 2feb3a5e5..b60c00521 100644 --- a/book/docs/writing-programs/patched-crates.md +++ b/book/docs/writing-programs/patched-crates.md @@ -32,13 +32,13 @@ sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", packa sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.8-sp1-4.0.0-rc.3" } sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0-rc.3" } crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "patch-0.5.5-sp1-4.0.0-rc.3" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "patch-2.0.2-sp1-4.0.0-rc.3 } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "patch-2.0.2-sp1-4.0.0-rc.3" } curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-4.1.3-sp1-4.0.0-rc.3" } curve25519-dalek-ng = { git = "https://github.com/sp1-patches/curve25519-dalek-ng", tag = "patch-4.1.1-sp1-4.0.0-rc.3" } -ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "patch-0.16.9-sp1-4.0.0-rc.3" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "patch-0.29.1-sp1-4.0.0"-rc.3 } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-4.0.0-rc.3" } -bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "patch-0.8.0-sp1-4.0.0-rc.3", features = ["groups"] } +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", tag = "patch-0.16.9-sp1-4.0.0-rc.3-v2" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "patch-0.29.1-sp1-4.0.0-rc.3" } +substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-4.0.0-rc.3-v1" } +bls12_381 = { git = "https://github.com/sp1-patches/bls12_381", tag = "patch-0.8.0-sp1-4.0.0-rc.3-v1" } rsa = { git = "https://github.com/sp1-patches/RustCrypto-RSA/", tag = "patch-0.9.6-sp1-4.0.0-rc.3" } ``` From dbe622aa4a6a33c88d76298c2a29a1d7ef7e90df Mon Sep 17 00:00:00 2001 From: Ratan Kaliani Date: Thu, 9 Jan 2025 10:37:35 -0800 Subject: [PATCH 08/13] chore(book): Add patch for sha2 `0.9.9` (#1921) --- book/docs/writing-programs/patched-crates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/book/docs/writing-programs/patched-crates.md b/book/docs/writing-programs/patched-crates.md index b60c00521..be82e2b0f 100644 --- a/book/docs/writing-programs/patched-crates.md +++ b/book/docs/writing-programs/patched-crates.md @@ -28,6 +28,7 @@ To use the patched libraries, you can use corresponding patch entries in your pr ```toml [patch.crates-io] +sha2-v0-9-9 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.9.9-sp1-4.0.0-rc.3" } sha2-v0-10-6 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.6-sp1-4.0.0-rc.3" } sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.8-sp1-4.0.0-rc.3" } sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0-rc.3" } From 1a209d757c6ff5b7a275e48b553d5c398692f5f8 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Fri, 10 Jan 2025 19:43:49 +0000 Subject: [PATCH 09/13] update docs --- .../prover-network/explorer.png | Bin 167094 -> 100559 bytes .../prover-network/key-setup.md | 4 +- .../generating-proofs/prover-network/usage.md | 63 +++++------------- 3 files changed, 17 insertions(+), 50 deletions(-) diff --git a/book/docs/generating-proofs/prover-network/explorer.png b/book/docs/generating-proofs/prover-network/explorer.png index 9241510cd8c277134e60ce1a11c46a34f9c0cf37..305a04666ad3ae950986a8eb8b270dd33662b7a5 100644 GIT binary patch literal 100559 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 z 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 YDMK%uy-VbOLjnEh>mqeZPT7b355Ooipa1{> literal 167094 zcmeFYcQ~7G`#(-8MU_@ttrZ<8ik8~D+Nvso#0pW=9-*pL_~bb5+*hu3-{*Cm*EwG2nMk0vIx`~&BNY`D zv&Q2GdQ?=Wi>at+mCn#nYLt@CyrQByt8A~P2Gmef;|03IZ0wz^si+=DCK%Ei>3_eR z0f~F3VnF!8nH#I~BtITb zb;?zR`sTAQv%exg>grlhjSuXv@2v4}zw+*d7L)pqPaHTD0(sb}ZZgh+pghv_bD>l- zVAJ<90IHl1(y57Jah9Vm6R+@}Azl~MPMQ}I)J~Xh63?u?a`|g1)vY2|nK@4?P`OG5 zv{fsDqxgtbp7F)0Yg7)NubVvF-CwX4s5mhPJYdx%T`f{x`gEct;bj#6MFY^WS=aUS zyZJkT?q5IllzWIRA_5Tci(f8CC7gA0ee2m*;ex7iSIaXxJ*Q;h@Zjdx6xJZtjpxU# zxgXAIxHe7#Bxinoe%AZ)+}9X|n4nu<=~(F*t8TPk^mj<%eaC#)^xBfAs*?OUOS9MP z#H~}7my}Y!)!lt#WT%$$@f&DkQP$Gf)V?GluEaP0{)rb|X6ZmDh)H7Z!nJ%ACn)dZ z*DsAOSw=LLi~_^^YunEne0>*dbm2xXj%)5p^PMi8ve-+XB5ABH9_PuvP}}+@WqW4y zJY%D>@(ocVD4-;v=luf9Vu;x+Q!-Ia?y!+)q2@75JfivO(Fxyc-!lsDqt|UVf9ro+ z`@FTf;Gvs-p!d5E(&3}B<-7)WFY9zgFzJ=W7DR65&i#Bb7oMEUQ z_9xDC%9G6DfU);)!cXRikqTp`>SQqm14miqDkoXw};U zT`!xSGHhjbWhu*W**LWw>N6t|!h199%>b+7*DIe@R#*kXf_-mLKfZDy^yW3e$8y&n z-0ZsjoLcYIhZ}_VB9ECXS!Ca)-52HM?&AK$wEPfyBNKQQtcnDx4PW4n76o<* zzmAQhxp_e&_PP4z^@njXpZxV0?78iwmuZ)Uic+^#HH^O-eb*2K3L0w^fd@*qv$vVcGMY(C&lLd{s z1_n}KZ^Iaa%eVUVp@>Gq{YLksP4!D!mmrrCyB}PN?AA-*77_rj6*gw;6(xeq9mFLw z>pz&NDQX2gKFWHc?*+6*Y=Rbx4T_}-q2Pd`M+Q|ut70t!VGsf+pXF^_s*_&gQq-rn zSlF*y4pJ@&)C^Dw&ARlS>tmSOGO1ru|o-p27E$?-QTa&v+yQWV({YXyQ zODXyeR~uIw;Ir?8sn>`b(}b8|5@vyrh{qD92aZ0ek1!4N3_`L;3U^fiBPdKPHZ#9P z_vCFL?s4h+j2m?~G}YGtFGi>&D2G^L@AQCrq~3pYx@#}J@8n?30W*1S0y}7Z zYuRx}Qvza*wZy_)oOoQ6dK$5ZWv9nNEZ$pu?wCva=BFv#^Pnd@F*;Gvpx(dt4pX^=dJczySnYVm|T}J z#Hhq7(~9G21D7XPJJ%a74sK|S6d+vz{%y%4w?(#I#zx-7qfz>i$J4HlId^-lpz>pK zZs|hlWwCiN%v|z5PD7)HecpZki_v{3Gds~)Q6@7J)8_j6x;JJ7Q@^PnQ+kudlP-6w zujszzd%Lwp>!Z9|x28U&46lX%^jq28>lvDs=>h}$uqnBKzH&k!RyIcPZy@e<&(pAriMC+mx&^lHfUw^!jW!H>K zztAAOW0qzug7CJ#6xwu{_Fthj}-TZmR0(iwnwLd*Qd) z8upR_A>gUwnQSCZ{B;wdF(hF2u|!$cZ}YRDgT9RZxlgQm7xcaJ{AVAy7t7KVtqd0r z2Z}~DydsAz_CUT77W{}k`~8EBgWW^$!KOjO{9T*9=b-1?3`QZO5X0oQ1FN8eCql|AAOYVq2O_|23}u8 z>Q|G^s85L2hOEk&FV$i8^!biY*|lM*7V=iax3=NI;Vr#iZQX5aeuyVa1{sVv{aO+6 zcqd!rVe%`bS0rOXQOs_-Z~w!-@m7$S`)wgHcmuDSs>f#wV&hzA3+<5}B*)~sXdQCE zV>bWc-u1Seoo`m`<&eYD4~Fp1KR%b_tn^%1i;HTB+4ov457it>tP%4tt8tTct8?A& zy`&`Uo#^<1Jy98YwYk#bQUG|l7=>A+ElY1oW&Z9Uq@YKs4hmUXI<^JS;zCO$h&HKeuIH-kBBNU08r&q;ola~_ql zdN9#b6Et;g5?v=@W9t|V(drcqHS2Len`k(%uSGVLuMlxVAX{@(9<-p@No-VjjO=gT z-JD8R+eL9b<0_Q5bF09!t^)082Jhr%x7^MBTqRgkH1FCqn`qPjOHG|CW<|!qy?XQG z&S&dR!Oo~ymW*2pcU|>7E7w5>MV%u0CTrDsa#d=UC3f{q1oQn8=gJcQgbN(wTZ z$Q@PRhZcJw>I)8H{XbUV-&O0zF^nb1-F0enFYhsLDAgN3#h z{}TrS0Eatza_F!@ij#)Jyc@j&C&XDLH#W@r8v55Ym6rlW_umtVlLcRO`jvFZ_YW#} z5WOS6VA;4emS1Pjy^*nuSuvyvW!BQ9nIWB{D%7AFm^pqcuG)MOfAu=9s+)CB$EaET zL$WZH*T#urJ8gMjAF+T2w-m@);^xY7VN?loIuC zUxS+Sf69-jZ&A_wRey?#D#D(M_Md&UDfi!>ca-b*n19@9;$BhFQ+{2bT)tVS{?+?* zaTd+L%Ct(9HY!zpH4P2QUEj*x+S+gA}6ny0oA-1x^N|C;B4wTG3vy{o4^%!T*& zycU))FHgnm*MC3ge?I?sPitTMe?Q5^B6e5wj@bXqO&O~2yH*Zp?`!R3 z{J`FsvSyTLDBZmyBc<@yfd609zaROxp+Hj+v>|yP$26Lu7)Klr- z8}`q^e{cNfKn1biwEt}_{;|-1)lybkiBUo9e|AlY(UEq=iL#Mg_78MGlskpZet%8@ zC||e!ai^52Wr|{o)cvTaRH!r_sDgZ{SEd-!!1I7kA|SlG8De8K zTPO+&gmV3<%gd}3t3SQEN*3_+nPR4dOm_7@b)k@chpn!p8>e?~fzPL%WQ@BQh71RpXvRet9;C?3vlJIQmd>U}ctD-~vwVsNFj ziw@&BQifDM-WxhT-0E+4ot6B*#-`U~m;dXm{RFAwH1 zdD6Uj04&WIRzBK}Vk#P;Z7MuD3)da`Z+rV!9iz^(s4O3^W!^#qqo&mw2)kWB{`z^) z$@Wlx*(CinuUT%-M)5z$Q&#p33uO08r-oH2;@DL`(3A<9WBBSsRmqt@ zh_bGiDq~vGUe+p%?k~UHXD$YBT49PaxiNU&Px<^_bTJ$T!T(LdQ|g`rRU{ETv=+#5 z?+IspUOp8@$--mO2yT_KZq+TJ^}|8BNphhP=MeY*AO^(+DqaA~;Z<1%q{|Q|3y3pV z)I<0frWJk}bix@nq?c4!4DUo~=_}m{?dH)Zb%6sD!UdPOPNYBMgex)Lv^V!`S zlv((G&$7R0zC$Q)85`%VfNH_;PuKLZ;eVpWH0$XAq8>DWfFnw4&cY2~8E6u_32?P1 zu<&QZlc0e=Zrhu(mrsHUX&{KePqbU1u(e%wF<5D?HvJ-{a zpp&E6wSdFRw3t7$e2!SfLJ*D6TJ8MK)hVM8{9E@*@jt9;)*d4(h#eQuBmXA~q!=kG zI@(hD^ZP$p0mR>Gw3(df^CwHe>EbC`4Cgl&%Nu`^A9KPgKr{bck@d5G;NQ_(6iYz* z&D7UN*Z*)lzZp_&fxR`z^wmGCXNB$=RuJrBLuB-WKWx^Uaw=6X;uNY;;t#9!ESHtH zaQc=v8)xJn`0JuMWwquSU@vU{uv)E;uBiZR21nn2 znFY@s)pEM|2U3Cl6w@SXy?G)1Pr{5doJy7S=yU4m<3Eu4zl`y>h528``1gtVe~d9+ z?ygFk2U%_5;PRb@V=m-Xr))7Fc7bFxauctp7qvAx7A zfViJzus_r7ZB&t=R&4OOv}RnWb5T3x4*K|L7sr*PA+{*CbWWy7;Kd+qqredm_L`{;=x{TRxxP z2F36jt2WH%PfhR~M@tq@#K^CH^vuZo_$Tp#saiH2+_*Se$p>}1JOW1SGt+_KU% zvuA3l8Dh1a8Fb8`BuqB`cC?Ec7r^wz?*m#+EF=p0AN!`eLtN~UIwk3MM2=@70D%>C z9@A$90D;5jYbIP8!ei%sl#Z9I{MM(eXMdW7TF0Krh%X5^nc9_F@2wlN;Wk}(H{(%j zShHNjzvLlpJtw?F(b=OX&3l90&c=P+hK0}k)*DdiCW|0p{hFu61ty0_d8T)ytUA-Z zD{~#WR`dIU{F(!{Fe7V$3!yBP0XtKjQ~j%*cx8i$xAsF*me$>gNH!fM^puYGkJ_v6 z0n33f2Xnj3PY$V0m67%U@MKGlb5k$2=yKI>i|>O*`KPqVlMdi<)++pM&R+dt*6{)7*cj4wB!U4Gy&`^B-I=ylrkF zZ0P^adD=~YE0eGuz7#*5v0FoS3fP`i-|3ac(YCA$jRv*_BHZmR4f(igJOA2F-sxO# zv4uPzqS#`Y2}i=KuvA#{i<*5RLwTPsCh%kxwfD1{#}OjTZ6vr{NzwJFrpqPdFA0FU zc@kbvx(Q{8n7ZD^)r%owep|sUFi6fS^6J z@>9ajCw-khB98lbx8OwdM09U$Xg6#+Hzsryg;OdWvAFg(DaU$inxc75HwInehhh$j ztD)9}QdG@lXOrh7e4ZKj{Mc2vo(!f6rb6mxrXx@*rW`7;~nC#?k1-SsNR7>0fZnkDh<%oVb;FJ-R@?>VY5^EhgI|K^+50}_t$3Axom@CD1s#Y@FdA-m~B{>+d{#r!U)oaCc zh9vq~?Qr=#JvtziAKNpa{MM^bUaMmwA|8rvn_s_sYfYSEAl$k{D^vBW$z{R?<=no# z6j}%Sf$R}$zMbZ|-s)GnW>0GGM9brXPMXXHX8iSCOAPX#UiHK87lg1$jm0{j4okY{ z;Lw9J=P?U!z*X&%us;X+$MQP`{K>s2@2%*7karICrP1lz8$D|kU(R_ONA;{$3X5uT zeC_q~$T0Ip=LHh0VX;MCZ<((u4U6Db$6cgcei-?*93fX%yAk7`kQpq>M)tN?#UT*{ zE9~$maV?O)MS8t<;T)&b&&cW;byde$PWZ?BDBmF;)95e7odN;@C9PZ45;|3DBfDM1 z(ZTqUT^S?XdT+nd{xClMgO>tftHSqN+^2QHv9FHh%~<~C?aEY)*q$OKzBN=SQscBN z?&Hr#=4z2~E8%8MtL`pc{yL-RGwBTL4G><)vCZ(x_gX{qEimBpW0m<9c2Nc<^`7=V zl{vpYOO~oFI_kYDBWah|W(FMCcdvHYKkAv;_3IQJ;lG`;j$@b?7=7uthU`CKI%2zg zhG)s|(+k37>|FO{4HTgP)>1Vt85654vOG`2Qq0AbG*$YjmqTOGaZa{C`mDA|OQw5Z z13HW_j6Tw@V9lb7wePXJ`oz}8J5@oy zpMj*7@~0L*={4X#z8U)T?Jw3k>)m375jbnVjwBUz!swdpC(K_U1q-{21b@~kow>p( zX`eP^>21rJruhE4%*24I7k_N%a~Qn6mH}I*R^U|S&QyE}zOynuM6&GN`8gUkvDU1( ze3u9EqZGEil{*(d#qdgkBkjF&edaqCVCgimSIn6wt>nd!GDgoi6@CGACK0Uj^SMZR z7M$4r5L;sn(T7cXri3&$tTo9`<{@KJh_IE?XBsWC6U;D|JB7z2!(ok@(2@ zX8|qJLC4Fs^1ohtWiLQ9r~7sqI$JXLoO^mqXq!Hp`^3{L%YMDM`Dj7_5M-$(W@jlE z9AA>h2GYrtn+iC|mpjj9wvL@}va;fT>(&&JJLIK|%95*ZEc;M*GE0u9D^EUGOrCxb z%gl36=3rBB-LWA9zErLtu^-4UjR_Rjk_c%z1Yu7fVp0XG)j9)PQc0R zUg5O;VtNQL%b@+xJn(po)c1Dh09+T%pl>cE0&qrWxTXZUCWMA&6bV2UvQU_UOn*xc zXlDEXlR;8dZ0bGHiG>wLIUV`BWOEWMh|V9Pl)*F&T5WUQOHTb6b$@ zP86|?x-5DY9v7pzmwVh7=wlN4%9bzSNS%l4`7WK}qQCss3Z1I#n`G7U?#!uAo}msT z?M9_D?)per%Mtc+V-s&$da=6Kp$stc4O=L5mVQ}gZ(G7}^SG8?RQ2(n;b`q5P{I&^} zApxXS9?*UlsTHiN6d%XlkEgz3d zC1%MTj~#lD9LP79z$N|gYGy|5K5l>@6B|o0Mncl0L$z~s7Z+fwnRJ`^$vx|U45ZQv zrK9%8sLWhK|5vvxQtA3`eoX_O8r(kre0*iuel@7cJ9nl*cR_hL13(TTE6(xIDmR~d z(sr+@A~N9ohg@C#a^nEhUdC=pA_RD}7UxrHpUW>gFtX`T-@RCI>f)Vdw8$#!4y3($;gu|N+P-^`-_{KRfAztV6VMy%9BXVqifkRfcfku8v; zEiW@{|P&KfACDL0`b2BPvsmxdAhD`P+@tZ;{q_sgG=gpq@_JG{e z6JE7Kdo5;rTvL(s7?O553=?ZSLN@370>WzMIc^7HJT1Y7ezy)|P!8Z2#+oA^)DH_) z`%=&GqgaJ^rT!7xIT#i=L47wCK4pl2_NLSN291%W4kHCt3&6_ZV(%w>%xigl{_eJB z8U4l=He90VMPr#coet)ura@|?H~hWranyJ>g%`hsYbMqj!lNFAIvm|q@_c}`-km+w z#vQH~N_Vc3OvbTm$I#m_*5QYhBoF5eXR)ENiXT?v<|bgxQyE-xw@v$7)#+>+ZU!Dk z&6hZKdNm0^Pz{4}o=jcjI~29@N~tNQifJLR zoJV?et6yOq3Q>)MCw3B;5sS%B)ciTZ%pB;s-QP9c5%uez^1bEe(4H`bU>4YRek z-kr)CZvviE29;NvvA#M;yj>UrpvQy#)p7DwB&^@hZ1t7t1~M6JTshC1cC~J(VKG`1 zh`pJR4$S%#$LAn>8iThlfv-5op*J57+>nH#AOd>BsY4MJaA$0t; z#f=s0w6Q?uru*5RY=WfOq~=3EeH)4{;Gm?Di0wbKA4KJ6vsZ86CO`Q{0F>b zsni0p$f6K2qigMa2$m{-e{2K{w0pstxU-Du6e$PPH5njmN}aGjM%ov^mo+*KtBVR; z<~=z1(r#;E8{|1aBSnUtbPCmLKA*4!)2oUhaZii)S0O_^VxI|cvqeDtgdMQ7zZS1v z;DGKAPrQ1(;woQhg588S#mCAEdK&I$zt7FMn{e-qRD!%c_UGot*R*5jJ3h0GVf9;- z1zC(%)Dm!=*OF`|HFRfQ99cBY+_f7b2HE8myToa`wjBJDJ6UpHo{Y`>sI}9SFRl^Y zZ~wDHd_a!09#T}U)3dYw-V+*Y{de|%HqTDM#%2OOy3FMC0(py{4Wq~*nz6Yw5Q;h^ z)G?}RD=$>vQ5oRX&kgO#4&WT{QDL=FUg5#VLXWN$SBM%%(VgemSbCowd-HaFPkq3C z2#C5gBkRuYhk5ODei(ixtoZrbn@*E(CE%SrXf5N#VbI9dAg`+y7PO{n5dvf6x@d5a zzmcm?*0!i9j;CQ^4jd(A$saGxGx8P2@X#~T+ce&lunri|uYMy<`eLR4O$WIqQ-bGhbAdpT~8$)kfy2 zreABqi6Am67~Qus{5j8?Y6Fz1XBQVPgAjd{@F_yr+mzdxfRp=!&?2-mwo<7g7VCiB zejXf?ubv7w-C6dEcLp>fb}I1*c^eF@}fOyXB6 z!ba8;OcXYL{B(O4x!$|9+t^)Rcve$xbu`yuELQn=>2f-1Ph_OWI5ZLJrXc~TeU_bC zX0_IqRnXWh{fN$x`4cBd*uT_AZ|WJ-^uRa8PEWyf7%wA$}+)O*kWbBkPfgOq$Y`jJanMs+7%ce?ZKwNg!{n{+`tjs zZ+48meNjo`mob9lEOZ%CuZm2J-3f`!e2YF@+M~b3Qh3Ew1G)Ao^HV%dpXOU6GT3O}@@3$a@hs5-gY zA3kp&33Qflzh!?P!D_f>(ebC_3hOOWaD*zt`;_Cd2s$S%Zf5PG3--XQR0YcW+$WSrCUYI;`XQOosW7sHwa0avzPrkgHal-{#)Q7m3>UKQm$7zLu9*eVI!!3oywFRI$d5kj4d zgWv%O50j}6(LinjWaH*G2-ea*Lr z66b-I~V z8(M7VEJRINqM-u^f$M(exQd8CXoy4U)6DWnF)h!9`=ACRKKVGw1S;A2;h`_aLhCsf zo}v>e4#LZ$oGp$B9dMHu#%!0ueg`B&TjQQ*D|EPf(66VX#Wq-`O0{R2WgOlX8IWm0 zDcUpTn;2IMhk9NW$g&gFNQ*g8IDpO{aEbaW6a3KSnub2h4^S!aD8z_w;P_j6i4x~1 zFGH@I1m^V-1d!bQ%P^(;ZJPI^fT7mn{|HIkO8(2@#%*1w{Tgacng)wOahn%F2(E~3 z_r0B8@~Se(UTlr~w=RkL zj~N>SM=X3FZYJ-*flQK1&IAZQ#f2+-I{D}%%kXG^vBM^TN(1S_e7s0cK(L1G$J;!| zcpH@dsu7ux(ImM9%`ID4h-sA~?u6j?+_EaK3T3`87JO+K>x;|j49@%o%T4kV&N2X& zdYdAxJXUo}>wAQTvJ+$KAa{}g99^Z}r1>w<@mOV27y`$kn5-{b7*RGaZQLVR*qrYi zQ4#h!W1h zn;am7IudSxc<48T_xp`>@Hb0?*``OH8a8=joDKCwd=oZ^A|~plis`Y%ahNR=fp}=D ze2>V^U~SS$eV^iFWStTU=d>s-hf`M6Q7rx(nJUWdR5E~A6Y z#iTH}02bLF!e-$>6s84@oTQ%Y5SRm8T*+9GE9CQ%7~WWk(0CW2;JD1oO_r+tEw(D= z@=a~^&y>VeN#N3QcY%=VjORFdbQZL;S&3%f9^GG)k(s0_x3vXVp#KkP74es}>ZC|3 z{0mMI^{nxa_+>nVLOfP=V`KcS;gr7De&z9F&~F5%A!oTB+D}yWox1-XP^?_s(;g5- z=eA2~=;sNXxu)Ecz#7Riex>j1nu7GEYy+|0%c~&s>e1777476Rra9%P=G|1fJmFt0 z2@3}DS3p{%A`b_So4VIZQ{bQbgM3tLYw4EpezxW#oOfM7S5zsk(rfc4JT7}dKKDNU zw4mqV(5C3k*{?G(PkhqMPHs!zN{*3FINT7pG00GSNlMUDFY1-0%YCJww=XQ-nz0XO zfQP7@JT5oR!e4f%)h<`rj+Qm7;uE8eA728g_ZZmiKlg&=63_w6o^rPf$KRL_;SEYmgY#YJ(qX^r5X_bW&adfcQ2FO8p6Aid;Pe&Ju6=FnAc zN>puM7wi4u7>joeubYevdgM1b@I}<#+rGW(_X&R+-z{784F_p|qOb5e>5kt1^@O|K zupyN^j*4OF1XlES7954WyiBpmMS-mCLHLXmCtl;D2Gx^5;Lsu{(-7x5=miGitz#8; zpY9!RZsnqi71te!1V6((3%mb_tEsq9WK11H>Ea=Ub%;Ej#q_0`9RZrsg$AXQc8W8h z2rei5x5CTi3$mVH=T(zKI9#BW0HJ8$(LnAOY(udwQ*9#3InG))OQHjB?lavPz`IDsFBx}8t$8RXgQ9&u#AO$l~*V$OE zQnWqhTzhiS*^zRne6JStq?RLEO1<(N_GN$Tq9S(zA-|k__@YpFZvKTU&DiQx*29lS zJ6zKFZEqHYCp84M47D6FHGQR*KtS%Ml!p_ntH^bfpqQ#xY~NI99G6&q!7qX5(dQnN zAo!sfQfM>#85Exw>V!5A+;_&ojI1gQrZHdekiz+Ixk@h6VuH$`&NSMGZQU8OZ_or|R`4?i=5!{>4Ej9&Mze#G2!T!|Ny8HFRb#WF57t0KyLo5- z#0j3K*u$S5%x~m#!Xp$n?$yqIT8{tn?m_B%ZD8p^+`)~p-F)m890!j#^VP*#?-O}K z(HtcvQq$GWU|}$W0HQM&u2lR`EnTE$wEgn!9w9MSQLctuDt*;_Sku9FWrvp7CJS4L z1M{<*Em8T1ExoC_eErUi!9!5bPoIPL5nSijVmq`rAmv&2g2$H@)fX^&PAJQbHT!jmBjiRntS@wr7@GxD;5zxsvCoDUXI#0PO__ykZgbg9CcL zRqIS(;qcoheTDYVdKWtsl3eGmQ}8mLny;F;+DnVXh!~uSI>z%_ZU%>lSa#=ca5!OV z;K=TEX=n4dPzMZ8(8{d(mw`t;3kHO#a$$^f;HmDVdZm*U4{29p&y<#yp0Wm`+$c^6 zp{Df0PDCbvrPyb}S$e{qFiEp3s#u>=b`PkpqlFR1ey2n3YqHmh(>L=})u<|}keWQ7 zBXgbhs=iFQ8{TuiY`Q>v)o{{YtGiZ<4t*L3%Vz^QsBdvxGM7#RkSec8r$W2$dorWXg$CEI{JPXY<;AS;z z-Qibf0hXP^#mi+zDE=riFu<)nBRYk=HWr7 z>=a&p`>U1q83In75Wl$H2--Td?dl(SnJY&;?@V0pqXd!!8si@J98vO{c9uIc>z(yn z%Z|p1Ad6uaK!E{h;fHeGP1qe4c#q?N`Z^(L3w2ONvBs2#93Q1Ryh3=_nrP=GQ(QF1LHMHl2#xRqgq~M zhwxSTmbJ6CRKdQGj+(U4Is4+e>CJLgFC-r0G}={?;j<_yGmDtOorfnk{TTsGm$PY zD|~^acMS4w>ml_+;G@kyUYqmtv}}l!R4G20*m_{r-fy_F%jhf344+jG!EgO zoZMlea*FBXeTG}P1g%RTf}$CQ=)hi|FGpmPep4o0K=zsPL#4mKCeL1%yH?P@a=YZbPz+yiDO%*`N$QTh0fqAbqP~2es2+Qf(MS5o@^=!72cSFZN@C zUI~cbGuN8fTlr|~jC(`2rW_XvI5?I#QE4h;ZqYOyq%fd=tI(u(x%!ZcK6!7N>#kGS z)VMt2YiLW{Z0@s{K+;dJzL`(@^I^ZO&|lgVjCvgDMEE7pF!#0h^--56@aWiYeIhSf zlwmhB5LNsZO`UM=byH{O52Qs?=`diy@pq>Cpg>7HIW@gV zY~@2G>B9uVa}@o|*H5)9ZKAW}@ekHO!QF z(UgA+#ZM|}3OQ!4zNztBtL-Fxz}zG4rQRVeEIIidAxBCVtVP=Ge`AHn7{nzdYUEl=GczHKXk=$^}-*c$$sMml#h=?v zS6PbZ`=gZ&vQ9Q;R4vwBl$CivQz1Q+bjbaJ%&~9mrcR9Z7|*kI z4TKB>v1OYQoml*m#)nVBC$JoCgL?yD4%M#md{r;65_Qc7M<}~8X}R+Q$K8l8Y=8r^ zT-?aPc7v znoF8-;1He6v-ypi_=^)&hZ(c;ARopXzcJbJUgjr3v`t5ss_h1PP}6Db+aU-ic3M8G znrXNrYFPjyhi*Q`JNhWYx$Ibh;k)oMINE{g+wa7TiHTm3LTo*Wqgk@9q=xgd9weNOA48Rg&Ih7?o$m}YynYkWlrB_=1+!!Z?HC(vfeFzOlIW4{ z~LF>Gp2q?|2=jk_$55OZPq|#ikQlyFt*`((aMMbg{A2HCCe#v}35I|}N zuX~*KCGsFr04yV(lHn}8q$5I4hTT}Avk9FcJk3!~HZCbKbDozCmx?x-JH83R$*;TR z0Xb}7B9NaZ-Ij_eAvK-|Mo!T-;LRE_?owO72Mgx&o(kGu_ zC>B0$5)rGYc)093#S}_pKU|*x5k|K6BE@iIg@VPKsnTAXpdk(JfEdj1m!N?G)iNjT z%7uAVugd{sU(8;4-E2pK`*)F=L6}=oXIiSa;TcauY!QbPM-&F@(wOD2Lr0lwQ<&RtB zssc^6cPPOX>C;8cf-jdx`4IOW9BwY1UKi~m27K*#qHwU6>+J-*(2DwZJmIk9ejT`Q zr|k{Pq+=$}S&qDbBz^s82x*3-CD{;v8XDN#@(+ih@t$>vy-I7ENwp11`P{|8G!OWf z3i@n1j;EO1yQnM^frs}#=A42dCHh^S`H)(KCvTE21O|=y&00;_2Wo7&?o*U8t7aw> zuKR;Xyl2qwBqWQjLMWQ8Kxb3O4fQ?50po87EaeHsYaFgh~ zfvcIC9FoX~>$lyb5T@bq1VUH{jF>eZ(G?h2k1~X!$Dzy)K*X}2HDZQVJwB@wk%HF| zE*ZT0$ytvTbL~pCjzHVRP5jMB?Zmy`s4E3;S8@4HuX)rX!-W)Z7j6`4XU$UoO%L-u`767?N5NIYz=U^7i{j-I_Cx8E zoM;ZtoiQYJ4X8g2mHC!>>^cm1*Zj>-lDvHEy-)5bowc_mN0g}-!}E*3nML@7QE+O-X z1ZRb z{Q7;eUT1)db3iDbVV-}~%MAYUiA2$|pLc60&E&3!OL=-ymK@ycC7fGXc_)0*0481n zNUPoy81HMEQD|7`gSZD|n5(pHPobs~?z{@qUMuWCmO;CU7WfLWFEiCoTg&>xR<}eI z`dylD9Id`}QQ!8-$XBO-&`Y>vD2L8vQ*xli!~_HWE~Os-Wu~nrpEY%7EXGt-O*43D zDQ00juQr6tEb%p^l(l`@rf-0)%2ii+bC+$hR82ji|1tQ3nq_K{E@$xQuGm|*?BF$o zeXEE$-3`YlbNzb&WEC!B9)9;Aj}i;o^Rk|+u^k~i4K*&}BiM5WMejJ5)dtXViV>)k z;2E->Q>Xpk=W$P|U51*X*8jAOQhj{jcG|nz+WO!h+^tv;2 zqvTN~Mj$;g^QHLmo4BVS7`|gsigB^pVPZVt7LiT-5(vRwsBKzEVk~>*>$BWY#?=?t z_A*R}J{OC$GUPm&labEKesV6&e?`Nk9>2^IdMIz2kzhBE{*!ihLV3R+yZ=&+)mqy97JjD*=nOCBvE>gaBDJzr80GC{98c zsy`}nabI^gOion`*FSYJ+?R1HM}#d{(=&kJXHHV^5=6n!)0TlLE#TPsc?7@~abmQ} zZ}vN*rX~QQEZ;dnf&YbU@9suRJG-%7pd>POwq?Os_(V|RheUzZ8YNVCxjZF;H73d( z%R_&>dAz~!S^i(htF$DX>$zNEOy-ZS?+QE_>Y;dL!}4=@0Dx_W1JpE=(KLc-h-q%Z z1(Byt=L;$3ct0(*a_ZVBsg#3ru@uKANb4?#b*MgG_S45dKo=5oOF_$eCJ)O*l&SL^ zzT+PZ?nh&pRgzc2`L#aUahKz-^bKbDBuTd@_@@?y(6iD=w-`>=mVB|k;!|M5S53)05%DJ_ z7$)PH5JduYbR$1XKgB@yS^)n9$mVM(xgV1l1`e1?o72Q)V{5I$){l51q!h2aCa-Py z;E*-#BFXCF&u!W0=9WWR44&G5D;hN_p%Z=9Fb@aVJ;(K~ppt{aPeir~j(2;X^eeRs z!#G(Ra@oEKU=;4&ZplN4f(jJV^Wz?^n$$2mbhogHmi5~%@|abo+nr;7J@s7^SQ=0& zeDzQz0?ig4h~!8EpFAqmFOSLmux-%UMG4GIDjY#SHrPRBL?0dA^f{z`<{#b+ZK8lM zonF3g|D6J-^8Nf@G3oU06jw3JBuNbcEj#W4={xsC4)G^DY&}Y)JJr}cL7KgJq*|(6 zGQave-Sk&%l0IjS?Psw{pBq&iJAqCQ-NqB1M)cjKH96OnSMo&cXV+lHNMRIYsGnQ$Muq)f=fUxzkvGH#-2Wnq-Y%q8m)M+uZyiB)VGoj zQe7&d#Oh?4yTe+aN}A%Ja>^6Wo>34Ans9rZ{Y{#Du)1S$<^Zcm*B{EuVULE95a8qL$nt8ii-AMOA$T)k$82K68V@AFS zZlFYY!ZK3ubtODMnyrNjV*=?eRu^r*+3~4Pta30y&{w6vy_Gj-czsUNw)z?HXUpY3 z$5GT8g|VDf3U)^7^)ABi@tii+5{R)Q+iJy zmx_!jUe;D}NDriVly`!bLpH*q@J57BKe8hLcx|KRyYdLomk%TP_0++n$utvas6)W6 zsh?M8#ab0MKy{vJ@@{6|%qz6BhCt!*F9K|`wIb91Fw(CW?u_{5f7tzL3GQW1Bj!N$ z2v=!9kcg%^Q*|EXfoey?MSoZNsa+FJ50na@q%NY;7 zOq9c7Xv{ApW0@`Kb1m*r2!?)LL5e&zs31ZR!EC(`^ox)Xds@HZaTpco&l zNrA(spWO2wp0|7asnY@P48PyY)(&r*fVDI+Gtk*=w`C`y0ZE3mk~hG)<0y847_T6w zgU)(z9gSHf0fJGZSfj4$UmVOX;N}J|Tfihv*XrA9^;}M~5ppF?#6?c1Qxeh-a2PRD zaHCU*O<||Q;<@yxELXVcdNmxYd3+)J4iheGj??`g z_TD@k%C?UmzT2o2l_G>nxG97XVn`*s%DyHc#+Gd`#w0~0lr>~2+4prYhP0UM>kMWv z%5IFY%?vYUyjR`N{XFjXefs15>vtT#FR~!v!YohT>4Kv55^51e-ETIbd=oshX)0)N|ZMtb1Zg` z<*b&_I1+##ZgKH)yJ~TqtI!ni;^r+yg+7Uk)n{v%Z!;7_7XyjG2D~(5bR5VbVEZ%I zu!O(S!+~Zx!Q7!fc24eKEoK0Z_$x;X-|9nSvzAi6yIi(Zega^PJmBk7=|Zz++qNAW zNy(ERLE?Z=ssz9^h_q<7+#R8>C?J|0AMSwrL zD7NHi(v*{{z?!;lB@UC(oPpAtr9;|)&Vxd{w!nM18dj_@YH7_ogQqxlnhYLHO z+JW+NhZ-k}*9#uE2nOhJd zTw40bY|;5VH_^v`>W;Wb=msltc}?4x^tJB#jy9L613!Ul>OJ=-;(%mz#|MgbRj_J7 zfj;^JU%Us9t=+V{x&Cy0DO zVm|Ft)91%RbJOifhZm})D|^(LojpDZh!fNsTJSEDi&@5JE!P@&4a5HC0(kdmM#3-Q zR%2J7WA6Nu$GAPTaWBcLiL|TPl96T==>fPlGd2euKkF0MuBf?v5SZ(g5k^G|vj>xO z6VF>thjShrAIe)=^|J5228j6OXQfIb%%9@fZ#FR>%U7aDMp;qZq)$VYE-Rim==ul& zp!0;Oc0fM6&v;>uUmKYb)>hkQ6vf5QPijjCfC&Btc0~)d^xQa+pD`Nz!GeGBs@O^{ zji1@*3i<+lXm;q+hg*}{^?9vOEcks)#~#k&;~`i`d08_Z_w*)cd);^AwpE_n0W|R& zkf2&V02CUNZw4_jmRPwtL4L3JT%*c^uj7RkIE#cbs#iPg1~&PJqJ}`-K+#hL$PUvY zmWJ>gJxvozXRMb2U<5O08Rktd$ctoDEjUEtzD>xVJWP@IKlQ*-o`T{lIl6fChm&!{ z;h;}bd>-@|%j%GaesM%n8SJFjf@_oFhTwEshJb(HdTR@2R|CJM!Sv1d9mwadtT~~< z)aLaU9iMWt2?yvG5)L;tW3a`x+)3^Sc{!IJcz?r_>&IZT*YeQho(u)m%SZ87-Y&9d z9uogh$1U8e`1PKII1!n(+QMGH34rRv1(<)-SZNTXRCK0{gf;Uw@{z=A{Vr&PoKyR-gZ3#;XcA#S-KM_ZM9V(Mh6Oa(u-#d| zIl7}?()jT&=W-TsE&o-8m|wxq{o%Mk0XcT-^S%cHF0<1ghRoh%=N?&_=e-e;+yjUO z@@fCpJG3% z$&!JLdup$ieFq_MExJ^@4(RDY@sJu@#DuY=M9+HTT$L%*3%j7;5$C2F7=jGoep=~<}dK12+1_& z-&#)Z75OfCs2Qk7T_MMOpVKh`$%I0K!w159yvR?A^51v-`OHiz*fu@B*rST1NcA%g zEjB7kJ5U(EOLhkUEbN%rPot}P1u(k6Vn6O&>rv_XSw9+2X9WrgB#?%cZVP>CCLv~; zrWd{xx_DR9a;^fMRmxu|S!#^YD&`O6@xoJ|-`sK>CDQwk2R{z}Y^GLRSnwn~m^arg z<)F>&5;!cE$VL5GOsKL;pAME{c$*MSY-dFtr#9O{0}L!@&cy#LewUTuCTO%~8EYBk zr$-hPitgSHcgh`*3p({77zG3yR_H1t5ZFjv{lc6Y(_t8CMJ55wD!yccz zuD%eJIZkGUma-QCoBbD{Fu>1J&CDPeWZ?vS3&Uv+V_-B>L=|A#`Pd2>_Sb)jgyi%^ zPkn6Q9?$G>;qb>koM`QK<^0BIw&-X8r&0D`Qam=+P&fZ|=0%Zcb^(=qEJSzn;EBfs z2>U*@g!AkuXsnKkvsR^nIeC+=*>-%Jp%Ko-893K;Kgv0+_FcG}Ae6Cho9*&))*jL* zM|Ven)Af)&=A{;VZ$m;yTbnPdUx{JL(UqQ-j`u!)=@<*b8W{#5CrJAOdITXz%}3eh zF>?$}@dD0LpK=8b-Ds4uc+re<4(Rr6xt%`RJsCh;79kIVy^O!tF2qa2$uRTmjYqnP z#}=Tuh@|42^~iiSclwVtnZ>NER@e2)?Z)D~eCeVL2R$CChw#SpkIdViesYtftTtzf z=d(>(Q6?qv;7pV|fl2ijwO_3=NV&qfx<+ry$mTEQ7*7>GbkGVb$@b1-J&t<6Bl(M~ z%Io(%X$#}+VA>d@>L8SqNPUzc+V_$M#4Yt4`RfC-nee41d%xXQ4v13zRdHJ%`_B!c zm!vknMYC3fU! zc9Pv_=o|-vrRUJ}pCkFN&m2DkWOU9}%MTyl*>19f_9g2a0D({bg6f9e_>X(>k6$ld z0eOI(jmot|Crx@hVkcfV5XuE z%hob}*Mood9I#kV0@%_X|7NBM*MOPE)eQyp{MUsz{Yc~JF<`N-s)ieA{$qasK}74m z2WF}>N^Erb-D2(k>2|$KZ^_-c3p)oSdJCB8xh4N``QI(p6M!lps<->@o&S9IAHV)5 z7XK5A{~~_>6N~?e#s4|62)id>Lax9YUVoPITkUz|rs(ptIicPXfY-wcudgb=;xX`& zO(pvtn;vl(Kn&w~crS){pl#rHD*iB_;!$B)L45yZp1I!0@jYg_ITzWjWYkR7jYa%OvE7$lD|>#k3O;i zc4l0oxAD;Lp3v|COx2XM{*HkDA73~!tN~0^V1H`z?=01ko6;J_>7!2zcFz7ECRYG3 zxxsrh*W`ZtL>pkW~>{yREZV~sdFSy*l0v)AdY3}#f z7n?Ipi|aBKP<5{b11EL~c!L8a{*sOtF&}ZJ_QM3>?uzDS8+R~#W018uDUNuUmNbUd zC6y<8)M}gJ-J4U*+>mNY8#l`6^Da=gDUMq2zT1qcfgV!c#ELr9y!-`&7}1 zmk`@9N)4%&D2+wwG2S=Ty9@6;>Gv%F74tc(&5Q^I*Z zaJ@=zF)7WfoP@wj% zuh{Blv&K|x+UV9JoEbI0Rr4-N+p43i=jy=-#;8xM8f)q%V=@*aVebFsyJ>iDU6G)9 zQSc`@Vc7a}(<0L$1EP-ylEP^Z5O;7D8LxOFn#Le_Owxs$Jr^9ZUo3}D8mbH=p%9-W z1&#Y=8dcuy_mW8a2i|HQKn`Vlr0}&r3&5XX=iYaCtiO5qeNfVrlQYkN@JJa=Bn;lg7&IFP~!$^3ci(?{995EEV}xibCfbNb>&wp zeAo~1<=IN}MTEJq9D|nGh^hxj@ua|r3MtOQc*N|q!#o+_43YN0c8|Yd1Z)(m1rWM8 zFW&{>9T+5=o(0;ty~Dv+%sP}&;J{^_e#dZsGSDU^(chqDoX*3|v4d&K*!@?YX-NH| z_bdO!!Oy7nU7B3)#3K$>X2+__eK)mFksGtJ9~oC?Y;h$8S3 zmz@KD={Vyb`^hHSY7QZ4Vjsxx-at zPn&vjOjzPM~cF&}F$RHDHtrGCk6^Y-%tniK*+{KDKL>|a)cNwT&o;z<_6 zZ$$_211wlb;;{D)?I?E^Q2a+*2hSJWA-ku^t|`zWNtL2&Hfjs^^<*r{dt*v$hgh7_ z@}(xOaO;K#o}cdR6FkSePUjv!#PuuA(5-$%)KT-jd*e{;m3OwSP&3f_x5)rzGy+M& zyA?^15)bs$`y4M&w5UlWFEAdZjct7Lb)R^oI?B{%#}wE#*8$ZiX=!L2Z3iWv1`Dve zYqLqzs#-$9V}QcMOFApmYu;K}oji4?r+Ub_E8rc~+&<(kz>Np13$Y8oZ~J2Fd!+D4 zY8K5DQy6Jca69LdzbG<(h$3#S-7s*x6~5Z$LZv7XEH+o6R-0j0`9Xp7c}&FzKVD zf(OP3WLX{H2c(=9?BVMxd9}_Ye$}b0_7?J&FRS*-O@Y$#%`Cb#gO2wiO|-MKO*)+0 zMtlUA1n-e$wm&k}$6+*EU(3mc5ztm$yZXjN_TAB!Y95HO081s2WGH``R!u$x=gN-v zjUD@(bD&V`;L;AeXMFaT*dfR@J(`|-q5Hl9b<1HBf}AOojGA`XjOE7^jf}zAhXo;2 zy_&kTP*Wrp+w5glCS&jhv@J*+n+<>l{W$-9%}>Io%dya!Xl6cadDxIEkKjEi6=bz7 zi_W+Q6skT_M_jzDSM0FUz2Dne$blR@C4l^heJnfHO!^^wo$l1cTtZGz==ki|!v-f4 z3f)KKuruvESQNfShdpk+XO`!uxd9r3H~ih2tJw|pX=84WzLpr)D~^5jwejqqnh#iU zGH-C=x9#l}Y9x1`N~Xz29)@Gb?N`E}!zf?q0C^lhXFrWf!jT|{%guAU*NbE+6Qy>f z{m37yQKahNye9+9bV=>OfbG(J|IR)|&-I3W3G-T_drx#bKi4EuhER3J=!ypyyV_^a zAvQk~fL^m$(0|GyK#weBHvOvI6ZfV<2H7u4X4_^N*K^m{28^`PM~BCxFC)UBr?%f! zC{-^pgaQZEw|{haQ>l0lu!ohsr(mgDy4(@_>M2{|XbD2fruy9F*G*V8^D{JMmrTzg zS{>Fc(}yQqBI5n%4xcOQUuBjuI9*xM-wG?7Wgz2uA42fg>kWT^uC`Ms)2wu}&BTG!HYCKhM{Sg>b2o z8{-WEA3i~$?gFfY%6*q>koOxN2pFRPt(L__1&9W=tU+Rt!WH5r>&E*jC0omm=FU#tMcku)p*uwW z(ci^nI(!0FuJc-zSSc)i11QDzgzrkeoj7eFWD~(?Y3CaAMK@j^ zk5JFR_%4*HdIt0iyo6E5J2=(rDuK2#vYA6>`%ls)9KZs*6l^(EW{3VNY##4e>58<8^_ z^nPXJ{&e1*a#BO~gibD-nR{T1lO|uO(r8D%V$I{Bty&Y!ns#47zu}6~OT#k&(;8x| ze_-LQ&sAf^`%2c;fdw_qR23*>#D}KJ$dMIUoXd)=@dA2?tjv1q*J=fd+kxUq+&M1w zD_@pS+eZ=nPcZ;NQ#h%iqZ>;rO{S0$jXKashyP~=s-%?w|xIAghOSYN9pKpbK6Z(lMuyN1d+@yQEt zRswp`QKS#tu~l-`?w(#KRByw2U0YI_1)sFN#L1A#6X;KJ{W7e+Kk5)GfJN@G&UZOW&evBUucm zJZrm{OKB{PqAX!V96~*bL!XG;CPOMLlQiD-kGG}Tr!_~8Je_ZXtBpyoW{aWgY|1{QII#i-K*XPjf*fQ#B_HIjP zB@dS`D`VNAXj${ArVB^)YG!sz3I`Wkn>p#T9c~oIuU&Fj+|a=mJ3*CVvs5IGa_(9#F)bK1$< z4>6L~n=O%4gJt&jY_eNRcrqz0EPV8%Hk54IqHd8foGq39Q!~T5YQ{V!!Yz|ek;^|* z1Lj3}_a!s2wIZ=sMg#Ev$#c2B!auEH)|-P{7ytb8Da8w$1>=K9rMbJQRtwdP7nMMq zvnL?ys-9|IJwc);H3G{3)of}kX#c%1Gc;h2OekZFR(cK%(X@=w7J~LSZ4u0+kA%96 zuP;jg3L(2Y3-_rYqsSZFH|8grYq39Luaai{S2 zqNElFurHL?`nK<`y<+a|;9@jcC3KX^tU1e9(13}9PAU6ed=?Ya6;1)FIhB-xokLMD^S zwU$*?>sIHc+wRytNXyKk18$L?RpmK;lUPB@2SMwq;0-#?s z;$sZ#ZUg~`SAnz_-bz{CEA-1{a9`go@cHhGg+A-)Z@ALEUp^63p+WJJB_Ngx&v{Xf%<# zRC2wji1ge+WE5u?>Y9)q-2Pl*sJMj_GV0`IUe*vy$zG(G+v`{;B7`uk8pVegJQY7pFFhp&+y%|%+ff>9Exp>(mr(L^FWjJ^d zYEovi`A#a(r9y0ErA4$ExfEv+A3Rb?BlU_@O7HXZo^e%N*t{T5+xwS)bzC3}vzCb< z%yP=SqTMMCzH{DpYLm~BCfbD?dGg%S{7+L5eZPRJTb+klgI~LUQErW!by2!8GATM( z3~Y=xQ7bH43QSj1Sl!2~Z5@GRf2Q zpi7><5IFI?xo*Qk>6lkJi^l1} zW^h23A$d8Z#JcQVQn9ulVE@)i-J#Kkh2-=hBn%&S$&Bptxo$}Hx+CLNrL_P_^b zCE}zvO|JyOG%1Cp{y+G>W7G{~)Crd^PXPX2l85Qf=#SsdJLP=TyOch=&jpVc{`MW3 zs|ar?KE|t#!fFccdxVAVp*$M~)Jly*xjKk)P{^11+WRnCx&Wy*>?KY#y^0NnM&?Qlg!agtmNqSdQhl|qK!lAK~#WupZm^8Owig4 z(kWovRXmMJKaLlF1F!`0W5v@g@cg!crHPWZ?UdGr#ki>Oh8`{pgb-@<&H_g5D}8-w zKG;--i}k1}kHA!1Y|FDD&4RWM>Au|SpN+vQ<9w`}lVH^PKI~N7%#tg+P~fA(LF<~T ztKU8^GJwdoB|OqH(|V~|SCi{J<(1i*CWWRMTh8RVvbYUg3Dc-Qz5Q{;>pISCv>KP7CNg+&}Pw^2_)efCWDdy=qFqj(<=Tc6-N}Anp9pRz0ur5 zzZpsG!F#YGe_9Lg`2$;CZN|#T^9_o=mxaD#HYL9uHdT4zDCrfmFDmI9khkDv))yFn zZ-PHs$v+>+t+%8KZ`?A2Bh8#)7l%r<-@#HZ1?xv}&F7`ne&xv*QVV#$z9>ITEx0`| z6f|<-ibeI!Gb1RM%$LEA?+;URFKIqxRwrga1{$2ULD@H7t4e>fSPFMnG2=vxOSqeRE0CM%PDyIoo0T~qjC!PRfABst;u4yiq6&Z4sN!9x7Jxip zETa(ShA6ROrXThpGSlwlC7lTmPT7~x(V&6b4K##fa2+h2M z4jjohoS9{;&lB7gSImpd(9qn$0P@)Qdzn zoXXJB z3I_5>XJ1*V0&+pb!uTz={g(W!t?{I61dP!v{aG6|O}brmzO1pIV^t}i_N<@{Wk_9Q zhH2E~ePP=XL?tKx5w@_l9s*yTKRXZde&#-0KGMZu16%DdYI;{K2&O|MW@W4v2CDKM#xrZgQNi41_GoxE#T_l2O!de(YU?d) zGH`(+l>6a%!-D~W!$F=p(*+Q#{0d<~;vw&c59`{0s!?}jZN29?j^wNN^i(*Df~l)v zd)P%O21+BxPAiRi!z{|KhPSB(EGFoS{ZZetFMg%k0pi zmsF6?k13tD*CNRKU2)1c(mN((M}OUpR9C(CQ$_i`%e=<=&q`TaD&EW5%1-K1i5**8 zFQiVVy{aEox8ebAeN#zpdI*!PiO)0a=uU^~VU2dj z$5%|U;|`bmwD;!zBl%4s8DJraza)k?;Zawyox0+RlZJkMEb)A`E>?em~FvEKcV=0!T%=|f1g4?Q`l67Elf6N+6V-5d zXuj;SFZC^VY1=XRo|Va4yWDnTp5Mxr`OPUlq8z5DXq+y3hyJa=$N9I?xtGJHG6w`4 z_YDON?cY3g`aN)tMB01Wc4VCX12g*hYrn}F|3Clvd#1qNKg$Pn!LwCgpWnRx58wnf z{{DWzvyy;5d%yMe_ZR$WD3tvzV*j5(ggrZWBtPa)kofN}_%rST|3gXd7`n#)rvATO z-zg7&3(Eg5f#0AJ;7*gdC97YP&wseZY>1O}jELHuV@??QU^8<2_RP{TpU;Pf?2iw1 zUjHXXh_?_pIUJOf?+t&Aq3+OLMbB}`9t82Mb?s7lYyjoOzBn@W3h!4DqvZNWsP3P^ zO%qB*?=wBt?)XsG|NC|Cf4*+T@_XvPU*`VLJ#SSKyVggVi z)+=pTkeu&bvUFWB;nqo3GN&J}ek&TOFY;iJ|I_p{hd0ad)_EaMN;B@ja2v2;aldewR*{4@y zo_oyJt&qP_1(8z+*D~1>%9>dXuWW02UL+PdO&5BRdWdh8D|OyI-u!TVO)O5?xAml> zqC4&^7YJ)&n64sao~JKCY_dF7Y5y|pOu$MoVtt;~;m12=QBn}PIw;YWCZ1d!v^3AL z%0G$B*VMW(0%wmGc#LjttIMG476J41%Fq_tf%fJ7ayeIZ zy=y#Kr8>z_M%@dc6|hRW;`;a-;>39``8vJCMlGJs^zW+tHJboVK$m96oGv+V=iaFS z!66&p=*H3MeL+hp&ayGhYEBW2!v%R`WqcU^{YLHsDq|(M#wiSuQ-RffzU)#>x$x^H zTUDF5mOPv##~iNul)(My-BNC^NCH^&p6Du1zPFCBuVnsYguJ%|UXz6F6m1#~c@SZ+az~ zcBntE$Q1nBKmGXhryWYk6ln$4I4#9XuUlkmO}yXMta09u{?DqD4Dx*xji_2L&52kE7?N z?Ji}KeP^eR#=mQHqd)@StuOgL=;j>s>5!VgUd6@>XXTi?Wt(-m$<3D>jXV3*beHd5 zLdxZ!RKEo*dPzvRy7`jZk-FvYK&YM*6vaE$F>ODht~BPCogigCgMGw-8@O8y;#hkkqnu5^0~(Fa zJ_NJ;M+M(u-5GFN2JC&a`GW!dwrTs$#A?@jP4ynC%OIn>i`HIxw2WIdpLx47B}A7b zmjr#4_M0G&@lvJ27J7S((zR2+ncKs`+hcX8IS;!7Ig2Be?Y%?qSz{b(aj5?+wCJye zj_q?CPoT=&a59~i9}y<&2j9_6YLuTS&V)6YWCYcgoZ6CI5XocG*I#v~_c=WMP&1YZt{1u{i;@y(K0J3LOXX3x z>aR`UEqLUt1^#G`f2E1~Fv5NK-j%o)ra}o_)(C*CkWgZEE;UGS^rs<8EL3xcn3vdS zIvWZIkA6j#?IJ;o)b5j&JT1&`G_ndI`byP86s=e_SDL^3_FF&Fp!7r?boOb?m{WVT zC3Q)aTU&<&>=D<9b=QNz&Kn+MDu{Sq`@n8bGzBE}@OI@QthT9!?PH!kzX&ZsMv(Xl zw0%W{h6&cM^~Ad}IydjWNRY9X#IjBu(YcvL_whb!40BcQurj+?b-)A+ZCnbM3mBZx zTMJvw|I6ZOOjI5LqRLJq-_-SyY4|o{j4dDGWyw7|B57XY!LqP(3dd=O;-p*$a#!f$ zipET|FuZ*n#aKi?jpC7V=PgP5980)x?4if6|g{L@C=-8^Px zIjDP+WuGfQR{OP-$x$DdUwi2ic4?75A2yBn4y4%h)8}?6`fhgrxSliacx%_pU16!P z*HT6gm3?Pk9+xq@mULn3bX^q0zA8}xY-ydZKg)1a^W?oa*zko=Y;p3H4$0u2;-#A* z6BDrk$*h;0cHTxEky8@J{X+1mcUE$t?t_!-Jx3c!T%oi@R$R4*;PzPv2anY2R)g%v z6IOYurPrs|Q~e))1G1P2Hp;%|=q{`FaHdoE5B_UID=Uc>4}}SEwKDZG?HHE3UfKgb z9{50g&GC+Uc(=~?tNR>bO{21HNAnE}J9?T=B{LaZxHxH+(Sf?5)C6l-m6qO*IRTY= zALrQD&&l0<*1#33T9MPs-?OQZ+9wHdePlJJ$>$bft`u2iQCLIulEkr)BFY4pp!(T@ zP6e<|=0t9bdCB#3b(mFKs%RDDvP}-CdNigR-lb4*E_SnN=(g%}*M}%|{|x(>ZMRGp zW>Y=p!sFC8gr^kRvT!H(njUNJY-vm8=>DeeFMA6q^#j*k{lEA6%@8h1$sAvZ{y5?5 z{i{~}(~Y}qzq{>3ev-UPkMipc`uuWFOsMUjQqb0om zPo6=SbN{pu6RXD_3^WzRE8YoZI6V%~30FPlGyY`+`p8ivY zAmtDyscZvRk66$$j3|EEh)xzAB6Z96pyu9ubbfh;YzQL|UF15`{fSB{xt>+=vJ8)L zmi`Ebsv6@^K&L>zY%5Zg)e&TH;1YT-CS4^~@nOG{^xYot0_vfN+Rsga+r&kBGZzPOWbp-eut zU^N*Q9Mi<&fz=M;L6gkbMqf0d!n==`svJ;;M`31R^U3EO56ReU2|+V(Tnav&0#^+I z>NEd?<91k8M2u3{T^9-h?D!HR`16K6`Gx2MhOAFHds;_rn<54(^klT{lUqE<LDnp`j+oc-q}E-Y4pLC1-rE{`uHgQWYw&cXHPwtHhyxA z0a+YD_PCB$+J1B#8frsfgaSInZ*AG8YemNFeft@<6zmnwE#CN$-Q{i8YJ@BF4pSwO|b1yP<}?& zM{lE7XRjY5vrNrxMdQU|64@xkhDa11$e(wBwQdB`6soROfjWiv1rVYHao>nq+9M<& z$9|4``~@z6y&Co|{-vN&3+lYYo!n|C{ZYXbx$(16yxp&_I^X*97v1T{>GN5liq(S= z&ND*F<)VElFH7HIA7fK{abhn8#H>10Oc=|PMjx&haZ-)R<|=J#B^d|j6hj8B`w`nj zv8q-6k!EoEX38d_ljYqMQaK@yy!hVvRFZ`4?e;_o3CNh`g}d(gs$!2Ws0J+6TE4g9 zP%U+S+;Z=+Pi+T>hm~%ur%WqGtp)AZchmMtzXvePa)p*LMrsRvr5N(zk%YpGqLl0V zkult*BIskjvdmZgxjl)_4M@`X!Re{+l=xBPI0;aZNkOjbQ@)i0h;Qpfu!goOsf>i2 z4l`Y5tJI#-&v0A1YPWz0yUv)lQ2Ee+*Th9W#d~id9`6*b)W@!|tw#rU_S7!@S*8Bg z1 z8Ctc}G1LL_&wEb6l0Og}xe1|0odVZto412{1yyDlWP?|L7Z;5Jyu}uE9b_7OQM{DAxHSZ++EcyaEJitc_MFYe*|JcH165K{Fa zT)r@`=M5>k8L`TY$uJTgYKzZ%`_RkK&r>)4t5BImLGEPF?Spmu|H3od@a#@?ElvqZ zoqn6(yjw-l8ryX|bRmV;J=e+IS8Xfs4phBM|4P7x8Szpp1o2)hm|E_9*}Rl>vpD5N zsscZuN46^tgU+)|SgCOxaDmRI(#ID!8pP)|7P)4Fe6hjh@48-M7cIN)D`={SgO~86 zhup_G0xz&SZ=qNrh%wTek4c-bi3CTUCO>R3b6mo-v_XjmglcvTdflZp>#9eTH%($qOwV+bbeA1Q--+pl zf0qUs%SIcnQ@!v_1JFYU+JLG@$14ZNMqjY=q7tFBDrGJA(vz;r0Qo3?Pp0n88#T^f zkSR-u6Eft^ZNG{xXS4X%j;*RGKF2G33sThKp1$&hW4`m^M+Y_J6aBk)g=+^66^_tZ z&OAz#7*{r=^B6d3sZ88ZW#;fM@|y$Bj7VkHOE=mk=A}EcNkBHZvC4aex3<~2A89#A z_X-aRZ?i)>KP1+#D}1*@jEjk8TcPKb*Mli{V(4^P3UN>6dgcS6jRMVW+EXaArOXKS zhu9zFIdPs*@BkQVB=jJu-dT$fI)tLW34MIkzKZ4Co_`sVSn3u#+YV2b_obfFwili; z;KU=kMWRvY(lUFG-1TQP73?gbrq4(OxZV|o0rz%7X&ZaElmg63>8;%*nZ|R={pZJJ zyY}Y&yV&rW=Vs|kH(mHfhGl%o;y$0TyJb+QZ-cubGr}O9Pabp;zMn-BI8mn@^5vvg z45p}=BpAdSQh)V))gO7Jj9qYIg}3mr9Pi4{UpBdp)1t3udM4XE-jWB))x zyI2|&VBIeBk76CI6weK!#h62-Lz=(PymcY_Mq`(F|FlxPwV%J&caJ5%U*Bn)5KR;i z3$E+le3ROJrU$r>#N_VC{XtwDw+e!7I|IfNwf6jYeDN;vdirr1=*SSfcX{G75Fo{Ddv?)JqW!gjaOk;z-`#x6 zsct)@>NYNTv2B6^~7k|6mrA)tQzQw6S*#l=V2PixTK71Y|!Ce zXNC@CeI?$WZ;B*^9{vy!{8>AES;a8=Qr)5=Jj*JUNQ;EqAu<^eaiIkFk%rFzGpO6u z8_(r1jbJ^uEUP^eEe3li{2>rw1j9L!x(2tOTQM#(VygRgaEt{(PB0?OmzAqKUt9Cs zEV*=ZNs%^6A6D`jSz4lcQlifu)*xXs)Cuj8WDM&%fg()q2){5)VIN?hx@AiU!`@G#Om}MEp%n8 zXJZd?8Et}iN@(qil*shNa5ii823t6uXU5X(Et;JHH z;Pm;4T)u|Xl~Q}>Tk7O;fqd-j#ajAuYTJ@s)pi$m*CDfQ;{ykRcXv$%pj}%_@mpbT zhjGL-ZD4B&OT$Ss44GO*m+`A*_P2Lq=m)}wadfg$kS}fS1QS`f%{W^-l;^C091=E9 zhjyKYFzWq3DsYT55eD08&q_*c5iJ7XcA;cLJ^iiEadkTR{QWK*tpz3wZEt`7xicwOLz{%c~ZStFb!AcjJoh;m>9e_!mZQcs8xe*(5N1rFc^1CW> zalF2TYEv7MV}dG+8Oylr@UkFn==7l9Dy9%~uRVC!(TMJ5LKD7tO+TV`%)X`_1!SL< zo}242VNHq-ctwRyZ@Fo5q!r{r@=nEFrU##e8 zI(Q{UP{Bf|jFE*`o4__|o))`fq5D@d@+fwV3Ixa{v4Y;8jzA1ERHUpJ!+Wi#H&*Pw zCg{9Ei0Qx9ii{nmeSb{%OI}<1-CqQ_xVHy8N5}4Vh!(<>PrNzzsC7!ue`sVf0y;D%$_ud z&F@Z>M?N6^Fg74+r`?vI_Oi>1wV_UQe4TS1zwl}gJ6HQVE$tGNguq!VFWYAAnrI<) z4gNvs7f%M*qQFB)T;Mo|KPxv=~I5`7A1&#w?T2p`5Pjx@yqNd<=58vx|Bf@AfgIl5v}5Rnj>Rv;LXHj90a8>>aM8d1B!kFiTjClNETpt4L*c7wy@%s6Xe?MZ_d zPx4DyCDmWa9ckfRh=?lZi{dq|W*%u&Ths;363bJg0PycAq_L++>oFIUHr6kkI)Bn$ zvBL5ZmG-3<>103P9oQxgBg1eLQ-Y6Lo{gHfW z2kK!{E6(E<@R@wei#>SZ##_bLOiFBFLSsCoYi=cD!>Ozoc_7V)hH>75hNJ?Q=YC4O zm2Q!om+9e^$pu3_Y2OPe8?Yy+HVtK|w(d1XRh|vyU_NiWAVu5rl_?*&pk6xA0|38 z(8{@K`<<-^i!x*vt#n=lsZ85b18x}biTXJ{@00_VT(MT2=pItGdfhCveyIT*e{Oj; z(`5>aUsBA}RS^MVL46+hvBbVPL+8g&R{P!>k;ceoQgK)6ed{B4dm0q%0{Uz=0|>lP z>IwG{yquSpng@!ntID=WBhS}%w!Md#RfE7BJm19aVSEZ@aL(=8&2OktYtk8{p8V%L zqv!3VRN8Y7#wKsW3kmtt=5|3jTU!H)_^!Q2zb2%WgW~N;V+!M$ZFK0>=!HZQAUbnz zN65OHK9I;OH4TSzQS0s}DJ~@_zUIjDb^eiY1$Z==-xW7LC^~ z4Oj>dL@2by1LDNXed>7C&0Lt!C8WA(p~*Ofp|nK>9Pj|No7m=;wt@Toc=AZ6Go*Rk zO_BNL=$`2?t3FG*=MDdneo?1!?K{jdln2aU9;}xJ$_@sqT3`3x|GM`&Nw%v~>UQ0$ z4@Sw@E9|ac_BxQn1=lC?9hf-|%>3d9@Ea68K`XuFWE^gVwViUeyc%8*IY#MYch0l6Ew21B+G2t48-E&R3U~C-hbaFpmA;Qw|v7^#6G`= znq87j5(Yf+I@~I2?P{paaJ&u#V88=e$LwD61YmbB*>#Mz$w(3)-VILnwrmaXSA>{rR5!&*Z=eC%bD zEt1yyvDd233T@WB6;=6l?m>V_z74wj#9LIc<+q;!5Bf*D5JuTx^DsG>=Yq|#g-he= z>3U_hyq7pk;Z{|}^3Kg&RM)}kL?!9c!w6?YHv=<7XvHW@yh*bxrbLV>-XA_mu6RHN z-%ADg`h9K3RB#>!)XeBC=7J+lA)E5nzXEv|u5`z~Os4MX`D~R6>7RjGDYR!C){;Cu zMjjClu0TF-5Xi@phK8Q91B>jZ)(CxYuF>L&5BE*LR395DmnKz` z{~I|zJH(R^`^M#a5Hej$>e9SnZq&7g*a7D8XINE*nR% z2QPz}4=KH0h5sM+-a0DE?tLGX5CZ`V5RnoAX(g)G?Ki}nh&L3y3v(8zcwPvwc%rop~_H*yO@3^k(p4_!Ce)d}k z?_-&eosm*!OzBd*ghw^O5PE37fxX+4Ig(U45@p!)60Kp>f3 zN1I>j3F-;~gsUB5N*7CaPXR1#>rKZX?In>A&X2a*&i?Hq2jqc*3P>Fp+x4nzR)_a0 zYb4SQ$+}i(@OUx@z!-K=_s-2^}c4zIdiM&7W69+61{ljTxb8iyej5k zShu=XD5?F?uohKZyLLH-IphFH*OQloWWQKTs05sRs#EOE2PQ-x9QgNA&ruEfHads( z?RO7bjKemM36tVkhL*8#~1`)P9#4MJl zk4#oVzT@NwYLs-jC(6)TY#G5%Pux`-;hk>hw{K^ST;ASur>jtW)U8pmySVF4!=;dq zi>fZ{AD!~dRB*z)vJ|)3Xr|d zg^eeh6`oBQPG`fg40|W!_#D!i+Yg@<*}d7DH8O{HpKCWb#*Sv==BCpQ{B_;j{l0@M zIbQs>-*CMVVLT!B^QK)wdwj2_c3TKY1zO^w@qVr?`38zEQ2Jrgy-O!8`NmAOFIY?a z)Pn?SM6kT9DDt7J)>awiINGSAIeBz)DE$5d`=#q|T9x1P$bzlb_DKX*^Fwz{#d7(2 zXM3SH#^_u!N3;)M?JPRk6{VJ^J=0cG=e~hZo30e=DOVsUDD8_SE*hrv%vzVjo2Z2? z6C~0;qRb?|#Q+G&ELn~`?9isL$m%lmTD0>Z87{sY2i}I@oQ;j6n?-fpGn78<_voYr z*-uZ)Pwi%rp48aA-`cPb3l%EY0G~y@^%ZtI;wWpnl{Hmw5PcZS7AS}F90!tGSXwKk zvVZdEsY1TJQob5280I#WjG1%4kM&hXtaC81uySp)@{G>O^E9BYZM$^y$FLxL&*`?F0~2>`ln0RU8;dzl@%bOVW0d27PFoi>zOzXUJ2Cp@gG?H!qr0><#wmQL(V_BL%YBs;o z7LUndWN)8a)adO}$LnXhK#hgX((i#&opvfthv11zqJgjP%VFg9szKL02os#IR@#ETMTgAu(#lBp6-wlUQ2de9N^y}?Tg zYff76Kt_OFkb>Y@&1ftR;pFX0)wmHwV~s5H044?Q9gOo~kNWtUS%yjS_z%3wq(0f>47~zd0$yJo^Q)U3DAP@&Syf>=Z(x?JFr_;LBsjt&x z&qt=|#lZ&WWa40MyuDTX#V9v6$FBxOr?TXEryq8EB4V5{c)S8W&0keo^IhJ}?2Y!! zKJS|`AbV{A*M6^&(FAcqh67f_g1_36ybWeC-G)}6`t=z-gk`u$cn8EavQzV0HR%FF8Goya@=XzxYKia z;v_>J{h|qCkb&>9HS`l!egQG*sTH!joKx6$7b&4MDd2hbf!{JpW`)}JXm_!W)krG(y1=7FVsm=Uvb1GkCX`b%p-S7BU`XJxk*ZX5E)(q& zB$?cohrVCOM-M#zH~XUhysT-qw>~seqm1Z|#6e3fDfg7idl~RkHFKD2*M{3pfEfEs z{;Lf=cX&;A;LgZV`&4~yL5-Bm){8F2@eS!1_H>WEMt8;YdWPRj40)gEnu7}5hLuz= z=K<5~H>K(~J|2((Vd5Yru>?T6#ccs-ToFq3m37X`=`0Y#0lq;bNK5w>vAT@Jsa3a| z>umPY!f3IMK2keNSHK;TOk_M!0g6`2J4w=dSuKaW&+dBmQFZB><1`?o`GvL{ObiJ= zie>T63Ixa4;bH{R*Ua%cZP0`xKC}0M*t}>nL(MjW!Wkk{h~4DcQfzruvYPKYLM!HZ z3t8gLrYLV}-RQBTSJX7}Y&~wB0@_53FFMCZ=)bEo##nJEF&Jd1jDzrd9A!l?=uDyt z<^_|WA{Uj4Nh5Y&qY?kz^@@!_gYj=O`k2T8ufC7>a7S0pF7F^1dMjK8G-RGo1=7bh zqzz?h=>R~1oY$j7XAjmM#=WM4>UnN{(tdObWy;8^Sj3|~beKJai8hJjky6s`PLg|B z>av=l46$kxLYwbSN}e8gX?0~1PShUo^tI|?E;#ADcMJKLEzjb9fTEOCli5C2mJgs0 zFd)_)zUKHs;!fLPkIF@)?YwiZdhASKqvC@AdK?kq2FzCC?&1wkxq|A&`xjLS*OcwK zjlHS-_6p+N7SV>y8BYV`XqhC4#E?jL=p03a(EsFqcupCaE66}wJ5EaUyb{py*AE7Q zm;IBX-;ypbg}s~a_71vZ#Tw<6XP(EjTb-{ysJ_l~u1&Tc&ly8)TTY|nu@b@XnqC*b zJHjc>Sj?iOg0FCjs2&nASiQzbo4RPd)C{N|w-(g0rSd(RKKR}qE*EXZpK!ql@+I43 zc+(g>R%Kh-ebshpKN__qp9E8x-S`x2Y*Y){KPfxduW>}2)|UJT*K9~|&x+7VsWG2p z7cyh~Vq-{h%nr&}!j?Q8CcCc>g+QHMRwBKFbjb?GqGR>)&jE}ap?Sx%Lo!~6?@>ov zup1-QoOky3XRJS*jn>I!spZzRf!#rfIB=Y#nL55MDl?Gm{HxcN!APE7cizwqYfE)3 zjb7sTSI9&a?=3XoRm54(v= z44UCD_+Y5C7Oy^_H*G-;kuf>s8PVvzPw!5-t?HJ z4KCA`68P=dSI7g{`c|z6jldqy!2P}0H-+6=FFEN+hGQ4A0$NLCI=FMB?+p5m-Q|5l9BgD>v%*h6h8q&Vs-$*?MLWcwm zbT{bWIJ(Zud2&f=$r`BH^B0`|?rSTQcDW58muw2tsMp6;_zoU9Z*5O9+jNS8J6 zO4M`j%jTr#FO{5TydGNa*Mx(I&Msrbb z`yW(S>N`NB4wFsK*Jhm~!$BD>ljSgNYIsFnWS$y(t$+1TaYRZ<%vdT*B9^d{l2-!pjYg8ajFf;;yeAd`jNc2;?U+j(Xr z$Ua^o%2E1tZqg2>)x6-9@u96|lUo8@|Nd>LdZEkrq8B@wxkSV*&Gv*pkx?HSQhK90 z{3*O1GOB>6DSF+OQm!chF5^DZ!>@F$;_;oqe|qM5Xzczj+3B&4Qah5utjQjNX|7-fTb7+uyfM{2o9* z2hONTEm~+6ZE<9ux`c=3_Sa^P3{d7Lg4F#W0u2SxPAmP^YQxOadt@qf%y{fYI?mbXqb6I&In~=2j46!IR6o8N@Iwgu@>M1A zn`mL)eb3UWxwcnxh6n2*^IKn1Q@lJZI^*e6@3MN#UQBI$ot>Q(&%EfrgR%Shz19 z>!f%m_3v5(izo2?iP84=4#aH^*40kG3^|w$j$iiv=7~xBlP3pQ9gBz$09_UFc z_Qbz(zXNDN82mZ@ zEup1|zb5W~UDyu{k;**!N2VEo2=H0Gnq)8aSDyLjYW*K9xzB$Z!ha6+QV8I9VfXRS z{DDd1EmQ^!VTxPvKdbdWetSp>EMCmz_}l+8>OX&@R0oDAyR7k_L;s$RTL3JP48uV# z;D3GpUmv-7u|JHzWB%i}yb5p+gD>%B{(iRqagR4Y5&=V4HWK~uTVew?EPg5B^*=cX zf4k-Xn!}H$^ZyZZ_(d@Lc!}=MHX)JsgJ2fwu##eRhfkmar4rBM-V=b-wc8N%e9j;w zo5af#8S@jd{!fd(SY=ni4K$=#Jz?~qqlmB9{`dPocM8feY?iSB3V?};!{^uAHdB7OoKlT3xk^a8DUsqD*0ozqmN4w!4#|Qw%NKj=v`BM{s zs~_F~dxa`b%#A-zXz>NY6&~IK2`Qvt@4D8E# z3x@1}9OFAMhFspg^FMC=-!AwPdGRv;&_@0Hjf7qx)B^}p1^@WK{%aI}J)i%d8AX41 zcg$&kM~$xSUht#0eE>vImek1u8jh6Ux!x$7DC2;Q727hhb2KGt}*ss}q ztgYm>zx-&SGwM@0!4(!AA0W{fmLXqRe(4V40Sm!!w(GI}R@>iJLeYs-_?e2bB>UJ8ewF9sb#^)}ojCF?_&$5-%Q(#~`Y$b1i|BCgub;^Qw;ZwPg zpO1|g%8E~4oBrus-6Fi;A*PRr;4Q#6N8oFH>=fs2&XM;I-{3#qPNsR`_xTCUYjgKG4I^%Ng39={(cAt;T_1gl4;C60=!B9^cHDbh z|8^`yXI%Jm&kMg?S3(z|z2l!yl(T47g=zviAJ;tRTSL$c0I@GBp2z;9C(|$8Wg*4O zWh{=3DMrY50X0Iiwc%o&=Uh20Jd*&cQNrh;(foY&>oA_zVqaaA^Bo3&;QipL{TUGPy%N8HtItp=gR03=)s3R*npf8r1W>rq{V+iFL2Br2TGpvGxKPO-JWqw+518!`<0B?40(VR*}s$ zIMlsTZlFMmab-)NTdl+}`~1B+foW*X+nCygd|T>A&KsJ>@?9BT>(JwoN3ND_S9x?% zHjWzOWoBtwamoWL>BLEYzgmxlQu+Wa2B{`Ga5-p={~)xE%}(K63xsbUG^RJj zIXseXpwZ7xiMpUU^~)fEpnA_KQywh0QK&8I1|5(TzAO?r@#+OW1rLLfbaVuP350pl zt&YKdi8V~elgDbQZ~HK!R>Kc}!=QDow*|m|b^x{Aui(#uu1nPrQ$1IZ0&DedFdPD^ zVKW+Ma!odHuC?x2cc#&*Dch0S^x2sl-(09fpiBtgq^9(8Lwe6!~+o_DQmEB|EPmon?aw?RT4iY?1^=u^bz008ig;c_nk z4L0&eM|rLcmX;3XsC7>g0>HLypTf@(*_+)5iE&EVijo0*fs%+Rt@#EY3N;xvp`f3X ztDonhX8c7wwN=+loRuhGQ1QIKEFDr(52=*~ghYk47h<{A(qxXan92acn>18_->^3k zqMcL&;QC7d;P_ZQD3h$vXTg3kgugQVDT(f2rfih?8^-F|btL`kJ7qm0`-VU*+2z!+ zu@x#y6b}dJbg!eB5?Nu|?w@M|HGb|OvxKIHvzX|Gn9dmTxuI;VPQNi_k!czTY{``=3RK~^` zcxcYKM3Sj=U=Fa&_#8R@RV9l{?z8h|Q^nJ*HUJ%RVNPvR!so2g4aBLc4RPWhE9O|m zyTpIfL(BL2VmJ-1;7z<67SbK}$SV8mvZqEhp~iK!%t!Y%o)3S=UQfk5wE`QodVUd; z)o8ETC!N$XzO}l%q=I#hx603CE&EkJL>|DCJy!yHS^g|R{^f~PxnPGeDlnV$B-%gR z-XEL+lbzRu0;u^DUV6p!Vx2%D)&SdVTFUkL9*ythy@{nsyFi=L=H*mA^>Qog)3l4S zwDYDwX{#;3L7wYICN^P167n@F`Dkl9#ws_jWNI8v1qb)f@z^64FIdt}d8beluzO?N zT#Pa@9^m*^`gc)8%fX3xU0Y=uCdt12P%8p*2De=R^rhUm%rO!+?nru@leR#Px;5x< z(PAL4ywq&>X)CsO0uU8%C?l~O6&SVypmvH^$t)Y*F+aWqDa{sIH*$I024rzonagQk$D zWd?;nM&Cey9EtqJnZHOM_T^wS-%!Kl@j{UtiJ5sAybl5TX!Ej4WWSKXdvc|6fwBJJ z#9?KMd%8$aVY1#J#M{8l1hxU0QiUw;M4H2e3ZSWpr9%BB+R(vFuU-5rS8@c;j_z!J ztxdLm2+K!IkQRotTQ<(^pKvX&S<}fS+Fbw#TG#e3Lyz-7Tv_>m5cEYV9j{Qmv|ut5 z-z$NC4GF`;!?w`XY8~=Os&{6hH}JbbI+x(J2;?#~H~i{-bW7lt6kbK>HR}vypcEx_4|B@-x>;Rf}XjPfq7|veIBxSK+OS5j3RH@tHO5 zPXjOX@C9~q=hhc#0peb?sbV3eOXKBp?(H$u?pq2m$0+}Sqkv2#s+YJo@)Kc4>v9wR z&+Sb3+Fe#PNe3!^Eq^_9fg^?>TzEgk0<0nSvh$5csebZ&MA zBeNyG<^aG&^xyM6^&%_r+to_Xb#pAtgzzhyD-}MNd(aE*dy~<7*0+K7Xnb3E<_~oc zkExYzI}1sbwm+gf_G~iFR-AiPo4a4yZ3!`k%u(nR2??mx8x}YtH;&|qJy~eOC#Hto z5bB3~Rc6OQ!p$9HlL^`$+Puzh4JsLxT@{{MPqL`Q?P!z2n8R;m&{jg3HR?Nt!UQad zL3!HDIWnVOB&p?DumaSC*L7>Sp+hI&sg4d%3vR$4)5}(u1Shx$Tzd(JwXG83&MTMN z7}*T^(laW96e_F&8SKSYLUgG%{uX@NY+rq(vO<74Y+HwO0VA17sM!nEYib>hS?o=q z8Q#pD?N+Zgw=6XsVAvHmay!=BG_Dm&A>X@_W1&>Y0MuePKVO@2NwcDk0oVu=9`@$P z$87@cRc_t>3xVmK>lEo+IsV#1%P<}JwjDy9F;uEJ{udMVrv!Y9Ez)BqkY0>w*c)N@hVVD z{Unoc=7$Um-7X~X5&^aby;Fonay$r&a_9_T%HG0TH9t4TTQq-t2jXOD*0qTV919Nt z`Z05}HS0t5L0%>4^?UhE3H;W!fRaKU;M%E`k-KD7m~0Z1fLdAHm)91+pGMX_my79; zm|u9U=Ehk?@Jdfl>Udv@1(91@WXS~;SBHXmGf4qdDts&=K9pxS1#`HSVDl;$MCL2! z8(!#x{nBR@LXI9G<-(D?`m0=lEZS9eD<1CT0NY?vGBsVf`>Qpj;Q3p3wgnbpZI!Hq z`&}sA#YgTE#A2LWO-4Xq$5x|Ul^Ntu||u7)H}Swc8sLk^GL$;D!sgfTi2&btinX9R9bwisrW;PUJi-tpddJ9Ebi5Z4QfJDo#k}_iF}^dh zPLUC36wAru5%xQ%JF&i)M(_izik`iCGQ=3%CKC0G!e{kE6sqrreRusx6aZF%?zL9x zFo)H-+Km-U9)m|prm9?X={NVwWn8VJwCF^Z0@lXoNOvy;K`Nd%zg-Cdq$ioJA=_^6 zSdl*dq@6j#h_NuL2$aMVQnJ4XM5aFiqHJlIBz4w8_5CXgokon0($&^YkNSKD0JO$I z4kD3L?mm~t^XXdv%f^sfBOMipOMp7pA^np6S!x1rS(a^-J~tw3_`|;NCFeN3iyn= z4A7M)XO4k&R!3&rx1v`fq=0OFPFf;q9Qt*38iRi!I|C0nI*mqhl-HGO0nLpLK4UVhLUD7nS_7!X8?`QDhSh``0wD$V24;{Ny9s+Bz2{)i1@a!qq1D@`(EYq6 zIBt5M4VRObzEIL4WK!eU6F{Aywu7rlyTMk-&svp0w8{MoZTm=~A!6Icj`;CRT6YA( zvmDvieZ00l7HZIq=`MExPy}VxbHmpTk_Q!s*DU=sVliOTKpA?B?~@Ib|wSFOiG$A1XL;u-^9tG z=#dAktzM274&;H^(R`^Sc`BCwh2N8l@YZu;L8DP8Ypj_{)vFb~`My%Fg}#6fy4$j{ zOPV9=>0AR7|11mHP?#M3A&~pm7DVjhO$x(vmWdH^d?4?sk2QSa@BBsI*}YK@PpHxY z!81?t4htYs3{^W-SWQ~J?>RjcBE?5a4ThL}G4@3J?}Ci=L`(oUgk_Q~zy^3KajFUL3C6LW z^sZ=63T8WRW1EA_(Y}U{mAS?p$Lxm~NCiCuLV(>KTaE3VV704HbkC0Ql@MY1p&W0& zKU)H%8jxJ8q!`aVhT(yKdk0VU*ADp$X2%1)< z?pDLHE3tF0aM9@D{C>u z2)EkTX%bYlNytf9^VfRK8X*V#Uv*N+TdIJ_6Q|WdylKK*)i|MwCRGT(y0{qr8b!&= zwp=X#i`q1VUNJ*P&vWWBs_VX>Qx-GFtRp)q?K74O6{_7=Cvz7drfcz?F&rlAG}t-@ z)$Hl>lkEoci&gyCLw{)j3~{?ge+?a=uv)tC@7h_MHpiO@yGbW2h^jV*c4gg7;+3); zLSRdC)wuK7CfZvYYhs`7s>FZ~(JrS_(KXTnvHKM&1=REg4kdV`l@fCqy<=QYC)(fl zrWb-9pu!v~=gR_bO@f@Ssa3zVZQ}qo;mKOZuqfuZ_T7w( z{gMU7g`w<0r=XDt&m?785&@6UPEP7E|nR&Mjzk%^EAGGhiPNb`ePp2Gd%tr%^l2P+@-rFRcU>ir|G&7i4nrc z=3`El6-aro&Y@cI7EYCs_Ax>F{n>EtBx3?^#Wk}dfN?cHjM4Pc`kcADJ9`1p#FEO5 zl3nm4EjXko0o~yfqdP*NJ)`Tf`~Vr?o;&%H$fx-slNI}eBUAuu17IB-0E*Jz4fO)s z?-GL`rh|^pI6qE7<+;bojN&*!HTjeBN#pEWf`8BIN?l}O+XpK=npN~WY({g*(2Ejg zCx&yOD&!BcHjbr;;qq9$8eJ52Kt3mbzB>-iB6HX7-Az9E_~-QS%FT!yD}&NK@ngu8 zV5*wppCx@C^dsGlH*G%e1v}{PeC;w4C{BGb@tt$G`YD?cR~PJ7dm?k-@+|1f+v3Zy zva-f(+7vhGHWLP7obD(di9SM3 z^PPw~!8Pi*TTZ%&r~OQ&3e14JnN`33t32m3f9E5!LV|~h;Xmaqr)Pl@8wf+dIX1Zr zbc*k8q)uno-0@}r0NfpT24==}kf!>#xD8|H7^Khqs;?{oHMf1&g~flA?QFgP@Q3ainaurRAN3m*6r2Y!l-UiWocl)p3q{m0-Sluzg&h}fM6}zEho8u^j#&+2GZHM zTLHL)Sv}FLg?sD$Z&vwH67ecBNxX98_&;myHd8?99n5Vm_YYm*=nG^6?v~_pK;dny z+@jLi2*~3`0o}9Q4(G<79qjh*NcE~%MynsHL|-w71?BR!{#AsG!LCOce^%4c4^DtM z<}TXhs&#$+k22iN3q*n`@xdR9{Xfv)OV?rt|CaRs>#X|~xLp7W#(jSacl}kX`u%|= z$%|Qix5)W7@AUVZKmL{sJZyg_y+3J~dN;TN;3H6C5)a-VYlIi*j%2OTAB?bn-rvum zY!WZ#md;e}H_rW^w{Vs6|H-L1qi{FDa2D;a*oF(eO;4+>mA<(Wrcm<*-|WRpVO~+; z8tE^$Z>32~2`h>!DJo#Y4@>)ZySbjNCGywOCGLK(#e@2n)`p)V>K7B;CA_i!_@Yd_ zs*n{-*O%w_=WBqEHzZv0HFsv2kivW<^yk-2dF;nZt#?e7MgDvZ@bPImZ{c!2Vk;Vq z+mwHPeWb&@n=^NfGneYm*8m^4p%Y3TPr$7VyL2t|&#&)yFs=`8W5*8v%Qe7TRdtz_uz|2lo+c5syjD-q4zm=pwCZD8+_pg_E^8quv zp;;CAulDo*j+ssCFe+Vivf6O(`oDMzUW}OSVYK~7$*A>3>$hARQD85~Okn=EhxALi zg;v*x?&eS@x0L4@fPOl{nwEw|2s(%|DB}&TGIcW1bWI zqSl#TImNItknsh8KuD|%&^)q?9ZEDKdGT*YH(KoCOg_pACgFSKcY};jnb~&63B9@d?%n*^B78H=AX_TL@ z*NP0~%GW>?e(9Ra?W3LCLZiia(Vc$rrFkH;bRZ2Yv*ph|JTmZvr>Lz=Iu~gk?{TaQ zC6_A|sItVSJm2k!seD<1bdm1hS5&WYw%m*fzQsm;lcLoI;nT#vkUkbB!(VCA+;0!B zKHNUmCZf2Ja7x^B;`dp@XzgHf=XeR$ytJ#PW(7TWQmc2UC`UPKee87~Lqs+Tp5LRz zR=GZGD>KQWgaA6u*|m~69}OP?4OH9E=LiB%IC-Ilv~s@cY~^RhUuVgdHT4#N#%b%B zJOx1Ab9VE~w#OT_o9U|k!WZfn=f&~!jaOzZqgg?AqEb=$w7{rMSy{^E;99G_O+l9*LZksYh5J8kUC6Zfru)RE#Q6mdywJ^qIXL zj|I_tfj}@Qef=@c&DUESb3`Kr@W)8L!;uBBKyfd#r{B>E<Ha@!fGvB~4R%?&`S%}f}Rdd;_-3frdEH|}<-YsC<6g6+$J+P5_2qXnw-J~Zp> zIYzJv7y+@~O2Gz)=Z+XsG%XnuP6exW|h0g zlCQy8QPH|64E7W;+%6#;$nqqM;jt8cOGNfY%|)*3E96NEd)Oma1vkgdd#@680}SSP zKZY1o86$C4M)%Dm!+9g?+}D|5TAvnOrArR1gL8aK8dsP61sKUQ#L2c4|E0il~u#S_$r)65rkGHQxERUj4Gyn@3pF6Jrb z0xbdLed6wx(dT}q;#G(2gT^1XYp2FppCPuG&?j-$n768&Z!8s-;gpKuSatVr1 z6{SM;SLRB&k18kZ0!ta7j&lWSf^0qdtj;2wnfz| zG5b9LD@9N1sjiI+b%8Q7n3b>-aaR-T`llH`Qf|*^a!}&yhr7IjxMc3O&Qq?Ldux+# z0KlLj;w^L2K(-0^#XEu*m6sYxl~t@T(NNJWzqVIUNm6Eo8n!I${1m3I{6NE78)=I6 ziqYFSCcRorSYV1dH*%qAjT+sW2$gr`8qaoTTGgvu(0l$?{qK4*0Jc^joXhuyts~j< z{$>F9YZP$z!*i0tw{QMGI zdVy=!1Gv;>MZ`>lUz~$G!^zxCE%+)Os;u$6P-u@iLai{fc!8{6j4XMTM z*hlT*G>-W-Z{Sutiy4*$w%Vj7GGv*8WeM9=1kTG7;=0ww1Qhj$6(;9j;=MAui~)^D z>2R^QH|M17o|=$7EAN>w9X<2QDbDGu`@^OIVeICk_C2PPjV8PlC5sGH2+u<;p;%o~ zx%yIRTtQmdx7Qppo>wBExeA}%RjQ>NCt}yDnNx2IgpiHTkWiSte6$oo4|gT|-pY1^ zMoIki`IA#)PihdWNPQ&%gt}YZk;s9v*7rs4LDUpKU#+NQ*^O=OQLhG@Nvb(@pK;YR z8w|_KNJn{xMT_y0@QMuWCni$fjhG)gfNB+Q>C19*c`0 zQImTwWMZBTl<;U1)Am+tv1cCSVnt$bU-Xa?G#*EHNNaA?=ZWTR6xok%LE2)+?TJ5cpP z>g)F+JM6Mzqg}r+HMO&|lQrv(>&tn;d`@Q(!TzHYeNApTp`JA=D(8*Z zdb<RtGMTPehg-%eOE#XNh(ggg$@i5to>}W6-yMsomzzGO`9#?NZXuak z+^E2=8)N%+)IOt5Os=mu9%mFP5HI<}SCYf9>xjNav`DGB$jjk&g4-sR(aU1V11Lz9 zvY-ddp$4Wq$ne^3j#jJ|6G5_5W|ur!Po4<5%c3N78}UV=$HPULHkWFaIFgji zbpjTPa*?eqS)S6!L*HC6 z0ugoSWjR585DgE9?!Huxb+h=+DlrQ8y6PG$uVH0C z!BM#{;rhMX^+szfV|A99NgS6)x(b+A8yL_p`2E)%JPBR%&L(}$9hRp@v2m-S`q^-8ZF+-8 zPvt^BuTcsF>pe;4eVTYh?%+#(^h`o(bGZBpzF<&SZegO?W!(92>FB~XE2HGo)sFI- z>s5&)yj9@Rnk-*)`v+7RQLHLr3=yol@mwGbw@vy!;mst9tBN(4( zt010D;}*!v%i@%mYk*#*X#Q1eb2D4ey!Ju<{Woga>ip+ZHog4L(&Y@Rt{KmaJ0i3- zRIQbJHB@t{8zxD_GOI2JU4Jj}*_ktFgCSHfq@o93B`f&ARoD7;TI@qaN}3 zm5ci!*^umwL-*Et!R_h?D#GPwXKQ#m!e=12eOw9@ibZelE3roifq`qFju(V`> zDQ!?7f>*k&Y&E^h8Fh9U?BeyOoRGmQ+pidjHNfdr5*X~Brf-Rm7pxZ4xq?rUKRA?)V5fxIMW@W!5i{Mn zNvuH{@wH&Bp*q7aq(!+{nFn+#SlG#`Uh~N_v-lxO^O?(07OTO*L*DLzXceB+RBf-5 zn7DoCf8!iE>- zP{|Y4RYcrx=dlxT9z^&?SllmqqpZT4V5f5D;F#BJ^=(3?O~9x6H5e8mGm?)+=Sx_m zL+olfY3&G^2B~d*rW9BO<_p57du*$gse&4LPYY(ZERc)lmzM;W@E%GBo~o6re|Ge! zn4s~Hy1RoMhsYPcueR%)jh?Dc$(wPkp@Sb5S>vk;xUHwXNi4Z}<0JP{BcHfD_V;GP z_p1^^`{gbr7H#W5?+2Kf;IrLVePy3x%V8@vi990hCBu#rDd~m0srr^$$LL|l?=TMj z2|wr|ie!={UZW8+(f%3KMvh(@p({xp9Qb4P&aA>l*3NrXsx%t}T3U7+)Jz|38nxwq zcblv?&gZS33W;pa3vN9Pfpak4_j5rsfbJ~;bwIm~Pukr3)OZ`OlHaY?4J}Ze*KUGt zGPn+H+uGisu8z)rrBLsncKu{aE_sp7b`m^-tg)aaNbf}EAgA4WV$gaC8N$PKd*@!? zzY_2B)-%5I9d#ogUHiCqFV^{?hhSAg>SK-Llgg$*b#u%oJKBQ7FOMT zZcF6xm+8FdwV&~&tw@sRT*Zm#byh=d4Awjs9{KQW@3qoKMje?-@tqfj*uqz<8{geh zSsk*t724%-lS!?Dosy-1JIVgi+wIIVb9ZGE0jV$em`T@eewXpA48{q^@AcT#+q}Dm zUJ>Sci92{J*-s@_3;&3W->Ss;G8J>hdmaJ<1|^aB7TXVPi-cQWeDP`0UJD538$PSJ z`JoszG}=DmwDj(HOQbbe!(R+oMq)RxNIz8F&7t}_Yd~`2-8GK`{5uPa!j+xJh^_uR zjy$?KXH$Hs?+a387Dy*JK9_V28)f!KW-1oo-<8H85$Q44Ur)e>*5P{=>qS>>(!?m0*`N5eD)xZ>gY!K|!}yjsnDGvxy%@l4A66S6D5NH?Vvp(lLKHCR6N=8XQ9OkdOz` zam~bCldMT%!^o6wVN~HN&pp17DVyHm8Y84KN5iARWjd%QRjJV|0 z?<`d!4Bv=wSx1w0z;1s_aHfrNveXE?U9x}j?wDif$qcO<3EHS5Oy#uSY%-@hLdBC4 zUIrN>|E~A=FdD|P>NJ!yDB-kmVzG1CAu-`S580c@Z8^&nO2ARk+6X8kn zOV+M)kt~G6KjQJbJ47~OfxpC-uXO?p8^`-5WcL!?caGq8=<~xB7nJyqaP6iSc0>}D zue6e4_}g=;MnCo(V(Q3(6!IEwy>*37Xif=cWV!Xko&{d?b*l~RBJQomp!PbeGgR&U zgJ_iwfisxB^~PB`rp~*ACk7+J)j58{!&%yr24CNxx|u)vMze;@Ws9t;TvC@;m z2&PwE)?lPjBaILT7w65HRk}?x82*7v=?z5Xum!?n1nT8cSdNy8k8=AAUp55C^RwJb zSt0BSJ^Ipw^BC+RuihSCAh<<6W?8cwV2 z$?GV%>~l}#Qb&QMMKe#f?py6EUn78?BN<^2McH|(oWm2DSWM~%-UZ+{*`D88Ve_Vt zFk&locHYn3P5+i^gsk1DjOP^*Kz4do*rm?x!7MlKv=!|{y1v_GdD_(32{ZNDvpM!& z8(vdQ?vW_O8tiE$tr%G%^MhL}-s$y=oo}D#5LsvqAy1(Lal(;Mo61XIm<^Tv>=p}u zazp@kfd#vP+Dd{;5giHVrUDU8IbNUnwf}Wv02|%^@~dt zreRnPaGJ3`4XEKtkbD_HJ>J|^%^^PjVt?|Eq&LN@sj=mTJNilvs~4Z+`@=!{51A+Y;~Q6=Vjkuve4^TDU450eDasY$PIM!cfM`n- z+x;lL+3};h?d1goIjRhp8Vqor4aNJJ^D3`QnHb^Phvq4?BF$|0bPcUYWv=Jshl*9n z-_CCP4nc~{BXiu z940+U6XSOk!>2}^Kv79az&;ppOQZE>D@xW;?wi)-sZ{b;o&#*+FDmk4%1^Ni+wZ1= z$X}jnkL<4aypuGAOyv9AdRI*`3)&dsvpyyZAJum$r9DKy$&4G3i7#NBcEYm1Gup&z zuBhGRF|B1G7@yQVQfb+HV1v1NlB`|&KzTS#m{Bt3=H zt?9vuyEx8|%s2@95PCh%_Th`0ThcHJ+X>N|0is-ap?b%G&=Wj#Nqvci5+jCc>k^~t z01RRxh?u7z1kuUG54dlC`<|_g!uhOj?o2FYdeC^@(xtZRaVQWf)oRif0bkW)uN5@k z!)CPJR$M5T#^*Aqme;Zw?>N~wRaD%XE z;*J&+mDW-LqzrybRV_7Wl?z-num>_u8goSbtcQQ6#xRh?%}rBC1}#mEvp1Oe82Pm| zy^{;DFK7;Wz#+NhD@vpJU=(ZhDG|vGN?*118XyCBk{8#@T{?N}zHxRrmwc({Og)4f zX4`S4h(lv^?H<3OCPx)goX+U-RSSF*1Nr@emI9A<2nkT?367Ab8>G_?E@9L6_C^|_iv%)BfK5<30 z_ple?M-$4aV2xf0zcRv@EL?!e?Vs#cjaDr>BBaREnq2i4wkyJ*@{>PfoGu2D{^LP2QDUZ$fKrXkTD7>A7Dw+I8~n(81?kE=%3ib|EMAcf z8YpDBT-Gvq0wc7+G7N49XbY1Zk9A^s$zgVy*c=h}h*Y(yGGG`TugRX*oEI4?rGQlk z3*c<)_cj#XRo~BhRU5#f6EKWnG+pN>3f)EBFA(Kg6+LhC6O1#tmdO3AHy*=ELpML@ z6;{t$SImgzq-sNq{iAq9Ksfq7kY6J`Xw0|FB2Z3TjPZB>KZKnHP+i-yuF>Eg+#x^+ z?iwJtyDZ#2xVu}h;O-FI-5r7lcZcBa!QN!wea@|O-+lX4r6?+yS#z=IIY#$C`v1C7 zvr03z1X<|w_1YqGJlbdw@{&hvs=ToaMhKbck3=hx4b?w`a+|7OV9RN4>vdzf8@!) zXsj0~EnOMVX#ua*^OMyfav@7eJZ!JZT&<~-ll~S}b3UeBde6SJBE0kPunJrK9caq@qsmtkUUX zv1aX7wDlT`h`5b>;}t%S-1J>*V6mG+-JU{;|m^}xv|w%O_8WSYq8Q$OMRszDO*m|=XlSiTml|v zK~1U7*Hiu3X@_a%v3zQU7JmYMZ^el~B!sVq7y6AwqDuwgdy;VjFLTfidvviCt1pL6 zhYLB8(mv+7)Ecke=iMQS*|z5G5e$#sEf^|m@(*4D7h(OAQ ziVV_@+lV*BmB#9qD#{ocdIlwLdUKOPK!!y5O-Aco7`n#IpE(XS4J_M*?BLRH^zv)O zo#YK@@HwfHD^<;y1Eeo60lQLwIC>ND+k84d@x`lEsyY`s!ReP3gp?WRdlxz?Fj!>a zGPOap4!e*W915^x2-uvCVxK6utHY@&-c*Z1Sh7fS2M&cuFVx7W8#T6=#}JNcpdBQP zASifi)+c-{)0Jk#nx$6!FptqzjDl=FQ&o{FOkZEa{zuFCV=1elHk9SPlVxIR*&l3- zq4(4(5)-J=aE9D#Qs!gL$~bCRlDx<9e(~M>!X}unKHw*hv;-zKa&`q z?2CjYTeTIOFm>7vvr}J>e=QsqnZULlQM~w^|6z4Px9eYG!4xKiqS@G zd%oO6r)WAUA*FP$kx-R@)oO0Fa)q+2W>43!bMJuFAJEp*LW7-(?`}(V(EwCv6<%;X z^CkcN2IRMHX!Q<*^6_YQTW{VgM-JLUy)xM9%hT${>(=G5mB;qb6{Jx!kFSzF}du z1dQOj73G%NR*Nvi}YW_Y17Uyb z$7e0r(6tz><8o7L4BZJyI?<`>ps6XZ@Y#;Jl=2%w`;Fu`HPke5tq`h4%axyh^Sp{0 z7b8h+*$Osc&E^a%dJj_g#E6N&g#lBOE)Az>W^?kXN_+YuDL)dQ{NchF?s4xOCU!e_N-pooth?)b3Qu6Om2us8JVJW3)(>`me8XLc~XF{D+;g!dd z3UT}O8|VFTGWuNy=PkpSc#+&x-;5`s*rLpIBa!-V)UiT0qUgxBW;AQfbE)6u5l5<%{|Ilo@C%mUL0eM z{=_)Plc<6Ihpu6^qbK|A7Z&%Gu^1wpnBOJ}tM$`klU6@*@aJQ6A+=Qf345CW0kk>v zPH~q=N)C+gAt;8P4sqpug@}`$>?>VP=3BbMlq%e8IGu^qP!xvFBvH$WdK%rT=2@C_^xOguD?v1TRB zZn`CxaJd~1D@Ho5GT-x29CPQDJAr8Okg6)!cgsKzsk0SoiIp`|+}OhjmDUAsYvp2P z1!#M;WM2OvD2%whjPe+3)8^#C(jUB4#AyD=MuBjN)MLCs_{FU*q4mcmk+>M zS##uH{Q)FVa5y9HS}W!5NmPVpJ77&TPlJ_^%*tm(a_@2b2q!CL!1DS&z zUnv!o{M$?WnP}_uz(ZSRLxMh+>I6emQ1S$-d_(v5topcGZCQzeWnLu?A#_jaT>C!A zDZTpsBDD-Up=+uCo4 zp=S=oIYVF=e=t?aBxCXsV*-hUEe8mFTrm&+=-mt`7``#5lWh$7^R?gI+2mrVRGp2M8oBlQ@~Pdcku=>WiUg>ExSwV3({u&jLCj~mH4yh2nx zkS#rt$C{laf}E)gPJ3i*0mIsBqPIi#WjK`@z{44Y-wR6H9=8Hvj;B8Lbo z#if;2mD=Og=Y5=Roa_XG|J2C92lDB-Jj5fWeC*o^ZjyVKR>zil)OC7uk>?%AcT-u8T13TW9M_5MiTIdb$b?p-~pn8-NNMhzxlStVWo{&;jrRHHm<~jIPT- zu}4pT>3T6SyYxxxD8Dy2y1qfX?frd@$#88e%msQ0DVX7cL=jjLA#v%D!N!Z>Zb|(T zn?#zkcDXaH#^pRrigr;j$r+|%!O)MZfFL!qg{A~qhe7S3wpd%9zq&&O2+;S}Jbb;s z^hhPbp$d(SaB6){_C@jjItWvwDW6!xO+?&e0>Mm9W+;f>3ffOx@1R>jA={}&@lsYb zs$g(W&W75;TtcZHc=+1K-q+n8j8?#?j}u7I3n2)D!wDH2om#^*^NVI9fYA6$=#4vW z5U15)?W@5(Yam0V9_5Fg<3sBMk}@`nxwSu>S=?R~x(cF20|+ivVZ{-eP@{_0D4UL= z8{~t>amyj3d_U2MM}rXfaL)Zs5na2*bYR0N^@@HJPtYT#ZdO@wUo%SFFa!$c+su{3 ztvf%$^9ip6y5=(pvO#^Q1Op#L3~EF{Q}Na-Z%B2(u-21)WFn2Rb2A_wKV&;zE%&~% z3%y#l{OQ3u?^itC1Yw_+J{+nh`=w_m@)jrA{#P;hm#OpG*AAd7K?3XCk`mv`?ZJZ1 zS}=XU3vBPlvkq7_(?Vb2N6-TpauG41p6tciVyIaKWV+IV8Z6kbO)J*5t@LDbs7Ju2 z@AJ3(ZB(m39{eUx0o?t%Zy)*+<+Xo28Mb&M4&K5y@lA?KCw~k3P#s|yB8#)KjtHrx z)I=48Vesjcb7Y`7<2YyB8muF#NSnXih5zL-{a5J_vP=nUh(hX#rUyHWk{C)5 z6%KdJn0J%Ru*FL4hRzY@IUm>s%&q_@A_wo)ifsnWohPi54mgBY6*7e*U!HZN#8caF z->q$BfLRpjscw_#BwrhbD>U!fcS=e@Cm_a6+c!Isa`M1Vda{}aY}+=S2fnJ2x0Y>1 zrlFa_*s>y)_sl{-*(+5(h=@URGpuskAG@85FrjhfHAfvgwbBjl;0#>r1S7xe9e>*5 zg6(FX(pw@dmnR&*>RN0_CJ>4TCnd`8H(5XFbRCCk#pYVp(+%+;o;Ek*xU4RGXr)yu zirOaE$1Vv$#@}9Uu_|0&Z#Zf79Ht18L)yIg8m3*O^Z3Vo-tq2pvIatx?Cbb=AO70P z*Rbx=`LgLrU?RfwvR>HNva*bas*b1GSydf|oEF>a8f*1(D`IM?46O2{$2WEU)5zGc z=jN8NDp9Na^AqD4cF~M^?GZDLDso*LOHj8B`(d8ERp@!r+fKNZ1V&qN-eU~BCq#VH z_J~cPZYXkPp?g~dSA|lg%AoPm;Nb^V>KrIzp(nqIA#uSbV&Nas@2V{HVzE#pMz;Kn-K7o^bP_~dhf^1<~@7meZAl7(!QXv6ybShNdtS*v}YK=!>` zn8Zcrx(Et5ECu*9YP4DIcXgJS`#6lM5~#*{%?Ok5{`gSTAct+^rTa+-jVHVu?ioG- z;diA51*M>qs?K}EcdnISev7uw@Uy6oGFl(DN{dH4!Ipz8K>TUUq-1G&ffleOw_qcm z@?E@Xm#3jL*#+4=n_&=8dlXR0%%pu$WT#chmA5?^m(ML}1x^I(lgzA#**XWJxrQ$e zVMA}Z1+;cnax;cW<{e-5?oY=p-+1x5vhHX}19nZyxX_Ju^c`aoat@>*@L5!-NI)YABZO)`q zGPWF#xFyfOn~_TUY#~G;)5hz>`>YykWT?FMte;nMKQ{(>5DGgW>QhHuK@kcyF?c{< zMPU~I71ibAw(BFm!a{DhCtzpy^V#z7s#dLstOG4pSWZasf^Y3fu(rJ;`B(7AZlYZ% zBamU|a`YJnUn(%7MCw0RF54F!{iKUt#F{oVJ4G4xN~Zo)rn{nsBm~>{o4fDvbChP4 zX-+M~6+Ka;yjAA}j0X|tQPdDqU#K`6cmdW+A4oS!5m`Y59}4tHJYKKMeNo>=&LC+g`Nw|n3au- z%bOI+YDL${rZ1~DC-sz$fuIODY^j9e{Zj457?e0+0|;?)4G%aVpxXV>N@!GyPZEUX z&c$<=5r|+V2EWJg+YgZN z0d{t8)D-&*e^?rN!xTNf*mHzxc!ruPnh8=yOtE(#LVI9GDf-x^9aVx{ZQ)*u&dr7!2ujV;9^_f?P8o z$UD0IQ#fI)38kwvU)(Q*G(fp2&Rju<0RK$GZoqyao_L%=t0EitY>);}rAefFDg5C? zi-P6#A^1=uG~YMEbx619b&3{=?#Wf@Y5fx5WdpZ%M#R6W_IJRe*U-y})Nh~!eq7J} zV0hH%NDAse(n{15C*NoeosUl70WkX-XXayv$-ybt7U)dX`CPchus z#e?46%ru+YYzo5HbNd#pt`*&c($stqcFSF))LCGS&s{oNgk}0j;+b*;-MI;+7597L zOHnv$U$DFt?Twub@VGwOjSKy}Ku7+SV-mF)9%uTFMs~1Yd8HcrD{Z?1gK(l=H>~4+ z7d#e8d^T^>Bx85P2R|@uTBtPX$xM_zI$BTtZloiLC;k1_%{@xxG*gOk%*s8|hO~w) zH)2^|l3;hzQ-L~Us*MhR*^j)CB&n%hj2Q34$dtwG-yVlC9%$O}fS_dQA2_F1UFBMn2H8!qeP{x*Y9(Me-f4Sgdds}!ks|0sfDz4*!;Lpj%pjX;0@r6dxQY1(1;?Nu zJWM`=&Xknq6*wA(coOejT7jL_so?*p>_JFq{brZ&^LYop?ShvWk>ig$jzCkd2Y$*j zDkdpiRxj@itm@;=8+o`8zp7#|u5AriKHw3Ti1r2R;m7F(FK!jg5{;hQ*G_CcZ3)dl zv2|zvhPE5C?l#{VV}SZvi=rb46I?C$-hY;scAJ#8Hx{nDO}ck!2Db;ZgmgdcnWe*o z^f=Y(+;AV$A8z({0RFB3VBmqs%BgrSLfns|mfGK+h&FUcmyWt3XwBw})qa_D)4|>n z=X!Gz3Y|YjUf+XU9NIDJm@#q7<6Pv6hBVOsUKBYH z{yZVtRA=B=#J_B?h$Pi8^bWhqA3s~KdxfE={;iz{b;u(HcXM}lZ{-+!O?|W; z3ES!x6-mg0OJ~G2go!@pIHOzVfE<%cK~}nwypmnm1JQ6>$HWGo+jZ>X>M*;ZaL~R^ z(1~>-Ks<_cD)p-OfPSJ`&h__JD$;DsH_!dLzK?SGAq>xYr~2tPA9lEd4mp1i>k8Ia ze~TJ2`j*CSQwy~v5m(rX-W?Q2FC~!Frg_$!Ujrs2|{mUV`31dfL%<@0PmhHsuiwDRQg%xB~M1fv5%y@wzsb@ zO?MhDsLuA)fVN)7Q`%>>0x|;RyC0_C^#iiE{7FyHscx_s)ww;D(S(gwO`yG{;e?@Xlxh+C zoeivgw-)Kb5n}zh8dML*=d4!D6kdsacVr;+U^U$7tr zzWo`YJt}U{1&7@w;?a{G-@1N^g{W<|5>We*aw`i#J6fl(2OWwF7GjTM=7+#WnbIuz zD=3)|k3zM@z|O|}RXI+lV5SK=edR?Vb7NqkA7QK^1$BL-bzrE8_7u!C!+BRaO%$Ra zRYY9TBN!wuEE|tG=Cm`H2ng|$Ya=U5##+POoMh>!K>9j%MG|Xh#?b@Iu7Udal^7HI zm=JbCaGM=Ek7Y8`M-njN4T^p02s~^=A!-m_`!TlM=*!R$)jjnP2cXd&fZ)Jq9GPaF)Jg zKuF2&M-lQHdvPv@GG~PF3z@imyF}-P+HHxNMJ^(=%UrKOwal~d$9_W2V3Uk3ppg)Qt9E#a^)OBAk z7J^;jQOO_LrH2CElV2T@gt$zmP1K2ncK~7kq8xZgbtaaA#X{wa=547)+IC1f*@uRSU?eG z&w`0*OG??k0s70wd$${-q8tcdcuSAZRK(vS33W>PmnF-BuNc0C*!V(Il(dJz6^^I} z1B+G7Yw9@DUK{Z(>+P;t;305I8bctoqGo5kTq%Rf}@APn-D@5-1gO@HpD?shRhm&SlzdCl#MbUR58QdOt*} z*J7V9j_3jnDCVhWZ~aZ}j?en~n-Fhm!V@`M7X%((`h`FAkwqm~3>q=IILx}YH8`<7 zYMVY+aF_{+UTWB2+ta7kgaE4;PgJ)AzY|w#HdT4lq&5g0?{+>j8KQge{uh8U`WYvy z8x>FJfy=S>9qS_=kQ84?d_%dg4S3iWd2EZyKr3O{{dl<4Y<=i&Oo+2UmEXr@G>+6L zaVV_=Yw$Cizfc~@`UfH+1rnBg7Rv%OpXuUl-9Y1~6?)F-1Y9`OVZ7OL?-~8TLwSsX zZYN|M&Pq5?seuQ;uW@WnLyzcG>h_k z07DtfU23B4&M%-`crNLovZ(?CM|^~D{Co>$h;d(rh;@u%#-*Jt>_Lcg!Im6tRcE#O zXRPHJ#~5vRY7G<}VraKtzdi{&o6L$*HtB~tsyL?O!r8IBNlvuujA%&4?_e#$4UW4M zXlN1a7Gh~<2Gyd6@yH3kG4|=nHqD2R#c4c;>c_;I~!yIhi8% zE3iQO!i`&AN6T6-C|`&7{+jMr>4?q@9E8C+r;R_J#NTTCoYfHbsz*3(bX&xBEg#{x z_IYdXvDV=-uJBRH30=qUxmM8O2`KK-e!Kiro9TAJW;nUDZ2`gXCWFDg4)NRA>m7Kvbcq4BO+*@4Teb*Us>tP+9Vb-4uu$fHjs}4?L?@s;cy5EZeTPm; z3ZJ|gDJ#VW`x(``n`!~!qbC9|lSIdf_w3p-xcaz9UOm)U2RyD0M{3lz+(>`YDabkkl8kaRi?@KlYIJunv12PAp&c?>=1^$?mZ`8+Q zel7aNRSfmWCkJp0iQE@?au(YRJPzdUQ{wT2X={}L0+n7YpW_r~`Rs|C zzJm2>c#akZiEjQ@R6G5BJhY{)qpX3YoT)B51fgh;EA+NEWJWitu5?v+iw;KbmJTd9 z+KD~4W4bQfa2azN z#Hx^Y8T4s$lKv2MlFoz~zZJGeJRuh&VTD0R7RH|^b6td73mFS#Nspf76+79b>|=h* z35nJP*_>f8Fij>@7SO#&>3a*r3h6(4Rp}vPjTc2LHa&dQ5PVov#QK#`GIJY=!zJsL z?zySisUN3eA{}TkgK%UHa>Va`^vgH*sy|}CJXwBiXrN_T9*laltVyn|D?)buiSt*p z+$$#pYX2wT zSQIi3zS;=q-dFr3#Li}&9^$E9=s>s00dGzbWl%iM5rCLV&L6^!$T9)td?BeuSOW#a zno~O2%d+2HEM6tP?k~yJoo76p8=7A5g&LZ0vI(=_Um;CI&#v5$t;;gf%g%DVz%zHr%eaxU&ET^2b-_3%Peup5pAVUz*k80wg>|HTc)=# z{7Wyq!mn0{7`uzn`0dI$d6aDVdUs*R_3I|3gu`#S853)oq9&V-QBa8i;TrUDdkupY z2f@m*gHw#eb+@;D-fazc6a6vrv5;l$VU*E$J6(+EDQH^?|KWJ<`F!>G_^G#j$x*q> zE9wd-t>vV1^Bd1CugRiTQaAU8w8oVs6n7|5)pzF_F)@lL;wFJ>yLVS@{;(kqb3`Nr zc>(W?$vdxf{7viJho4Lv@2GEr!FW6KGd2Ar4@7+5|2h0?)3x z{aneUnw!23GnsR=VxR0q9SHkpnGo-E-j(XHETQjVi!v`vd|~`jn0O%)^_UKX1<%Qj$8vK;3OV1US71kCw2XR9RYy44qGs@K~b^Vdxa!6u3r(|LROVpP;ba|H-5< z7nmD}*p30Py5eC@JLT5+y+mhV0@v8@n+prn?xMhXiurPd+n)N#6s1Bu4!~v59 z1mpXoi{L_?G|{PKY2&D(;ze(cKo7?V!?9YT(P{b9KO}Fy?@Xj=TDLy4bDiI!DI_v+ zo5%D(8_ixmTy8+#E!PfzQ>jGY^kqAoNFgr;27;@4Ki_aDIH(kLj&MH*pzxAZmTP?k zY&|z4XIctmX%RTjxgWvBiEI5PZs&Hnr&FAaFFr`N{d(jz9SG0$T$LO@R;RFPnYlbj zD7F8cS6f2YdB{8vjY|f2me|zGb#D|t4R5JeZfpIF;|clTcK$_yEa>TeTCT?IRJmBE zH7tt%&6b=W70L3}D!`2_Bm&10%j?EWoy;Hop@lr=nBNvO0~0LEXVNEdumFshE7ehp zGamBo&VxGBZlt+&v)_v)_IXkm&uq=!K5O2yRtHR#yc(za^G}k2XuB|4@oDVcZfYdD zL=qX?1q8f~$`#(;GJD0(AU1VQmv1ZfBXr)z*D5Ef#MFwfVHzcC>A7X&PLFXP+yt1K zNcI@CrcQd8v>t}Fs5SDlb-l|z+G*jjTG1SmYYh5*QFWs0cjFBa?**=aJ z9i?2NvUd35b+fJNYNs+xxU4RTkB$?u=6hSh&T9Q|-r3qt?mh3R1KU@LG|B|e*G}S{ zo_?u0!07F&@20&9V<%^a03;WZdZ-lNETR@Bju&gh2OqXU%-R`sStdbN64?_k7@Nq@W0yh+4ZQ z`K#;muCHq&QWMrp5xn~4r6ghG6^}>5sQs(gU9sVLSVsd|47ZA;`o*QzP#RUCE>qJx z(I~G;8+_2y_4LG_RFCs7uO2Q9v?<2VOUB*@W5aw->pc&lzT3~@i;9$=_AAkCue~t# z_HPMo!Ycs5R-7&lwG93|%OZq#f;_`8 zx2o-#_v^h*^I3-njGK<>Fg1L?o2%AbE_kP{Lsm8r!sp~8!D9`!4Ka~qf? zE}lA5yt8U(qiz))33T?gB|STD2lLM6b$*P|XhfQr@pN-Ic!bP!f_0tm;fYLRM@JG$ zKLSow;{lK1k^8x30Hc%KM1*f6oJR+*L~AefIp$hzBOR+ zK$jmD+e0=*-3B>|zhOuNU4h&5A8_ML-kT2P%2`l+P;?usc^#`Idh)xJ?-d&5q8d+b zzYnaZI&EA^X?J-v*uSn=l!s`TEw>a)ry5o2Q#(a~I)$ibt=X|a?< z-jgU}9Q{nRYOT)(^ndbJt;H#3>zNH-Y`eIDrw)hfz-xR)Erci3Fqy6qtJ1{Cf-H2; zwm#}myps`NJO&`%|sF&f!yxy<8Pg3wn(`EcY= zxmot5IajW5v!Q`Mr}k1vHBi5p2Ei3|4k{7m*P^TYLwmlLOKTPgBQ z6OnLbLWQIusW2E)s?#*&a2$i2GnF}&&08>-|Fz7-aw5RERsOS>*S(;gAILh+#T4yuz4k1df|XQ%0P&!%>G3Js+nexnXn16_MtlG&{(SdXEW|5{ zSdnN&G7;oXkN}hUA?>XBc?kugArC~wuH+%4ZIMA}v`i%!6AB^2@HaJtWlBP*?$bkp zmZsG76zBP?th`Y(*cg057g*F(66-C# zg~D}Ixg5MZZ8m0c%1+khGrS(Q00&}1f{(BLLoCo4ET~t=XY08^0@{;VuQ?75P3}L6 zH&4CyNOMV-_?Ig~;y)?OWcJ(OJ|KL|LDX*zo$zHESLgg^Xc)JgLrS zH4LKT%n>r1oWk_qW9P=PTXzml)_H4eo77(}J=1g3&KPkW6!cvPkD5zS8ay(Mw|_;W z0@T*_q%YGrpS{0z5T{1*9mA}J5vdLu^epUA1fg@U3f3ViaAZO{{HCksE|vM*6nr>S zLciZPSUXEsH0cVySFXujYt?Zm(9mfk0wj?GET7p=ja`XTxUHg!CgcA!f4#-*+-E&p zs7P>Uu&j)fJhlTx$>ebVm>01D9xV<{SMz#Ixe03iJY+B9xbPWfTu0u9tB> zQ}haeWAlck6NrG_C^)XGS$L3z;|ogo85-UCs_0wgAfe8v+xil8$SBL89*-%TyKEB; z>t`>NT|S_h*ERq6S`l`fX0u)xvQVUP)sxT<-b@BPf|pWPZN zmq8WL6G19v2YnAQ1m9Cd7KRUXs_F`=S5ak*(3`=gC5fgv>hw76&{QY-efb`1^>BdQ zbI0I47;TOcU;Ne&HdUNC&+$vWvGU+)DRAS-y}EptA5Im(S<}s)nyMLU$`%Vy7NJ^s z@d+c~8whv$VxlT0@C6 zH?%YR12~wU@%i0bJDg3?+|W~}x#cnYV6zl8iB@$kT8I%icYQDg6%l+-b<7}K8CSSA zeOCZsksqcOQs|&thgpC4F<8X9XdKQ|C;b&@`kG1%KsEfOjx!B53BN~5tI1M4*?(~( z-Fv}bdAljgR+9T2kBeaFhIrcRW*B?gFw_Gq&}D}~3l!-cb?((y`uU=r@Jy&mI*5^= ztd@yoBxut_u=t6N=! zrmU?D#B~_lslvF?l&Qx^$w!W>Y>}JJhyCDY8;e*W^YxrG*$gfRO1Byn7V6^Qw%wsP zO{C6eW#^MM8h|l9^LfQ~y4q(#_2w5m0Uw@;leFkRVVS%EIN;;v{aFPfF1O@B1QLO_ z5tV(XJreUlf3?NEN_LjG2RHrSQTD$w5(Pd0uOKFPq?>vBE5{|CA>Dk~-#ywh?}>s; zuSi66xA6}^kTANh`V#xexCasXB`I(3H0FPOCEzc+d{P0{-0St`-J09z^~-LOt|Z>> z-eu=+&G9sN!+*fkZTSQLuPJ+&`JWkeJ(K_w@2j%3_&!s#KXN7ov`~S2Vk@gt{`Y0V64`sxkh`@L zd`a{fOXB^P#(A`nix~c0>26X+%TbN_E93LZUMCEccX7kppTbnGI^=vAary%&v8_#z?`c2X696em#PFsV4aa{0b}mX4nk1Jo!*$n-DS+9F z_%JaX6rQB=k{?Sh#$K#dovvJ}*qzB*wrgBjmKZ&eId7iER!qgEqTbyDRH~$qUne{oR0xY8Yrn@&i{Bc z?k9i{dCua8hW%IIZbgI9O2Z%$VJZZTrOqTJQAQ%C?EQ^kQEfp!(HLHc2`F=Vgb19h zSj~!&<8QTCKW@|l>S=Y>SBjxz(u{TI$^@H^XIaUFa(Z3woBD*EW0(+%p#T)nQ4B2< zMu|_W9WaFjr$R)&k~#c6J;_MYc;e1bYzrlLY4P-LcqorX`F0EFl*=u%iKkm${@174 zYj^kWW$sq(Z&fq%K@gfodVQfCeHNfgz9F&P08G;O$980ELouYpcQ+QT13nkKYRr1S z#MN7^^DKF}VMS4hKbC8-+DF3lN+_8e@H4zSS#J2gDU=!07lzTAh-N_^bSNK)BljOm zkPpCBea1$h|Mvpg#{^EUyf>bp4foy2e~#VhkJeuZIK#(8W|P3yjj!-;K(qK_c}?r~ z8!RgYkIR|IEehpc_ZG!^cL@E5w<4{P{v_Y%f=uK4v$Xn-^>T;iZ+Z|V|MPY2&PbdT zyA22}QH52@sVnz>Q?Y-ytDC&V+>S!I(E?C|R_bK*F0?zeaEs+TBHq&}$^*x`6q*gE z@r?-y_W%TrzCa2q?hT;=yMyamU*mhK_s1PxEFU)%c#JV<`b3nd1>j z5CZ1+K9>)%EX0`!LkweBAdhwLN2{8fF%`us0UZx#KMLnaZkgSTJgS{ckJCh*RUS#| z`pRO(AHU`<(i)EAf#>4LF)xIlDucW3b|g9>hn(`K6w7b(;3`lhpuh~pGqnqV@q6wx zNvCp4b-cd#=rh57e40RdU(){b?;hrV?PpNvp)@%f-Y+-745Tl7?SFz$d=US=9QyD> z)b7#WzClp#j2?-;;JaKeNMs=y-yj{8G9g5OYq1Nh;vo~C8E}UV zE6f0p7Lj?@;mRro^}}@T)o-&$TGI<09bWr{8GJ6?%pJXAQ3sx8kMrxEmU38=_5cI! z&_1!FZJ1$wFH83hlU_k#keX?oVZ5ve8N3v!)%lDi?WPj_#%pMLXX>vOcx+SE-{ZO# zyXzee(TfDr`7LOqSV7Mc7bvBM=^h_d|R!;trxhzR>x&A${uXg zHUQ}x{T=EJuxrY$T)azcgddWV|6?0^35SZPz+X-UPBdP(7W=&Z=HmLHLIIsg2~x0h z=PH$}oWfyz>u>CkI%Ard%jetW$nSzqW85-Me~`8RK+!G3_CvmlMog7$jy(VTv~SoV zy?eA!sHL&L3xJg-lWjU5#~W>j>?fRaWQwQuW>1pOw;VeihrfYrCSq%wVC?G`2o9wZ;*EBD@%qc_BvERgUF$T~~qHl{d0`(MiOKkp<} z7%d*Qtm!?(pC-K?m}br|+tEWI?B5IU90A}A+7wfQAPYIxi2q0%fZ+zf zGqw(~%k#^Z=d{uDW|pHRmbEx`(95{Y?_VDh2^qw|%^Niju#tB@Nh~8MVD%~%2}3L7 z){dsJNn{pjP7|FpKCRxZOAXbq?MUrb=x?{|Dgwfq`Eqq(nP%tW^o>|h$<5A8>zPy~ zQHIgEFQ51Bq8c8nITZldqbg73nBq%1vAZ?i7R`%I^|aZgxw`HPlx&)l@Na&Rw=u4H z87m(i1I|!RAx`Dr2I5BZDQY~rA^*->(&?PH_siX_M>)+LE+6>r=k*+`Kh@>c2IR6cO1f1#PDK8TJULtg(r7fJ1ptZ_aY5)Mtv7fiBWi7w z-F^1&mGg}#PR?A@Q-7hv9X3PXx3cG6zpUcdMQ@|dT zY$=;%2MkaM&s!U3^XHF)Y_*ed;R0( zm2bSWm(r6HP|eqZ>r)O;jp+y(%$;>juKjNxkc)K$&Yv>J6GtV)Mlve|Kv<67LQ$L6 z98X`W3^el*f=w^X8(p?2xB6eaNdM1pN&h4NCIB*N9$(vk z6TV3{VV^EX7-Bnr=3N4VK!0|bdPrntYV+dfJ%OYEAQ6RnO}@R^x{2Gl-=ou#yxNKI zYK2ZARpLtRRiy9G`_r{k$A#_x$j*pr=0H5sLA+ufSS)6}4mNb}40z2Jz%H@h+5)TC})buOj<{rYkSGnCvO3WU2&NhZ`} zsi!m!T)0c!Rc&}-nGxo!QEKuN8X@X_=sEmb))y?Ze6U|`Q!#^~np($V!VuprG)DLzv$`4`2rZ}bAtMZk0i%mNGIN`+8Y#J+BRDn4bW?W+IV z24BLi)%jA;pgQOlEAHgE(7WaZQ}AWF!QUYP&~6a_GxGnhp$Ff=pk@L?A;R~5L>>(R zbYfmjMz1*tT;{Lo@k%f0^A%bH!@3J8 z0GPA=-Kxt_e|XlubKX6mo%{qG#uS!`(nR&mHbh*`v2WbvRP zaxXw01c3kmDw;Lvy*#DoLtH~wP+Rr6yp`2gJe-QULO7nZl#1AuAEf>x4PFCQ6^~kd z#D6X10=(!|;UTv}SLrhM*R`dJhcS3dicYVmH*X?t=Z8($SzB{IiCZi>H6R7HJ- z=jNKCm-}OAy6-(F;z?2E^-hht&=$LkU&x_V`+yPyJGA~5RkDaZj_dYpSv%9MCGB(R z`dd~t{D6?;4?nx^`Iu4XdHF*#irD9mM8(G#Tx+Eb`aFdIZf5uUu29-k1)azxnfC!# zOP}2L=IUbs5cAX0&90iRWh060g#tkSqy{*@_R~|#_U#bihe=75i8nYXkneQmGIgj# z+q>%q<|(XFvvy|bRBIpLUDLX`Q3P2~0sGm%GTJwF(HFrFNSAi^bZzd@x6Y5z~UmmXmuHz(V}cPqRMRv14xk5U)~=VxF-%8bW;3wt!6$ z%9H2B*H;c|rzaWj_yRZELa>Y6-@&z0b4h$ss#u#dUP?Oyc{@=GW~_gzL{>kZL@lPU zKIF3QBGdAE(mVG;eMenkUZnunr`p27VRa>K8V!2=jWvel*>byY6AceiojdMGw92eG z6d<}%Yj-vz-l`^E_(3^=_%nK&&wlj7y3m2W=7aQ0TM*IYW95_55hsPkE)LIyB%UFa;Q6A7mT)lqvP+_Ns}5J&V)VNDc}IFS3}3ofyT zEu8l^yrP?{FtkpcCcpnXnKYv$W)PT-|rKh6(!;`K(t7<9u#<|M(x+G74@e2j*h*~9x z1p0E?v%3{@gkzLAOa2XV!G z@rtXrVpfkUvr%4sm8i+guM`WTgl|r~*5dDDtFOrS&{XHSN6}!cEB}tczrF#7+8WMH z6?6i#u>N;4eNLvQWu7mQAsIy+yd1m?5&Ht57~TCpH@&!e%^JAne=YW9T|kvCS_9nN ztQO8n=>tZQMH4h%SK72m9LYSdU%t?7d_wq&%jg;(PmPp>BBiye4yXl8-MXpL55Tl{ zYjG|3Su=;bwF$Vs^|wQ+s4>f`A+|1+;2MHC3~Ym~p9z(t2%q>WwXT9459Z|1DO$9F z#9-IGOj>04k9ItCtDZr>F@kCG7*htt`|fOpq+#`xbS4I#PTe^RSt zC|u*AgUmdj_VQSFjNXb_ajNB_vdi4`tPKG?&eXOlLODyaK_mYzHQ&BLB?P3x$qPg4 ze~Bx8AK~;2dfI}B(O@S75(E}Y#i-`d8?D#N%f0nQv_WB&I^Zt}n*rPfm;Z;ow~DH3 z%hrVxT!MvQK^6|dAwhz>1W#~xcXzkogakqe4#73Z!rck(?(VQyz(VfKu3dHau2ZM} zm;dp$#=~SX8)J+H=(X2HcQ4V#fchhHa$FHI$m}?)bmno5YQerXvn6TiJUBsD#j@ts#YQt-{&xI8 zHQy=*d-{*KbZVlIkC|#CU!#@kFXF?j-uGy-Byxy?{q6cJj!uZ9f1^1RYi*vF+*Yiw z3VEH5RywWtLI?WY-TL97DL>uHk6%-e-Y<$mi7u8CcVA{rWo{JJ5?_{$9kX2>>wx0nY%S(~6#G2h zKjwN(p>eoxQ`Z9)58U`$ZXf79G~37L;8!o^QG7Jf_}fH{0|%jOAGg7a;9Hrv{JW)+ zyW0i(c@E-4Qc=0^Rqed-9JS@IEN$7%PBBQ?K6chEt0Xc3-e14DrlN`8&Bv)GN?iOv zG64xWexnEN!4Xiv+-y-IxQRd8TWLb(y&4|ags=a8D~kZ$WK6hl<$sCHQT7RbarZm* zG5nrC-F8iS=i;w3~aA zKg7(QkorU8qDsv&bIYppS&Uhzsf9=0N9C|ciMP%rS(%t#^mpM9X#r}AyjH(@iZPw3cta-D>kO5W=%i_G5)cu_`RI$|NFO2F3@^Smr z+OJBTT`?XjYn)Q$*eUiQ2Q#McwThUu;*E=1PELhrHY)|$Mv;;C^J9O-q^Wvu&3#rs zlv-fm9#|E@x>1;5xILq#o^h@|_Z8DjKsfk#lsXv+e-xhfhIZ;;hJya)21uO29#J_?R5w9ZqW-NPP^7{m9KOQXzNQmFE_@M?R{k!drh$f0Ew zY%8ucMm+xg?=)MiVtf_3A9c;&`Yt&ppW zO74lXZ8y84(+^wgtW+j5xztS<)2xX1MBMz!?rtS6hfUXOvkTb-_ifYu$xC&3FID@; zvVp6HRLWQ~Se5VBEMkz| zebbxObmDT*A!NSB`V+5VL(P$sz4^`jB?MEIxy-j25*UGW#E5o5&A!IIGCuFMeN=yv zI&jnMbhb_tWR>v@`7dm92n6H>n0B3Xf4*`^MSP=CGJhY;e|~CExcL6Ke@Y9jh?8F7 zox+!UWX!n(%i@HuyUXLhbz2Wm)43-s5mpr!YQ#mw)Eb^U zI*(}0l^6^A2+ir7eROG2RV_QQoF!ZCybtV}o8J!*)|;^+c^RFr=-qim3rgToiBxBG z+?Oq-fQEb|;^L1xoci$YS5MshG}YwjG`VqaUVol!@{#3j1;w;a+~vs!+ZOE)<8*!Y zK#}f-su+Z+Eb^OYe_52;z@qfQ`;%F4RUe1Pp+fSx6zzg_`Mrl_qHs+q_tbl((gQ0E zt=bk*e1ekaN6S1PqWo~@TM8ydp2FwYLWI4pT4!=8#2 zHZP|fyjw#u_pB#cYH8%`P*plz#=89Y<#?$x zjU{WX;Oa=wce|t%E^gnq^@fxZZr*{1dA299#x|^$q_F%^_qMB>=aI~|>CoToTWR*P zf8W*XnE@xHzmgq-(Xmw;Q`!G=PW<1=`Tf);_B6-}U_(Xw`)hz#{?9pU(+$X+Uy3IB z%eMGC10oq3wu*N||NH;-gJWO`9GeaO=BoemfByaHR0(K7OfE_E@2~&w_YS}|bmKPu z+qnMPhk$UP1u~x^!h(G|GORj7vu$3*ok@n>j#U7C`C)ZzW$B6 z_OAn8%>r5o|H>5lKUggP{A!g&Sn0^F=h=T20ni65pap?0lUM)i2kyW`xxY61>$v{b zmAEqIL@oJ{SlGQ5>@}==! z1zpmT<}w7KP@+U!vdk*kL}X`Es#OG#%jXqFAb$A~5HyP|lBZeVbu@bnDT)}*U)jamIC$~>HFKiLvWeN1kEZ6^-I*nC{(jNfngj1t>#+{Rs(8Mi|2?iO{iSV3 z-w(LiGaj#16k~`V$$_Z*%_;dmt+l^e$Nze6(+AuVKVSW}nE&@5lP^HTx@6sa`(Ikp ze|&gRG>7zG;10l_s@?(NcD1wD&i_>J|9}eq%kuf>1KN}g{C{lWUoSO(^8^-Or@Z}d z-Hr!1JZt}R3;%3CumoW4OH;iY`u`;5Tln9_^ILMlYJl!N%;0DCPx_pHb@lHLS>J5` z86f`8q9QK_Cd3?1==HzZAEHtc*L-U{W^&e+5a1&7C6=HFX z{}o~Wk89Z^0$9b*0!^#_y+41KV?PkCP9ve~q5O|+{qtoXHejd{!3~=HTkPQ92Jndr zSf_6lq9y+33jFsD#8Uw1jMoTB{r?>xLoEeJ!|6L=)PED1G`ZOC1%$$s_}}SfrDFkU zZ1S+<|JNNP90rJX7+Zt(?^e_Q7yt<%jebWXrvE-q&wh)RqCzg|zYpLoAdSS0E{%V0 zAou|4SeC#+@C6B2GXB+88F@dD#U+(ZVQzAeVAE8uh^k|eW`Y`49US* zf*QYxBy;RuQrukZ$nKL!MpB>N5a|4>B6Zzx6+qRUKc%1caFVg)jECt$4xhII2#*^wF5x+nM{B6 z{fNX`gxZcZu>>C_Zo8`J2 z{syH!!3mdTo(Mbmt|g}R)y=1m0=ZW}DBsm#i<7(mvUgj$*Lfr-k zyk|-1)wUzF%`#?x&ONx1H3i~1(nJm){wy(D0&Niaq~+VttGAIC1I5LMd>ALetSxu% z2EH&GFC%Z|`8G}i1#|mDEZ244JcdeK`CbBmTv?e9kJ34^`B&S`DlBU^XOxqc9zSg6 z8g!2vcewWa+C8(BoncJq@^9LQ>(p8q(eYcpldEm6y__o6_>tgERd>o?zOXBIb6@VR zys4akc(EhBG|w5_NV9N)%MWih zWMIz2u>)s9k2mE^I+vex_W^^d(7JYnGbdDnwfqmp7$o~gPJq+!s1~X>M zbx{NsYMo7f8x! zr`ra;zAzYGxxmkMN_*UW)wBxGXc4nFKYujN6K0Vj`a!9(vnhyH3{|v04A)R5969!Ttn)VEzjHC-~jx&}e(q(wDT>6GN zWlvld4TkrP$|Bcy4@10wWu;N!|E{3NJ6HRpJqY$rOrPp}#T6FQ&`$%LuYwA{&sRoz zqAabbCkZuro%n7R?`e!Ns_lL;2y~f#`mGV6MvncyQ^=zb$Pe94IA^sUMY@jcnH~&0 zy$>sU`>c$01)PUJRN2B5UcCp$5Bc9#<}!`FuP2FM%&$A9&bWs;_q*RYIu$ymD&=^o zzC9e}ue#|}H2F?M*|PKuFN~*Rv%CKNFYqsvuvEKxS+cKe5^OUFB@^?tZzs^&v6&1g z1g{=G!W~rq)JkJ{{UZ)5J^kuP)xL@Oi1)JMS)H9;8k?^MPR5FFW(@M+$*_ z6TEQ`NgcW)M@N(+Ka}_N_+E-!cV`i7J91>Vl$(ihbv)PI^;RsBXa=$3Gz9h;nN|)D z{35vT@w_9S3B-+|@sK`I8D7&B<}mZqn+{0a`+-NYqSY)(OFTn@4Qhw>&n4zC{dCqw zM*gOB-?eDI^=YvDXKOGr)*&-@T$3cGAP;AhU!9+e0A3dF6ioV}Z_jCM9f)F#NT_}7 zkdCGxxcY*Y|G5V4C6lPRkf36^w_k$5@=tAZB5x=&j%IV?m9OPQOKMxt%ju3%Ev}!W zufs{4BAE25bnu(2<;XD&O}Y+yX$Odyzlnb@7lnkvdlMBOz~S^RVk{0;TuSh!3VAGn zY(HUU-9ot47rZMq#we$OD%{*)y;eKsgAN+7(3l%-s8#fkUQjHE8AEv9GPMpu2J zziHger(S)pxS)C-^%F<2VEE`KlR_;jR-v?3mXGEHJ4tKj`ome`QD1T3y?5VHUDwHz z?w>^X`~4h)SFla5iM89&&NvOd>!pA({=A`x%%w*EWGtcEF0#)1*e6iVG$WVn1(a70 zgDRv5QD=(4Ha&*0r=<~^I$dcpn>OAs*ZXal0W7yA78jRliR=r>vMNyHzQ%Ewr})F;SwLF(-8(vsO4GgH$`?q2un!=RZCNPJvP)rUqKQ;E;2NBP=8UVTsZ5~^4p#C z6Wh6}sZ{8tkN;z$bH>?(r(?U3|D*Bioom<}Bb7*{Pi_J~3UTK3o|7X=f z-%Ce{ru1fHuNA+>!ML3=pZj0j%XsQ~I~3{Z!8EnyEmue+yIR#4H#; z@48FIs-+d1M_ECXF<+~LEwEmxYWU=ge7P5$0fE!Xtu`EMAGpS`^V{)7^-G?x6RzW| zGkcqwiocl@xKb~eW;6145R(}0`L!THBAPlHixQz!*|E!awe7q;mq2OAyDz-3_Q0Yd zwmIW{K7TN=QkmrnE=QeeeYh=VE#l|cIMa~tbM7YHkQHDcyCMR?lwq#Oyx&HrqrR(j z!+sI^gDHrzURoAM)ZPKRW@3U;g}B&JyG2ASOd>aJ7{gc4RJ5RMq2LR%e-jk7Orrb2 zpf`hP&S=Emc^HwM)$=~=7nj29Po`~|K={g#{YAk+xVhY>!jpM%(Hh4oQ=$-8aER%* zNTswRC@Sxva@}>*)LfwTq+7H{J7ydkQvdPqgY&{Y!*mb7C|@pPODI3uwV^x*2!Bt* z)yWtDk;4WGHO}r?c|0%F zB=`5*TW*euZnO^)5cJ-Dv*)7c-PmHV_MF|QRyTvoHHavz+I>l}ucWQlttH5tj&XmY zv5}wu%nw?j!+UAvX|evoKO>df4WGp&h)MJEy9!&Px@DWgo}|21WaY!Ot{KV|g;7cJ zy)9VE(|L-6J!yKpL4K1Hmhhle_&)DbQ=?a2D<2(GOeX6V<5ZPpKzAfw@n(XQ`Hf|* zwRh4`D&NG)HrgK!CE+(u!3zb-`Jtpp_xpn*DIZS;q@*~!heqge%j;7b*PQFEhvZxQ zRgG_`M}}7TL@;$2Lh84KgHE9lsB>3e-Az<4FfArCV>7VA`i*(q1}9P_Zwe-*w>y=2 zUG|K*lUpz4x=hR@Gx6mFUCvhhdIZ|1yxvW|53e@n*g680e&j9Vi{>nBf?PG8KOhrt zHl6?>IDPG}{e)`@)I*S`w5X!vQgeh#64QVcp zV;6A;#|1RBo{d{q-leh$Q{}8@am0hn2gc0-DY>O~PB-2b4snyy&U#tbGNlu_rC<w&*F8s*DsW*&cM0r`+i^K6FjnOC40HTL+qjR?&uarOzl)B;6&Sp`|!@hw(GT`u78Qw7UC;=o!AgW@_`vi5{$Akcyeo1h8Usw7aLY8^vg&m!M$Tq(RVSY- zJZ9Zznl}&=)jRC(OQguobJldBJ=!PIS-5CD-=m+q>X(?P!j_vL+iN}guJ(^Ux+1(I zt>7+jy4OrYMGzy#(Cg97>f5Vk>_Lc>U54qmRu=ZGqjPn&e(!DH+D`B&gUzCp;d$q= z?#Ry({Fr=MSH7|1Lp2WH^OXzYT}P%h|7Nc=vnySMR>)4ebCS0PtzsI*DeFlXDsKJ) zDzkQ-6$QrrlpEF@1aqgF-ITAr%pB$m=Z;4}2xUdlKh&|;Rhx@x6S~f^pK?2?yAG>i zygx_I{!nCIge6uAE-Sm`SG3^?y8=F0{<({R-wF zngPA_1g*_!&&c6N)?<`4ZgUWExkTXig16qTG#Gd0R=LNL?VaoZ`xwvz1ImOr7PI0@ zBsdp+Tm)N_?JN1LuM%-+f~S6J;RD%>k26_HOw%726;*BM@tzVKW?5R3Yg=9L9 zWs&>PnZ(f}$LF2{rfQBOv&69T+)%kttug}lE_eZ_3l(XDn2*8kbaC~nKFu4}Plz*@?k_UZ zXL#p_V4i0Lk>q08XI2}v4%jLRGhr@T8xRhEjXW5A#D=b2F$s3)e9lVvSjJ^H`pIb+ zS8?GUC_&1q!|wu)3D1Jsjar9snq(`rSiz@;@ofr{x@MXNNN_SuP3p!}jpgCYQ~4R! zZ|Q<93X$E}Uvh)Hn!{F7&qNjWl_p-3zTr9%rBk~c%JpjC%i9vzpuJ9VvAZ#3ZZ+O9 z*JFy>UtE^5qlg*Z&5EhNIp7V;?sa1Q(Cqfwd-${E>!nS~=`~5|383g?OH^zG?&Ex0 zAKrJYsCk37pE!_kWo*NzEU0YRa65{=CT=P(pn4%R1zJC>JY7+tR6kxb@B19GC6>=$ zo;2;Wk8boIzIj;o<>vcFmt@eoxuxzSJGtuo#L^gnvE=(yTB5h$^cdHfAS!x~dxbvt z!E)S5?D`my;w-qLO@XuRx!xdjcBs!@JU0}FwP&VYA0PUXEgRX+)JRk1z?nLKgafMe zLx6Wd>$vge;IwJ`Zg~I zf4zRq^RD0AhP2nq-Z12ILlc^DfHFFv<%?%~1@O73jC)@BHJG;HIg%^5?7Y-N*}U8* zR1+dwS@($W%tgWCV0kzga-f{1$^@iWA98{=m5fDv{Oc>kqif|-%FJUXuBrQVQbS7{ zn)~zi(JEDM@4H!_?xtT9ew))Jng^s_;(o-)l;ub$jr$L9l&%^c9_KDX3cR6K;O&6; zs5iwK^K34&r(jqQ%v0#GL$uWcLR?b;Q)EzOA20_YTy@4VS;TSMy}U7IB?3*oHQhs- z0{_^~&mf(8wW|L_{U45RQPf@R2@@ZtqPF$O66qJ9>T84UaE+0cu@gC;fb|?Qke_U_ zRD%x+vr3=Bb&WXSj?fg!vLyjnECy`OS0DWRG#ta* z#Z00ICb^lqXlL?XhNKqdA49}qeLCTE$i8d*XlQORxG$uCvE9h~HR+Z@lGIvSinO2& zAsO!1$l+@H3eRji9j}f|+fqbrYi8rq&+unxFPQB&Tn+?g{WggirLl}q%CKxvcX}Ip zzE5X4?T*_9{DOxz5R*4GLbk}9XT~&hXCks5uo=|Kyat2$q8ZDZ`-2CQj+?`0dD=0{ zfz6|ZY21Gl72%=wi_`Btg-6!XzV8zXX1NF{Pvr-#o)OQl0U`WKVW*bi8Dc`$iwpY1y{-rp$J!u zzr(ybx@AhGL5?LfOsT9S9FxKJX57N3Q_i;-5f9`uV7%hV+B5P@D`B7SQPnZ%*h{39 zA+DSuCcmh3@uw*CZ~x}_t(xhoeemYiD=mLd7WYKx!@tI09T|+q=~tU$&{HvWV6Wi8P0}?EQUW)MC}-EUglv)}`yI`3F%Yh* zn2B@4H;Hyif1ekKJjTx?{Pn{yHg%_{!U48rJsgg>jt+d62_E05%#$p(XrbY7wj4)8 z)#F-35-DNd{Y@>AEHC@$zQ@8vDIQ#-hGqCpdoZVpPH({zhY$@yd~*7%QW5d)%?JxI ziw%#m8awY60Rq>fWq89q;rJloXKN%!=(w9AKHbh7YEmCGcpI>eq)IO-cta7@3nX>3 z6oQ`OXBWt_q2Rt`ZMtUgewM>!;E2AaB2}81Q?a*qbmU7ar(UOO5h@)Un`jU)1=eZ| zN1fW`5B(aqBd;MWg)u-j_*{#q`(U)4Pr{cr2bW_iGY!uJAF110y(`uT_%a&k;DYQ>=NW zd51jUG3yQYbiNn+iEn$@^4^r;plo#O6o>o9Ggr2t#r9Iy?_23GFL(727{3O=owurg-UsVGLRI0>MVze2?x`_J62Hga~Z7e1h+X?N)xp1!A!t zcIxMs-QV3`^K=S=Pf*Ya8DclCJz%>V%v_O?ec19km28K18ZZ^P@HWJ=*MvHCzSYt@2J4?`z%q4yH+a<&qM^#Q74@2A14p{<3dovpkP%K?v2r+dMQ+< zJf_2Vy(&^|jgkibv1;-;A~lt_>xLd{+-@{C=4dw{BGem^^aJ+j7n-YZSKdMx{-XIA z0u#S=yc%uDzInQ~!9!AD!E*VW-5O?rw=vJ;o7)IHjaFz zHPO7^Xn72a$$FoUh&3k%i@E~Vi8LsU(%{8N+KWZ)5Y(?cLV9g|pxl@PIT~t4l@s8g zhBhoFXn^hRJDo|=lntMbI5z9A*RzgczIV|HySGD?C5C+}3^sX&Fq-gV2KPl#f}-8B z6ps)S;PJ@m@TIOe0V;N+t?@dA?jw_Z-?d!?zrC~{TTgDjVBI~6`ibqpDd*+!tyRDK z&|{D)mRCd(GPD_erE?t+OYlR^cXEVER}_M{1iQ8DVJs&L{#yDJ6z00mjV=Hx<4a=p zSIv=R!bP2`Hw5$NB@=4zYA4sKO923q4&fcPNHT(~K7x*!F+Xi97TC?rBXsls^I zL|Il0%-Htxtmy)#g|1gEqOnR#rIxc%@arvs2BXXCzaEbmoxJd5^M;TwxOC$|PJhyl!^ckdqu3y^)6>m60&F`Q2}dc^pI zZ-PW!dDBhzKT)b$Th{p)9@yoxEmr0}|13)xweP#;n>`Z>B}@<9y%bLEhya06f*G+U zNvBsH4RR!*$pfgQ{AX~y=+(@03xRo-8%-Lns|{^|=y4iPp)K1WT9sa2MQE=#$nyK@ zCsEgUls}wu0LG~kvWYhJJ7Tf8xazGXvEYUANQS?C8{e`%aL{yy3zUBhmqFwF%%t1@ zBSj`_-Zh`yV00xB!}VZnWZPF`8E!dvgRYzTb(!VE1$y=DgHylkAV13NK(}r!Pmb** zcBeS7*)$qNA@bbeSb>-5!+%_w zEf~*E0dCPzm{61#J9`5$0{82x4D-_E2D)s7{B>rqD^G23lELXh;n~zVx1L@<$%l5N zZ0oA0>los`%uy^9@5R1`sIpzPzh@v^ognNr`bhN=Aeef~1HzU3@p6??a$D z)X_lL@}3h6@Db8sTuZA%S-#qwSifffNlb1e))o+eAzQO*@@fCL9j{0k8G8xfoGJ}P z!Yg9`Mo#GT0hvK1=Ymd8iQo;kkTGI}4`Bs%jjT}k`FWnvtnazceSzUIwI_tX|I2cJAsG#3rYA#laI+8yP* zvZOY6$B=ls6&!vR-QmnW)ax|sIUBA(+T2U7(v4Q86x0907?Cj3!s}G*1c@JOP3sAj zv=O34*oIF;ZH3ZIW{%_YU!G5rg?WS$lrYRH#(StUys!$U_=mB8qZ8jHx)A+&vx4q= zbJzyWV4BrnK*E!L1eYg8=r5uK`!r(WYP>Fa%qz44PdVvE84cdRGvzv#I=oJ>0(&1W_rt9n)1^nDbL&EgNvF*gJ%IVd4yciD zNA@XdcO_bNgWKD*amahYy8D_tNhxN7P$tVXx+a=N#d_HxA>`wR!BHFz?mnx2x6-7D zgG*%k0n3ndP!3w~49{n7`15q63GiJV4mQbyO=bO7s#4Cb^ zLO;6QX8HDb=ZmyWo7XG^=2G!hGgJSJ-a44yO0^-)3>Lk3=62h#S8q!L4Eh(W?^myG zzS7b7Dlh7x&>w51Y@9-+5r5DD>p5fFdlaL604H-#FUHc+5!vuIP44WAy83PQDG)P- zOt`8Ww3os)S}PwZ{J0+NdUgB?=Yan8!{pgZOX+>@L{6gT;L;=yv&(ig=klD-{E zQzDQcIcgh7OlKpYMryIB61txW;q4N_6CgKgKYxi2#%8<3D$`WD0x0dcT_dcOSazvD z60q@#9JG;MVXo}XX2@r~w3Af|`;IcjP(@pXghWjG@sl(U=0?OvoiF-dr`%3SG#-nD zj3debFBz~=HI}kB6wBMwz^W4001q4Q7ZX?aElr0fsVeQB32~| zX*m@fQ>YWq5o;6Xi(l%0TJr&f^uz+W|4t-C;l-y?c*sVqTl@zA?sAf&F(aDAi%)b+ z7wG%D*4?uiMcxpr7dUV5rvU_0uf}O(X>+aod^qk+VaqrRnSuGGc^4AA^ zrJRiZH!(!%-av@b=DUZeD--+Me5O|_Fx9p{uCqS&r!~=?r&AuF)jr{H?>NG@yk>s9 z33#+Hupe&z13+fB%ejXfV0?fk>bRvP^a}w^NfY@lCT6NL5Psn=^~r*Gv6Bd zT@d3V_lh3wx9~<>O78W}eR+7W0cc*U=}DAxnmF^aiF5m#^{K!fd9{LR%#2KsX-!3l z5?-;hB(rBH5b2wwC=)5255|Xi`8IUXBbKtN>jV}P94by~#>)VdOThqha$TC$=r9TR zO8UiUf1uB3(tC^o?W6br(1Ezf0vB)L^ZJ)EY6U&ekZD7OyYog;$qI$(%pA+-u0B0g z1z`vDN7X^Fgo-D{7R=rXAyyH~JfO4!L)@7L&knqJv=NJy{-)m5PLe%izfcd66KJMH z&9u8+x+(9Cr2B`SX6|A{jN(%RF>fa@L|ft@w$~```WY^P4B!$ zSjg~y$bfc4MKv{Ge1okYU$8PogNu#@V6a|tHT&6$eoW5g7UO*PjbAwe8rsE#q=2Tc zlvm_>w~=ENfjd5IEv-c7}n2Qn~9B-l)?!(CvRvKaHu;0P-Z*w1^9`-3Ib?jrgNzim}kT92D zfNDJ%qk7hltvB~$DP#{S^dqli(WV5=egpdAg=10M8ssEK+0JBfdyp}@jC}$+?d>!I zP@ahpPWyvORyNm+QPm}{ZqPE?NhCLL|+jJ8os2Rtl7 zwCD{7DSEbEBU0mq*{JTU9d1R#fBmT#@<}wg!bIw3En^mMat%ZZ8>{Ya> zN?I+kmxFqmmIqHDcrLzyyfHg7_&c5DoWtE9A8zZmF53nnGUSNS2m+V;EW7A+fpDD! z0abwCr%54<$8-M~v)k_TpxWickCH@S)ZLH{b$#xECDNL*lO@2ci#1P)wR)#=Tmd65 z$}~e>w8&~OsEU8&c2q%mHt4JW@`n&Li7ILKu2N{1{^SNH>!In&m>-X$x=7sU?NPf}7Y<4C2g+V3!GbP#)W*F4l(E5}p=fyjN(gb(BnF7%z(Noq=y zYwN+S*kIPN)Ei7%b(e0(+!~9s!Iw)c%1ANggR3=0L4ErE_sr}3Hj_mQ)cZQQl}1}D zKf8BAXhQetC;x$*cuSetsdDCsWc{PUVWXhg&(&BHWo@Gdh}K-?^wzk9N)QN!oVJ5x zeZrIqaqHXHxzpR8tJP}2416PGC=-NeTZ1BAFzz~7%e^CHG~f`5ST0kX)^MDlQ4#wt zdcz(_PAiRu6d_mf_1$IoM_4?jxM<7)8YXtWDuVCsnpDu-^}<(r?4VX}7R;g(OS$#X z{*ey2eUNEDsF4Ftl@^-*sI$^+;e+7h)A2SC?LDAepY}Ql0JsDmY|})HkNd(C%2_Wv zj7nfA_#0Y&*PxjIOgy}9gKi@HRRZCb)k85-Y4#dcXEjl^)8`SD5aG_3MfP_p$Lvd zkVsVRU??~>3GJhY-s2irRXfe%ZN?xkl#z97+AdEiW zZ?=>6{S-g>)aIIvdFoA}*C#`o+4;iu32Ba9cy{VY&g=Bkg)Byu{0-mD?TxYz1#XrO zX$V)KKitsjdoPNVCz-Wty^iMHKRz$9o)-M&eVfwC>>HF^v!D?h12+7uUhVN#zbiD< z?P6l&YT4I4jr(Np=HVezDW*E9sd|Xf*9lJuGh}68YTs*6U(?W6z33|mt;)t--k@G3 z9EZ4740`2DyLa*a8UQr#KyPB({N@b855}qAn&zYQF>BbdUuyWp;Y6p~RS%d-*M(KN zN*Gpu)Sis@hQr3EU|Y{Y3S#%kwhDMOK;bh$pZv>UBK_s-#5-?<3R zQ;>?*XoZXN1oI@OX4+w_YSE~Tu3cAHU}WyR^C2wX~LYmzu*fCim&3z9T zpkf6F%ihwTr4eNV!nHR192P+9hT`zz5*6JyhN7J7TR$)zTeSE(kAy3X z5#Y)jj)Vme_|P0$+#)h#+Um-Q$%C?&2h?p1%7H@`d{&vB2$LR+*pYF#L`Lv%bqq33 zV^k3{2@Sw#!7fN*iEA05VB6>H(0WcK^`Xtay~LHszQA$p_yfzNM0SlTb-U}~u(C%FKVK>sbs8N- z;Ib~0yLFoz=dLhYsS>ge?1EF94}-AU9XBjreFKCPx8rq9T#}SbzwEP?z$j21fGelu zYJI?2fUZ8(+b8Ams1%|5D&p2+Mfu9E>Sh7P7dm~$Nxx2ln!ds zE?)UkCV(^tCCpA{aQy`2QH)g?ZkVxyNVr0Y%ZO>kScwR~e8ZvYdX}1;6U+Nvjm2B< z-FFQpO3Y6Y%VfPJEq1WenQ`R_fZIfg;vq)`LQ1*g8UcX4SklqvX7ge#Izjm~e zb&&py@b z$(D`QpzypPqu4lU6q`@;HM3YWaerCIV8pazBHT*Gu|0htrue$mZ)<;zd$3w+XLiE^ z{tIJLvTkEb;*|CDyqm+UVR%3K$k69+oJEp(hF#ci%dPd<1*4DH*_e#SXDjx^*gMGSE!UIEuY?H5Xx$Mle7ZB93Z3NC3ghx%u+%kFL=C~ z)L4~{bVOib(>s#Tf3X&W)c>yXM~qD(P%?PdiPZhD@_h5K-^uEim0i;L__%tv%k``; z_~F*oTBbiy;YIb%j9N2|x*of@0)Hj=S<5xU+sQjSzFD0W(z=+>cDj7Gdz-bGG2|?g zFYu^PwERpJS(xckID9UCv9PB}*ODbbNpqy$jU1=l`?#6{2_Jc4$%1~mSr}hlTYgo> zHDcm19SzVsPrKpraM{KkuQ%rN+-+~XoUC4wlEkiqw&Fw%Id2;jn(SxW%#9m`xVPG7 z>##C^W$XpHmt+X3aoIj-46{Qy#)aE{K68xYxnrBV*=xlJW)4~@w9s~6_RG24U+(Ui z@W0U4U;;K?Omlc8)<}kt1p1)j63T zD7>i^`$g<`H$@mnS9kg5ecj2r*8VxkjM_cZ?UJ2OTmwf7#k5m+9_$*AA6~Dw5L(OK z0Q6r+$LrmZ12Qy`3+|mswhI6%)UO5xgY40|e{;ir29`9gWR^x=3&BML>ZRw;y7Hqd zyi%7OKAF^ub}ege74m?pddoeg$S`j`oP9W?O{d7`EV0fAHfTL=#xhyPjq6+V9Qn9c zQhE0PDGxT;8o#Mce}my}i6FvGCDIl4AcFSKS^&|~@!Rsm{hwuwe>ENva=+_p*t5ZV zeNJJdpB+PICZ9Bs%6*k1a5L#_#B0%w^6CGu_trsib=%r+1OkK*f?JTF2^u62+}#Q8 z?(R;o5G*(Z?cfA=cXw~xt${{@HqgjjdEb5R*|pER_jm4hzq(cT)UM(WsP0;-mC!7$X&Fvxx07})H}k}{c=BEjXFk24l?;E0fG$i5VC4pJWy`Cxo~ z8_vYgR+vC11-SIKM(Sq15-eL)SuF0zB=cSK!80bk1BYCRJ-_aimyc!RWu)Wqyl#wy zB@qZ>IUI01$@?Su(yX=Yd?`&IONgN;b#{{kl9T0!eP&uiPT)wZv*vX)xJ=YdZV$E@ z1KfvB1c<$7w|g}C(lvz%0Nf*^ZC<+1h6IC`2CTxgpL#QKMb{DsmgM>#NhdB>tIbd-c^0S(MXYQOZd< zaf#k6%`^Wd+#2jDXdh;xih*jLCrRQOT9L*@Q4z#w_ai;C;_6A~??h!33~-^+SRW>z zPQFYkfdL{>B5rY*K?`K&4gGtA?VHh*Uy4SyT%09OYYM)2VIx#KxrAiT`a5>ea;Sa| zrrp=sG(tf&zG@0icypWH`9vvXqYFn$yWScuC?2 zeWkin?kKJh4*4PK!gWkh&1(O=RycmZxxc66srok~E8(f96%Zf_6m8^# zI-~=qiHKMadm@bmQ)}ixj?$d!!>H%T0DWWuUIKQ8iDgfTMZ1)W4!oep^1Emabs``- zi81RRA;HqWRjzq_jiJjEmaBTM(;1*Sl+iExHC14&6%P*CyFN**&`vXk`vkZ>*4Ak_ zR4;o9!|(=oQGIHDG-S#HJGq^9s_5;R#57)WZ<1Zicx}A zbM7WxPSePSGg;MQk+iXpXyFafsE?-Iwnh%kU78P_m^BKS0T_L-Bs7Yfp*(bccGc}| z1l1Z&lm?%~b%JjgvhE~!T$w-Ona8HeG2U^$TjY0%2^S1hwMf2^ z)?x&5ZN9{!{0jg?js%d35Z3;3dKbG8eL7{^<)41Hy%q3PUbO0oKS-beh6;IV*%j{O z_Rqd8ThpJcZYi!=u>J^({~$s9?|?b53#-CF{|hFELV+pKKV17C{_Lj(G&7B!vEhHs zpaA$TXurj%fBy4tzKhU@|3C6w{vAgDLoq?WQ94bn@Qj*&ja?}xebo;-cGnvG&Fz^| z+4_^(qh|Osr^;$p*B{`@(oW+i{VUi?rTE%soWgKi#%SKc;pBhyO$joKzfpT6>mG~! zD-zZJY^Kt`-?{&x@0`H@r)aK!htYp0jJmGy=(WkmM*Nsf86R$D+j871vK$BBZRhyj zaVZs>$9#A2_?I-bmm+^i-9>d#4dP-e&RPJ#!1v0)5nP_>2u?^Ezz~0(G0hqAXQA>x z=u%|=1+Vi%xkOXa7T;I2o6q)O6(LV1^LCTnXgZNen4ImDjh(0-qPk<9fQvGYgbZPDo8BX({N>sGhg9_}~|^#HU; zVuL&nZbcN)pWbvz`yUwpNYg2)*Mv^*D>bR2akh9Eao*P(v3d^t7n%+rKjF}&kpo2J znk=!bC*J2LxWCnKlg+%StvH6o;kQ4@m2w>sEmjWLEX>8E?&1t~6K01ZG@OL1tS9UJ zdG5N;3yk>j1-*6-8Y&ICOy|$n`y7o|nw93`NiTqM5=0&SWy+mLtA0t`N4^4=x2=5{ z|H0AuNg3m~^shNOf&Y@DG?fC-^|VMb?B$nuF7pEc;7fyymvQ3lb-vkgzOPSX?$XO;Xv;=n z%<1khO^#Ea>*;u)TSJJ@tdk>YFm-(AsGXaSS*b^@^}=n1MF?oHtnJ=(L7$m(F9$1E zYxbK`jbl&!&vh@uqh^T7-f6<+?Q)abVy#|-p~vI40L0Uf4E~)`_-}y=jThGnf+Nfn zZxqGZOLD)HYM1K`{^ELfs1lwlvlm+-7v4a+0j`JB^za;!d@NDqh1=T0sH*sYgfHW@ zXal8c34`mkWwkg?Dscy050?a={B@sSJxO|!4V5Ot@E^_9cC(sNNwmrDWt+oy+RFP| zqgnxU&pV5KQVZw3>6PZBK`I`8-5@TsF`#&I-H;D#iF%poBNLk?pjKsuQqNt_?7NwC zbS7bShw*4_afw$n)UIB%^?rxQ%YASQDOW8DH9)aJ_HR@^B!vHD z=fFCplDH%@d`~erE8G>`+!kgyh!k- zzaum0MLcjMk(VmT#LA!yz#$k3Y%_98-|yhQbb0SNjl4JCQq{Dm7cw!qCS96{7~YAf zm!uGs^+Na~1c-y}s+lAHndQJG#cCVt_ zf+DuTv4e9Vg7|y0GoMPcF;d4poY{dmfa7q(*CqO&@SI>>CpkCM!j}Qt*ZDz~&Ekz0 zB(Du#%*}qibzAl|DwkLS%C*gj{|0&5_fS$OTVbdcYg6UdS)1v}0SbR?Qqu6Ou=d{= zjqQ(xA9dQobOTE+NJW-tE%B8u5(z^o7+D!?2QPacdqaGOsmJ&4JG^YN9M zoZYe{9~=gWJ-*u9QrcwC6uT&NoXhku{;lGCWEJslBA|WYpg$1ql$+v^it&PD*)fUd zy+PP(=W)Rqt`eJ6){<8*I-cNe7#)M&mdkM$f%jO9Zm!n$ELL?ddKV{4h0%xXp*vsz zABJ;sy^OTrUVck5Ue;7Y{cu>fEarSCarA+lr}$U_sXRVtH}$RcVy!SCyOmW?d|)xo zn%A-2`#n>+0$0(Km%TSchAdnkSM=Hj@E_4*zxOZaxL9|nC0RPnMyutmYjTMTV4rI; z!^48ScxS4O*WQVB^a)`6sPH{(Nc;a6cuuc31#gpEELV-CX2(eh*vh!lVdU`%hBqjU zmvfMXyUxY_2MQR_qE#6iZn?Nc{C>5sIG*)eZLI}<2fZ?2Sf+O9g)#)O?JFn^{E)q8a0D>nAy$FR6-XfhT?~UeSTKR$Hvf>IuOTJ3VF|Bcxi;S9f2!LKB|^^)9K$50e12KYIOAM$VB~y zJbi?;`6!BAGDP9-Cbj6W<*SFMJ}(K=beYyrqkSkI&4K#=Lv+s7{~UBqy0?@I5iE#2 z7pwOJDgVk$$zn5*(#K3&dd<9*oEf-MIJtuToZUWQ|l?TUA!iO9ThluSg z-Y>4^#VHiu_Ild@mn)rCMQNlN{jzgiTk~lO(P70WC}=%d4&ASHDj&uhp$WMG6 z6DVTZ)fSsRxZ(b~M#-l&yi*vsFo*aF7LDPvR3G^B!&L#>Oy+cbE>+Ss;sSDS|W@j!77&|ffre5?BWcIT|0Adxpf z8Ww9|$B^C@w$@6~m(|yr+Ram=mb2hq&YG3IOb5qC)=w_4=%WZO)@L*K=3bJFUa-rVdV9L|q$lbVDMEIJ|mK7ldDbU4t$2zsYil0R1XgtMx{Ec-{R@vpJ2!{FjMh zmMeg&fnUElR5w_>B=+?cX8d+bw(vL1&T)YeD%^u4vF@|m-%vYZRM!JETDR^|BWXrM zL5^FzjnT`i>&>=`5PPIQ)Yo=@;s0dZ^fVXX(5;p`ge4a53tCI63DDRz3|`nQ)I}2D zv1;7e2a??lF|~rLCc%020G5GTV4HHT2!Bvug0c<%(L65sPoZ=U~?3n zGP33Lfi*hmbTV$?8@WJ+pjP$AhVQ#6y0tC`2fvyZcpa1}lo)j1uYCzii%hKx{}{xc zNsRF-(=d3#?O+5lTty+;2>=&ryY6%fzVw&DwrXbc+l+*v_If~_;kyepJ!KE$-pz`X zXh;}$Z<41n&jBmnW%ecXr88S*2_EOqFxcYJa^oUn97bVGZJ7Cxo(IE*_t#AcBEJfe zg|Apb>=EF4Ucd2ZgE!(+Rnj1N!1M!Uw=@|dJ@yGGQmEjcJ24ZhojY4ha}pd5*J(4T zihMfSVWu%0_XNohuu=IWB34Rzd|IsmEFznQLoCQpdz2wI0ICMWkMkUj6R8Ea*phyT zIDVip%mkR=ubajyol(J`^2Sa&vKObiI4IgKbg1w zvTa!pDP7!}lzz5262q}f-Tz6Lgmvq}t@0k72( z8w9JNfj?0s8XeWE+18(^HXYZfB}wS8=Aaqu9MBl|izdObD)c4Dz6e5x2fy<;F2tiu z<~kt}kv`N~&(m(x9rF4uOrum9_RxB4O=#SoxY~@xdN`TgENZ{`<1FH%J#zc9SR@z2 z!TVh`J>O9oZ#BO2jlThFWOn~Gu;%t8M7cyslJLVEe5H%|MO>f#L1I2f2a&w36T$k#)=}tWBgkv%<13Y&e;Dp!HMdhQX>1>>HkpE=t=) z6^TcG)EBp9BD)rfV7a&WPApQ>J{7SlhhArZv_a$tZn-;iLEPhc*udQM+}DA2J}+f^ zKPC`2wZ8}xqMs!Nh60QG#_ph6AmNbeI2ktoa#N_N+<`QB0KLhLcZ^SqErSt!DAH7= zHE=%QH)i*vuOjH-V&5fY-VNh+2IMuWaby4#fc?_m)=We#lV(d(ZM|F=%vPYb$ZI^y zoi^1Qe~8eO0Wh?dRJ8S%+Q_^soLXEoOgNrAtVOk|ES?>%pjoNiY@>@{O-5#kN~h88!t!s(gQ2BHH586X+H@xI?aM2Hp_EcW7(A(GqmX7OgQ zrr>DGtvvEmgQm`L>`>`x?=r_q<3hX1lF!)P{WZkpXuSotf@Io1L^9@G?2ay*wxPw7 z^j4#Tl?lUZd)G$UjRI^5R4>bxy6|K_e4g+?qGXL=cD%b8Hg}gRU%J5yUqU6J2d`Zk zoy6wqCOd);DguI~J@kC;YCu5ta>?wc9CeK{yNB@RrlZy|uk{{LU+q7#+#jL5R!7j5 zo)l4=dFUJ}Nl+Ze#OxX~P*nbTW08RY5sGWLxU688YmmC&c>$IEP>(Ao2qUw+t}y0GXBo1we-vj?A_7X?GDRGR+e|muWmM5LRgKJ z8;YbV-Uc#
    -2(--0W3^^Etyw%JcemZ>$=jul$g|oJ%W63Nwd8yjnTuaCnnnWBu zZW9;|8+t_e4FP8cibOBm*|YB7KPRVer+O@=ymtFDYWQ2&#!7g3f$ESlLmA_`Z?|)v zXnGW}>8VQUeL9Q>-;*afy?3?g*i`(i8}lHk`8F&+v7iI;XtKBN)qfjALz6An_Z4pw zy2KRjg@!-zw2q~MzVL!GcFHVS>$^qNXl)|g_P){AF_?>FCA34I%i5YK0x~JG3UP;o z)Tr2Gr>L<=*AofZFWT3x(74O(6$HE6x|8^w5@_{RtZ3oC$z?3-#MhsGB1VWP%(ef> zqEo7I#iB%balK#yCKB-yrRopIn6rY1xnGAs_&ym1fbF~&{C%eHe0QRD*CcdNQn$Rv z;AbM*O^UEQ@QLJPp_+FLFM0jRQ}U{3fGw3MDpO4xnoQ!&Yn^1*d|m73J8SDB#4iE3 zufb7)Y-~$BmJxv58BMAIjTp1IsEUM6{KnTbJplL`9;5Y=rn~Kw4^}P0QT=wC+8!6k zertI%&zTaRFfg3Rz~S~7)2UGEv-ytt+vX*lIz*&Oq3`qr{1q}GwQRdKIt^=uE4ox z4om9fp09A%op2$9;cEqFzXYGfjNCQtR$AG3zc_Y-K^y7f39Jl>>I|mX6)l>$-&1Py zXY}#@D);Kw>vMVYvfIn;ts{$2O|ttW>~ZAfBgJ|32oENDbwfmN`^SL*o$vIlD~$UE z3AtADk5+>>?0X9O-68g$E~Z<2`(y0XKMw_B4Jp^n;uZ7b1b2F?Ax$aqcNZ9;0pl0W z_cf&-*U7{@S42qMS0W*FDD^}Wmw3(`pB>3`fePt1X|^p$i&5T2h^gIp)&Yw?i=c z`P$`$1K-1~bZR%?uM-qh))zzaQE!J|Rqxm^7_t5|R>p3gnnpw0`O$uclrHQZ)zR|J zm1{E@pZZdqYWF}Q@8x*r&-6<7)y}(TM<_f|C*MTpb^PFeusA64`|oLkElCm8B=p;U z7t81ZZ$AgqUiNBr*0FlaGy#U`qL~7_lAPsDby9%#Ne8&{j0MpXM=Lt#54q;uf6<^> zSs`@Kvgmj%N4kRG$NN@x<$dc|T6gMxK;g!F&bwzK;Rv3-J+w78JYOdWwKEB~KR;MK z`*TPCK>ELA&2&d=z7xXlmwbOz#KS7HkjN_Yc4h$oMA7_|nuBICo4h;n3MZ#85E&;esOuu%e>xT$yy8hJgx zlIqKTdoy(T7c`=o2R)<`o{@;0l|M3&;}nj5fy!AToU{F0Wa7UFPeaC;E%F^%(^R;_N5w7={MwpMM0^ zKEuF?qsT(bjNELPX*|5X)Sj;KLJ!J)D){^fbC6RtlT0+y3C`GnIsJnRRbA7-$3E7<;7&AY z4Lhm-23VqiG`>>AF{S3BXkUDB^`LB4w6O*K5D{|Rax(Eob5w&1BB=Lvx;aY^KuQR( z`iyU_y{0b4py^VbZo7NX>x9wCUPT^(mEyS#yB>7{S=wK8B!|IAjC5uue^ zuyrCg?e=B^Xf42zmBsRbyV}QzrRP1@lK2xi;~xgXRAa!sGyI(lV`iuWFqzp$V&F!M znb9Gu6>8EPlmpD;lQ?hx`I-RR$>N%2y+WDoucY%=1};iJ!!G9t%=y`vFJ!Qv(u;I39^m3MZHE1Li(i2M)ju?Bxd1t!;4{N>e3+k23mmlSXqH}ed=y&u z5~=m$5jbgLzC^ij@SW*xaX4R&<0#vJz``#Ve zk16Y2@&28kW*XKMmA&L`1kx(QSCQ6w`yb~izXmlBq;o>GLK?@6sv6K^`cujlV}%gd zTMjs^mOmKhk9Ecszov>G8k|CV)^Ev7VvFx#rT*oD`SmJ}M(oW-F-RhD9CHxtHy`Bg zQ_CdH!Y`qq%6Io#E!2QfZU!`J5=O73;~fiqyzO>(IN6XZ(wT$jThpUKGic+FT50U; z;bSl^n@G*P6g;^5ltx*)UmBIL-eKnJOq5l!aVw6ucmAjqN;+3w4$2bkWJsa(q2m0q z=h5qz&Jx{|HCg`eP5FIy?Asvv{0NPT(ewE{d+!m&f0F;kZs z2qDEbI(DNQ6U22|JC)Ne+XG?XZHJ-dORo1{n;0GUoETKf1}6k07Ct93DNF0iqpIm~ zv(QV!99y)mIvN}+`8Kotkxrap@^18)Ih!6mvXGETV>lqL;Ynf^f)lUE5?A@qvbbKJ zc*RUMgld4lQO2m=mENRBYZaI@FQwFX;QA@d)J*uuVu8xRhqFpBVK;`p;Qg?bA?4O* zqTO#(x!*O^NnpND;MW>Y;-}T>(~#&_E6~NvpaG1fdWL)T%knS>G%+f~<-X;M*b$#l zA~JBh$>alrqzN4(h_Am-K;Wsxk^6>F&Hm5+Gl}cCCqgcmI2&Z;TUY`Gr5k*w!TV>U zZItewr%nU_7EK1lbR}&!d%6}vFwNZQ4OQs_Xcet%7pxn*9I<3O7kMdG+&z1Ts znk}oAV*1I)QGPh$Y#_BnG;qasf8w`kg$4tb_NkWgLSjtBF=AhjtDoh?%aotP8aB(= z9IUjt_jGrgR8?&&10q7SalxaSTsE)Bbu-!+>Tth-upTl}c&Ngr__!@Teec05+$0aB zw-;ZK@1?SaI(hq~&|_G@)8QdPtq5EilGGYlLk|`EC&88)FB)A#Gf{!NCxe89UHW4c zPVwQmxp3A!svM+e`-nkziu3oYZ)`$fps> z71IQmv2$xs*eCx2mOth^ke$1k^Eks=Fc9%bd(`dGP(q2fh0j`3 zdkkt+^$)96Fo;q)f7|I~K0};Q);m;zn5L5*K`QW(kP8khj!8K`bhsg9ExiBKAsw5R zR(Z&l$3~>dM-o*wYTYG=-8^8%5_U@o8KQa17TTHHtrBnu1HL~**HjtPGeG= z;1qwgp;2z; z)bQinBJSOdNyCLu83j$w5X{meU{uAYhU~ElxeCwM@LOG|cM=)Mw1#*r-$vtMpKyj( z3f4nOIwX0Goi9l27AaXE1>APY0QOYC3ahrqsqitZYA!;i=V2lswOTP@?6> zAN_Fh&nkN{*?MF@)~0<2?LMzpI4mtYT^Vvlcl90LCTeC0tg4;$sTq$hQ)r>&k$0AB z@(O*H8hblGBpP~;H~H}Pq~oO``dLHnmXQ5!A|HbIu+0aOT5;eSM$nhOdT$K~$L3pn~~%&@VVSt~<+3^?yCxNz}f z1h@OI7=j${S<;jjmC>ISbdVV)g@9pAy%G6i+f-%yAPyx0G?#jjW`tJwK5ltPo=-JS z@?ynh>}kv{J*td`6$Fb?TY@ZFAysFtr+jT=zHB_i}8Csb?iLYFf{6=CnO- zwse^G9ka0I`fh(DBn34}2Y#wCHc$QNs%I63(2B!Fph9 zJy@`ol~{sMlPB0yR8rarPQCI;WeN;xbqfwdC-m;l>pD$wNY@rg3g3jG83QFQd#kj4iTEdo2PTv ziJ(72V(ABHbj*5;4Q1{~_Yj?|fr)#mA$p8uWVU9EW0i0GQE(9}-!3!>0-}=?auLlC z_vO9k5~`68bU}`P`8a5w_NZtdvyhG@IZOE0)~7KM)yc~Hj9+UM6Sdl(uR1_74xqc2 zr*0<2L!OeI=gl4kg^C;sxmV`xqsR9YAl) zu&5kSz?H~Yfv3n|%<$K3l%yM_C7O*WkGJEd5JOGn9u1fTzkOIPWz^Gm64G5j@F-iwN{Vs)V`w(Dqswh^zoaLY|VVQftLL+*qkxoyn_*7%YA#>HkG2!yeH}j zCw7h6_uiR*XCg70apzEeqj}NE)^vO_Mx%ucHc`NM{1{n4Kl#lX{pR_#Wi6ilV+W8I z=)=K=GM_Cuo$Tc%y_$(X^(a*0PdIG;~5> zrY{Xk%^xuaLG}v19mEf_t7$3fA*AnOwDwFcb^_|(%0V=1$-d9G7L-bm?&GJacr6*O5`(n%=@4i2TIfuCjTLygOS6}LBrHWyB5H^>)h3A-B<_~n5{k&C)X$WCD*c@HtN4r? z1o`g$y~ul{ESjMn%4@55c+*47TpC-B>_;2t z&uA9zB^gUFuA2!-gozC^>f#AwTZ5z^c{zfC#)B+~nQnY2wi{V%SUa%-`OiND;f6!_(J>UWuqT<%&mT`yMV$Z+g3Zy}TCV7W)}xn|nxCnX&{4bh-t zQXP9Nwx7q9q0AP2Whe+Lb-I>Sh$!n)G=31qUBso(Pr>TS(g%(mq}CEQLG!tBCaL?g zG!GWGO4^!!$tCF8Tr|pNsRwcv+g#!{zsgW9ij1NUUpuRgNzPh|!pAjGNIedI9z|m& zRT`_ow?T7w)7zvvCxkhJxG(wlbKdKy)Zg1bH94(IXP`{)vt{WAFxu%Lhfq%6@rR}G z)`yNL+NvY@XK(55tOX$jPMn#NwoZt81#+q8vL-yRTWJH*g0_uPrs@3o+XdRTTTQw$ z-_zxT0BT!c_4iRCNVTyZ3eXkbF8cK2&7i2B?h5F0iFYRB(a=latp6S9O#;h;VfB+Cq@9t09l}fD5Q(Uxg!G$(V=ILVabKMqsAlg*rUX)b7i(E!O^<9 zi_Qlmt>;&XrIovr;nBKRQ{84L3AW@M8n>oc>ah!nxHM2Sl6+ zECl1OCC@K?D)Vwn=rc7p;unB;_#mjnBViodqg)E2KKjIoiK3&aXCM9XP-HxYV->fI zdSOPyAM^IEd1236-U^dR);AG*`oS`g9(xl+!7aUh_mYR_ofURIp8~;+#iTs{N7Q?^ zSu8HGB(W^();DUT^^R!@3VjwF?{d*A6K6zJPj9JX$jY z`R#>C=-dd^1kF^hQ3pjd3B}eI`+|c?POO%ghEPHq^`O%Dc+M-_R=N!~Qm7$!cID)Z z%1!

    5zNlB419qVcaC4Aj?q4QFO0Kk;2lKC>KX5vn^7p8^H)PZ}+*vRw3G)n6PCZ zGDc;($R_y&m~I|CaB!BD^ROWwT60I;@?IS~?0*EBa4 zmr0Y3a~h{raZ>1;U zWV-^2w>pwI%#L`8dekjhHl^)BhLefTmwf~XIvSm3Njd_t9xC`85#K0tW75C*y6)RTTG|Bg`o1d%X-L;pdz>uw+7y-bWfi3IG#72Mhd z#S<`o8oy&u6gr$5^5m(PFLB|$f`BIX!k>kP85Z423e`-i0K4*44ep^s0dM`Se9%3y zCR(BIg|PPzf$QbZUq>;nFE0W`6fU%&m&=_-5?tuF=bB7oE?e5+yS|tYH^NVvogA{f z(t%B-al+@4%{YOJgZRqX1_Uv;h|0w2BnrmHiQ*E$x-R^zSRt6ZtzA3i3lkV{qz^gC!yd$(=&=kkk@dWAt@+Fj$Zp|#% zf3N_!3@x%CrJ*@sVyUkdWg%n$#B5bak=K z>WH;IaHD>aL`geMLx%-|7mJ-g<*T;41o(U7sql0f65m5u#lCA~nwzfP<76#br6 z$7b9EdL-J|XM$?GA(^lZ&lyXkvCw-XI@FY6JY4jOp+++c;UdiUq2NaE$Xnn_w=DCBs(NSx3?zs8P+l@FxLcIsvKM?$p~O|k z?Ok1FU%u&gp%JCl%xX?~zdsW;()-vM$ORdW8$RhHQQdh|f^TqOc4iv+L6w7v7gk^~ zZ66rHruv$>rFL<7I2rzP-Z5Nuq#JI>L04Sv{e9=S?ZK+JJ}!n26j`<-%UV=iDP^cc zCzUD~7{$zLy~trb*}uejDORNj#SOK%lYmyur#UZp^!gTBSQ)0u!y^*dNq3mj2@#4_cU#20FD7Flhp5>b=J8uF6BoU!HCLAUjd-u5)>D2I`4 z8_iOgll~@q$w-#yYHD3xD^Ug#U0HKwGMhu%-qKH>WR_xl!^;J?@(R9)E+50W;lz`U z;`!dz?hps=qw+`sr>Pp#+yqtHxYg$^y_zy1Cq<==VHV)ZhM#S|yk}kL{3%h8VOCT; z#^=XoPyB@APF5jE9lQ>CppmOG=&6f$Ea zjR^x#abWP1tA%{4DP;A!TrOj{ z=S`y?BZ>RuIu+zHboqWTC`QcZyd4+Z@dCUL@Om%V2VQte42Sl5rRsuwMG zma$^}g@so0iL9R$onFqig*tJhZL7siqYH|6n#mXIeWn~<3`H*xmxtnA!78fkAit9Y zllOhQ4_4_~NqUZ@1kUZB->1XR`g8J!Cxqou%M5zO9&alKvfhrH{freK5W6%9fT%U66vJHznlTY!OLa2p*6<49UO zBO`GxtHxav+kQJ;qP19Uu}rHy+wwzY$kY_n;>Iz<#nIfF-*zTcKXz9Ur5|#2>UGk+8ddo>3Q^oGz%yvH)i_ zSj?F}H41iT9a&wYar<~+i+3SF@8B`SN66{>*sEZ%xw7u$hvrFAX*O|x%mBJ zR&T8NzE}BdLpkReC74?gIzUu7s5e^GYALK~%NmZa6hE z_!RE$Syh%6t*0kf&Sp@KYuavaiW+RrFHA#p06~ZKqGlj3v_-E$VFD6!rSW(LCuvq` zY#ZsAI8{v(Q}EFfu=E=AI{bmAK!xslId`cfMnNY6^l9age-z>Ovh(-An5h4xvNARy zvx+h{A(H;9Nk^h-$2(LGv(VzP>8XH8PH7uWXG=#RSuZOC;zJyde#@REt`w`6$io zcB?s9Njoq&y*;JWZ1MqmyWecyc%0s+i0i#Zkmwm(`3sgl*)nuqD7fsS-x%AQ7 z$EvDdPTgoxC1CGbwKFM$0X?f&H$=}{#TaLQA3n{uy*!)D51Fi4P9pmI?2qWi(9suI*-gLIg^mV>^EvAYWdFx}=@_fQn*0 zG=w^X^H0irHaw~iZ@HU{M$IflTUbQ*ba#sDbqFezTuOb?dMsl_Yv_uzU@Sg8KN?7H z%^DZ7;F+!3F~L5yWT=+2m)eX%w~jAgd&|U+ZI9K;I5{XCKteMR9bL9TeMcXii3ikL zv{_70E3IdI^kDKyYSKOp_8nAe`Hi8DCW&?E+P)f2@Y&dfH`0E0WpOqvqT6NtXZ^Cp z`=m~#7v9vBE`2?iPhJ)1K9QR(v6dwW-*=S0H4Xyi-rp-rEd=9jo+-`NJ7b1pE|T^SHgh*;7smc#FWR47__csw; zDz&k)Qqi4Da;dbe13^Pni)#+?3}jQ;2P_>Dr=Mx~wpuZ~SJSikFg2t3W$1Y=zTnJK zWsbES!%?NiNJH)34gBD2?C``7L-TyFu%S6K%g0=&`8&FqpW*((eVnL4ES0zBq7dCa zj31f7(u7#Am@HgL<9g_cUsrEr=jGNSt_BV_-A3NbLb-oU!7z-c5>ykSnq;W%wCvJZ zMzo2$bX}XBwRax;nK%a}N@oUK`D%n_mvGXhxJ(GD4mG_nS|ViE;%to46r`_ydpP|w z{b$8S*nF(nL6u=$&BuHC>iYz$eNQNOU`~&gNcEhf%GA%gWKfGx1Dr^se6E}4Ro`kp zdFS5J=pw`F#V>n9p37rXRLaxiow1uyY$c#4x=S)=-9?QE%N;da4mq#seReU+F>=8# z+LmTvp@gg)88wsNB)!4fC#>DCl39+m-wr1JVuV^0W`SSW1*LSjy`|!k3I`n z0H=?PhxgeRe=OYo@={V6z{Y35?G4gje)`8%e^jH8DJQu;OnCm2TLEs6N*+*ywwj`! z{&D|*dCv+92(JpIn;y)0|A^zidMf`|8sNE4b^0Iw)u(@6^{oxie7Vbh)g*t6x_|lH z1HYg9nsMvVUw!&#v&a9IFei`rHPQd_W`DQFkFDR&?TzR7=wCEnD$sluFw&Bcf7+W0 zr@x=O6_xYRKX1O=-(p%dJZeVxpZ4az!{*;%^N*qW-wPY*5`~ssIH^>t)5m`if>{AdnSL@9uzX-^hx(U z$mcTndLLRQdj~AR7&O^fiMgv;pQ6vr7B}wGhL(8VhUSlSMe!uo%f|p7yk$N7r*?#@xCoV$8W|RbB-mqYIHzSjXzn3*>irfJsiLYepXNAuvJ)Q{Vv4*9@@AQ}u69Uz9}+a=;I{Sb*Cclw(qr9Z1VYB95r%4_iL`vmdm9P?T@#wr>gh9 zgjy8RIS$WpkF1NoL@P?Yo$kt08zTX$xaeN&zUJB}*zBt2Sh26+JdX~n+-WkqeY(>g z_!4zW+h@CHXU^zbe@g2dcSwePN`u4JZaIOT5A))5$*24|*(_gR755w^qV+<~3E-T3 z`A}^$HQ0Q0KoMHA9e1=0%S(L>C$+@&c@Q=vAbd^iwiub`QB^sXtmk_T*7lyS*)d(r zXnVMClJP}D0D0^yICYL6z{b57H1h1p|9&L+JqeLf0+S6IO@OYa{Kvf)td7(CS--fT z#WoAp(+h0Y_5RlY_+zA4qiQ4|7&Ut)&2#W%Ckqu1XP+*l`36OnslW|m)?n#gib_2M4CwN0@8agfkf#YDG4?74xt4I0TRw)@AICs z_j9iO{sG_j{>F8YWF_~y*SzN(bBr+)Y5$(V8zi}-XqC!0oeA0QX^rl{2bpjfgXQ0aE$8#1NaVpfDIQXF)80O#(rNq+ zEoj^{OAdl)%Ie0>e?nZ0lo7Ts1HXNHaP$YrrGD67H*!Pg|FCY3XFxDFd+@&1mtH^U zvmJJgDKDNpG$f^xK6s}fhC*rs93IxJM#!v>W(N_r?e$=??(m54NkiuJkp-f*4((F* z_yTwB8ZV0gb{7ZD?Z4+C-(-KSH^!Ab;m^C=+qHnaRbe}{py7W3;ZxQumo5M??it$W zD75%9h*7X-3t@Ub8V*dMYpQ4|!Ecr!R2LN}`#D+E!iG-(0>bzB8g~QFy&S#1+9@0* z+Ua1r5azYA-k$MRFG2p0*#`q+PCIxt-UPu+CMTGBP8Qcr7KZjCE4G_9XEJA<+3T$i zD6RkeB2bU$g4yVhI%>~-@b9#3R$EQ3^H5&pLu_1gn}|Cnr;?Zc0X?2q#I{DsBmsyJ ze0`f)=J$P{mLxN;K&r_>BbV-m(8Sttdrs_7r`s026n7#3`coym9`~wp>H}Jj42|91 zUOj980^KTrM-U(Z>nJyyY%fNU_37V|gmFKuWZx+UtM?>-uLG&c-fN|0PU#Ul`228@ zJg+n)@qJBP<9<+WGXAJI6!IRk|%>`rciuFdi))z$O2WqHrH$OFyk=G$ExlCuwbWoi}= z$7ab_pr=moi7a;=D=jC^2NW}&i9#IS+KgL$~zWRlih#=mbS z&Cf4%^tBgHTC?IABX!2|8Oh6e4Lrz~W>_;GB+yXT9L9Xyl*^O@<4S6&HcKmB_s@-) zLMg%uZf2eUysfXVRx9eF-1-L_Bo~XZEf%%$iviQp#TAg|^7~ARwGV!K#346>>`1pH z9<#2G7VKQ3Ch8f~=#FwUm}x=BL$3+GdSlhcuC1b71MdjT?VqxW<&-66g#mLn7uQE* zt}ltp`^``PvYjY**_;C?&p%gspWlUPO~}>McvCexq6D+m>=PC^WCYnw{Hh7lvGgrM z+-15FJ=}F7kcEyHm;DX?JP0_kO*5d(@-?p;^d}7-qmTpN6I*y#?tUxr;CLi+e9CXr zcYNaEp2gHlX^f$R(&vwCM=i6T zn$W>2hf!@2Cw+!7YPI%N%5AIjio_((UV6}C%oApp(LF8Z&^4?yfyXh>2zng|lL;xtikiG$kJOz)T)IEo)fj&rS&;Xa!~@OBtJYJ$RW?_}vIziB622}# z{(9oV94@dFT}vfztyX({Gzx`lf2a6nuvtfr>!$4ncu{e0Uf()EFMd?Ym!A8P-QpfM zF);dd;({^vFNo25hKE2B63paxP{Ap`kOEpaoZ<4zGg@gn(4gsW%>}B&1R0zg@TLZr#8P)zStPnPmzo`iC8DjxR4DNEjmw7CrVbN)~%H-QGynfZ3A)!taj5N9rJc77GB z;Vf^oJBa>yBJ}G=*-fJi+fYr+T1C*WVYLU!`Rd{ez9V=q_E(^0KZMeIX8$3XL9&EW z)APVAf}W97i@XhwqP`xB@McZ8{}iU$qr)GXEr~h6R{aeGc&~o}4g^a*qCi#8>jTQMXkt(`F7v^&+=@s{(J3;v+ z_H`{(GQ_*>-IbI2zOZnhad&=&Dp*F%I+0sDUX$>rH6{zfuC|Xq6vbvk8oHknBt61m zoD~JLedi)vxU=~L1-n$FPgOkACmG@~>sOqfrQP<~_b_3AX&VB*&eME#pB92uTUA<5 zuUwD!d*q@Y^MrV)H=%4g>j(1wQ!l^z82zm^iYncQ$nH~i{>X?KGO9cek2J1}dkcKRWsuwUgT?#BZl6L=?spl2*`Fu_;R1kezEHysai&%+r@5ySWW z$LBsYzfIV-?g&qs_r|XD_r3RFc7%KBja0n!sai>PV2h8VvkP{&F#Z+<12xUtyRAJW z&0(ipEGfEa!TJ2gSQ&iZ+->WbV$kNsSbT{@5|HFeP0ti|##_(&9SInVtXodjqPs@( zwOGS(=i>p?ZrgbJ5UnZak>2781=lGSuLBng60a(p2`mNH8SxB72-9~gF)^*L- zg00e@9$a@jTIXcT<^7o!N^*3*7!{`P=qL1q zxX1^BwESl930GY?7tSw^@kC(729CE7C-MHn0EZtQIX3j{7+zXs6{}%uqk}Pe zZ>f^ukg-Fr505bZR%WL+__H(JeJGR4o}L9K$i)6yU%4uO=7-q|+sD$g>KtEl*n9b- z2Tu^buX-OfeIw)a3)@I>W?n1=m~5r;rRQT^;qD8ohEHJ@TIZCAx#9QG1j`vJaZ{sY z-*}0wQT{$@n}O-a8BDf&VLVmRKo+QFz*E>e_we#%74`sM-fvhn9Kc|ZErOsQQP}Cf zvcXDWe!y)A%PihYp|UBF=MfAc$pa`tkswvl%C|R2iqgGBqH;5c;D8iELieT|#N zG^M9>NZhPX$b?^=@jlm}23yhWAu!N9+uMD|I^DMGQoFW}@zo-yRNzNJAwTl=W7!dW7mr^T@P-LyiEmQhiJIHLqUT^}eb z1y>hw{XN`emfifJ%PT7<;I0sb(l4&*R#+&+kxh;@&CaUm> z^Rr6ZSuDJaQ9bv&dBY>kZ>3;m+ANQgJ#3*AzH-fNlA*N)Gu1g`c{Js*W1FE%$75ux z5ZQzr553h2hOXXoD0X&c^2?sco-H-2K78o3-MsVr8&*fp$THs0Sxm+&>F_fpV^I7y zoc27)Ce?932G=KGXBNp#As!Nvon$+X)x z!QJ`1V@4^G-P#J*VDqQ;+f|F(D9$z0JvOUaE2$zf8t`;;9XhAaABjoqqV`5HzmP7pLh>O-_cNM%Ho#f61_|^Nm7h<~ z7HhMd2M!dO+|0G%Jg|{ZX9|eZ?dm`GfPp9y3SO4R1fYNnp0MoSuBS66DXjz(xp!nq zS)x%vPvM49PTAt+`2%0SrrmmHe|^azAe9@A)Qk4K};uSbXM=bRh?-egEGRh74$)))Y9>V0?SsNUMLk7fE0(3`DZ_A8$cg0(1q@9W#yhW{n?>_S055~fSl(^ z32^*dW7>~8MUVSW()f*)pr0N)|NitdH^{|4a6qg^ zKjwvj>5SH72#Xhwqu%6PH~f_4K41!8`$;Bgp-Zdol~udm{VQt4YjRj!rq=yL)uG#F zK=^!q8BY$I7?zS)&iUaVbCmgw#{-xM2=AxO0DCQ}Sp;6F6VIAOofPa18cseq%cT2m zG>p1WMwg`N3s%znd+qy6KplVy@EgDIxi9mHv!U!o+!C@zY$y794}O0lp`g)_z+auQ zh8bs9yKIj1ROU1LoYv<@Mo2i)`5xivLop3r2jh>8i$qdh#n*&}T0}=l5w&CW)eijvuLua;o}$m3MZzLv2zzuQ&6wAN?w@=>b z9&8kqSzlwSM@(48MCO_WQuc|?`a0we9{&o5FN;`|yl+j#Oo1FtQui$rQM5V?(uF$l zQmYZPhW!_q0bTRaq(f3G6{F*%(==+d)VSC8V5oDYJ1_ki>eHl-Q@ZDtY!ybNISb>f zJHQMHsE8ld8s;+=Px{Me$1YhEbnhgyHfAd+gxSCE9gagQd8#8^;B;q9X7WgHt1U8D zz9=$t(4HPTdn}=fK=+<(#LH|l8#;mDL~D3~zMC-sV`i6>EyJw|hnq>H9FmrNumywc z6IzaGnSlc|IPZg0zhVu9*?&nhn?NpAx8cl(aIatglbObAlb*CY*V>_e=kE6AXhEPC zw&uxvW7^j6yJu2H3H%uBfW(OFwD^I9b34eb$IeDky2uo|tnZ`lPCjCNYEhD}HU&vZ zW;tIC)bX#Pl6-GkHKb4?2OZlF@Jl!hA^aw-YB5LE5Or*t&Oa9z=BaCM>95`pO)$Jh zj;@<-N&Rp(bb$-6)XhQ#2PLshVhj119gSyC#YI=3hsxuouYGV*xD+5bmFkStyRf>U zg%grWe4MO^SS&QWW z;Di}RO=TQcy;}K0&yqtJwpe`s!Rjt|r|BBYb2DfJ$}~~85)HdxHF1xpQa1$t$r z4LhZVs#78*mGK#+bF6S2dYO`v0s`EK8*$Z{gF@l2WS-9k57t={O{TUii>JQXA~@_vm%{mgd4;!EHn{mA zDVeu;Wepxm-_CAB!C{n7QE7^?(kAI`YpZ#ZW&pkMZqCr&tUET*){uM8mov??xZz*{ zD>!U9_3g25SEgbJjij}T-Yhw`E}Yq{b_%i?Zi!l$JXk|^HsNMYwVF7xWAA1M+#n(A zq2BYD@Ctbxp&KcE#AZ=~$*%X5KJ08G^GK1N0@36QeFZa_-@NA=Q~^leJ#)aTpE)ud z&D(cKIi;z$74svXR$LCqN&d%UFK(JYKtEceXJUJ88{z3XQ3fY=IKmc9R$x1Hxz;S_lFCOb@DTomDNfKEL4f;7E&!ung=bovH1|8F&4gv z6HOW+5r-jZ`;ZQh92k0_KQdKR6D?=VI=&BeSX7%1*--o9q6?ON$5?iKTpkGu)3}LJ$r>5P(o#Am4(Eus=@w2#F;tP(UxoR z*#CG>5j!8k5^N>xJpB||IR*L=37u)u!0eIcc7KlG%31!L#{PXm z;0@Fh?DC5@-U}C9B5l&Y{B-t_W7vLQ9}Pzf^pkEK`oI4D;J$RVFyx<@Y_|6aD5+51 zyz%V5AqD0S|Ne-EbhRpz3@OFm7wwi7`g_;v|A0q9_5%Uz@xLfpodq~k-4&9KY8)q~Ree^G zALLpDB>rBq{9o3^>&OfK7RL4OO>MSQNYea0v1r-umJ}0C3UEce4KDuK`*! zCl|Uh76!(-QWyn% z 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 z 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 Aa{vGU diff --git a/book/docs/generating-proofs/prover-network/key-setup.md b/book/docs/generating-proofs/prover-network/key-setup.md index 222fba840..bfb8bd361 100644 --- a/book/docs/generating-proofs/prover-network/key-setup.md +++ b/book/docs/generating-proofs/prover-network/key-setup.md @@ -25,10 +25,10 @@ cast wallet new which will give you an output similar to this: -![Screenshot from running 'cast wallet new' to generate an SP1_PRIVATE_KEY.](../prover-network/key.png) +![Screenshot from running 'cast wallet new' to generate a NETWORK_PRIVATE_KEY.](../prover-network/key.png) The "Address" what you should submit in the [form](https://forms.gle/rTUvhstS8PFfv9B3A), in the example above this is `0x552f0FC6D736ed965CE07a3D71aA639De15B627b`. The "Private key" should be kept safe and -secure. When interacting with the network, you will set your `SP1_PRIVATE_KEY` environment variable +secure. When interacting with the network, you will set your `NETWORK_PRIVATE_KEY` environment variable to this value. ### Retrieve an Existing Key diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 77eef1f08..0809f4673 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -14,70 +14,37 @@ let mut proof = client.prove(&pk, &stdin).run().unwrap(); ``` ```sh -SP1_PROVER=network SP1_PRIVATE_KEY=... RUST_LOG=info cargo run --release +SP1_PROVER=network NETWORK_PRIVATE_KEY=... RUST_LOG=info cargo run --release ``` - `SP1_PROVER` should be set to `network` when using the prover network. -- `SP1_PRIVATE_KEY` should be set to your [private key](./key-setup.md). You will need +- `NETWORK_PRIVATE_KEY` should be set to your [private key](./key-setup.md). You will need to be using a [whitelisted](../prover-network) key to use the network. When you call any of the prove functions in ProverClient now, it will first simulate your program, then wait for it to be proven through the network and finally return the proof. ## View the status of your proof -You can view your proof and other running proofs on the [explorer](https://explorer.succinct.xyz/). The page for your proof will show details such as the stage of your proof and the cycles used. It also shows the program hash which is the keccak256 of the program bytes. +You can view your proof and other running proofs on the [explorer](https://network2.succinct.xyz/). The page for your proof will show details such as the stage of your proof and the cycles used. It also shows the vk hash of the program. -![Screenshot from explorer.succinct.xyz showing the details of a proof including status, stage, type, program, requester, prover, CPU cycles used, time requested, and time claimed.](./explorer.png) +![Screenshot from network2.succinct.xyz showing the details of a proof.](./explorer.png) ## Advanced Usage -### Skip simulation +If you are using the prover network in a production system, or otherwise want to use advanced features such as async, skipping local simulation, or accessing the proof ID, you should use `sp1_sdk::NetworkProver` directly. -To skip the simulation step and directly submit the program for proof generation, you can set the `SKIP_SIMULATION` environment variable to `true`. This will save some time if you are sure that your program is correct. If your program panics, the proof will fail and ProverClient will panic. +```rust,no_run +use sp1_sdk::{network::FulfillmentStrategy, Prover, ProverClient}; +use std::time::Duration; -### Use NetworkProver directly +let prover = ProverClient::builder().network().build(); +let (pk, vk) = prover.setup(ELF); -By using the `sp1_sdk::NetworkProver` struct directly, you can call async functions directly and have programmatic access to the proof ID and download proofs by ID. +// Request proof +let request_id = prover.prove(&pk, &stdin).groth16().skip_simulation(true).request_async().await.unwrap(); +println!("Proof request ID: {}", request_id); -```rust -impl NetworkProver { - /// Creates a new [NetworkProver] with the private key set in `SP1_PRIVATE_KEY`. - pub fn new() -> Self; - - /// Creates a new [NetworkProver] with the given private key. - pub fn new_from_key(private_key: &str); - - /// Requests a proof from the prover network, returning the proof ID. - pub async fn request_proof( - &self, - elf: &[u8], - stdin: SP1Stdin, - mode: ProofMode, - ) -> Result; - - /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the - /// function will return an error if the proof is not generated within the timeout. - pub async fn wait_proof( - &self, - proof_id: &str, - timeout: Option, - ) -> Result; - - /// Get the status and the proof if available of a given proof request. The proof is returned - /// only if the status is Fulfilled. - pub async fn get_proof_status( - &self, - proof_id: &str, - ) -> Result<(GetProofStatusResponse, Option)>; - - /// Requests a proof from the prover network and waits for it to be generated. - pub async fn prove( - &self, - elf: &[u8], - stdin: SP1Stdin, - mode: ProofMode, - timeout: Option, - ) -> Result; -} +// Wait for proof complete with a timeout +let proof = prover.wait_proof(request_id, Some(Duration::from_secs(60 * 60))).await.unwrap(); ``` From 5a6a2bce4a4374f25aa9ddb00fb3f1a9886a1de3 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Fri, 10 Jan 2025 19:48:35 +0000 Subject: [PATCH 10/13] env var comment --- book/docs/generating-proofs/prover-network/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 0809f4673..3d40968c4 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -17,7 +17,7 @@ let mut proof = client.prove(&pk, &stdin).run().unwrap(); SP1_PROVER=network NETWORK_PRIVATE_KEY=... RUST_LOG=info cargo run --release ``` -- `SP1_PROVER` should be set to `network` when using the prover network. +- `SP1_PROVER` should be set to `network` rather than the default `cpu` when using the prover network. This variable allows you to switch between the CPU and network provers. - `NETWORK_PRIVATE_KEY` should be set to your [private key](./key-setup.md). You will need to be using a [whitelisted](../prover-network) key to use the network. From 3be593e66faf0778ba655a238c6bdbbece7ee7af Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Fri, 10 Jan 2025 20:38:50 +0000 Subject: [PATCH 11/13] fix --- crates/sdk/src/network/prover.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index 7208e65fe..fbab017a2 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -224,11 +224,11 @@ impl NetworkProver { /// Waits for a proof to be generated and returns the proof. If a timeout is supplied, the /// function will return an error if the proof is not generated within the timeout. - pub async fn wait_proof( + pub async fn wait_proof( &self, request_id: B256, timeout: Option, - ) -> Result

    { + ) -> Result { let mut is_assigned = false; let start_time = Instant::now(); From 86f7bfe531a5da1743bb381ab07447e39a42c66f Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Fri, 10 Jan 2025 23:15:10 +0000 Subject: [PATCH 12/13] update --- .../generating-proofs/prover-network/usage.md | 29 +++++++++++++++++-- crates/sdk/src/network/prover.rs | 1 - 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 3d40968c4..8c66a12d4 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -32,7 +32,13 @@ You can view your proof and other running proofs on the [explorer](https://netwo ## Advanced Usage -If you are using the prover network in a production system, or otherwise want to use advanced features such as async, skipping local simulation, or accessing the proof ID, you should use `sp1_sdk::NetworkProver` directly. +If you are using the prover network in a production system, or otherwise want to use advanced features, you should use `sp1_sdk::NetworkProver` directly. + +Advanced features include: +* Skipping local simulation +* Requesting a proof, which returns a proof ID, and then waiting for the proof to be fulfilled +* Async support +* Requesting a proof using a custom fulfillment strategy, such as for reserved prover network capacity ```rust,no_run use sp1_sdk::{network::FulfillmentStrategy, Prover, ProverClient}; @@ -41,10 +47,29 @@ use std::time::Duration; let prover = ProverClient::builder().network().build(); let (pk, vk) = prover.setup(ELF); -// Request proof +// Request proof and get the proof ID immediately let request_id = prover.prove(&pk, &stdin).groth16().skip_simulation(true).request_async().await.unwrap(); println!("Proof request ID: {}", request_id); // Wait for proof complete with a timeout let proof = prover.wait_proof(request_id, Some(Duration::from_secs(60 * 60))).await.unwrap(); + +// Request a proof with reserved prover network capacity +let proof = prover + .prove(&pk, &stdin) + .groth16() + .skip_simulation(true) + .fulfillment_strategy(FulfillmentStrategy::Reserved) + .run_async() + .await + .unwrap(); + +// Request a proof and then block immediately until the proof is fulfilled +let proof = prover + .prove(&pk, &stdin) + .groth16() + .skip_simulation(true) + .fulfillment_strategy(FulfillmentStrategy::Reserved) + .run() + .unwrap(); ``` diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index fbab017a2..fb51409a8 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -19,7 +19,6 @@ use crate::{ use alloy_primitives::B256; use anyhow::Result; use backoff::{future::retry, Error as BackoffError, ExponentialBackoff}; -use serde::de::DeserializeOwned; use sp1_core_executor::{SP1Context, SP1ContextBuilder}; use sp1_core_machine::io::SP1Stdin; use sp1_prover::{components::CpuProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; From 92828fb7cad81b60a32779fc4cb40bacafe5c695 Mon Sep 17 00:00:00 2001 From: Chris Tian Date: Fri, 10 Jan 2025 23:16:27 +0000 Subject: [PATCH 13/13] update --- book/docs/generating-proofs/prover-network/usage.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/book/docs/generating-proofs/prover-network/usage.md b/book/docs/generating-proofs/prover-network/usage.md index 8c66a12d4..b6e147865 100644 --- a/book/docs/generating-proofs/prover-network/usage.md +++ b/book/docs/generating-proofs/prover-network/usage.md @@ -54,7 +54,7 @@ println!("Proof request ID: {}", request_id); // Wait for proof complete with a timeout let proof = prover.wait_proof(request_id, Some(Duration::from_secs(60 * 60))).await.unwrap(); -// Request a proof with reserved prover network capacity +// Request a proof with reserved prover network capacity and wait for it to be fulfilled let proof = prover .prove(&pk, &stdin) .groth16() @@ -64,12 +64,13 @@ let proof = prover .await .unwrap(); -// Request a proof and then block immediately until the proof is fulfilled +// Request a proof and then block immediately (up to a timeout) until the proof is fulfilled let proof = prover .prove(&pk, &stdin) .groth16() .skip_simulation(true) .fulfillment_strategy(FulfillmentStrategy::Reserved) + .timeout(Duration::from_secs(60 * 60)) .run() .unwrap(); ```