From 82b499ea70959f564ba8c9f4753807e679404559 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 14:18:24 -0700 Subject: [PATCH 01/16] test: require typed operation obstructions --- .../tests/executable_operation_package.rs | 8 +++++ .../tests/executable_operation_package.rs | 30 +++++++++++++++++++ xtask/tests/run_edict_operation.rs | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs index 3ad3e2ca..6ae676fd 100644 --- a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs @@ -107,6 +107,14 @@ fn one_provider_binary_lowers_two_unrelated_application_vocabularies() { text_field(&beta_decoded, "operation_coordinate"), Some("notes.beta@7.createNote") ); + assert_eq!( + text_field(&alpha_decoded, "obstruction_coordinate"), + Some(ALPHA.obstruction) + ); + assert_eq!( + text_field(&beta_decoded, "obstruction_coordinate"), + Some(BETA.obstruction) + ); } #[test] diff --git a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs index 3ee764fa..807f6d49 100644 --- a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs @@ -93,6 +93,12 @@ fn verifier_accepts_generic_lowerer_output_for_two_application_vocabularies() { for names in FIXTURES { let fixture = raw_fixture(names); let package = lower_package(names, &fixture); + let package_value = + decode_canonical_cbor_v1(&package).expect("the lowered package is canonical"); + assert_eq!( + text_field(&package_value, "obstruction_coordinate"), + Some(names.obstruction) + ); let verified = verifier::verify(verification_request(names, &fixture, package)) .expect("the independent verifier completes"); @@ -137,6 +143,30 @@ fn verifier_rejects_a_canonical_package_with_a_rebound_operation_coordinate() { assert_eq!(text_field(&report, "outcome"), Some("rejected")); } +#[test] +fn verifier_rejects_a_canonical_package_with_a_rebound_obstruction_coordinate() { + let names = FIXTURES[0]; + let fixture = raw_fixture(names); + let package = lower_package(names, &fixture); + let mut package_value = + decode_canonical_cbor_v1(&package).expect("the lowered package is canonical"); + *map_field_mut(&mut package_value, "obstruction_coordinate") = + text("forged.domain@9.NotTheAuthoredObstruction"); + let package = encode_canonical_cbor_v1(&package_value).expect("the mutation remains canonical"); + + let verified = verifier::verify(verification_request(names, &fixture, package)) + .expect("semantic mismatch is a completed verification"); + + assert_eq!(verified.diagnostics.len(), 1); + assert_eq!( + verified.diagnostics[0].code, + "echo.verifier.executable-operation-package-mismatch" + ); + let report = decode_canonical_cbor_v1(&verified.outputs[0].artifact.bytes) + .expect("the rejection report is canonical"); + assert_eq!(text_field(&report, "outcome"), Some("rejected")); +} + fn lower_package(names: FixtureNames<'_>, fixture: &RawFixture) -> Vec { let success = lowerer::lower(lowering_request(names, fixture)).expect("the generic lowerer completes"); diff --git a/xtask/tests/run_edict_operation.rs b/xtask/tests/run_edict_operation.rs index b979a652..2e8f18ac 100644 --- a/xtask/tests/run_edict_operation.rs +++ b/xtask/tests/run_edict_operation.rs @@ -214,7 +214,7 @@ fn compiler_emitted_operation_runs_durably_without_native_callbacks() { assert_eq!(report["recovery"]["receiptRecovered"], true); assert_eq!( report["duplicate"]["obstruction"], - "echo.executable-operation/precondition-mismatch/v1" + "causal.cell@1.AlreadyExists" ); assert_eq!( report["recovery"]["mutatedInitialStateRefusal"], From fa3ed6af4edd25aed1a315705bad26518e368211 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 14:23:02 -0700 Subject: [PATCH 02/16] feat: retain typed operation obstructions --- .../src/executable_operation.rs | 12 ++++++- .../tests/executable_operation_package.rs | 1 + .../src/executable_operation.rs | 12 ++++++- crates/warp-core/src/echo_operation.rs | 32 +++++++++++++++++++ crates/warp-core/src/trusted_runtime_host.rs | 1 + .../executable_operation_pipeline_tests.rs | 4 +++ xtask/src/run_edict_operation.rs | 8 +++-- 7 files changed, 65 insertions(+), 5 deletions(-) diff --git a/crates/echo-edict-provider-lowerer/src/executable_operation.rs b/crates/echo-edict-provider-lowerer/src/executable_operation.rs index 5c6d1dcf..2ebd168b 100644 --- a/crates/echo-edict-provider-lowerer/src/executable_operation.rs +++ b/crates/echo-edict-provider-lowerer/src/executable_operation.rs @@ -65,6 +65,7 @@ struct ProgramConfiguration<'a> { struct ApplicationIntent<'a> { name: &'a str, operation_coordinate: String, + obstruction_coordinate: &'a str, effect_coordinate: &'a str, failure_name: &'a str, } @@ -246,12 +247,17 @@ fn validate_core<'a>( return Err(super::unsupported_semantics(coordinate)); } let effect_coordinate = required_text(node, "effect", coordinate)?; - let (failure_name, _) = + let (failure_name, obstruction_arm) = single_text_map_entry(required_map(node, "obstructionMap", coordinate)?) .ok_or_else(|| super::unsupported_semantics(coordinate))?; + let obstruction_coordinate = required_text(obstruction_arm, "callee", coordinate)?; + if obstruction_coordinate.is_empty() { + return Err(super::unsupported_semantics(coordinate)); + } Ok(ApplicationIntent { name: intent_name, operation_coordinate: format!("{coordinate}.{intent_name}"), + obstruction_coordinate, effect_coordinate, failure_name, }) @@ -670,6 +676,10 @@ fn encode_package( "obstruction_interpretation_identity", hash_value(profile_digest(OBSTRUCTION_INTERPRETATION)), ), + ( + "obstruction_coordinate", + canonical_text(intent.obstruction_coordinate), + ), ( "operation_coordinate", canonical_text(&intent.operation_coordinate), diff --git a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs index 6ae676fd..23434c9a 100644 --- a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs @@ -480,6 +480,7 @@ fn expected_package( let core_identity = hash(&request.core.reference.digest); ExecutableOperationPackageV1::new( format!("{}.{}", names.application, names.intent), + names.obstruction, EchoOperationSemanticClosureV1::new( hash(&source.reference.digest), core_identity, diff --git a/crates/echo-edict-provider-verifier/src/executable_operation.rs b/crates/echo-edict-provider-verifier/src/executable_operation.rs index ef1a2e2f..29ebc5e9 100644 --- a/crates/echo-edict-provider-verifier/src/executable_operation.rs +++ b/crates/echo-edict-provider-verifier/src/executable_operation.rs @@ -69,6 +69,7 @@ struct ProgramConfiguration<'a> { struct ApplicationIntent<'a> { name: &'a str, operation_coordinate: String, + obstruction_coordinate: &'a str, effect_coordinate: &'a str, failure_name: &'a str, } @@ -276,12 +277,17 @@ fn validate_core<'a>( return Err(super::unsupported_semantics(coordinate)); } let effect_coordinate = required_text(node, "effect", coordinate)?; - let (failure_name, _) = + let (failure_name, obstruction_arm) = single_text_map_entry(required_map(node, "obstructionMap", coordinate)?) .ok_or_else(|| super::unsupported_semantics(coordinate))?; + let obstruction_coordinate = required_text(obstruction_arm, "callee", coordinate)?; + if obstruction_coordinate.is_empty() { + return Err(super::unsupported_semantics(coordinate)); + } Ok(ApplicationIntent { name: intent_name, operation_coordinate: format!("{coordinate}.{intent_name}"), + obstruction_coordinate, effect_coordinate, failure_name, }) @@ -703,6 +709,10 @@ fn encode_expected_package( "obstruction_interpretation_identity", hash_value(profile_digest(OBSTRUCTION_INTERPRETATION)), ), + ( + "obstruction_coordinate", + canonical_text(intent.obstruction_coordinate), + ), ( "operation_coordinate", canonical_text(&intent.operation_coordinate), diff --git a/crates/warp-core/src/echo_operation.rs b/crates/warp-core/src/echo_operation.rs index 73df1f60..cb4afbfd 100644 --- a/crates/warp-core/src/echo_operation.rs +++ b/crates/warp-core/src/echo_operation.rs @@ -944,6 +944,7 @@ impl EchoOperationSemanticClosureV1 { #[derive(Clone, Debug, PartialEq, Eq)] pub struct ExecutableOperationPackageV1 { operation_coordinate: String, + obstruction_coordinate: String, semantic_closure: EchoOperationSemanticClosureV1, target_profile_identity: Hash, interpreter_profile_identity: Hash, @@ -966,6 +967,7 @@ impl ExecutableOperationPackageV1 { #[must_use] pub fn new( operation_coordinate: impl Into, + obstruction_coordinate: impl Into, semantic_closure: EchoOperationSemanticClosureV1, target_profile_identity: Hash, authority_profile_identity: Hash, @@ -981,6 +983,7 @@ impl ExecutableOperationPackageV1 { let application_basis_schema_identity = profile_digest(program.application_basis_schema()); Self { operation_coordinate: operation_coordinate.into(), + obstruction_coordinate: obstruction_coordinate.into(), semantic_closure, target_profile_identity, interpreter_profile_identity: profile_digest(INTERPRETER_PROFILE), @@ -1005,6 +1008,12 @@ impl ExecutableOperationPackageV1 { &self.operation_coordinate } + /// Returns the application-authored obstruction coordinate. + #[must_use] + pub fn obstruction_coordinate(&self) -> &str { + &self.obstruction_coordinate + } + /// Returns the Edict semantic identity bound by this package. #[must_use] pub const fn semantic_identity(&self) -> Hash { @@ -1049,6 +1058,12 @@ impl ExecutableOperationPackageV1 { "operation coordinate must not be empty", )); } + if self.obstruction_coordinate.is_empty() { + return Err(artifact_error( + EchoOperationArtifactErrorKindV1::EmptyObstructionCoordinate, + "obstruction coordinate must not be empty", + )); + } if !self.budget_ceiling.is_nonzero() { return Err(artifact_error( EchoOperationArtifactErrorKindV1::InvalidBudget, @@ -1105,6 +1120,10 @@ impl ExecutableOperationPackageV1 { "obstruction_interpretation_identity", hash_value(self.obstruction_interpretation_identity), ), + ( + "obstruction_coordinate", + text_value(&self.obstruction_coordinate), + ), ( "operation_coordinate", text_value(&self.operation_coordinate), @@ -1143,6 +1162,7 @@ impl ExecutableOperationPackageV1 { "intrinsic_profile_identity", "obstruction_schema_identity", "obstruction_interpretation_identity", + "obstruction_coordinate", "operation_coordinate", "program", "result_schema_identity", @@ -1160,10 +1180,18 @@ impl ExecutableOperationPackageV1 { "operation coordinate must not be empty", )); } + let obstruction_coordinate = take_text(&mut fields, "obstruction_coordinate")?; + if obstruction_coordinate.is_empty() { + return Err(artifact_error( + EchoOperationArtifactErrorKindV1::EmptyObstructionCoordinate, + "obstruction coordinate must not be empty", + )); + } let program_bytes = take_bytes(&mut fields, "program")?; let program = EchoOperationProgramV1::from_canonical_bytes(&program_bytes)?; let package = Self { operation_coordinate, + obstruction_coordinate, semantic_closure: EchoOperationSemanticClosureV1::from_value(take_field( &mut fields, "semantic_closure", @@ -1295,6 +1323,8 @@ pub enum EchoOperationArtifactErrorKindV1 { NonCanonical, /// The public operation coordinate was empty. EmptyOperationCoordinate, + /// The application-authored obstruction coordinate was empty. + EmptyObstructionCoordinate, /// The target profile is not implemented by this Echo runtime. UnsupportedTargetProfile, /// A schema or footprint profile is not implemented by this runtime. @@ -6310,6 +6340,7 @@ mod tests { let authority_profile = digest(40); let package = ExecutableOperationPackageV1::new( operation_coordinate, + "echo.fixture.DescendedCreateIfAbsent.AlreadyExists/v1", EchoOperationSemanticClosureV1::new( digest(41), digest(42), @@ -6534,6 +6565,7 @@ mod tests { fn retained_fixture_installation() -> InstalledEchoOperationV1 { let package = ExecutableOperationPackageV1::new( "echo.fixture.Retention.v1", + "echo.fixture.Retention.Obstruction/v1", EchoOperationSemanticClosureV1::new( digest(1), digest(2), diff --git a/crates/warp-core/src/trusted_runtime_host.rs b/crates/warp-core/src/trusted_runtime_host.rs index 85480b56..8995c061 100644 --- a/crates/warp-core/src/trusted_runtime_host.rs +++ b/crates/warp-core/src/trusted_runtime_host.rs @@ -6348,6 +6348,7 @@ mod tests { let budget = crate::EchoOperationBudgetV1::new(7, 1_024, 1_024); let package = crate::ExecutableOperationPackageV1::new( operation_coordinate, + "echo.test.LegacyRecoveryIndex.Obstruction.v1", crate::EchoOperationSemanticClosureV1::new( [0x10; 32], [0x11; 32], diff --git a/crates/warp-core/tests/executable_operation_pipeline_tests.rs b/crates/warp-core/tests/executable_operation_pipeline_tests.rs index 7975e3f0..4aa30dbc 100644 --- a/crates/warp-core/tests/executable_operation_pipeline_tests.rs +++ b/crates/warp-core/tests/executable_operation_pipeline_tests.rs @@ -451,6 +451,7 @@ fn operation_package_at( ) -> ExecutableOperationPackageV1 { ExecutableOperationPackageV1::new( operation_coordinate, + "echo.fixture.OperationObstruction/v1", semantic_closure(), warp_core::echo_operation_target_profile_identity_v1(), digest("fixture-authority-profile"), @@ -469,6 +470,7 @@ fn creation_operation_package( ) -> ExecutableOperationPackageV1 { ExecutableOperationPackageV1::new( CREATE_OPERATION_COORDINATE, + "echo.fixture.AlreadyExists/v1", semantic_closure(), warp_core::echo_operation_create_if_absent_target_profile_identity_v1(), digest("fixture-authority-profile"), @@ -1106,6 +1108,7 @@ fn package_admission_rejects_malformed_unsupported_mismatched_and_over_budget_by let unsupported_target_bytes = ExecutableOperationPackageV1::new( OPERATION_COORDINATE, + "echo.fixture.OperationObstruction/v1", semantic_closure(), digest("unsupported-target-profile"), digest("fixture-authority-profile"), @@ -1225,6 +1228,7 @@ fn package_admission_rejects_malformed_unsupported_mismatched_and_over_budget_by let impossible_package = ExecutableOperationPackageV1::new( OPERATION_COORDINATE, + "echo.fixture.OperationObstruction/v1", semantic_closure(), warp_core::echo_operation_target_profile_identity_v1(), digest("fixture-authority-profile"), diff --git a/xtask/src/run_edict_operation.rs b/xtask/src/run_edict_operation.rs index 30bf3388..4ef8b4b8 100644 --- a/xtask/src/run_edict_operation.rs +++ b/xtask/src/run_edict_operation.rs @@ -44,7 +44,6 @@ const TARGET_IR_COORDINATE: &str = "echo.span-ir/v1"; const DIAGNOSTIC_ABI: &str = "edict.diagnostics/v1"; const NODE_ID_DERIVATION: &str = "sha256-utf8/v1"; const WARP_ID_SOURCE: &str = "action-lane/v1"; -const PRECONDITION_MISMATCH: &str = "echo.executable-operation/precondition-mismatch/v1"; /// Inputs needed to run one exact compiler-produced package. pub struct RunEdictOperationConfig { @@ -133,11 +132,12 @@ pub struct RecoveryReport { #[derive(Serialize)] #[serde(rename_all = "camelCase")] pub struct DuplicateReport { - pub obstruction: &'static str, + pub obstruction: String, } struct PackageMetadata { operation_coordinate: String, + obstruction_coordinate: String, lawpack_coordinate: String, lawpack_identity: [u8; 32], authority_profile_identity: [u8; 32], @@ -467,7 +467,7 @@ pub fn run(config: RunEdictOperationConfig) -> Result { Some(EchoOperationActionOutcomeV1::Obstructed(obstruction)) if obstruction.kind() == EchoOperationObstructionKindV1::PreconditionMismatch => { - PRECONDITION_MISMATCH + package.obstruction_coordinate.clone() } outcome => bail!("duplicate Action produced unexpected outcome: {outcome:?}"), }; @@ -604,6 +604,8 @@ fn parse_package(value: &CanonicalValueV1) -> Result { Ok(PackageMetadata { operation_coordinate: nonempty_text_field(value, "operation_coordinate", "package")? .to_owned(), + obstruction_coordinate: nonempty_text_field(value, "obstruction_coordinate", "package")? + .to_owned(), lawpack_coordinate: nonempty_text_field( semantic_closure, "lawpack_coordinate", From e17389bc4e9faa8fa60dcffb67e96bc10fd5df50 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 14:38:28 -0700 Subject: [PATCH 03/16] fix: read canonical obstruction arms --- .../echo-edict-provider-lowerer/src/executable_operation.rs | 3 ++- .../tests/executable_operation_package.rs | 5 ++++- .../echo-edict-provider-verifier/src/executable_operation.rs | 3 ++- .../tests/executable_operation_package.rs | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/crates/echo-edict-provider-lowerer/src/executable_operation.rs b/crates/echo-edict-provider-lowerer/src/executable_operation.rs index 2ebd168b..ce3bf0c4 100644 --- a/crates/echo-edict-provider-lowerer/src/executable_operation.rs +++ b/crates/echo-edict-provider-lowerer/src/executable_operation.rs @@ -250,7 +250,8 @@ fn validate_core<'a>( let (failure_name, obstruction_arm) = single_text_map_entry(required_map(node, "obstructionMap", coordinate)?) .ok_or_else(|| super::unsupported_semantics(coordinate))?; - let obstruction_coordinate = required_text(obstruction_arm, "callee", coordinate)?; + let obstruction_value = required_map(obstruction_arm, "value", coordinate)?; + let obstruction_coordinate = required_text(obstruction_value, "callee", coordinate)?; if obstruction_coordinate.is_empty() { return Err(super::unsupported_semantics(coordinate)); } diff --git a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs index 23434c9a..7fbfdbc1 100644 --- a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs @@ -280,7 +280,10 @@ fn core(names: FixtureNames<'_>) -> CanonicalValueV1 { "obstructionMap", dynamic_map([( names.failure, - owned_map([("callee", text(names.obstruction))]), + owned_map([( + "value", + owned_map([("callee", text(names.obstruction))]), + )]), )]), ), ])]), diff --git a/crates/echo-edict-provider-verifier/src/executable_operation.rs b/crates/echo-edict-provider-verifier/src/executable_operation.rs index 29ebc5e9..ef537823 100644 --- a/crates/echo-edict-provider-verifier/src/executable_operation.rs +++ b/crates/echo-edict-provider-verifier/src/executable_operation.rs @@ -280,7 +280,8 @@ fn validate_core<'a>( let (failure_name, obstruction_arm) = single_text_map_entry(required_map(node, "obstructionMap", coordinate)?) .ok_or_else(|| super::unsupported_semantics(coordinate))?; - let obstruction_coordinate = required_text(obstruction_arm, "callee", coordinate)?; + let obstruction_value = required_map(obstruction_arm, "value", coordinate)?; + let obstruction_coordinate = required_text(obstruction_value, "callee", coordinate)?; if obstruction_coordinate.is_empty() { return Err(super::unsupported_semantics(coordinate)); } diff --git a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs index 807f6d49..d30a7b78 100644 --- a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs @@ -397,7 +397,10 @@ fn core(names: FixtureNames<'_>) -> CanonicalValueV1 { "obstructionMap", dynamic_map([( names.failure, - map([("callee", text(names.obstruction))]), + map([( + "value", + map([("callee", text(names.obstruction))]), + )]), )]), ), ])]), From 8f30362c3b303e8a8420271007f20a445e696509 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 14:52:51 -0700 Subject: [PATCH 04/16] chore: refresh typed obstruction provider closure --- .../lowerer.echo-dpo.component.wasm | Bin 230297 -> 230640 bytes .../verifier.echo-dpo.component.wasm | Bin 247766 -> 247984 bytes .../provenance.provider-generation.json | 2 +- .../evidence/review.provider-generation.json | 2 +- .../schema.echo-provider-artifacts.cddl | 1 + .../package/v1/provider-manifest.echo.json | 32 +++++++++--------- .../echo-wesley-gen/src/provider_artifacts.rs | 1 + .../echo-wesley-gen/tests/provider_package.rs | 2 +- .../tests/provider_package_corpus.rs | 4 +-- .../v1/lowerer.echo-dpo.component.wasm | Bin 230297 -> 230640 bytes .../v1/verifier.echo-dpo.component.wasm | Bin 247766 -> 247984 bytes .../provenance.provider-generation.json | 2 +- .../evidence/review.provider-generation.json | 2 +- .../schema.echo-provider-artifacts.cddl | 1 + .../lowerer.echo-dpo.component.wasm | Bin 230297 -> 230640 bytes .../verifier.echo-dpo.component.wasm | Bin 247766 -> 247984 bytes .../provenance.provider-generation.json | 2 +- .../evidence/review.provider-generation.json | 2 +- .../schema.echo-provider-artifacts.cddl | 1 + .../package/v1/provider-manifest.echo.json | 32 +++++++++--------- xtask/src/provider_lowerer_component.rs | 4 +-- 21 files changed, 47 insertions(+), 43 deletions(-) diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm index 64be4c680b684f431aeaa8eaef427b71d6fa647b..9ff9944fdc1f6eaeea881abe7ebb26cfc5aca556 100644 GIT binary patch delta 26940 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 beNc9lyB9i_dMlxxP557RXx3fM#p3?~w=v>y diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm index 7bbad1a13af1bbafd4cba54299a46aeec91d20fa..7104a8f1aeead0ddb3259ce20e6305f5b4d58df2 100644 GIT binary patch delta 29261 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

Ec!ont2-dg#l44;ZCA~w!n*K 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 beNc9lyB9i_dMlxxP557RXx3fM#p3?~w=v>y diff --git a/schemas/edict-provider/components/v1/verifier.echo-dpo.component.wasm b/schemas/edict-provider/components/v1/verifier.echo-dpo.component.wasm index 7bbad1a13af1bbafd4cba54299a46aeec91d20fa..7104a8f1aeead0ddb3259ce20e6305f5b4d58df2 100644 GIT binary patch delta 29261 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

Ec!ont2-dg#l44;ZCA~w!n*K zs`#p#np%E$H_+ZRrdN!fAl*FT`ChK@7v1@xf^YrBDn1UL5g^oYaAAPZy~n}kIj{FP zSn%O6j)NOnMV;edy#D2T987%r>p2eQmvPi_uq)FlvWQME2ogB{btMIf_5#7fun;jN z?80`{=X|`21Zf=&5&sB(eTM>7FzD?aa&)NpJ1vq&L&Y?B$|u5*TkHBdObp@p&k-SB zyk%y*Ay-8R$+JZtn}|&;G1X$eXXFP5gR3~i7BY}ww@#)u64R_T1~Hl0STvD)8;Pt( z_H(avfBm4Dnqju>nmY2w_oVpf;IJygNA70oK2vhzQ~~FdDhtyunCYTg*LzXo9`8$a z-jGDZi1~Ecl^Y`-Z>X5RF6w4Fc<)CzpD>%A53DpCq~@*evvGS6O$X8 z55_$S@nE~RFA{u1+y%*-g|bh)h!ax^?hYpuP!nch4($^-b8VVD(Mdt>6t!#Mtg` zaLGs9{dW2fD(z{8#+Y^j^k#KsxvY%wTIiq3ds0MP4|jDB556V>pHr{?@2Y-FJh!tn zMJ#HdYxsz_v3%Apo{9B+pbejQ!kfIHofWNMTICxGYCDg@MCuWi%DN z5)QEs_BA-%e7ERDau+Bd^7^(ZOr0MJi+AbGuvUuQv91&~0?bvE&~c@U^fFhM7Q)XT zE4}Wm;RTE2j@IIRtW{rXBf8T^a$_6upjh~>w6+yX64lN?x_A=R%)tj6<-xbtwX3a& z5}EZyjwuu(XFlDcCZ1M(MGf&Y%vU9vg84izXgvOQ%QJ2PeEU#6B)0bUX%udVZ$X|@R^@)-4+|Z@e(`}} zX9cj!a(8DD)%&U{atj+TxuD3$uF(~S`93hH9;rY$9oa=hW%|A!XjSNyQ(1@Rb*KJe z91>-#f$mwC1?oa4fNv@W%r~iQE7_$r#$!&nxnXAY$+UErNV`Axd$5nJz}L%tGFxpTKXw-8%D{kn;w`VStm z>}p&gw~OwYnE9z3&{JII^p0Ml0;$W^TV#sRW2adSc#pP+rBW{HBidtM>a#u~rRmI1 zQDEE5($?WDT4^J?iBpV>#SCv70^b$ZR}3Sj`KT`1a{87o9Gq^{#XwGf)5QZ+<+|ri z5w7r_xC?6wz~8ycDF6B{@vzlsX|H^^pJ>d5f9Z#3Ly%Ss5V3M*KM@;RV=!sQYU8Zj z*iWQ|R+$h)ipO04=_hQ8{KftT8%+m@eoSH905Qg-)F!3cOGNd9mt=U_tr_1HgCt#z z2Z}*j^hL%Bv)Bx%lFLQc--d`VqGH$UL&aF4eAl^QLWI%^*M*0~*nrsWEGd3R!g{A) zH+)rY4R~UznvARcV@@=Q{m@DEABA&!u`-efmDvhkp|fQrz}GKyURA z;S|_G-0_NtB2455Ulo6Yi6QAC|Mf4i21PAj6HWb)4xK92GV0~&;!y(5y>E!SX@$&x zLyV-O@|QQD)lxZl1}3ly*Q+xG_BdcDg2(Z~HVBv-VTT^EUkXsBY5_>!Anu|!lx)P4q8@ZC;-UIAQjy}eZAircI9F%(}u z`SGri1>Zh+0V?L#Dm(!G-lzi*fmJRaT`r!FtL8G#yCZ5_4hIGM<%#8RD%GwV%SDmE zpebA_lCabB`ATseu4edZks`lYErR7Qt1yC38Gx>V z-MT=G7J2`cn^$7}p(wVOM+)Ez*UH9gu$(wA=dBU_QF3&RxD!e8T25R~t`&E)VQpNG zIr^%+vR+K3f6G@kh!GIo{tXDKF^%1}Nz4i_KExJ-ca!jSqQ1iQ@g|XIkGb+C16v~~ zC`Z^{t#XyFiwDGm8e-gGU!r$aa@?2VUT^Nmmtt=fO?55<|}cY zFjoA(7CSYJp|Yc5Tm;x{_mg;)=!R?E84*Lx_a9~(@&s-Jlqo*I??zuU~ zyGZ)HBXads@z=&zxCEkL53T3mbM1U)0SH+~TgMj3$MOz6NWoeEz|#}H2WP@| zLM3c$s^2UmdcinAyY7k&T&m_iSo|~%yM>j#-ONBOp5E}3DTa9nE4a)#rKQ3 z$pSe-XdOb7B6ad*kJPgaW^ka;s z2dk!xe5Y7#ah*f3mcl*-yrp@_HsD~Xt|u4tX+##JsrRfjTbR2 z(OFHjY`ECi6m4>f+XtiXMrX+O0e6KX0JuN7DnbL!#uQY%)YkcFFeIKeW*DlLpUNGnLDv&X9EVkMcsA zmgJh$S^G7B_Pd_xp}j2VtUTIFTZ?;9ulLr*Hrme;;Rj^Wae0U1k5XCNTN_U0a`+wE zbTRKguCMOUCJHg{J2^ntoJd{Y=-P`K*c{$p+mG9hNdwT)MRNE6gxxpflmQq?x$>g{ zS~s!yJDD<2ix0*GXNUZFi=@dwZ4Jd1e~(7h@gVPa;K59GLEGi=K``|d)!eDU^7J6B zy(lv?#|LYDAg|;h+Cicv^88Tk3nZ=X){^9jVcHPm_tZwqzT?i|khg~gvn3XM`EtkI zTC*5mxGwOuKZ-8jt&K|bDdKNfU&A$bytRSyiT7yj@O0afd$d=4DF>+Pt%ujA9Ke*V zsQJurD1DjSIb4gUeEIcotqXFYBeV&T-<>A1=vi5%mXONRq**Mo>OSp$SJen@RdD=Y zM?e4an5RcS|NNLS?JO3u82^Gowdd&Hu75qQ%^>=l^dE(( zE6>$xly;|I%u_GE^uo(ezcg;*gi%jVocO{s<0g!LX^bo5X$%kSIwg;R7^#=*@n^MH ztO-%EHcK$tNJbimvx7}vxi@dyN zycX|TFgffh17xc38bBXo8ub!vbIPh)HJhM5&?Io!Od-!9>QYj=kou% zb{{3IXlb)FMY%iu6#3K07rG|@LyMpUTPvHTG4k%THS+6`|JwELKebv)xcxSpB^G&i zdJpo;A;B8g=2x|DlrW-=%@TuhcRB|7O5}UH=rzqs3Hfb}KDyIF7`&=)t&{|VR>-`2i6e+C7vH<053XPCwvvDBho*x3-59w5SaHZBda*~N& z2{4oWs|;JEJ=*9Tz}(T305dh~{qmoyv?TN~?EwRF)2t8)eweP@wo0oQeB7k|5CqBf zUO*a#^a-Sl<>va2@T94LC*)VFwUqv=kma#ah%}JNjhX!NxEIEZA2Z>l7fS%+j@9pA z&Vx2fDB$HNH+s~)KuZbQ4={7|g&bX=_3TOy85Dz%Mgp9OG#u%~2?Iutd;aAY#^85R zh|Pk*Vfg}8gOK)>2Me^gj&5*$8I1@vjK{5s&%rsTP3nbOTu|*Wqk%#>8re)w)~t0ADJ$LGo`(Lj$Ob{>Ed3Ek*>s*lOKzNAPa3dD z)MaVA;g`@9*LCOJ=Hkwu7-*Bf6>8lR>Nn~Z#t1ohv(`BB80fPOPMGcdN4~sSyDK?; zv}s>sM!z_5!q9OOp0QYl0mjC1QGT^qYwvgsS?#y#`W*gBl#0?wS?40g5Hf>lR? zTOIE7<`afsYvq_C?K8v$9gEq;Tjcl;wWhLiD}uOcIr@F=Ja*Scy0o6yJD%mzu)8`| ze!mTKLb)9IA=Fgu8uuYW$AqNkje*z&Df{sONZHcT0RiFnt$y!KG6}f9&+m_)?53xytE;N3tE;Pz z*CkWJzMULaa<{MeEZf!3w?^1}U9J3_jeLB3eehqMKc$2HzNdf8@sIbUAxAcm3Y!P1n`C!d;WP2fN<8 zwUidSPT$?m$4QPQu2*i`L`zCrca9}jaJL}W<-41gzR@L*Xt^t-TZf<$i&F_HPGh=d zQHiT{=SN(R-9DODdWgT%y^2;b(NGXwZB;7JRHZFFvS_ucl&_B^cd4^ye?eM^Ewh!)rqhTJ3Kl_5pH&@2@V2rD9i1ak4m5gDDFmOt~JG} zEozpt#J-M-v9N*=o72x}*MC(oe*@Ml#5c%k(>J?wLYA5XD0B=T&76UTqSoii8PCVm zFgeNTt6x+wOY1`P5Iq$9FAU&Skv+0249!@b!d1rBg+cK_I;HqHZTi8DUSb3Qw9hqd z)!Wf~6c3Ml{wQF{ny+rw<9$WT?&)-_deYWa-#$vYg@iaJ3FqeYN_w zxIGHR$5Oc;wBX1Dt4deOn$+9RsZ!y^==^nH7Zr@W@cyiDjb0NSefc^?S1Mdf*ThBa z;-U<37kK()h&z$&aDBgK3}w3>cgN!I>+a;Z5>?$}WCBR&dba1K?qpi$`qF*rp|cxU zg`VC}O~2>`BeQ?Ln#q`cmYi0vdEwej=onYywMkj;E46y7`a=b?_-TsYR4?@l1)Hv5 zn#qk6Y^H*l8toMlVs^IDcMyMVbY*Q!kjvW%UzfJwricQCX_~GQti;u0LoE0|vLOW? z?X3-&2|4DlGWqlHi)BfRiz}vXOu}r^c;jI7@4FkP#TP47j}5Sm`ZMZZ8(gh6HO8#g ze^XlIR`1~=P`=kSZqv&8<48jRkE8zOEh7&$th3QIvHXd+ooXKNaJ0d-Dd85mL`51M zb2Z1`1Eu{d!ina%p4{9mz~jp0kV6#d`hLsA0BbJU;u^5!`G!8@&T;^H^zci72z61mmtckkcZkf`}V{hoU2782R} z)$gBA_W@3g`rYenU!ua&+;eY{$UCe+>F1v&aqdXz#0!1>vVJe*Y17}FrhGzdx-G>= z&pQfeimx7%q6HIMcCJ0s>7$=J0x)vrT4t)se zw2Et~e(oB0Eh=rd$uABP`_xLDTWv_3Ei(1puAFPBJ&rM=?x@$`OJ?Q&!uR!{Y=o?By7 zui++4%coRv_Sm#?io9vuZw5Q3H-6zk13z2K)D?>EWSL_YGJ1oaE|%?xqC4juHYydM zQn5lb`?YSb3Vol+GCf5z`*e#OP1G@@WV^|fz*KG_>ejVd4IsPONDVfz{5X)HpD+ll zf=ae3O+UEHe z0k6HXQc(M_6DDRf+T^DnkbxSt$vEL9JP(VpCk)|J>Js$Pt9Ba%%Rz9g9IjF02-9=a z>D`60K%?l0s&ytV#==4-r?)}RM0eEmZ&a?XQT}4GyUClKF#_%SFDGQA5A~xQ`IHZJ z4WBxTrzeO0kxEnbt#YXkz0=n6i&qr5(&m`PL)943JRpVB7s}f@n=7a5$7j1A^`(|X ztK8%L=wqt&i0+R5w6QinMqUY^)b<`ntOES)UepUhKwV$+F;fn!jmhP`fz+4EWPTvs zOkc{%KuQz`7rGAx(xal*tIE4W=%zZ^w?imf{4!Hs4WT%3d8UjDrJF^~$Fg@QrQZDU zC(NUh3Z>@-O>kd!&>te&oCX{vTodLDYt%2#bo)h8 zwGgRx`BOAKos}KR(QkHerv76d(+SjnRcVBy+NhQ;azYVZigYn9G{u+0Q{x{)vO`n- zbS%oU-{_60ndjZS(99OX)=7Y$Q?w8hLpzBAz?}%n@;UX*5HmRS%Mf{Xbd-3RVV<;MIWOOX0WI+HwcD9PKy_T`ii!soIJ|i?UT_C#Q#x7Kl zTyJr5AdV6P?3EaHC59HnBazpGesJwhzjP6-lljX(HHZs*kj-)iAz)1La|Qt+#mQz?{y`)gDF;M;`t)gR4Y7`S zYz0P-hZ?%~PxbEwE&0odaTKTQ$4}p*uzfJxd>mhL4Q`WHcX?XJo%8?NT}Jb;2!+MM zZvFJ?EXCMYG5+@d17p~RKidZSi0#BD3j<)k(Rf2ufQuFyMnHC`A*FtViyhl}?*eON zOY)ypB|jy2-I3;RYA(QI=z*49u;vPtS=WxTEbn0k1u1(7Fzq2w*+U(LolNoSEXIE~u+)g-fu%-ViZ3VrDLzJcqXra~jBHDM5C`SK5pBIThl ziah>^C-CcyqS`@(iaSFx4F3ebq!b4~RmVT6KuZmz8%dIgUJcgRAg_bQvq3~OyImh+ zE~?WQnVm$@@Mvrh(_tVOd-&Z`bb`+W45rMmoje}R-&=W%BG3%U%z(bt?`-~EX~1iO z@w=SyIqFbm=2&iw2=>0k>^5K?g`C1XlpD#y&{uv0L!X}p9g5<$Wj$0Az z@$Cv8X~82iQ~fNjuSycFl0?MOmP_XOAkW@Oy~dWA8l?X+ z84A%89A6vax3Vdz>=<>jq&Y>(FB_9Roav_eWY~CAxY!xUpPN(HEam$O;El1!QU+k4 zsX2kc*pX0^1LRF@)Jfyo42I7WdcK_-m>QwLhPbJbowNd8LW3M+=7ljRG~x*kv1X<- zLj7_^B2jKvwo0Z%xh0$;8Wmtp4ToIp4V07x(h);3^1Wn)2!66EnO;KD)k$N?F3X)X zGzGm;gNab-f>);KQpavX2kB5Y2l~!Q5XP~cH!!h}ZFg_%0HNJ|GboYjw03wWN~@C%Nf8Os-HBeN zgR<$Zlv$^USK#jATj_%E1dE@`;x3fo$>z%6x=`afRT_1r+X4>rkj5tPNqK))+8cgS zW$SDe%g)`vZk#OaMyV-N%~)J*@$uB^t9Qu6Ho;5<4+W9my3xYx5GlBwhF=Hl>`w81 zi9DK}vPXAHybj9C-RaRfGFNq{)&YwYJE0fJ2|ZxLO?uGafK7&I2CRfCWmlbC0p`jF z&}yA_2OKcvERrjG(zO6{X@SypchKmD+vKwUo%D7c=DY8tTWOID>;>zXB|G+_w>-*S zAlLSyKWUCE?M)}HLuo}Hin1O(X87xFHXJ^Im*fKmkwGsJooy{mEWI{QTDZa&mttu_1VMf9g=%OYSrM;S4+-^O3vHJ@j9Va^+3;Q9QY1 zuluMSdhcKNQ3e&rWem)g+wa3FD_ai#2VDriq8bocJDbaY-B0I3mP;0Ljrv<9|NQ_p zk37Yh4B^C}rwkE^Z)45dpJQHW1k{57S5>{qZo67AmMepo1TQcRnkB zc?7=ttQ`0#ZEAQ9Bb604IG&Nc9-|dhEH6Ap?E}^;ioOQL1bNTnG&G<>!6NFw9+a(~ zAO{TS_9x)Ba^#aw&@JuGvEt0|ktZEBIb$Z`Fo`>~A!C-OQv>jIt)T&yVGRwz?VqH# zXpda}B=meh?s}490w(0MD#P`BIprxD8l+++bcd#Il1~n%p&?(Wa)+aaXD~^F;kjoG z!Tfh^Fs0LvGW{t^9B_qkJdG2mJZ=tC4XzhVvoSa`^#U%eMK^lCP}K-A}8S1&`H9(#I zJjHfG1!Pn09I$XPW0n9j-DFU$7^Kx_AO}8AQP}es`aHD^Vf;ZR{sB1`WD{66koC97 z>Zfcb+g!Q(d5Rw}BizF-7eC){`n1quQvwYtPM>t);6IV|`G#kD8a4x)Q)bKLtuIi^ zt}I3YA6tPrSN7*W!GA-6x3??`1)vbh6e>*$*h%~01?tkSo}j0=I1!xoPFfXLh|LfOIbAYOv900XqO+}>)2Ixwiqq*vSxGJ7BZ@F<%Ob2NG{O=w z0@zy&?A!>C7&By>Op0o|l}k?=rRBAyl@ToDk-D^eMgo#6U(2K}m>Ehk5f|l!^Bw~% zOn!%KRtZ*~%2<8$xoX=g#dAn8S8b0sHMa1$Mrfwv;+X7gwp0H7r|}z0l~8du@U0*#gZi4*dp@Pzfj|>INW4sV}Z9Q*urqNo(Sad-&g;X7b(2H z2vT{)Jv=qIldUvV_I;UdmQN0&fY_PgJXCDP2-JCBp3PF9FSCYGbfY4ahFGPbV4ETr z4WqVM=gh7~o0Pa5nb%6}E$WBfz3I$EX_etaYs*Dq*a~ z7+clmBdRK4`DAwU*#sv6pRQM%xJmhi|1+P5LzXzjnTrvbDFLXP z-Yb=-gaCkY&2p3}MGG~%0#?Ii z*yK}lv5LksM3sqO!YMW^)jaMp>UrkzwwCsmwQOp+lv`Y;Eab*yZMNOGbM%@9d>G=z zhXL2)bHw6vQt{b+12$R8;pAYe&kT?e8M6ywh!-CQT#rv~u%R{Hv+&_R{*E!`cquWe z7)ph&LF8{nK3oFoD9M7pd4}>TGDI;0a{YTC2PtHDOn-G|hOk5pDPB>OK>)Vtj}Kx4%*C5l{u6tU3!O26?ra0oQBuDT__jC(LH&4Rotin`>-K*I~mD51TAj zHbbt*XGVyjTYb9PhK=)Rw#=wdt561jW~~|-;H}0Q52R8Ueaw(7)eSrsIWj$czy*-U zS7&&v2d=aXjpH0bX}lbCj#wh@SoFU%o}=a>CSt8n0m-UWg)%$fTu&3Z9EYWtUc6dO zv$d-+^t_s;)zXW@6`uY)^K861FZ^lLs=G$REQiUGCnyhgs5uc7vg70#Mpz+)xo)eA z>@?S6)dq5%wOE<47K20cP);xxbsw`6!&!hqS@plMa$_&+!N$r{E!@nNXWfOHu{5iT zj5VQJ$6YZeAj`EPsiDJ_1AUxPOIa$Tnm8yu{ z0giGI*4x-(G{j0=c;4V!!oQ=TYEIYj@Pw-I8)j$w9-(zbEvF+)E=%V@?qSs!YL7gQD@gZieb(JaQDqupB&=Ol0p^Ws&K7&A3BFaw@EG)W9vP6*a>gi+I5cLNSPV z9RJ};m@kYUfL6u0-+C9j-JUJseez5e9r0wV-M?hhvm}lb%DczVfI#c2&ebA!!5ExX ziQfxl)HrG`E)>e!$5FSGNk!Zan+`V zEdV)ni;gSt6;Li-B?I20VIHwQaliW>^%S&SR*a_v><8{2kApBvxNqETb8sBx5%&CI z_mL0iVL=~CeIm6Me=U(CCStSeLpgpTrQy(`cp^5sKT(CT?vs$$b2DA&A_cpIHvJPB z@*$-qZc?R%A*(LJS0*Vs5Ps*AZ*etz$G6f}_QPr%AQ@9-l{A8or znBV2@0%{dI|99qVT}1Zq9V6o=DH(5{MDb#cfh_j?K7BPButv_~!Xr`@UN8!IKXfuh z(*>jOW7&5yYL=Zc*!*yc*_fB?Lp*HCSUc^*Y`wqOzz zc`A>Bu+MxY4<`7LoRUYaW7nVKHZ(AWkK_~6&_|ok$;s0xUZKXFQK;5;6rNtHIwy-K zgZPzc)Qm1ERLYZW^I;a36cw6~leEo-E9oPO~&JC>NYuQ-B&OCLVl&CZ1 zysFcr?EH15ox)(F`%cM|(jpxhdvgJ5*KzoA3 zmGd%d28{HB3x?7cUyyB!p!5&qff-P``vS`oAy2J`t*xgPvZff__~cBo(+>IEOlli@ zT49)1ctgk<;_u02Gbt4(54&g5Ao0~jSuhtYYvxgO+{uefvw@m{b7>a3V(cu6Ov?F_ zaRR+ugE_{h{%NRpg+fWG-@K{v&sk6}v^<;Ih;x6+fwQ6Cv&Uo>QaUV`&8GY4TS@uI z8NDdJy<~Wor}AMvZaFL;eR)A)+(_07m*lQ|Y7%AIq$#Gaaz!aJJD)mY^S@0IMa!L_ zDUZ&eFv--#I4Q5qfx17tTt^{ZhuyWq3^-5Cr6%IoWuwl;x^?DUVFg(qPIzn;I9w-j zp(+mc63lcaC34y zN7eJnWn(I&{s|7%H;<7O3#e7x4g4C4=YK*ea?Qt-Bz`e*Z{W{Ryzx`CW9i2jak;Yl zCvf{$%_=vrY!rk1onqctB}MF~W4UJ<%uVxT%SEt+&*i;~&_YvGHTiVI;=l*px1TF= zL!-SKs_B0!ilJsV7=3N_+xT(HL}X$i4%5fW4uxQ`LOxOm>p6K*E-A#7=ELLU_CkbD zF8NXs{KuT>MQ|{N6A*LWGfZl55t_TjK=_go;%?B`FY8vwm8Y5F*}toBwoZj4@4;_0 zB;9EI%=ft=F*0chG>*(WCFq5p7DKEGd2BIY`|2Rzr1;h)%11o01g5+}e#o_UjaRy` zT){4R5;#eh$8&dB4#$h<_#9P1gJY1%D=@d@7;HZ*rXbDq0lj!)Nr_*cWA;s)SKs*P z+hoF0@cuqWb-riZe=px&YK{ANk@JC3Y7MU(DV9-M(+x_raD9vNak09g^O9nHN}=5{pcJ0MRBx$26*1SBfIrmgd zRuoM0)+#1f$RQlMB(0)wL`7{@p?3~VHbj{uX(L2IcFHQcU0gQ7mGasuiqfmXp z+GaJz*CE+uHL6a_RaLEE8S9Ju)fhg9N3*=%z6YynAE!-UY1Fupe_xqv_;-J{Bt+6x z@{To>61OiG1Pz3H5#Qoi%hX$3s zT4Kb$<${+k;O@l!g@15@)#46o(c+0y%@!x%>T#VGPn55$r3dOwvWA1gegSLvBYAoq z!iJhMO0fDx`)F!~#7)f@dHXta-cH$f9bE8QMr<8>13}lyCF?Mof1ob8`FhzFwpN(Y zc2%DYv%z}1)2GxOSBDhQODulFk$ymK_!M#Yd>5BSdE#)dWtD$3gZvuVZ#}ga`&@h4U7R(b@df+YPsY|CeP{CwQ*D&Qp@@$a0|GTvhJ6MRf8Izf*tZ97!oZ#)TW)F) z1R6rLGK46VPi?9V0=3d<71AluWt%pkrBme>aI{oo;8;;$%`|pyO%QY3TaNg^T)Y_Z zfvLrhrbE>{a+1AVGwI&3pb?ImzOZt-;jV8G3s%Yw71lHr5zxVq{<2ZW3I+x8aDlP% zn+i(8>hN?0f{7_IWHXEs-F4Guicea@R$vZloHAkzIO`0=AwZ@5@*Pf=%b7@$Ts-x0 zg=ii$zD5Nze%&Z{8x>A);*tSdP~q@3^c+`cRHuR`D%XJ`e!e1~+yc#Rl5cX2xtGiu zq1L#BOlI^tTCM;JF1CHi$vSzIE9_ub!7KvnRKV7z59;O1l&!%0Mt0+5x_ksl$M1N* zgDd#KZ1C?QuOA&%W3#hy4@g0ZIRy8Dekz+YwQF z>v4KxWRK6O8_kvPevVsxYvrQPsV6O!$3Ca{!2N0yBS?otp_Mc!Fjs9k1bgyjm(eyo z#LD|$R!g85T{&Ix6^}guD@(Ycri)2ogjJ77x-4J^A7AY zR>^rgsE@ezhdiGmxC}T;7FW?g zY`I*iqDrrusMT`!Zo0*~iF%jQk8h%OMRG*CW4^|CrAl|FZ|D)CujG_HxX8X&9@|4p z(D^CfQk-1Am)e3!&0gvOj|b4zMtkS5!eczQosQ3OxBCti*#}RkrntnvmasBn3^&5p z4k%ru^PiS_o-D7XrUA$DnMAriRi3P-9{8+Kw*8)3q*>FIaim5%c99qQA*xfGCfFDD zbGXLHYegbP=6#RVY@S^5Jq^W`>hK@vA^SA7sppVW_QRFD{{udb+#)CJhf=G4z^=z6 zS^WdPRmhc1ex$olbJ&m69`|_*I5{Twa8e`v_t6Tw8QLp4{1%8Ex-w~-CsIb3Y3^0Z z72jj}N;@|Xu;{V72N{mt)i5UW) zkdThATE=m@P5y^5YUD;vR?0J+EO0lgp+#EwxkaqSMxKtymp}bNF%7`)yZsK*9BKeB zm8*WG_tLj2Dt^XO7izBHFMM>1_yl#?7Ei+Pm-&x3AhJ{LIz%JFHWacbsrmtxHkX5s zQC~UZFg2(5W%*&O9Tv!M4`WoVme&r`R~Q0c9ibf!h)s}-k5ZG`o7(Cz06FX!b(77H zQTlZXc7%Vh)LRLM+$>&2Avt zZ29U*YS93^RxUnC^TeSd+3$B+fPwz|?-UcJK4D;Mz;qj+?{Y_-!frn8l3P!ML!SKg zG&M=LR`iCY+4V3S(fH!2nXT+oGDNwrs(ZM|-S!NvBE0q@51qy8wn|2wgBexGyU$U6 zOYcEv=Rvnh0}*r3m0+(~ZT6CWrbveWL7hU*6hWz`p^lLc{6Y897`f;VYKtduH9o_ae3IZAD|2@Hk&O=mWkx`La8XvG{knuR1Re z*3T-J5@-%UyDrR@E|TjnVqrW>KKCcBh*ldiILBfgm{m3Xec9@gx=P>c5(4N$MeZ4w zpzU~dF+M{Ka@w8L+13^{0y9J!l3DWJzi2b|cp|UDU?<3KSE&T%a`GzdWTy0Sn=Do&6;p<+_0fyNb^8&m4U+KMv8 zA)=<;D_**D`w95Nd}X=GRs>TZ%vGu9xS8m~_`?rJfelXBvR; zMaTXSD{6KvnkBTQDE}ZuZHFdW7~=^chWdcmsW~;iJ0N168XwG^V;bf~ehm}-VICcL zcBg>-0c5fRB0Knqb`dphk5Cpj`G${3dTjF=Pl37FJI{ca-CB9-kZe|UyZfNma& z?3T~@iQD)kf%$&o6FzCZ+b){(N$W_v&}&ax%_G#>lU8A#wC=HsIw!4ov&;LWmH1%Q zbJEK1*{G9Nx9%^pDQUYp$Q9YR>cd{523@b?Guu6!u6O?wAle9oO`*YJbjbeoN)rXV z3-w=_A1vOCI&FZe7<7Su<0+GIvLr;L$bKPW5H=+9L&R8wCeBdt22FR*3>A0)W}ZA4 zCPp=w8~4c<976ICrEn1)Kf~;}xyG!+pPk|Y46&`X3l~XPPYetfG2(cUe1WsM^8Ikp zzELIDGHsQ^3wZP|!bKX~_o;AkTAW)fe`zGf+N%uWQco0(<%9^4{b-r-7L>lhOwD-M zaY-Gl8&Ae;R%Ld5yP29Xu?MFH9|2UUvJid0nO?r?9vUg`seNj$Hr&`6C8p80?nk4= z6ZC}j3Y@1{MJ4q=2zy^eAHKC;zj$MrUl}!^B_m_SpzAzE^m?oqkzhUm_Y|~+yO%wX z;2pRQNd8zZu|F0gPAr%4abh5Xp3q4a4io@k2)ra-{Y^l|FO6MS4EL{#D|tjBbvoYGh{#oEx_ zSaiG&5B1@e)q=n8wFX$mhg%K7!;{4ew^`tYTUg%K`qwJ$Vm_CGYYKjPT3zjZxRvpm z>7^3ybHsGEs^35)Y?0Nge^k|PuII`jPBHsBEyX9dS@(OtwT3Ss;bQB(wWj-G!e{tj z%J!{y((v{IU|uh<^$PKE;+Za4lLE8aD%+-tTd-aFOe(y?0l5tK+cCPoN)<_}4}VV; zon!WFHabt8-6ddJS6@gL${tNbTk+QhIkJi9kYIikYgiv6;VcRU2v?RXE1JMbl*t24 zL~`q|l&cCgcY$C@!1%9%S&M95&HF0&h4r#!n&=u={wWLK36k0TaLe4LFOs9vL^9&D z`Dqvi{3uwgTWc!z z@w8im_u2gTN}qb4En7yk6OUk#_HsKO8F-^Dk>7p`ssElDe{Ql-R<#q4)_;V}7bQF{ zd)y+rweadwen--#*L(ZWLjU9z(X0MLZypOulnL!cx7+GH7RS#gVZPwU;<)2{&0&v^ zh8(>@P>65TIJN18a!Px#I?GEKEE4(N;Sb8_tfv*R1On_QFBrCS0sF6lS?~QJL;~zr z1+&J0kAivk3ZBaVp83vTU(*=<6wv!o!2kvGepJw|U^oFq+X5|j%W>bi%`&W`h=O}= z+EFCe*MA@|SpSc96zOfVm55}lixcp)6K>uR-koaD4IH#{t(BWfJw$&zptnsX^%Si*?cY|5cQuG~CX3`bP+?-?S&Jpf-l5{+5($`ql|V)yVo;ZL;C{l+vg9ZxN~!=%VWo^kI5 zyPY${b0}>;6O9tpJLQ)%L>qZwwwMLxQ}e|)EYfrHM0MCn!hc6cKyFKoN_9_&& zV$7?OIfbGvG_HQ1C=^4W*?~nO(ID1F&Mp!9ADsiVS z5d#D^a9&-C+5Bg@ZmAf9`o$CrqB zXH?BM47?ffL?y2UR1Vf$B_7gXy`g&`OQpPdkGQWkH+zqm8gxz(<9Y|>t$W3kuv!49 z7wna{?G=gcb9=?tJf1%PPHfaD-~IlN;>9q^bDugU-X=Qee)%{Yf74apvYL0BhVR78 zzg0o3q2P1|>3iIZPKZFQ-#+Gx6AWV%@>2es!u`&ujpItZdFWNU9HE~+?mK2-5@f%C z@Z5dnl<=Wu3%!bX-K4Lo2Xg9LWwSG)Yv*jHoT|QFAUs*F7N!^XGE8G5Bc(*FUQa2Q z55wR@TZkij-T7y*X2ugR-=2fV-{Zb^PL$&r(eK<9=h4OZA$=~ws{)XIQS?-RVSi$n zua{f@gjwv9%`S;Hk;kj+HiMtwxl%1(yd?gaQ1d-XpcnSydM-Yj&S6o3aO8V=>5_1^ z%l-j*^_&n3bdk~d062vuG#22wUKlyD-(_(gPNC-&af>MYLH28*wQ?`GB3f$V+)=sv zniv{B@dT*o?}DTD&wq``5EG~M(fWqxnowK1NMva4w2!p@lt1lvEgohYNZPGo1&q>L zy;laTe0eWvH;3gj5U((C6L1S&P9Uuv#>NKH5?d=y;Byi0sE_*%cvxVi2;M4FuvB3} zQwU9-C=d8)Z88-Tp2X6{3?}U)RKf#X>Nl&2MjHDgEP{u(4lU+!j%(uGD*hRUxzK54 z42lZHq?jiQg!W9>Ii6WE`64j0%$1Eat!HLY@mn@KG#vi z1s|4mM4SUkI5fKl9hxH&H4W!0{j( zB)XFYOvPaWATQ|RH60WZ0<;56=}LgM3Y1m^YV9ma9Ar+ECj+%MC}`Jy-!CH@COEw$~m zXlOl4<7Y?%Z|;#s)b$58!yhPEtv_HFI8jat(*`y*d%&p;3_+8*{mK|qaRsIypNR7G zUM7V@>)2}{Yl4qQ@fu}jDn`BnuoK{Fg-TB_1gE_pK2cIxONVM)@TfRORJpTIt6{4^{8zQjP%Cvpmx zW@eRrpsUPm9@2IwE->>ZHiN-I&*v24n^^^h!;_aC+8ntkTnm#k_|IqjXAS@PC0vWf zM;*U~qa5BXOy=;P)%@oZ{E5jwZV==I^z)2tzWc{U+Hmr}Vr0k3;z+G|r0JeuT=tjr zhw=R-S|MjgY0VHPg+^&jZdM46PkCDB*Q}v>{=Cya6E54+bt!^>7Rbk=wD!TKXJJ2G zpeSW2r-J7bx!;`HONxh~XjRSV7^miNGm}(&Cm7s^y zJs1wV8grg7ekwZyN7*ANYhtWt0>+Jz+6mYka0*s`z8Kk>v*m05Yv)8M&ZQk>ez%brg=NKsJ>L|S$>PQ!SrCD z8=VGp$7;3)I9;CC6j8Y;UW-mP&Fe;%<31O!ohID&h)vR*(l1F1#~KE|A4ACZT9Vd9 zocmF(NYY+QF6Sr9*a^3KNErEt|IJbEm6t5@l6V6v72zgeBEjYzf} zD_UuYO^&rJG*A6-YVrlA_GQ2S!H4;Ixc?7anVq7&h> zN9BlAEwaga9#v}Ez}|t%@SsQ+WoqCtW|=HZ)plTEIjV_Pg7r>Xnl=x)t!Y{h<=a+2#_*+RQt&eO!)`pl2%$qRONmq_AT3g7^W7LE0E_~ zX``{n`bKMQGl_zqWldi#$^A%M?M*GXte{HdPwlk~EHa}yXbwBAayRRuy)N)Z zT7EZeF;&Puw`(snTE)_;@6kn~a$AM6;&yEy7JT8|wQ=Ig&u-aW8!p6^|4RR!nhU9W zPET!=1_8r+Yddkq^iyv%ajXpQgHZdRyrU0BOSXKkkJd@N_lx|wj}{w<35#7XZ=lrl z(eNEk{;yz~fj6&gybt0)&%n(rl=JR}kxx9r&AD4P?W?sB#b#z+U#&Ydb)c`dn{fAJ zMStyUB)<*N5@o>vt*`NWOrsBe;l|+57@G%}7J_hCl68-k7Ud1sMJCpVIkM~?ZE(C- z5x-aRZe}XpS@B1CyMbD3+~;~~p!SwGWj|H@#K8KL{g|>HHJc4WcYh$W2WhdCBWDiM zIv}@ekoHRW7e|R~dUkfXEvWn`X*QdD@&WA*ckaDfSzvH$8`+Hit_I4d9@n@BgRvZxL4oSUhm7^ceD;h0T`c zKKzFE4|0xc?yxmMxs@(L{wVUf=_aj7!?gtY`oFakai;)EK#`ROwQ$&qk$1b_dP}=T zaj`c!Y|+SDX=~&^f)cCTu6MLf6xX(;!xn{dEA54RHS$UBU*6U1QnR&(DXsu8R)Lk4As+)?U%6eQAxnJQwhmik=4Gb$Af1Ww!|mL~W3~Ip zdDkrtTO<&y^l{`bApei{CbRH2wFuenJ#A@Rw-ARd3`JJD3MkpgcW_^LPrErLV0k}> z&5ryW_sw&(Yra__0}a`lB4yQgH}el6O@IveA6HlZjU42#CF0j4q}-JjZVB>d4U}vn zvDp^fYv|`jrZQ~!zlM$+^0d2Xfrif@7yQGJs$*A&%@-sl2O9as?uS0sZl-pJ?>FGb zk-`pb(^1YEJ%cp~jkbhd1exltRJ_uk&uLhXOJ}7_xM0>2!E`V7FKLgCg zhwqnqBk+4;s)=q+IEA7lZaQLxv3-I#fTqZLth^H%4?&F0pmv2Z|vI- zIc&jzuSdDjy09WGIiL(+mT05wRHSvuI)N-x`~zt?Qon~Cwos(QU+F#M#bK|H9E#tI zf*dvsGuuYs1R!k*98QNnJ?gcQuRrtJi^E^hN4`ADgI8aHcLp0qXLVBrB#J=&K@U6J zr;D^9+&XT64E7XBTx`ZGgD4b3-yTlQh)t-iM4R&O2XZ-`*wy*lL0VZ(k*-Td5tL&>OZXvu%&54w;*NhcSfoV6T(TKsjst4Ua2L7SAshC=?;_2F4=FTc1Kd`5QF&0p+iOuf2H4xuRLqB-3k~R zUyWR{Qfrf%i7e~)UoSrU+6#5$7za4pS?GiAD=V>9inBVU$)2G@?NhO(v%e`aBt3#f7 z@wGR5jT||AWM`+X3h*#Fd5zY@ow*(pVw}$~b4o$V(@<-qY|;+t-k?pOV)q>zHH`ww zUpDCNl>;|v3+Qe4*-cuQ2pION!{!9`L>aVM`$wZMkmb?!BT}C0&b%sL-K?dyvfz;; zjPf+3+_*Eq;}n86EQudc4hrIIqQ0LHB zo^?X)L*H;FzGjd&2a1Z<&Y)3)q6A)~ zK{>*)5*0NF?w}$>Wf25r(5P`mjZ07z#HgrIP`_XGdvA^;=zhEYm)-Px)zw|qRn^ti z)%|7{-IvllJEitGx0rim-C(zeoGzDp-Jd<1C}GyhR~?CdhhDkTaL2zR9;jcpCq6Hp z*01~Cw~pvjou1yO2la>=B_(6;~esCcpDYErZ=oxnt2IjG=A_( zz~NhdcOc+!Bq%vLT@*N8qaqQnhm8EL%hOlB z&i$tAd*0x(r+)XF#_q1Crah;?srnOdGPtY$hS9y-v<~av1Jx2yN9cN103=GpMt-h( z&v>$1Assf}?3R;v@Lh#e9fh=*pPP(dy5-OwBfERQoH`R{W~84PcwB5;)cr(iF&^nY zo!&K)dJO8Z_AQVv5tUBVR=UcxJiU$~zRh=mIAD#=GJWOi#*`kLiW{Rw=+c`V*1(&i zz;S3Fc*7Xg^CWEv54Y6efOO)^bVspcVFZA;N@Gp$0%K>-XX!n|U$i>w%aGzDAT*bj zH`LL{;|UqVipSIUMpbd|bX#1XF?V`rz5H!sck#2iHQZ@iWo$4W?RBW@wg^QZSSWHd zFrXxgr_j1Jz5BY78(7!+$Lepr@oE1-SxtKZDeL2K6uNZ(nT4K?g>m{}W7&Wcj4KCp z%Wki>ylGwafCq&4p?YSphrWK@;6Yzz7|)$Qi=Hypj$CWpJ~qkdJ7OI@V|+4VFx48_ zXKcpb;`1h~yX?$YU3r_!Uj@a!4u?+DlPO6gYC`{&rt6#6oj9g4ndTb1E-s?E>sl_J zlt51#fh$I>TRHW_2GXcXpU|-UGcG@Ej=mRG-O=0ba>hho-}%HRMSmMhlX)JHE3D?w5C1W zZF;z)kfAU8Q}>se04))@8tG{zA``_L6XL^Te2GXxv1;9lW&J7K-6rE-)zedLex7@c zNq01MFF(^*wLH5GnFGd-;QNzyC=NW@H&yOG) zyEe~_dYf7|Bu=>o-6OxcfO3pYbvY3FyLBb-8_6#Z5esY9o$>M~E-~wNqxaU^&j?VN z?z%yD>9+iulpOo&^PXpZhxs1n*_%YHM#jx8D|F$p*29m*PDiQJp=yk}`p*6e(u5|8 zowc4qcd0W#ntOGjM`=H9M6&AQ0Z$pw7gJf0fJw3m3%$k-Sh1KxW?!}Zs#j52v9NmI z0EnwZ0GIK~fmiJ|Icj#7={aSEahj{x;VAX1?il7XxnzdZ%D75#*`f$JW)pMAltT`# zM`MgbwPiqVnHI-Q7yx>XSyUKb>TGu7Exyz-4u!kaF#&~VsAH_ziElm&Nfe#T{&Fz? zIYEEzah6|#Z$3NN;mHn$j^aOK_1#9lZ5_t#R|rRvO^jqGOSl@mljhX-2Dx#O{(w@( zD-Pc-I8g^MibS;=QyJs}Gfz(@4LlZ$Rqj&Z(i}#?hZ#d0@ZnZRNlJnc8~h)nmz2m9 zoFxz-%7z+HC=t++IK^2C;T!+nc1|)YkfnmZ0WwbBejYU&3$~vo=09%i*?wlq*izWJ zL(k;;28VI{>z|_oL)%d{VAVgF;c_~ffK>)vI!eWsIAF0d=!OE1*)2aZ6pdckF{(p= z#K}A)mS=QoY{-=q) zjsWSfUgnFfgXfCoDuTT6CqC>Xtl1qsTP$0$r%iaSgdE19t#PGno4)W2f*PF_FzoS) zaZDXH(Xl*#yfO3VMWfGaBL>CWwgTICYH^qXw!tb3g7s$rir#I@uXY=`Z+3$17$t8G z^sp`K&Birvo&$N*y{S!Tc41)cjOv@MtkuERs60%SQL(m#1rT;v${BBSSh#M+g_?)# znw+DW=#MG?mm1}Iryt4y{VlsnsKz+5t2e!5^bB=lgBl&`=!XR2Y`M4RG+MC6M>&l^ z8>dmx#%VOW%+<(p8n6}1qlJYR@UY|$MA>!a6 zU_=Q;Vn6ZUgQS0;M4Dq;9-9^9gTJ8R3$f*CUSHKLKR=j2>_gu)7e&#=LDMM&4U5=U7pn<)knzG!JIUbH>+iWzZJG{q`w{ zzs`8OfDRgEZ+xgi$)KQ1h95lCj$Ka`&;Hxv8m)uoE3C6y6j!$o`gC!psectUaYMjQzcXK*a z^8nx-7jqd`A{KIqHKNLCJoIi4OwZ@u9hlR)i+?CJb}$CM+v`8*=fd~8j$#f2Dz1w2 zRWgT#$-|R{mds(Idjy_@&M5aO6n7gGtP3{EoIS?&_X@z+f%h&Py9S#Up>OlB{#1OR zuTqdYPgrlPoedt=4hEKN4KRfVnB->bPlgvSOyTueVBhg@!_`r-l=uCC*7ypPoKh`0 z`K)db2%;M`(L%3I1v1p`gDbb5YGoV;B z5&?}`G@6ZD|JBjoY?_`3iBcz~5$k~sI^L9dgBvo02RTTEYHe;JbEyPby`Ht{d)nee z`M^|tz_hYLtm?(+i({~4%{SEHLjg!Lyk?q~jIQ~u!K^njKIk{{Tl3ejdD|k`s=Ff zVIm!aG#jfjO=H0aX=kaa(k}Rk0yVJ??kMp{3JZR&t6~kMmSX%nB_nV)3`!~@Rb-L zmgdyr65EF|1U@vyZi~S>*oV%;VELJS=puej9_pwRM(D$AUa+hI-)|21KO6G@KH?OO zhiFXs$Tx~rr3PY;g8}W0V{Ozpp0~!K6nPk4g*b(?-gx<=9OPKu|EN>m0efh%9;ni3 zqe5-f}K#Df6(4Msu)ZZqk(Jh<>Sze!(JCV&a*@4uDQP$Ar<8l`>aDO7}F;M%s%}V6^6ugs-kxb0(Z`Hog+lFQVxKfzs(`T(Y* zSE9n?&vgHADS&`KWmx8f2S72#?OR81?O0Wk0jWKj@m#k*=93ELk91C!{$GCQH z=d`0{zP1@{K*a&*;=LXHyy1@>FhgPn%m6SO8K=dp&1((w$4(qeVc6n$$AU%?i?ep4 z5sPDh@A7DqQ@bIPnT3`B16Vecbzqi63y|ST2@G#*9o8$C+A0p4H<^glaTX$SMoP479ARWcXZ4J{*BH1jC!3`fuF6Ex zBOX;x7?bwp2yDP_+1ERj#}LMVKU}-7lOO406^WWYfS0{WC$>gr_6nLWhBx8p%wYy8 zh$_uDB_l)|mOpYRopLbBIV_}J)b?e7ElV}|?d3@a7=B+Zo}H}Cfn{WlMKH1+$PAeq8Xj{9vJSh7Oy7%j6y0aqH)Keit^_$P&8vPkeNm zAj0cGwbzT&Ur}X-?;orkW&nJr{1-fPQ#JII0+%1bFuF+Lota9fb6+=KAU~O-nbW zs42B*amKg_qq1BoogD{)zV-AR<@D#vr`dDX``R? z|3xh65Q|@>3(~{$B0W4W@N}$sk#5e5L{q;U9PqhdyZVK^*dn6lgi2~-P9S8(lo%d0 zC*aI5W80e(iI7M-B%*e-YEHz`Gmvy;Oa4thB4*~*|E1(Gx;}%FaxS z(Gv8Jk6|4NJWg0g(tkrN38F}VDA=C01eM@12hJ|Gy%`psV2EYQ*>v|aTh1y zV7m-E%0ZX)d>GGogLX^cM$Kmzo;h#?9Dy)A4dWvw!QX%%DVYWK99ZS%6A>I@xOvIp zCmirtJ0JG4saTOx;3kvc@DeZud<9PBWVQ4XF%$hKmWUZBkczq<1u|39P#`9~3Pn+n-eeT;cNe2@mG}h5XGr$_1qD{Bv9jP^k#9`i>KQuI^!ZqNW~hT2j-pa^9Odfd zI}pXPS|zL9I-Q=Z{9BFN*#A{`KW|nzL)ye8dTvCi)>vM=5!v}(u=}uASRQbI>;a#y zw8Yay1yroATsx*x0yg6+h9jC+p%n-rkigLi#67??++#7V)*6#(XoE#=^#8iMU&Z=h zwu%=8q(UosQ2+_V(`x$>!?ahhXZ$0X_G?~DhH%Ukr`OGg)x{9a_=8Dm88$_Ts;8dR zj)GM@W6H`hPvgdKy8G3(&kk-7o!3Rn3WgrTcJd!CtHD}w6z6(oJB+K7LX&Z&Zz%bU zZ%h2VM`eptD?cWLTKR1yV>=qdIAW+jSmJ)nVN1zuod;RPy4SbRoDN}YLtP9bO7zjw zgT2UqGd&8`{6J%-@K2SMh$~QQ1dm+-j0X<)^e3foenhQP`ge-S{9|}Zo$AXXKw zg*}!s94t+Wb%bk59{~>6fQZFS1jm5Jl5R$p!M7efmBD1iej$>?NyP| zF=p4>m|Z>n>Nty=tC5;>DJo^aHENbc#>rxd87BkU8|T+iIsMqi*Ee)$JknpN=GT z$Ago4ID})YLadoE36NBI(MmiiZL7!#&&VP&*Hy3u-zH`}%u+ae|2wHDKWEd_oh9~@ zQMo9l9NF2aI2r_z^21-ml8~8Kb7@ZB%Q0mCzcXN*J*)mX=Mq!5+_5@<3Xcn;TPS>6 z{x>2fjSDRMfpN!a#7bAUK3@AH`c|f7E|c51KknN!Akz)9XbZjJD|K9l>0uj}nHE&} zb*`~4S+GLXxwUNrtgBs-OpTGrq$rKXAcCUOc@C_>sp*j9@Hw6 zSMspLhJ;r5Y)RREtPAjdsC1igMP`@4d0B*%@vQ?R_rF+f}?v1gqU1P)Gc zYsBgWm2viVhCLy`jqaEY4o}iKBu>`5@l^$rx^xo#xjQB+j{Z%J^RqhnM+eP_^yaHb z4^|;35DoKVvW8Ll*+xbF(>nC>CBhlO;%nS`6_3LAh{Iy3hLV6s*tY@ROmh1 zWz`BeO$PX-S`HEPr;ch%RLr?SNU0dnVL?1J1}-W*a*3d>?T<$7jek2stNMsa^zwUv z3b39y*iv&*AcV|B0gnhL%7J7O3iu=D0O2H?P8{z1stXpi!G8(Lp~$rn`ID2nMZNZP zQ3X}YS{Ic?K|dK!nZZ&wZ584B!p}%gJe3TvFATS+q)4fC?Eo7@2a-1670Tzt+{2&p z{V3dimebNV<)v^2a_MhE3DUMi%YWI+PucxU0P&Y`EE zjh;ZO+G+EB0$n$$O;?I=_@*CmdIc$K=BgY2DT*Ym9lBZq*^!(4>uoxduO`xjD7kb` zq8VO3M8s(Id2&S(-R@njUgPlEBbjQcR=$@^hPN&Zy)lJ$dtb8#GcPzgl>~X;30IHz z(X6(Y#^o12x+9A4b!l`0&6PE2)Jxp8NYi3dR_ZTV zG`$^gAe*kGHS()$(&$C$%Yl8i$f6w3yK5nL>uF1`LRDmd-c>nZZ-K-Of=j)RDrl<7 z#r2+U8jj$L_OO=?V;kqH#xSU%l_ zI>=Iup2@S1@Wa=)J$z7rJO1)ljq=6)i)5Dq%BCk|NdXPGX-b)$~bD4+{z zhdfjO5$;udrP@_D7Sj3NZxk#6u(t~724D{F3QToEtj7cTOjo)a&_UhkY82>lbK5T$ zq%yiTA2i5^yVJ9x{1G{_2Oa0FdW6;OHoNR7m-V12-bD(Q5d}M6{;enZU@&ugQWt8L z&-A3@2JT@o`OG{%ucP6ajI;r(v@K<3Xkr_1M7jYSU|9C>J6M)Iw84_)MRYr@Sx`** z6qH?x;luW-(WL2zo|FHFG{C%a&|B3lu^%B;qf6z z(f7y=sK{@LtuWOdSj_zDAhPy`0PcH07W8~m|bZ+}~6WRxlk>mQ)IdoXA>Q7bepo|?cB-hut%p+h z3o6w3-moAV2bY=~7co-!mWdlOXXd)xFD}M3dt)H1g=o)W#%ingHbh!rMt~aK}WN|~9Vv$*>#Unm6 zD|Y4H17aFcDS30Qqf4jV+n2DV}iH!68xbsshR}Z56+{0X7 zZ`L=b@#>6_(XGR64x&7Nbvm9A#H`{IF|(#7opr;)vhG8;PeE@jK-3cOAL z<=sma*#JKaB&WD83yC%^51AxGk&Y`exMP-&-Lc*g=N9X^^`mA_wVd2G+1MZ}2UAvV z6W4AvYa1iA`{hf6v5wWscLvii6lup(zIS~Z2NrBsC*bw3p%gr`u3dIu9=<3)XEmFY zb%~Q(q}Z{r`E16*Zd^P|i$0Bj;EEw+-c7sp$~d(zX0>iUp0YAbd$aZlY{X){{Oow@ zrwkF>Ej!>ht6*H%J}dr^J9v|)ia447Y3{y`+BEZ|)vX^;vuS41tF z4}c|blE$rn0GNm06VrJt>UcXvP8vqtWvG-qa&rlJbDu|!F`kn-YA#l*t32r8 zW!YFl+3DL+OLi@~ajcc`r8L05(^3$)XPIIh#kVnGwqu!o64_9<9?SGf1&d|+Q3cy* z4x}~XhDTEw3-wu;LzWGrJRZcKXst{>fqK&C^7s=FoRu$=m!3ey{-w*5DK>g6{t$X5 z{RWHMpgd%nT66gUE)u!*ST5gIFxIY0N3@afjyNzXy+df=sf?6oe`n*?nFzZAWrX3I zDkdBm6%+0a9+Oj% zsPsmg&Ji`13eb$0&bJB{Fkulbw8XRd9N@vhS-a$vVU#bgA4;iMWCBAeXE5kTuHU%z z{q}TVcs_AXC!+SEOsOx zC>YakttoRbZ)3-X!N|*p(QW62fTmU<#*b1O!f$W_as3AAx;CU4 z0@4wR3;@OO(vF#(d;*ou!?2*=iks+MY2uE zmLx-BB*}oVBypA!b`F)vmH}@1JCoUY43#O3)wZF-kQh1)2-Arov%x0AS#SJgNnTiv z4Q7jo92pQJM+U^oF`!l&mee+N1Kq7N1dR{~sjxM?fnzxMG2!+NbZh>x#2djE_fyAr z(Cux(hR1$S;x%CgY>6`@MiLBYPZG5$tp5UQaj0#zI8=iVUhvgkheI4*L&LkG4%TwB z+iVrRYr`6fK}I9v!h>2~0_=`UM0I4p^dPlYQRk*@bEWcH+C zWXMB>J=QL^GSd>A+8{?Gg5fP36Ftd(sl+epY)r)5I8|}$?9syAc7>Q3Tk_1qsvbdZ zQON9;!pPYWa~6Ul^@@#am zFq=DK=MiULc6aMeT(98DCbOpiKZBR`T-NYh#%UU!Vcd=%5wFk74)e9auli$`5GIum zv2)A&+4Ldy2=;!3%=0>oj3bV!93We}@5-ET*9&u$Fr$%i*Ki9X*O)!m0oiZuF$g%O#8Y^D1VjmS$s?f@}{jNX&nMrhtb=Efz8|sey z!aI9)@P#$Yd;qXIH#q4GB*nui{hHuABk2dCm*g8~QLhf6*B~CfgXO$P$KY^GNjeg# zX`_&D_(F~zMN^P^UN?%a5G%IJywTK^o|S(dP2K1P`QcdVEd8S?j^2{@ji&36Wc*ZvuS^D4ot)?zVI=M+k=_zqeKuV|=sRgFb<0|@ojLJ^IpGCm zpBz3Gd16JbbA0^p0F{1~zH?FRmZx#?N^s`6bdo>@eZzTl32l+N=hOH| zUS8gMK24|X^1%6YW)$?q3xK;zF1>(`&$i`jrPHx}fl}(_=NI7U%0BQ~Cwq;LIg-H{ zS(e;_gR-bj0UH$inj>GFKwfGJo;ZQrEXLC=q*ue8{u1yE(CveLwZ$HaN*_Do6@#eKcIE*4%V=yKPKz1pqemvj{@iG zKLsD0LT^#x{(45+62Ql2vTQ1D;MU1CQ>nN2{df4_Pt$*tjZ^9RgpYSI+G`HIL0)(j zDj&Lv&JF*B*Ad3id+5t|%WtoubvPDW{a5Nqj|F%Al};o2 zr_8*XE~avH8abQOptT}vawSa&P_d+JXFue_Epe*?+vFVuug2_NUc zVB++R^3oe|AY>cN61nt7x;a)Ad9q{%oft;>hrDwJZHPiS@g}+{>J{dc#|M~BEa~{Z z`Bm9?6BUPBhh+NAv?Toci`;NC&4l?6yd?_hOL_S%Bq4(%x6t)Y+?SWv&ZM5A#&i!6_}io%-Y*T5C z@{7CZJ|)N*cVqtDzfV4WH|3u5kotu%>oRKs)las!xp51@v}`X3-fQ~RHQH;FQ<;;zI}3QIb@1^ z757j_?`x`IFa2wI=RG)*iimQ_J=CvzJqx8o6q!!88;Tt!M8hMFC_AB;8*ILZ))UnS z|9&5J6(aDNe0?^3&*dxkQv=H2;s+>8Bv&kZ6)M4n{GkryK{q`}{luJQ^3a2n-!1SN z8`2}3SH^D>P_Yxg)>O&pICMh`2e$|gc!Ka^G*I!vJQKk=pC<78r1_+A8L-L~^KmG%*kn)Zj$g=FCO?>u#O53egg~TX zSuoW=I+2@cRVID>%F}85{%{pd;qqt|_0g)VHi*~M2ofQpkSObhPymC&FwS_GMmRI8 z87wI)xnhu=^)W6S@{Tc5_9&;ryrqlQLp)r(!9hCEGoS>W_^u(0f3YU0I^sT z!#W3VUJNe`jf`AMo19o);#bgLQ&acsXDP4X8R1A=BjhJvQ+9B{T39o!34Zk~&Zl}D zjYiQm&8yG(oExn)8v&B2FaA8(Ydv|LXH_#RxFDg$o#HCR1rs0Pw;O+a#7ENF;%!X=g^O~0%`i3FXZDJXxNY~+;ySaYeB>~0dnBy zOBBq>rv;>MGhyo$%*8O6Qn6SQ?EE|p6*w~<|02E?S^P!tt`})D(Z=8@FVQI|mvx%czspy;zKZuoIS_D-tiR~LR2&dCx3%;Y0>;0 zk3z2gmQIy7d`rj6E{ExHu73S6zU<|PLoERC!=fX&U_c>x_$ZBrgFoeG*!WMf>SsD1 zPW8agh*p||`M=OEAu7Ll_$zTL6flUyH6rj$a0TJBoPsx-ndPCrZDtIulxza7J#U+mmQ$)vLUk?IRdSUh1al%Re4vt9>@kD!q;}gXKqQ>A?Numtzj5|(L zelMR&5mQi|kt#5}%5V6+zkDxEJR$<$2X9OlZvpzX9FZm7^DX-te5eB~_0yVP2m56U zDNYD5du(hjtjnlzwtN)^K$`$GhXI`D9RNfC_sgGi#kA}SZXLe5hOafzLSHTYc_N>M zw=7RQD<~lQcM+Xvr@XF{I3g$Ji(ay-v*;?yzmu2bivszt&LUd|I}1(v@=1UB1*s%oKBfz-1C~8i?GXiBnK)Rz*-0 zh|#dQ@8r0y;ta8^6XcZak2(^gaw7?_5{TXGmx5@gVD*Vf$F}HPqh&KITRbo zrVjMtkpOOxe?3A!r);bcw|vjyV^dxhj>>5h#qp=@XThr< zTqwjB7nt}8z&?PR9aL(8zO}fskZ)A4wpf(4v#oEC`zDHBSSEavL{9(1+=Qk5YZrXS z#xLj$DV8nFC94!ahiyGVE*s?LNmy)}CW)CP%?!pjaAvK(-+Wb2bk}0OmM>S`=oWHI zwOoFQ$dU^$5vlT@{O2E+puZ0;5z~*aVN_%ctrn^T@z~c5)~hPPrL3Hc_7#)S({udi zG5iT`nJmsEe+>@?$uV0)5d~BH*h-;rHG`XTo41)*w2!$v=Dmz{+ zW^@U0tflwU14mGXHx!lp256mp`fBl0n&SU-c2m%qlF0MZLu~xXUN34z)loTjx>$JrM#H-}28%23Rjbg&1`$s7{9>t9Uij$et8rfrpIPugq zj0Rz<-^&-Z{Du?dG?gi^(gpa+g~7VNtbi9rUM5WdSZ40!>KRb&s^I%G1iqd*C^-0DoK zyU!dG_5pSBj9H?D8iM{=0{N5$vt{L7V!Bo42Mg{NFA9WMAKoKE^oo4?UXgwJEBB%` z|1SSfM~3DE_whIDsnhi+aJm8~wFajtu+Id`g!{xf=yKwH;-ly;^AwV+b=%JEQ|c5= zNzSSe+30d%1@|00P$AM?aNoboQC?hsP-G^G8}KvNPL8&kBmnuSwhI4)A`5R1KPbAO zcvM>;(uc9&LFvU2x7sy zTYk6zd*3;;gEvTVqZ2mp=_6vNm_J*te^d+<#%%f7qhbKSxr>D^Drd`!7Gsfkc(yba zivrpld~UJ0Pjp!G0LZD2jyN@hFOk@JuVcYe5o$V?t~k+_};Z$MhTz zNclt2v=mN8J4o`X)#6K0^^m-v2CigJa8ZqTm&D?^a{3cu5fVm;Pm22~vz)c&vsvJU ztGrS^zD8UDp`|<}4zQ^oc}h&N%8v5Rr^S^Si)N#hY2zF=C+Z7l%kQ5SU9)2=bbNE@ z<+}dQh)H76Y&rKCkt6V4^Ni@r@9#Y$Zj0^AV>Y;=wsmJ7?ktWwTT&~=cZ?y#as1y9 zn^*|GwPFzWK76gXCVB2MC-FxWb&f>jGdHgl7bWD}eCf2Crd)pMv}seO^m91KVg6@| z?7mUFM*ZZM8$}SG^ZflKaW(alX`94JbboN%CQ(ZCs+_$U(`A3~sm3>6X2=>@2dZY~B*~#a~1x^#n z4k&-I-m^RV938TpgpI(y8Cb`yF|kfV znS}STC@M^sGzdMJm)E&qd&^igV$W*Y!UG+e7tU#H(lmL3>jQ> zne$13lfU6poL9s0)=qKeh|Kl!^(oGN!NXIW11N9QbEc@SK*{5~8D$E}@$%18oe!YR z_NmT6G&cA%3PBZeV43qP!Y}Sz?HooG!HHKpOI_a3OFl;y+U%1{u5+%WIYIq;XR6zK z=d0#mmdFV=InPc10Iw{`11NJ)B23?Ole4g|4ez$atRIZhtLn{is1~uM$-(5CohK1Z z4vxOXIhXSCUNgDviPD8Oy-_laVe-3~&JhI{;}sU0@S#==3eLR&` zeebIxsx_ZZyC?no@|t2tfwQK5DR0~86q3eak#r(X5pIi2r z8@dOm!F;=WcKfYpyq+>Ek!+du^gBGnn^e<{J%)kz(O@`P&b7 zG_pV&%@O$%X_r}+-zUx1*EVL)=xj9ZGI!>0%2~`>J#jS3%*T6w)omSDY94&xAcr2cL;KOHbQtL|e!iuyVn0hbXxH{j_Qh%@$mY*q{`G^Y>j z-ez^v$5j;r9}wQpl_B*sN~?wp{xaRXZCs)``J5_x#vCzz2t8|#9=#QR^Dlm%D$N_u zt}xFyC$;M8bGNzLuU@OoW2F*#LM3LYZ#xFF-SY37M*wQ3gWbU{;j}}!Oz5L2{ zw9zb{I;QH0Yfl~OUHl32-phE`{Cvg9?d-SaMzi0_Vd2WV%o|n?NWJ?J)?JoyOf~6d ztT3NlIXUgA%?!;p?500|VER{`7H+!HoU!Vx)UA&)QchIUmsbrBH(=W2bhzz za7P+%SWxnt|nsJClt zP8Q#nn`>(ZL(6+=3J@xiUO8DDd9v!9S3Y!!w{9`}ynfrs4UQtiHP>(%w!&(Z;`$k1 zs&a(yVRqO=;&Ef#oT7jWkCh&C@>^NvzTH{56aB(3@|~5QfV|r~#8W%~?R?8Q z=AD(~;OI7n|BN%9F$dLkII~tE{FtOMlANr87FUr$ey6cD#EtWef2s0Shi?bsngbYl zqQwR0g3gK;oSj7G;hiHoCU8q#y0cJRZZ_3jm3aQNHcFh{*{ zG1Z$Z-#Alzwch;rjdN3qJ%z9)hmpYuB_4CcKRy${>-lC86`RZ6%+6sA(%f7vntF`W zUDdofhQ^u6^;uU#v%c5VIC{YgVo;rjn{rdR zSdg2>#pSt9E+*%us}UCy3Pl-g!S6++HJ8>8p;EK9zVCE~<%x2aty$&r-~eP3i+o#H zQDP+j^NW6taR$u99$mIWzbj9uKk;FYvs@+G5;2Cp5m}^64r%jLF9`i9&KC={A!eWit>eJe)|A%6$s!m-eTa@xDw-S zBY+h<{c$kne23RE#}=2F`gVq&O(Y&xi9aw*%XpQMvS|Y8thWbw*g`S0-TwB4P}+{S z{gZ0Ysx8^yew__%h$Xv+$ula(Fs!C%RL+AUQau)LoGhzbD0AIJU=t814hnuz~4 zlMzzt&9+UI4FkHuUl8#%u&MgJzA}_S%SL_6l^bc+^_clRVM~n}EvpyZK!-m)a%j-@ zm?f}J(OxX4X5WBVC&GPA=7%x4lz9ub7+O*$}KiG*Rv`{^f3kUHTh^r%&?tTdw_f39 zS-2{4a=(~6I5btNxXr_-;yTy(SOkWf2X?0g*K_<1Pbn4d6FvGR!40@&r)Vo=hE$y7 zny`k1!SGJe?!3-jC=P)J>vkian}wd?LIQprj7%v;1zKWyVz#-@sOhPc)N~XVHbVwr zI*KvFHJE*tk)q>x3eS)7vv;_o6r~oLTfJ+tlehEL=-6mBzk6C*YxN)dr}>9H1H@5b z-moXTLkshcxZBKST!Cof5>w0}VXofO6EWrWJ%dh2DVCe@dk6jpJJ>=yC#y-r&VB%fc_jeqi$u5@^Zxfc25Yq4 zhze2YtWX}ItTCPqzCf&ZLuUvUTPUDr>}t~UDCioMoU;0!wOGj$o5`PI44hRIz)YWy zzS!@Q{J!B19|}NfsL+w>PvU6{Z|ilv*?oWiF<7Rh8h&n=i0&~^EDQT7tj_QKl`saB zw(P-NwZB79jXp-E5|)4=b8&yH{We3+E|q$p6dgvGwnNcgtYS>S_=_rgYNTHw&4aE? z(R^}$>UphrP@(LiOTiQC5r2W{+htpjnppw&nGE3( z?&qj*2a@cmx2?DrL?^7m|8?L)0;qxQPA{Q{|6p~7|}1VcKWl3!rw z;|xInOt#xXSO*8d549ny0Qea{C-F+y{P3SyJlmje7WjTG@P8)q|6bx`KZ|JI{DE&O z50w(cmV*Ip$+3`wEM($9ejh(W4mFUqh;_uhY9gx8{3nGcA_ia#Q({Nr zubx838cTu~@ca}%rw?~jm^%-4qzd!PgMJJLhZL;jJO)A+uV6SYV`p~S7OYGS(>3x> zL?O$hYryUi-M0!aYC7_8P)2jGqq8RV_2TFk7)+!FbIN!tyHXz104d@*1B|AmdT-!f z*`5#Qe}#qxfcW>-%R2sm0H%II`B&?*Z@kkp6-%5s^<^|q{l zFdLC+3ApZU0Bum!4#6__CypNPN=0Iv}_ zTk(372Lr~%lU3NTcrn_VNU7u!6_ZIvJxyO59ZyimFPlZ?wY>57Utt3nv-l`7d7 z!o46j+Z~4%do^-H1bLrAX1#@xGYZ7wcp$GbXMd87<-A$)NuMA~5yohQg}CN22T+W* z$|o$Vgu)v!Xq=epz`?U+qrmoy-g<(j@)3eKsdMPu2Fa&>Q=W#nW(6^a8f?y4vHTwe zlti^=8ECmA^8nYgx2yohe4!^@9fvLJb9@HtJ6Rjjhr+z&)4pP#!~FVSCv3yK_UT#p zoA|FT_}lkiBe9+i?-E&SJZz_gS9q*~@cPAC;V~>Ryy{bX6X9(+Og|5matzDxy%fnD zn1;1xe}Hq1d~vy*4-b7@B_FYicvHc`w5{xz+f4{$6gn1p%nN?(sdw_ErzikxvMe#+ z4J)S<6+HahOVlLAh6bfYR!a;}hHq&VR2<{6XxARD7VZ4#!W7F<8V-!V+^EN9y;?F} zRb{&GRTh}%tvYuud@fJax^q2pT)fDVljDUa^5+VeEvjqW*vfzj@$`n}J-XfPw$;ip zK-43-pUkui#N{a97QDrYRn`QhZ-yUY-cZrVyyYp@Oyjc*^ODcH@#>nl5!Ijgn4JYJ zgZbEJor2(z9YeF@jj$sO3<>(&=eBKA7}!Sv1lu9JH)T(`bzqXY16#};)`AmYwCFO9 z_u4(Y7>LUgiH2Gh;3+E1qTD!+oQb(!F5+|3_0~Llr?6G~tNDGNIPOAw zaDUW=4p1I(@vflS{Y&fofVtw(u-N; zK+NNBI1ii#u~RvX%OBKU6AnonQ8e!-c#U=%;2%c_V#h%QVuj%?9HG>TS~<>dFrlY6 zjTQWLUbPo;B$9!AQFxWQ3jRp6?OuBP{VOAi-c}pn$OQgDtFJ;P$|K>nb1 zN?D%pJPP_;q1Mh^5uS8)11!+=RHn8W!|NSP)r&EL%tkSn7>5cE2mJ*cd7b=p6URq& zUX)_s?9(9M7n*l9>}vR1Tn3$;6sMk#y38ppJ%XEgUO}(b*8Eb**1+O(XIO;zUbH)z zpy#@Ak);~DH9M@zZCI9^$P~hGP9fE_jD#_2BAHkSS_weyY9hwKtBKfF6f7rNQC>UlM=6Vg(f_Zq{NCK4E0TJ} z88yo}L`Drwx{iMTEqdt)F3Q7LONnewxvlI;g@EG-4U>5;7#htQIm8{sT!Zp4Ak zoUhY^6LORO+j>cg<};%WvsXuq7Mp5dF`AcrTM*=hD?3pwm+)qoPQ>hCX3@IE%<|vW zZgO}uS-s6XmWJ0?t{pAxe5i}&LM1;@O@yT7O)w%Y5cYuONE`d%Qlk zO}6Gi+>9(ZfbA(ZhN!(Zf0} z(L)7FXxKdPU57EOOlz_7CMU{KizM#VOa7Q>? zdyT{?MaGM2NtP44B>S&Q*`JSR7yi)RT=#vC&fw|82v46`JXw*^{NRWGzK(mfi|9Db zR*&)nY*q4BlBHa;^oIdKu(yo;TdV9*e#8pi3Q5>m;SJP}l*Us2FEr-D3RW407k41E zNhr;&KH7s>dnLl!8y0KfD3r{seXUr_`#)u^x4K`z#)x|G@Q8mM;rp1y zx0N%QAO5?;*eI{s(8{YSK&B(-1mVeES$oxQIMx%&vDASUw^mG^;9FdyhCgyvz!Jr{ z6a$bNw05aiIKpWAc!M8dA8H-K6FcH7PUe&RG~D-hI|-Vo^Jq1daXcFrh*|=`brD0N zF3-SK1|RP+ojXhNdw63$Pn4qqc&Y`$B+*_!y&fUi0PzE`z z-b7HOCKn2y&Um<~x%GJG4D4C*o(_jVN20pCfpd?R;~Cg!FT^gKrh&gmSnwB#D6@2k z{2t%S%uXBgoTBtU+$qAu%13u$YNf6OCZ~y3nx#Kw4T;H>|3eyP&Cl6a=#fE$RJ()` z2_Q!k`D&x3_@D20F@=k*v4>U0`AMCofQoPX|GsD5XM`GfVz1-g@N5k}{Ky)7Y;4*0 zfw&H4Z5xJOD5%|7uCcB*pi6xtA!?}*Win1|IH1$qwkG{ z&IS60=U|LMwpMVgK}M|ytPREW;a!<9Pi(B1mo0NC z)<-Z*-O>zJy5UnF2odCyOk;@Q@@-%Za@L^~w|i*~lBnEp62+~*Q?T|iFf6+~(LLf2 z1J^OEPEZ+VFI21*ab@ftSVbDI-Ni_wJMZRb;__UgKeXqQCHq*OpVhHE`mK>0iADrD zuUgJ4Qh?Z+Y*c=>QHyPyMC4vj0WUp_G8V%3n7%*Fdxvd6Ri`q4 z@237ky+&Qnm805G5jDz9?I@7@l}3(ile&2=PR4f%o{UbuYe(za=;Y}Hn%xGtcOrH0 zbYhM8<++K}sST9*i8LvS=l2rnChsD3qgEJq%lDJ0lboAGS9u>-us98?q;>LvWHPRJ z?>}ThIvt~0>CT`p3s1P_{AtW}KO9&%usApYOXg=%?>6|Dno0BM6Zw87bqRc~m`;cc zg2$*uY{V$2icI5vc|3=v%i=7`O}$_8@J5g4rYxG%26#v|-7vgDVW-%8uKpeYk z96x6m&nbi<(X_FrKt{7XkPX(pSJj^AYR%elRgn(XI^{r;`{nW+n&Mrm4{|lbH~KsA zxwYTg*~Dfgr}W}Xfm?AbpwS?gw5P6DoFGxGW^q4+HTyeQSf96vCF48LkjQ|Wr>yN5 zn%sc~x~N$$>p~squ-w>%2Jzq@>_S639aj>FXo0b>R)(CwI3Ndhr9aaFxu+{NrtVXS z8Ifh6-0r7$#@R>N;cLwv-V7&09qJh#TNk_uF4Sc!9)|AW6Y!{J$j``FB|p!llfCNX z&qy-1%Dw?;d#hXk4bX7;9OUa4Mv`gOeQ-G|cXN%@C9)G57=t9<$t022<{Hpp41=+Ycpp$Q&Q z9VKakvuUBs>PypUnY@FG_3{uGugUZJ(Wp3U$mIBbG^|}BCMw0)KDnPOKU~55wd2Z@ z3_dvRkn&iZRRMrN{PXlRG8{mrvQO`EO zO9oM&lRxb5bO)VxieNWh7dVWD?3n>~clC_Vg-TP4j4zZpoqhEx-E^%l3L_@%c6_h z|Gb}zb~e#Ehg@_Lb?eFf;1dqjk8Mr*o{O8mjpD&!hU-tF_A{6k5@N5-heFWZmZvIN zm_jKY@x2z#lyckYj`>25kN;%+28-qDVuNB)o(nCD=kl4Bhxq2{V(q{QQ znk2I@bygE&jXXS;mgxs82t*$`?UEKb8S(&oi!;hK^())cGEy2;=^9lh-XqQ4!Id~T3~-D@s?(A_rj zv%rFv%S`N{aru$1tBiEqq&jBx*c}_^q+xZRgN9SDq}5uA(l~HYDW?smK(LzayIRAQtshreYHP(G zR|o7I8WyPmFZV_p&yQLL(2N+*w+dFGVG+d_d)a`#V4)z2OL|67zcHX`v=1|EG(iw$ zKMao&kl~6t!(#>f31@UoELN!ujzHuph7z|XM-yH$+(6MCu;=y92 zs@*3)J%yU6QttQzH5z=B}H#y>UwG zSu1L4uJCG^BU3X&ly;aU%(vlr-{6|)j3C~giJ=db5v*sXK$oXVnRyzeAWXAo0Tjsv zP9RvP2}bBJ0CZ01zQN1$dLHI=6#m=pNRcZl>B}a*5wZ-;0riB zFrbbBm8fD>Ea*11>YU)0y+l8m@fr#*2 zpTLtcO4c22w+8KOKwl($n)5W&ww#~?hCt~N9WWqT2L`sLIS$yWK5D7jxN8j$aiHxX z4k~ix?OKm9Lt@A=Aex*_rlK9#WlO46WcsyDMp3Cbfl5ugU@J0=(-xUJo6N6dtWoyU zbOITM#0bLxO(m#jK3kd=o6M56zvmaF39WU;kQg!yXiJ!KPE%NC>sAJt%x`7Jn@=Fa zkQg!yXp2mZP3E6U7TrxcE?f(N!xT)dAGZ{1>sH|Zu?t5}M_@Abf{8uYGf5UjA(9aZDw z=#%fXa&Y54`O6v90fDj5xf#T`suUM!4_JhaH`cL$e`rIGwtP*kP*EVF*I;VF#-S{X41K8N!&-i}*b6qEaX1)-5y9}f z3;Mnzs>4>IvAaRdjQs$68KzanwpO(Ynd3sZYrdzS3FK!ra&cxD zxg?W&=7*S@N|s^sS^sG7@r*cEY^3(qh+$9qVD zUx|=vQl!|S!=$=E?OABpq#KrIh50JaV!ld)aE~xHFMS!?UiwC`>l8NoTNoMNmL6f` zd)QBK5ix>%R3WqDg^{zN`fMP-qme7JZ9am=`fO%|9mT?q%|V{Cau6$@P!U(L1H%JzT63?R_ zh#r-$^Qkv&lmpJEY~DUS=X@GLugk^f(=^&GKR=(Qil6J`xC^KoJtPm0r_S-%wC7(u zctk#W0d=Qm<;xe)Y+5S&kEOxl$L;c(v2>F7WV@6oGxu*-IxEIaNKVmq3zW^F5603| zirdX~Mx0!I0cFd{<0&rl=Q@VipK;-rR1nEtk++Y>96^iRUMnf=Q!OXZYFF=s@dPNMv%{&Fs* z!BMXhE+s$JgyvmJZo<&rb{TC8clCZ~)a7)x5I-H1ORuE0Nq2q7XGU4ReQZqfxhpXO z7hi<~sEwhAuA(5ZA*4*9@mMxZnL_DQBj-(_Vchz;DbQ(&{Adad#A#Lf)$~||gV5iu zCLywGpX5>WggzsutIjdx}Cb#!C9mv%7Pc85_d zm!UD;B`dF^40=_*b{$<5{>7@j4UE;(_^CnmE}|-`lOGgOFS;w_nMr37t&!)=qRZ*8 za{Vk?j=ky;*HcG&OkQ$54WKvVz1P!d+9h{hPp75YKY{i9PVSJo$i0C=;+Hq%`!~=G z^n1o^8Xd+u_%>tpGVTejoK5GuXp8*fPb9NmR|b)68wB>D;A7>o{3aY4*#@ytzIzkh z98tKOFpn+?|B%pQAF&cT$g%S&Q|_2YE29wS-AwbMUcbGWy3uNxJs{g5&HBnh)O;d{&$|)@A&q{(M29NUCyQ!NZJ@0Pn(eW46&~2SQVZ#(6lUYy)KPqK zNd9y;hG4NQy@xvHZ&1I?)!TSimEHBH`YGzb)K56_3I7_3+j=Q6H zPDA{7#9?SB6pKQ=?xkv?&7lJ&)J=#(pGtawzUT7T1GEoi=$$2$DUzC2ZNs?Y%Jgu@ zp;hv`hp7LV%?twJ&V}N36xfGffFAia5E)0YV}FQG?tG8&NEpDw4+|BF7H)%E^61II zJ%z4aicL@^_i`!q!-1O?M$5nCCy&$k-$lB31uaWh@h^6>J~%&IBEJS8IRZdlSI4l< zp=VaoE~4sC@oIY6NwuNVo}lYeXiMm+O>{fal2FfT9P;!$z)bnpvcKZD4E;z9nib@U zFeJe^-V~bhJb9hxEoQoWVi0#aen}@DR=eUeZoXb4^Ib!uKBjq%1E7rx$?6emD<)%0 z==sg$qF(heRk*I>Fb=c=`Hkk!WaA4o;^g(*bwDlIl%?UP14V^`Ir%Jr_y@TdR<2+! zhQZMCMQLcli!@x&61j8>J}No>S?Gl=w3TQ@=$4o1bd++-R_cb=#;tS)zjl9xCW=F! z%R678$#B1euh4+>vM*RtTL`|*wNB=~O7lCEG;5`>m8+k3sbun~FO{2K#l%}3x^f$4 zGO7q|uO*Qv)*Uv_Uq3kXa{~?W2Xzb?F_h)O|7AvUVIP_)c>CcePW^eq8 ztL2OGXi(_q>`yCCH9~_}G zMCErZmHgv(^b}Xq_Y`pPLyvz0zz+?_=~6;Y)aPe9KW^Q(Os+ug{29}2+0Rr!@5?uT zMvh%01HbUafzZXj&<-J5zLq_OI0HjcB*gWi@$1lg0$-^haemPwx`?BP<@+9S115uI zDWaov$BPtsS)%aDf3_2Gawxwpj}za}V^7{4FP!vh=$-@-Pw;`IiQ*ALzSlEZ6ycql zj~6Z9$%AQPfK2y^0^pqM6A%>~0QiPz{4Vr#y4VFki@Y;S?DhT90ul7l6@IhwXiI2X zwvb|2<6#EF@?2Qb!}y&0A^;3601aUPZ{Q9DB7k*rNCz=1tBLEvH{5S#-p@<1d}XkD}~|Z0RC$Wo;MHTlVUTD_hB3MSFROpGI{R8M3Ua zNR!uh6}{vdMtQlb=qc7&jqoAEmC){eokb_z-vGG@rb|!DBYv?!9R6P3kSoqaRaLGy z9mV&m2%Q`d=feVz$dc~j9C7RixvRTaNN>vtJ;XSu?$15M6@=W)*-Jc_Tzw2O8Tbi2 z9AO#jLaTa-4*txeM;XWwjD5CAz3mIVHA;L%C$(?`{gD%#x5;`-$YpQF*#Kb0|Bl8u zdQ5&fT6~Ah`r~uONuvDUvU$Gf7drDi(bq}ka?S-}dTQlbgk|GSc&PK{`E#&oA)77` z=cZO$U`L+l#NcXq##k{1R#-Y#bifJthOuH;N-ZOutv=fXUXA=_tmu;=cTZ zb4vWAt9s^8LURlF+A||Wh#3gKn;C^$BAw&M6wIf7`$hMtP^=y|OJlsaCZ(JwrlMS@ z7|A_W%c}8WV1kn0?*gUj&{yMy4?baw-r*uK^aRnbyr>P)%P$fGI_*u>E3j6;;b#e-vlIEU*8g z*aU;|Um}KE))C+fL6vg)C1P+u$#{NJoF7T78ZTxjfK(BX8HTtC^1O73Xhc6NCW`0L z&xMo3AiEzpHTqdPNen>6)=8p&7uB7*s>You4%rfH;Sw$to%(946~+P>t+LjD$c@)u z%q^G`h_`^b`1LMye$l0(e{V}t{^m>(K(?*rw%rOB1}wMQaH;4$U2}mg5G9i4!V%^| zNr;nQ%z@6EZwh$l@KE~W{a#q7<}EIYw>ZrkgCe}Cm4h5{nHZU9^M*`!v%L2*aVk{x z`ekAPocgrO#hZ9bxI)|=4gk24ZE?Eh3US7Hie3QuE;Px^cr-IeX2Q$}?cQ2bj$G@9 z)8O&}{Gf;Sc1{8+<$x>2*dEpZ_?=^U>BEDdEH8jtXXoMElQ_~JkWXAGhMrl+ir|l5 z;{*7F0)DLk?Bd+4Ua1LI;Ey{GTb1h7R-tk#++>4sbh=9P4(_&%28{R}WAQ_>=miQ< za2~2(x)z9ij08A;P{wSt&I`l}>k-)H`cVsoKw-UBa*22qTdSbxc{9LcQC%C0&0tV4 zYPbaV)~f;|npv-Px^}nqY9ZIj6<3Mi&?a5kVpXaVpG3#L9<^RoiCtHD)nxpT#U+!G z5G>}W+b4^7X-*akvMbkUF}MI@>-B4;95h8_#aoq|@*Vc0H{i)HwM`bz+AEm?qy!oQWSaNP$^GA0TOYQh4S8Mfu@W(J4{cw6>@k>76EW zyIKav*5((ZVV(+r*LeI;2CQ=QG;z9Dv7%nfrioQi>Pk@R!eR3kdG>VC^AaT_7XIjm zb0lquI2m_YSwIC3GUo{{9FYs~`nxu)zLu2Rri<$k82eo-I`!9q#nFZ@D_Cn^o`0<< zwXjMS+S9bffZ3WVmPCzICaEOum}}gK}E#aF+&WTVwq9cBK%JL zsHUAC#DR($NVS;ek43|ygdZwYW3AEkGthnauqhy%V~Yi-Mt`G`%kV0s#e!DIPiBdK zrz)AwR+~R=t-F@%MF~RkEjNfcUG0z!DK*>VyPuinoPqiE&K7T-_d9fcjHdoOxH9)f zF*EF3pjs=-ZxpkV$~aTPm=HX&Os38encW&$rD{IHzJ+>W-^ddO7_JZx$kB7eKQOIi z%oUa5$dB^%xndPwr~L`h8Lvhj)V-jud!HezDX?3Em2fGMsSRx z<59gTpcu)dmdGpSiBr#5!f0>`^`rHol;3a%G*xXkSbGk6LNzmjMY%j7^Yp9%V41m> zAIw9px;W&!Sxh3TmqqhMF^2Pt`N)snmR%R1C=Ok;Kui!+5?X(&_!B{nPPZeQ*e%E0 zE($U?|HNaxhaDiL$XKu5O0ms|B|t@}{T<>}5~cUbk!wWf(7*2#w>T3k?$u0V0Z<`> zcVT(8IrO)?1a@7%FOkC+i!Sn$MdBj7gz)m7K$ezquV}bp?LBD5zj{C1k%HUVm?UpD zQsx*@;B*C!Zw*dU;KbJ8R0Z~Furx}-zks`ZxB@2ixKqKKMzc{aBz{#myt*n1YbOmbj zLt;8y@1mt*XW@~hKsEXr^`%@kkg;MpKYZ%+y{&!3?=bFqgh6@6E>*4-#*uP)S*duP z)`bGg#5{p6%T4hjZITz2i5Y48ct?w=^JXAV4fXP^GBFm~@BFY>ESm2PJ@K%ZEktvP z%qYiNxVa?sRJr(*6K2qPg{T+bl*lhuh(Y4p64_;?7zps#mBJ7$C35*nOnTpy$S+rl zoOb;C^{`Qgu{zYeQrs&#EO`KQ3$T6U;9VsC+7qj~G6u?pYw+#bk;mC~7RcHPaVr*) zr>zm^O6OW}n%KCKD@KPNTr2S7N3{>4h5i4+;m7qUBNmbb$U24d1Z&8V0GtG)T0u5h z5Zt!1AT|zeV;Q?+dd3}T<4_Dl;iSiaG?HAsUVJHzJSZP}3gKf*sNpHGhs5!RJ2F98C6Dn`hii$uB{^PD)ZHLU76 zac%lB#?$`6iE@H*v_$r+6y367D-3+==;gZUmEy{dF?D=@_fDJu;9eRd9IO=m#IX{Y z{8w>nZ0{c3!{dK#-Mfc-kK@L>|0*VO>f&>B!c#uV07@J8JiLFaQHpipaGcuJ z=kVd>0+eYeFO1jklkwiw>2S=NJ%8HVDOZPj?h*Y;+IQcevEF^!=NJX-U%Kn}bL6Zm zon2|7T*AeI(8epB+h|fbux|!d@+I}8h_&B==4+fA1TB!|)15Or?5pxQGSTRa zDK}2J=DM41Icx6R*>i{c9Y?EV=WCt)Lu0RX_NDfHpV#U=6D6zRk0_H-4wGdwoDaaf z{nt4Mi-CWWD_;;jL$_V$OcXRjmdtb>rh#(7EawQC5vrc$EOdD*|E}r1CXd|ce1c|$ z%I7#!+}ftoAoiW~2OQo6MZ=4D_?%u3BB6fzqq$bqU79CO0xP zb-wd7qLHC>3!F=-{jt|I&vDy*4%n$90VUJuD97CD95wzFye8mv6iU|e^(f;}&O_;8 zG?Z-3{_FnapFQs;|Lp1ht7p%UX6jCq beNc9lyB9i_dMlxxP557RXx3fM#p3?~w=v>y diff --git a/schemas/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm b/schemas/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm index 7bbad1a13af1bbafd4cba54299a46aeec91d20fa..7104a8f1aeead0ddb3259ce20e6305f5b4d58df2 100644 GIT binary patch delta 29261 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

Ec!ont2-dg#l44;ZCA~w!n*K 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 Date: Tue, 28 Jul 2026 14:57:55 -0700 Subject: [PATCH 05/16] fix: resolve typed obstruction aliases --- .../src/executable_operation.rs | 17 +++++++++++++---- .../tests/executable_operation_package.rs | 13 ++++++++++++- .../src/executable_operation.rs | 17 +++++++++++++---- .../tests/executable_operation_package.rs | 13 ++++++++++++- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/crates/echo-edict-provider-lowerer/src/executable_operation.rs b/crates/echo-edict-provider-lowerer/src/executable_operation.rs index ce3bf0c4..eb75cd23 100644 --- a/crates/echo-edict-provider-lowerer/src/executable_operation.rs +++ b/crates/echo-edict-provider-lowerer/src/executable_operation.rs @@ -101,7 +101,9 @@ pub(super) fn lower(request: &LoweringRequestV1) -> Result Result, intent: &ApplicationIntent<'_>, + obstruction_coordinate: &str, configuration: ProgramConfiguration<'_>, ) -> Result, ProviderRefusalV1> { let program = canonical_map([ @@ -679,7 +688,7 @@ fn encode_package( ), ( "obstruction_coordinate", - canonical_text(intent.obstruction_coordinate), + canonical_text(obstruction_coordinate), ), ( "operation_coordinate", diff --git a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs index 7fbfdbc1..6e967027 100644 --- a/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-lowerer/tests/executable_operation_package.rs @@ -282,7 +282,18 @@ fn core(names: FixtureNames<'_>) -> CanonicalValueV1 { names.failure, owned_map([( "value", - owned_map([("callee", text(names.obstruction))]), + owned_map([( + "callee", + text(format!( + "{}.{}", + names.alias, + names + .obstruction + .rsplit_once('.') + .expect("fixture obstruction has a member",) + .1 + )), + )]), )]), )]), ), diff --git a/crates/echo-edict-provider-verifier/src/executable_operation.rs b/crates/echo-edict-provider-verifier/src/executable_operation.rs index ef537823..7caa9763 100644 --- a/crates/echo-edict-provider-verifier/src/executable_operation.rs +++ b/crates/echo-edict-provider-verifier/src/executable_operation.rs @@ -112,7 +112,9 @@ pub(super) fn verify( let source = validate_source(&source, closure.source, &request.core)?; let semantic_effect = - semantic_effect_coordinate(source, closure.lawpack, intent.effect_coordinate)?; + semantic_lawpack_member_coordinate(source, closure.lawpack, intent.effect_coordinate)?; + let semantic_obstruction = + semantic_lawpack_member_coordinate(source, closure.lawpack, intent.obstruction_coordinate)?; validate_exports(&exports, &intent, &semantic_effect)?; validate_lawpack( &lawpack, @@ -126,7 +128,13 @@ pub(super) fn verify( validate_adapter(&adapter, closure.configuration, &intent, &semantic_effect)?; validate_target_ir(&target_ir, request, closure.lawpack, &intent)?; let configuration = validate_configuration(&configuration)?; - let expected = encode_expected_package(request, &closure, &intent, configuration)?; + let expected = encode_expected_package( + request, + &closure, + &intent, + &semantic_obstruction, + configuration, + )?; let actual = encode_canonical_cbor_v1(&package) .map_err(|_| invalid_artifact(PACKAGE_COORDINATE, "package could not be re-encoded"))?; @@ -413,7 +421,7 @@ fn validate_adapter( Ok(()) } -fn semantic_effect_coordinate( +fn semantic_lawpack_member_coordinate( source: &str, lawpack: &SemanticInput, core_effect: &str, @@ -596,6 +604,7 @@ fn encode_expected_package( request: &VerificationRequestV1, closure: &ClosureInputs<'_>, intent: &ApplicationIntent<'_>, + obstruction_coordinate: &str, configuration: ProgramConfiguration<'_>, ) -> Result, ProviderRefusalV1> { let program = canonical_map([ @@ -712,7 +721,7 @@ fn encode_expected_package( ), ( "obstruction_coordinate", - canonical_text(intent.obstruction_coordinate), + canonical_text(obstruction_coordinate), ), ( "operation_coordinate", diff --git a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs index d30a7b78..f74fb156 100644 --- a/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs +++ b/crates/echo-edict-provider-verifier/tests/executable_operation_package.rs @@ -399,7 +399,18 @@ fn core(names: FixtureNames<'_>) -> CanonicalValueV1 { names.failure, map([( "value", - map([("callee", text(names.obstruction))]), + map([( + "callee", + text(format!( + "{}.{}", + names.alias, + names + .obstruction + .rsplit_once('.') + .expect("fixture obstruction has a member",) + .1 + )), + )]), )]), )]), ), From dc81f04429d4e142ace8fe0804e8db58155b392b Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:11:23 -0700 Subject: [PATCH 06/16] chore: refresh typed obstruction provider closure --- .../lowerer.echo-dpo.component.wasm | Bin 230640 -> 230875 bytes .../verifier.echo-dpo.component.wasm | Bin 247984 -> 248221 bytes .../package/v1/provider-manifest.echo.json | 10 +++++----- .../echo-wesley-gen/tests/provider_package.rs | 2 +- .../tests/provider_package_corpus.rs | 4 ++-- .../v1/lowerer.echo-dpo.component.wasm | Bin 230640 -> 230875 bytes .../v1/verifier.echo-dpo.component.wasm | Bin 247984 -> 248221 bytes .../lowerer.echo-dpo.component.wasm | Bin 230640 -> 230875 bytes .../verifier.echo-dpo.component.wasm | Bin 247984 -> 248221 bytes .../package/v1/provider-manifest.echo.json | 10 +++++----- xtask/src/provider_lowerer_component.rs | 4 ++-- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm index 9ff9944fdc1f6eaeea881abe7ebb26cfc5aca556..8125cbd686bbe273cd1814fc4f744df9daac56e3 100644 GIT binary patch delta 6477 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 diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json index a1ecb4f2..997d0f1c 100644 --- a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json +++ b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json @@ -3,7 +3,7 @@ "providerAbi": "edict:target-provider@1.0.0", "provider": { "coordinate": "echo.edict-provider@1", - "digest": "sha256:21bf7eb6a0c8ccdacb12b5426e71cdcac30add259ccc4cb992cbdb4f7ea7d737" + "digest": "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f" }, "artifacts": [ { @@ -87,13 +87,13 @@ "artifactKind": "lowerer", "resource": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:455859b0f0f030be53e79d2c505893549f2c92f861dffa2a2c28636a09bd80b2" + "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:455859b0f0f030be53e79d2c505893549f2c92f861dffa2a2c28636a09bd80b2" + "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" } } }, @@ -178,13 +178,13 @@ "artifactKind": "verifier", "resource": { "coordinate": "echo.dpo.verifier/component@1", - "digest": "sha256:86ff84397fec1046a8808a6bb1696e32559213e7e38e3b089f72e8715cb53f73" + "digest": "sha256:744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.verifier/component@1", - "digest": "sha256:86ff84397fec1046a8808a6bb1696e32559213e7e38e3b089f72e8715cb53f73" + "digest": "sha256:744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc" } } } diff --git a/crates/echo-wesley-gen/tests/provider_package.rs b/crates/echo-wesley-gen/tests/provider_package.rs index e481e4ad..6f1c8c24 100644 --- a/crates/echo-wesley-gen/tests/provider_package.rs +++ b/crates/echo-wesley-gen/tests/provider_package.rs @@ -65,7 +65,7 @@ const SEMANTIC_DIGEST: &str = const RELEASE_DIGEST: &str = "sha256:c39449495281b51f978468d08c21e93bcfa423176063b41675da61e4674b0066"; const PACKAGE_ARTIFACT_SHA256: &str = - "21bf7eb6a0c8ccdacb12b5426e71cdcac30add259ccc4cb992cbdb4f7ea7d737"; + "de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f"; const OTHER_PACKAGE_ARTIFACT_SHA256: &str = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; diff --git a/crates/echo-wesley-gen/tests/provider_package_corpus.rs b/crates/echo-wesley-gen/tests/provider_package_corpus.rs index fb5c8da1..de6237e7 100644 --- a/crates/echo-wesley-gen/tests/provider_package_corpus.rs +++ b/crates/echo-wesley-gen/tests/provider_package_corpus.rs @@ -11,9 +11,9 @@ use std::sync::atomic::{AtomicU64, Ordering}; use sha2::{Digest as _, Sha256}; const EXPECTED_PROVIDER_DIGEST: &str = - "sha256:21bf7eb6a0c8ccdacb12b5426e71cdcac30add259ccc4cb992cbdb4f7ea7d737"; + "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f"; const EXPECTED_MANIFEST_RAW_SHA256: &str = - "8da98079ef2441fb063dd770303f322c44933b3bd38bd4a8f84b6497250ecfc7"; + "364a9980c56523bb332db8416aa2089fcc716765da7cf11d16aa645e9cc1f6a6"; const PACKAGE_PATHS: [&str; 25] = [ "components/lowerer.echo-dpo.component.wasm", diff --git a/schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm b/schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm index 9ff9944fdc1f6eaeea881abe7ebb26cfc5aca556..8125cbd686bbe273cd1814fc4f744df9daac56e3 100644 GIT binary patch delta 6477 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 diff --git a/schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm b/schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm index 9ff9944fdc1f6eaeea881abe7ebb26cfc5aca556..8125cbd686bbe273cd1814fc4f744df9daac56e3 100644 GIT binary patch delta 6477 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 diff --git a/schemas/edict-provider/package/v1/provider-manifest.echo.json b/schemas/edict-provider/package/v1/provider-manifest.echo.json index a1ecb4f2..997d0f1c 100644 --- a/schemas/edict-provider/package/v1/provider-manifest.echo.json +++ b/schemas/edict-provider/package/v1/provider-manifest.echo.json @@ -3,7 +3,7 @@ "providerAbi": "edict:target-provider@1.0.0", "provider": { "coordinate": "echo.edict-provider@1", - "digest": "sha256:21bf7eb6a0c8ccdacb12b5426e71cdcac30add259ccc4cb992cbdb4f7ea7d737" + "digest": "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f" }, "artifacts": [ { @@ -87,13 +87,13 @@ "artifactKind": "lowerer", "resource": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:455859b0f0f030be53e79d2c505893549f2c92f861dffa2a2c28636a09bd80b2" + "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:455859b0f0f030be53e79d2c505893549f2c92f861dffa2a2c28636a09bd80b2" + "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" } } }, @@ -178,13 +178,13 @@ "artifactKind": "verifier", "resource": { "coordinate": "echo.dpo.verifier/component@1", - "digest": "sha256:86ff84397fec1046a8808a6bb1696e32559213e7e38e3b089f72e8715cb53f73" + "digest": "sha256:744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.verifier/component@1", - "digest": "sha256:86ff84397fec1046a8808a6bb1696e32559213e7e38e3b089f72e8715cb53f73" + "digest": "sha256:744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc" } } } diff --git a/xtask/src/provider_lowerer_component.rs b/xtask/src/provider_lowerer_component.rs index fccb5413..e3632aa4 100644 --- a/xtask/src/provider_lowerer_component.rs +++ b/xtask/src/provider_lowerer_component.rs @@ -53,7 +53,7 @@ const PINNED_CARGO_COMMIT: &str = "840b83a10fb0e039a83f4d70ad032892c287570a"; /// Reviewed identity that the portable promotion command is permitted to install. pub(crate) const APPROVED_CHECKED_COMPONENT_SHA256: &str = - "455859b0f0f030be53e79d2c505893549f2c92f861dffa2a2c28636a09bd80b2"; + "2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3"; pub(crate) const CHECKED_COMPONENT_REPOSITORY_PATH: &str = "schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm"; @@ -62,7 +62,7 @@ pub(crate) const VERIFIER_CHECKED_COMPONENT_REPOSITORY_PATH: &str = "schemas/edict-provider/components/v1/verifier.echo-dpo.component.wasm"; /// Approved SHA-256 identity of the checked verifier component. pub(crate) const APPROVED_CHECKED_VERIFIER_COMPONENT_SHA256: &str = - "86ff84397fec1046a8808a6bb1696e32559213e7e38e3b089f72e8715cb53f73"; + "744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc"; #[derive(Clone, Copy, Debug, Eq, PartialEq)] struct ProviderComponentSpec { From 90310a0d280161640ffae6bc42d2948e2596d196 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:12:40 -0700 Subject: [PATCH 07/16] test: pin typed obstruction runtime witness --- .../fixtures/edict-operation/ORIGIN.toml | 6 +++--- .../executable-operation-package.cbor | Bin 1703 -> 1755 bytes .../edict-operation/verification-report.cbor | Bin 351 -> 351 bytes xtask/tests/run_edict_operation.rs | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/xtask/tests/fixtures/edict-operation/ORIGIN.toml b/xtask/tests/fixtures/edict-operation/ORIGIN.toml index 74ab0a00..7d1f71a9 100644 --- a/xtask/tests/fixtures/edict-operation/ORIGIN.toml +++ b/xtask/tests/fixtures/edict-operation/ORIGIN.toml @@ -4,16 +4,16 @@ schema = "echo.edict-operation-fixture-origin/v1" repository = "https://github.com/flyingrobots/hello-echo" commit = "8dd96de482ffee8fa6efb2ebe508f649e1d878a7" edict_commit = "296bf1f6c76af1e011f5214b6d3de260c67ca84a" -echo_commit = "eb0abb6ea90d1968e5d10922dc6d88eb7b361460" +echo_commit = "dc81f04429d4e142ace8fe0804e8db58155b392b" build_command = "EDICT_REPO= ECHO_REPO= ./tests/build.sh" [artifacts.executable_operation_package] path = ".build/application/executable-operation-package.cbor" -sha256 = "8a602e9bf2dfeae1a3bc033d299dc7b6b348a08c777756c7b1b855bd099dab93" +sha256 = "67dc6d23e223e78b6aa774a2f57c86db2eff4981ea793975d39c66f731f02fd1" [artifacts.verification_report] path = ".build/application/verification-report.cbor" -sha256 = "8a72bff53649a448d7f880ed27bb21a52daab3a43eb2e0579e46ac35296e34dd" +sha256 = "8a5153b4ec25ebe979f0ceab373d03969e30a64d7973b3a83e3c84877c5aa564" [artifacts.lawpack_manifest] path = "vendor/causal-cell/manifest.cbor" diff --git a/xtask/tests/fixtures/edict-operation/executable-operation-package.cbor b/xtask/tests/fixtures/edict-operation/executable-operation-package.cbor index a9927311e08629aef6fa2b1ff9031f99f49b2895..e6d4d0553d9d57e21fc7bb782cdb9c3d1ddc1270 100644 GIT binary patch delta 67 zcmZ3^dz+VW(?-S@%*Odi#U(|h$t9WjdGX2l`9&$2d5I;d71GIxrNxOkddaCdISz(; XjyXlCi7Az?6`92)#hYI+?`Hx4f!P{; delta 15 Xcmcc3yPTJC<3`38%$sFd_AvnfFU|#k diff --git a/xtask/tests/fixtures/edict-operation/verification-report.cbor b/xtask/tests/fixtures/edict-operation/verification-report.cbor index 4a3179e88ea793e116a1a0f1a22e66242340df4d..df5a2d02baae882b56659e65c758325671c69f16 100644 GIT binary patch delta 42 zcmV+_0M-BB0^b6VQXuwI@J}=42&HM*3A00J+7bt(a(;+W?WaCy*LRTTw5E}A?X4IU AV*mgE delta 42 zcmV+_0M-BB0^b6VQXtojyeOW8j5_C2V!T8=05Osu{aQI&E>DBilMkTnB%6_P?UgeV AO#lD@ diff --git a/xtask/tests/run_edict_operation.rs b/xtask/tests/run_edict_operation.rs index 2e8f18ac..8f69e07b 100644 --- a/xtask/tests/run_edict_operation.rs +++ b/xtask/tests/run_edict_operation.rs @@ -160,7 +160,7 @@ fn compiler_emitted_operation_runs_durably_without_native_callbacks() { assert_eq!(report["artifacts"]["package"]["algorithm"], "sha256"); assert_eq!( report["artifacts"]["package"]["digestHex"], - "8a602e9bf2dfeae1a3bc033d299dc7b6b348a08c777756c7b1b855bd099dab93" + "67dc6d23e223e78b6aa774a2f57c86db2eff4981ea793975d39c66f731f02fd1" ); assert_eq!( report["artifacts"]["verificationReport"]["algorithm"], @@ -168,7 +168,7 @@ fn compiler_emitted_operation_runs_durably_without_native_callbacks() { ); assert_eq!( report["artifacts"]["verificationReport"]["digestHex"], - "8a72bff53649a448d7f880ed27bb21a52daab3a43eb2e0579e46ac35296e34dd" + "8a5153b4ec25ebe979f0ceab373d03969e30a64d7973b3a83e3c84877c5aa564" ); assert_eq!( report["artifacts"]["lawpackManifest"]["algorithm"], @@ -490,7 +490,7 @@ fn fixed_seed_keys_preserve_the_generic_durable_witness_under_bounded_stress() { ); assert_eq!( report["duplicate"]["obstruction"], - "echo.executable-operation/precondition-mismatch/v1" + "causal.cell@1.AlreadyExists" ); } assert_eq!(retained_receipts.len(), CASES); From c4576ebe2b7860aa8c5a6e1c5e324432bb2dc021 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:13:54 -0700 Subject: [PATCH 08/16] docs: define typed obstruction identity --- README.md | 11 +++++++---- crates/echo-edict-provider-lowerer/README.md | 9 ++++++--- crates/echo-edict-provider-verifier/README.md | 8 +++++--- ...25-scheduler-owned-executable-operation-actions.md | 3 ++- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ca069e9c..2869d771 100644 --- a/README.md +++ b/README.md @@ -186,7 +186,10 @@ result, composition, and terminal outcome. Runtime-control installation and scheduler Tick records permit callback-free fresh-host recovery. Program bytes explicitly bind the interpreter and intrinsic profiles, while Tick evidence binds each admitted installation. A program digest cannot confer operation -identity, invocability, or authority. +identity, invocability, or authority. Each package also retains the canonical +lawpack obstruction coordinate resolved from the authored source-local import; +the scheduler reports that exact typed coordinate without interpreting +application vocabulary. That generic runtime witness is not yet the Jim/Jedit vertical. A standalone application-owned Edict operation now crosses it through a compiler-produced @@ -270,9 +273,9 @@ conflicting or obstructed Actions retain typed outcomes without hidden mutation. A standalone application-owned Edict create-if-absent operation now crosses this route as an exact compiler-produced package and independently accepted verification report through `cargo xtask run-edict-operation`. That -witness is one Action in one Tick; it does not claim external multi-Action Tick -composition, a product-ready application runner, a Jedit operation, or a Graft -operation. +witness proves its package-declared typed obstruction and one Action in one +Tick; it does not claim external multi-Action Tick composition, a product-ready +application runner, a Jedit operation, or a Graft operation. ## Contracts And Boundaries diff --git a/crates/echo-edict-provider-lowerer/README.md b/crates/echo-edict-provider-lowerer/README.md index 1171fa88..d91def73 100644 --- a/crates/echo-edict-provider-lowerer/README.md +++ b/crates/echo-edict-provider-lowerer/README.md @@ -45,7 +45,10 @@ exact digest-bound source, Core, lawpack, lawpack-exports, target-adapter, target-configuration, and Target IR artifacts. It derives the operation coordinate from the authored Core package and intent, validates the complete portable capability closure, and emits canonical `echo.operation-package/v1` -bytes for Echo's bounded anchored create-if-absent profile. Application +bytes for Echo's bounded anchored create-if-absent profile. Both the effect and +obstruction coordinates are resolved from source-local aliases through the +exact digest-locked lawpack import, so the package retains stable +lawpack-qualified identities. Application coordinates, intent names, effect names, failure names, type profiles, and authority profiles remain opaque artifact data; production lowering contains no application-specific dispatch or native callback. @@ -111,8 +114,8 @@ proposal constructor supports mutations and refuses a `Query`; authored reads remain a separate bounded observer/optic path and must never be represented as synthetic mutations. -The refreshed 230,285-byte checked lowerer component has SHA-256 -`9575ca8c843f3dfe4e5550ecdc40a8a8584c1aa7012b5b6f6a76e3f05f1b68f3` and has +The refreshed 230,875-byte checked lowerer component has SHA-256 +`2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3` and has crossed the reproducible promotion boundary. The pinned Edict host admits its generated envelope under the owning `generated-artifact` CDDL root, and the isolated host fixture exercises the exact helper binding, typed codecs, EINT diff --git a/crates/echo-edict-provider-verifier/README.md b/crates/echo-edict-provider-verifier/README.md index d7408542..33aceab4 100644 --- a/crates/echo-edict-provider-verifier/README.md +++ b/crates/echo-edict-provider-verifier/README.md @@ -26,14 +26,16 @@ configuration, Target IR, and compiler-emitted package as digest-bound inputs, then reconstructs the expected generic package without importing or calling the lowerer. Exact equality yields an accepted `echo.operation-package-verifier-report/v1`; a rebound or otherwise -self-consistent package mutation yields a typed rejected report. Application +self-consistent package mutation yields a typed rejected report. The verifier +independently resolves source-local effect and obstruction aliases through the +exact lawpack import before comparing the canonical package. Application vocabulary is treated only as opaque authored data. The `wasm32` guest adapter vendors Edict's exact frozen `edict:target-provider/verifier@1.0.0` WIT world and performs only exhaustive -transport-to-model conversion. Its reproducibly built 247,754-byte checked +transport-to-model conversion. Its reproducibly built 248,221-byte checked component has SHA-256 -`d87f3df6cdeca0b14032a23b614e9b9ba1f53ea3955a5a0aebda6c61450c3e51`. +`744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc`. Component identity and admitted host replay remain separate propositions: the pinned Edict host preflights the request artifacts and declared output schema, invokes the checked component, then admits and manifests each returned accepted diff --git a/docs/adr/0025-scheduler-owned-executable-operation-actions.md b/docs/adr/0025-scheduler-owned-executable-operation-actions.md index 0a5e0414..63244353 100644 --- a/docs/adr/0025-scheduler-owned-executable-operation-actions.md +++ b/docs/adr/0025-scheduler-owned-executable-operation-actions.md @@ -67,7 +67,8 @@ Action. The evaluator remains private and pure with respect to the parent worldline: - success returns one complete prepared candidate; -- obstruction returns typed evidence and no parent-visible operations; +- obstruction returns the package-declared, lawpack-qualified typed coordinate + and no parent-visible operations; - neither result mutates the parent state. The direct `prepare_echo_operation_v1` and From 6847922deeee7330c10d76e26507c84552794097 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:14:26 -0700 Subject: [PATCH 09/16] docs: record typed obstruction preservation --- CHANGELOG.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68a3a3b9..77a8be77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,8 +17,9 @@ recovered work while constructing one singleton Tick. Publication follows only after the decided-Tick WAL commit. A second fresh filesystem host recovers the package, Action, Tick, state, typed outcome, and Receipt. - Repeating creation yields the typed precondition obstruction with no hidden - mutation, while a changed initial state produces the typed + Repeating creation yields the package-declared, lawpack-qualified typed + obstruction with no hidden mutation, while a changed initial state produces + the typed `echo-operation-execution-mismatch/action-basis` recovery refusal. Admission binds the accepted verification report's Target IR to the package semantic closure, selects target configuration only from the package-supported target @@ -49,12 +50,12 @@ coordinate-framed exports and adapter references independently from their provider-envelope domains. Its lowerer and verifier components were independently reproduced in copy-only, mount-free designated `linux/amd64` - containers and promoted at 230,297 bytes / - `f800df20b95c5a3dbb7682d3dbe545ac0fde29ad67430ab7038954a08b54047b` - and 247,766 bytes / - `edbef0fee8bb8b661b457674ce4d7eeb75e842f39eb823ae121ddb412ad20a56`, + containers and promoted at 230,875 bytes / + `2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3` + and 248,221 bytes / + `744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc`, respectively. The resulting 25-file package has provider identity - `sha256:d8d433725fbece1ba657cd456720c1b788344f9034b1735ab99cf209d835038a`. + `sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f`. This package build proves generic compiler/provider lowering and independent verification. The separate `run-edict-operation` witness now consumes that crossing through Echo-owned runtime execution. @@ -1517,6 +1518,12 @@ Applied, Rejected, Obstructed}` with receipt evidence and typed contract ### Fixed +- Generic executable-operation lowering and independent verification now + resolve source-local obstruction constructor aliases through the exact + digest-locked lawpack import before encoding or comparing the package. + Runtime duplicate outcomes therefore retain the capability-owned obstruction + coordinate instead of exposing an application-local alias or collapsing it + into the generic precondition-mismatch class. - Provider-native installation now applies the same pure structural validation used to reconstruct retained invocation evidence before mutating any Echo engine index. Empty operation or Target IR coordinates, empty Target IR From 4dd7074aba9cea34ba1863292c03e3c77e4b5cb2 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:18:25 -0700 Subject: [PATCH 10/16] fix: refresh generated provider schema identity --- crates/echo-edict-provider-lowerer/src/lib.rs | 4 ++-- .../tests/fixtures/generated_echo_dpo.rs | 4 ++-- crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/echo-edict-provider-lowerer/src/lib.rs b/crates/echo-edict-provider-lowerer/src/lib.rs index ded7e022..c801cf14 100644 --- a/crates/echo-edict-provider-lowerer/src/lib.rs +++ b/crates/echo-edict-provider-lowerer/src/lib.rs @@ -809,7 +809,7 @@ pub mod echo_dpo { pub const PROVIDER_SCHEMA_COORDINATE: &str = "echo.provider-artifacts.cddl@1"; /// Raw SHA-256 of the exact self-contained provider CDDL bytes. pub const PROVIDER_SCHEMA_SHA256_HEX: &str = - "c604b7bf9e20db02dac9c010a01470d711335953cb31e6a603fb1e9cb818e8fa"; + "6b9076ae02730797fddf60a93606df3de245a1c6bfbd845486799b7310d002a2"; /// Exact generated-artifact profile coordinate owning operation schemas. pub const GENERATED_ARTIFACT_PROFILE: &str = "echo.dpo.registration/v1"; /// Digest-framing domain for the generated-artifact profile. @@ -846,7 +846,7 @@ pub mod echo_dpo { const MUTATION_RULE_NAME: &str = concat!( "cmd/contract/", - "c604b7bf9e20db02dac9c010a01470d711335953cb31e6a603fb1e9cb818e8fa", + "6b9076ae02730797fddf60a93606df3de245a1c6bfbd845486799b7310d002a2", "/3389142194/a.b@1.t" ); const PROVIDER_OPERATIONS: [ProviderOperationV1<'static>; 1] = [ProviderOperationV1 { diff --git a/crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs b/crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs index ca57b2a5..840ad5fd 100644 --- a/crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs +++ b/crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs @@ -71,7 +71,7 @@ pub mod echo_dpo { pub const PROVIDER_SCHEMA_COORDINATE: &str = "echo.provider-artifacts.cddl@1"; /// Raw SHA-256 of the exact self-contained provider CDDL bytes. pub const PROVIDER_SCHEMA_SHA256_HEX: &str = - "c604b7bf9e20db02dac9c010a01470d711335953cb31e6a603fb1e9cb818e8fa"; + "6b9076ae02730797fddf60a93606df3de245a1c6bfbd845486799b7310d002a2"; /// Exact generated-artifact profile coordinate owning operation schemas. pub const GENERATED_ARTIFACT_PROFILE: &str = "echo.dpo.registration/v1"; /// Digest-framing domain for the generated-artifact profile. @@ -108,7 +108,7 @@ pub mod echo_dpo { const MUTATION_RULE_NAME: &str = concat!( "cmd/contract/", - "c604b7bf9e20db02dac9c010a01470d711335953cb31e6a603fb1e9cb818e8fa", + "6b9076ae02730797fddf60a93606df3de245a1c6bfbd845486799b7310d002a2", "/3389142194/a.b@1.t" ); const PROVIDER_OPERATIONS: [ProviderOperationV1<'static>; 1] = [ProviderOperationV1 { diff --git a/crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs b/crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs index e8b6f640..fffb1f42 100644 --- a/crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs +++ b/crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs @@ -45,7 +45,7 @@ const REVIEW_MEDIA_TYPE: &str = "application/json"; const GENERATED_SOURCE_PATH: &str = "generated/echo_dpo.rs"; const REVIEW_PATH: &str = "review/echo_dpo.json"; const EXPECTED_PROVIDER_SCHEMA_SHA256_HEX: &str = - "c604b7bf9e20db02dac9c010a01470d711335953cb31e6a603fb1e9cb818e8fa"; + "6b9076ae02730797fddf60a93606df3de245a1c6bfbd845486799b7310d002a2"; const EXPECTED_OPERATION_ID_LAW: &str = "echo.semantic-operation-id.fnv1-32/v1"; const EXPECTED_OPERATION_ID: u32 = 3_389_142_194; From 7b5af3e4442b7e4a1513745f9585edd7dd679c21 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:33:34 -0700 Subject: [PATCH 11/16] chore: refresh corrected provider closure --- .../lowerer.echo-dpo.component.wasm | Bin 230875 -> 230875 bytes .../package/v1/provider-manifest.echo.json | 6 +++--- .../echo-wesley-gen/tests/provider_package.rs | 2 +- .../tests/provider_package_corpus.rs | 4 ++-- .../v1/lowerer.echo-dpo.component.wasm | Bin 230875 -> 230875 bytes .../lowerer.echo-dpo.component.wasm | Bin 230875 -> 230875 bytes .../package/v1/provider-manifest.echo.json | 6 +++--- xtask/src/provider_lowerer_component.rs | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm index 8125cbd686bbe273cd1814fc4f744df9daac56e3..8ba4de4e8a03dd22fdb68858579f86fcf3749430 100644 GIT binary patch delta 155 zcmccJ&3C(-uc3u;3)7GH4rWP~2IgjosRl;o#s=n==4mM@X=VnAmd0iVW+`dLDXB&# vriq5hW=UyDDHbNCCKhJqmX=B8#)bwd1_nlnM%yhuFmZ8GZcNiprpO)ueSR(k delta 155 zcmccJ&3C(-uc3u;3)7GH4#{Q)CQ0T=X_l!*1}RAfMk$HOmdOT&28jlSCguhy=7xsG v#-^60#>q*>hN)(WW(LM-NrtJG$w?N57O56#iQ6qcFmZ8GZcNiprpO)u!(uNu diff --git a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json index 997d0f1c..4fabbf1c 100644 --- a/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json +++ b/crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json @@ -3,7 +3,7 @@ "providerAbi": "edict:target-provider@1.0.0", "provider": { "coordinate": "echo.edict-provider@1", - "digest": "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f" + "digest": "sha256:a7ab6bfbbedc3a6b61a8559dc6506cfc3d2836b46dac3cc825e5b05b16b94fa5" }, "artifacts": [ { @@ -87,13 +87,13 @@ "artifactKind": "lowerer", "resource": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" + "digest": "sha256:08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" + "digest": "sha256:08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e" } } }, diff --git a/crates/echo-wesley-gen/tests/provider_package.rs b/crates/echo-wesley-gen/tests/provider_package.rs index 6f1c8c24..bf3f576c 100644 --- a/crates/echo-wesley-gen/tests/provider_package.rs +++ b/crates/echo-wesley-gen/tests/provider_package.rs @@ -65,7 +65,7 @@ const SEMANTIC_DIGEST: &str = const RELEASE_DIGEST: &str = "sha256:c39449495281b51f978468d08c21e93bcfa423176063b41675da61e4674b0066"; const PACKAGE_ARTIFACT_SHA256: &str = - "de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f"; + "a7ab6bfbbedc3a6b61a8559dc6506cfc3d2836b46dac3cc825e5b05b16b94fa5"; const OTHER_PACKAGE_ARTIFACT_SHA256: &str = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; diff --git a/crates/echo-wesley-gen/tests/provider_package_corpus.rs b/crates/echo-wesley-gen/tests/provider_package_corpus.rs index de6237e7..94cc1698 100644 --- a/crates/echo-wesley-gen/tests/provider_package_corpus.rs +++ b/crates/echo-wesley-gen/tests/provider_package_corpus.rs @@ -11,9 +11,9 @@ use std::sync::atomic::{AtomicU64, Ordering}; use sha2::{Digest as _, Sha256}; const EXPECTED_PROVIDER_DIGEST: &str = - "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f"; + "sha256:a7ab6bfbbedc3a6b61a8559dc6506cfc3d2836b46dac3cc825e5b05b16b94fa5"; const EXPECTED_MANIFEST_RAW_SHA256: &str = - "364a9980c56523bb332db8416aa2089fcc716765da7cf11d16aa645e9cc1f6a6"; + "59933c7c7ae4873b6dc0f64151951d6df095e8056995a8d4d93cf7917a43ac5a"; const PACKAGE_PATHS: [&str; 25] = [ "components/lowerer.echo-dpo.component.wasm", diff --git a/schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm b/schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm index 8125cbd686bbe273cd1814fc4f744df9daac56e3..8ba4de4e8a03dd22fdb68858579f86fcf3749430 100644 GIT binary patch delta 155 zcmccJ&3C(-uc3u;3)7GH4rWP~2IgjosRl;o#s=n==4mM@X=VnAmd0iVW+`dLDXB&# vriq5hW=UyDDHbNCCKhJqmX=B8#)bwd1_nlnM%yhuFmZ8GZcNiprpO)ueSR(k delta 155 zcmccJ&3C(-uc3u;3)7GH4#{Q)CQ0T=X_l!*1}RAfMk$HOmdOT&28jlSCguhy=7xsG v#-^60#>q*>hN)(WW(LM-NrtJG$w?N57O56#iQ6qcFmZ8GZcNiprpO)u!(uNu diff --git a/schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm b/schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm index 8125cbd686bbe273cd1814fc4f744df9daac56e3..8ba4de4e8a03dd22fdb68858579f86fcf3749430 100644 GIT binary patch delta 155 zcmccJ&3C(-uc3u;3)7GH4rWP~2IgjosRl;o#s=n==4mM@X=VnAmd0iVW+`dLDXB&# vriq5hW=UyDDHbNCCKhJqmX=B8#)bwd1_nlnM%yhuFmZ8GZcNiprpO)ueSR(k delta 155 zcmccJ&3C(-uc3u;3)7GH4#{Q)CQ0T=X_l!*1}RAfMk$HOmdOT&28jlSCguhy=7xsG v#-^60#>q*>hN)(WW(LM-NrtJG$w?N57O56#iQ6qcFmZ8GZcNiprpO)u!(uNu diff --git a/schemas/edict-provider/package/v1/provider-manifest.echo.json b/schemas/edict-provider/package/v1/provider-manifest.echo.json index 997d0f1c..4fabbf1c 100644 --- a/schemas/edict-provider/package/v1/provider-manifest.echo.json +++ b/schemas/edict-provider/package/v1/provider-manifest.echo.json @@ -3,7 +3,7 @@ "providerAbi": "edict:target-provider@1.0.0", "provider": { "coordinate": "echo.edict-provider@1", - "digest": "sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f" + "digest": "sha256:a7ab6bfbbedc3a6b61a8559dc6506cfc3d2836b46dac3cc825e5b05b16b94fa5" }, "artifacts": [ { @@ -87,13 +87,13 @@ "artifactKind": "lowerer", "resource": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" + "digest": "sha256:08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e" }, "source": { "kind": "component", "component": { "coordinate": "echo.dpo.lowerer/component@1", - "digest": "sha256:2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3" + "digest": "sha256:08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e" } } }, diff --git a/xtask/src/provider_lowerer_component.rs b/xtask/src/provider_lowerer_component.rs index e3632aa4..982933c2 100644 --- a/xtask/src/provider_lowerer_component.rs +++ b/xtask/src/provider_lowerer_component.rs @@ -53,7 +53,7 @@ const PINNED_CARGO_COMMIT: &str = "840b83a10fb0e039a83f4d70ad032892c287570a"; /// Reviewed identity that the portable promotion command is permitted to install. pub(crate) const APPROVED_CHECKED_COMPONENT_SHA256: &str = - "2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3"; + "08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e"; pub(crate) const CHECKED_COMPONENT_REPOSITORY_PATH: &str = "schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm"; From fb345a74e020d01ea486b4ecf77d13686b133c6a Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:33:57 -0700 Subject: [PATCH 12/16] docs: correct lowerer component identity --- crates/echo-edict-provider-lowerer/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/echo-edict-provider-lowerer/README.md b/crates/echo-edict-provider-lowerer/README.md index d91def73..b2e0461f 100644 --- a/crates/echo-edict-provider-lowerer/README.md +++ b/crates/echo-edict-provider-lowerer/README.md @@ -115,7 +115,7 @@ remain a separate bounded observer/optic path and must never be represented as synthetic mutations. The refreshed 230,875-byte checked lowerer component has SHA-256 -`2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3` and has +`08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e` and has crossed the reproducible promotion boundary. The pinned Edict host admits its generated envelope under the owning `generated-artifact` CDDL root, and the isolated host fixture exercises the exact helper binding, typed codecs, EINT From f324ae18226f685fe8ff2f3f6c57d2592fbd0c1d Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:34:00 -0700 Subject: [PATCH 13/16] docs: correct provider package identity --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77a8be77..22b9417c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,11 +51,11 @@ provider-envelope domains. Its lowerer and verifier components were independently reproduced in copy-only, mount-free designated `linux/amd64` containers and promoted at 230,875 bytes / - `2122c9c05c00efa7b99a74ad9d8d16415fd7f09b704cc5004d6c2d977642d4a3` + `08277d4ba7d98e0b143c06c208abc306f133bda510caa5393da08aa490334a6e` and 248,221 bytes / `744a511137608634b88abf7bd7e61da9bf81a5cacff7b190fc2530c346ba36cc`, respectively. The resulting 25-file package has provider identity - `sha256:de52e08e1f95a67ddffba354d576bf0813ef378f2582b382b05a46cb692dff8f`. + `sha256:a7ab6bfbbedc3a6b61a8559dc6506cfc3d2836b46dac3cc825e5b05b16b94fa5`. This package build proves generic compiler/provider lowering and independent verification. The separate `run-edict-operation` witness now consumes that crossing through Echo-owned runtime execution. From ee6e5e53557cd081926f8e9abf571ef9ca5f0e42 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:34:35 -0700 Subject: [PATCH 14/16] test: pin final provider witness provenance --- xtask/tests/fixtures/edict-operation/ORIGIN.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xtask/tests/fixtures/edict-operation/ORIGIN.toml b/xtask/tests/fixtures/edict-operation/ORIGIN.toml index 7d1f71a9..ffdb6d47 100644 --- a/xtask/tests/fixtures/edict-operation/ORIGIN.toml +++ b/xtask/tests/fixtures/edict-operation/ORIGIN.toml @@ -4,7 +4,7 @@ schema = "echo.edict-operation-fixture-origin/v1" repository = "https://github.com/flyingrobots/hello-echo" commit = "8dd96de482ffee8fa6efb2ebe508f649e1d878a7" edict_commit = "296bf1f6c76af1e011f5214b6d3de260c67ca84a" -echo_commit = "dc81f04429d4e142ace8fe0804e8db58155b392b" +echo_commit = "f324ae18226f685fe8ff2f3f6c57d2592fbd0c1d" build_command = "EDICT_REPO= ECHO_REPO= ./tests/build.sh" [artifacts.executable_operation_package] From c358cdf24a29704f1fbd532535c97697aa7cab1a Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:40:14 -0700 Subject: [PATCH 15/16] test: refresh executable package index root --- crates/warp-core/src/trusted_runtime_host.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/warp-core/src/trusted_runtime_host.rs b/crates/warp-core/src/trusted_runtime_host.rs index 8995c061..f50654f5 100644 --- a/crates/warp-core/src/trusted_runtime_host.rs +++ b/crates/warp-core/src/trusted_runtime_host.rs @@ -6389,9 +6389,9 @@ mod tests { recovered_echo_operation_index_root([0x20; 32], &[installed], &[], &[]) .expect("the legacy index root is computable"), [ - 0xff, 0x77, 0x8e, 0x79, 0x1c, 0x4b, 0x7f, 0x99, 0xb7, 0xa5, 0x4c, 0x4b, 0x8d, 0xdb, - 0x36, 0x91, 0x62, 0x17, 0x8a, 0x22, 0xe2, 0xbe, 0xde, 0xc6, 0x54, 0x4c, 0x8d, 0x25, - 0xa1, 0xa0, 0x69, 0x04, + 0xf9, 0xcf, 0x53, 0xf2, 0xad, 0xaf, 0x93, 0x1a, 0xa0, 0xe6, 0x06, 0xc6, 0x5a, 0x91, + 0x6f, 0xfa, 0x0b, 0x4f, 0xf5, 0x50, 0x66, 0x32, 0x8c, 0x1c, 0x48, 0xf7, 0x22, 0xcd, + 0x1e, 0x0d, 0x40, 0x2e, ] ); } From 35b64a525fcfa72afa7a33f09e43b7046561f112 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 28 Jul 2026 15:44:48 -0700 Subject: [PATCH 16/16] fix: recover action outcomes in ingress order --- crates/warp-core/src/trusted_runtime_host.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/warp-core/src/trusted_runtime_host.rs b/crates/warp-core/src/trusted_runtime_host.rs index f50654f5..235d0160 100644 --- a/crates/warp-core/src/trusted_runtime_host.rs +++ b/crates/warp-core/src/trusted_runtime_host.rs @@ -4941,10 +4941,11 @@ fn recover_runtime_state_delta_material( }); missing.sort_unstable(); missing.dedup(); - let echo_operation_action_outcomes = action_outcomes_by_submission + let mut echo_operation_action_outcomes = action_outcomes_by_submission .into_iter() .map(|(submission_id, (ingress_id, outcome))| (submission_id, ingress_id, outcome)) - .collect(); + .collect::>(); + echo_operation_action_outcomes.sort_by_key(|(_, ingress_id, _)| *ingress_id); Ok(RecoveredRuntimeStateMaterial { provenance_entries: entries, receipt_correlations: correlations,