From 924e187660a7b0fbea8c86d70f943f95ab0658a1 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 30 Jul 2025 14:16:47 +0200 Subject: [PATCH 01/12] Custom build steps for agent wrapping --- golem-cli/src/app/build/command.rs | 291 ++++++++++++------ golem-cli/src/app/build/componentize.rs | 11 +- golem-cli/src/app/build/mod.rs | 2 +- .../src/command_handler/component/mod.rs | 1 - golem-cli/src/model/app_raw.rs | 26 ++ golem-cli/src/model/template.rs | 29 ++ 6 files changed, 255 insertions(+), 105 deletions(-) diff --git a/golem-cli/src/app/build/command.rs b/golem-cli/src/app/build/command.rs index c8ef10aba..6aabdfd34 100644 --- a/golem-cli/src/app/build/command.rs +++ b/golem-cli/src/app/build/command.rs @@ -21,7 +21,12 @@ use crate::app::context::ApplicationContext; use crate::app::error::CustomCommandError; use crate::fs::compile_and_collect_globs; use crate::log::{log_action, log_skipping_up_to_date, LogColorize, LogIndent}; +use crate::model::app::AppComponentName; use crate::model::app_raw; +use crate::model::app_raw::{ + ComposeAgentWrapper, GenerateAgentWrapper, GenerateQuickJSCrate, GenerateQuickJSDTS, +}; +use crate::wasm_rpc_stubgen::commands; use anyhow::{anyhow, Context}; use camino::Utf8Path; use std::collections::HashMap; @@ -29,6 +34,105 @@ use std::path::Path; use std::process::Command; use tracing::debug; +pub async fn execute_build_command( + ctx: &mut ApplicationContext, + component_name: &AppComponentName, + command: &app_raw::BuildCommand, + additional_env_vars: HashMap, +) -> anyhow::Result<()> { + let base_build_dir = ctx + .application + .component_source_dir(component_name) + .to_path_buf(); + match command { + app_raw::BuildCommand::External(external_command) => { + execute_external_command(ctx, &base_build_dir, external_command, additional_env_vars) + } + app_raw::BuildCommand::QuickJSCrate(command) => { + execute_quickjs_create(ctx, &base_build_dir, command) + } + app_raw::BuildCommand::QuickJSDTS(command) => { + execute_quickjs_d_ts(ctx, &base_build_dir, command) + } + app_raw::BuildCommand::AgentWrapper(command) => { + execute_agent_wrapper(ctx, component_name, &base_build_dir, command).await + } + app_raw::BuildCommand::ComposeAgentWrapper(command) => { + execute_compose_agent_wrapper(&base_build_dir, command).await + } + } +} + +async fn execute_agent_wrapper( + ctx: &mut ApplicationContext, + component_name: &AppComponentName, + base_build_dir: &Path, + command: &GenerateAgentWrapper, +) -> anyhow::Result<()> { + let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); + let wrapper_wasm_path = base_build_dir.join(&command.generate_agent_wrapper); + let compiled_wasm_path = base_build_dir.join(&command.based_on_compiled_wasm); + + log_action( + "Generating", + format!( + "agent wrapper for {}", + component_name.to_string().log_color_highlight() + ), + ); + let _indent = LogIndent::new(); + + let agent_types = ctx + .wit + .get_extracted_agent_types(component_name, compiled_wasm_path.as_std_path()) + .await?; + + log_action( + "Generating", + format!( + "agent WIT interface for {}", + component_name.to_string().log_color_highlight() + ), + ); + + let wrapper_context = + crate::model::agent::wit::generate_agent_wrapper_wit(component_name, &agent_types)?; + + log_action( + "Generating", + format!( + "agent WIT interface implementation to {}", + wrapper_wasm_path.to_string().log_color_highlight() + ), + ); + + crate::model::agent::moonbit::generate_moonbit_wrapper( + wrapper_context, + wrapper_wasm_path.as_std_path(), + )?; + + Ok(()) +} + +async fn execute_compose_agent_wrapper( + base_build_dir: &Path, + command: &ComposeAgentWrapper, +) -> anyhow::Result<()> { + let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); + let wrapper_wasm_path = base_build_dir.join(&command.compose_agent_wrapper); + let user_component = base_build_dir.join(&command.with_agent); + let target_component = base_build_dir.join(&command.to); + + commands::composition::compose( + user_component.as_std_path(), + &[wrapper_wasm_path.as_std_path().to_path_buf()], + target_component.as_std_path(), + ) + .await?; + + Ok(()) +} + pub fn execute_custom_command( ctx: &ApplicationContext, command_name: &str, @@ -94,109 +198,106 @@ pub fn execute_custom_command( Ok(()) } -pub fn execute_build_command( +fn execute_quickjs_create( ctx: &ApplicationContext, base_build_dir: &Path, - command: &app_raw::BuildCommand, - additional_env_vars: HashMap, + command: &GenerateQuickJSCrate, ) -> anyhow::Result<()> { - match command { - app_raw::BuildCommand::External(external_command) => { - execute_external_command(ctx, base_build_dir, external_command, additional_env_vars) - } - app_raw::BuildCommand::QuickJSCrate(command) => { - let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); - let wit = base_build_dir.join(&command.wit); - let js = base_build_dir.join(&command.js); - let generate_quickjs_crate = base_build_dir.join(&command.generate_quickjs_crate); - - let task_result_marker = TaskResultMarker::new( - &ctx.application.task_result_marker_dir(), - GenerateQuickJSCrateCommandMarkerHash { - build_dir: base_build_dir.as_std_path(), - command, - }, - )?; - - let skip_up_to_date_checks = - ctx.config.skip_up_to_date_checks || !task_result_marker.is_up_to_date(); - - if is_up_to_date( - skip_up_to_date_checks, - || { - vec![ - wit.clone().into_std_path_buf(), - js.clone().into_std_path_buf(), - ] - }, - || vec![generate_quickjs_crate.clone().into_std_path_buf()], - ) { - log_skipping_up_to_date(format!( - "executing WASM RQuickJS wrapper generator in directory {}", - base_build_dir.log_color_highlight() - )); - return Ok(()); - } + let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); + let wit = base_build_dir.join(&command.wit); + let js = base_build_dir.join(&command.js); + let generate_quickjs_crate = base_build_dir.join(&command.generate_quickjs_crate); - log_action( - "Executing", - format!( - "WASM RQuickJS wrapper generator in directory {}", - base_build_dir.log_color_highlight() - ), - ); + let task_result_marker = TaskResultMarker::new( + &ctx.application.task_result_marker_dir(), + GenerateQuickJSCrateCommandMarkerHash { + build_dir: base_build_dir.as_std_path(), + command, + }, + )?; - task_result_marker.result({ - wasm_rquickjs::generate_wrapper_crate( - &wit, - &js, - &generate_quickjs_crate, - command.world.as_deref(), - ) - }) - } - app_raw::BuildCommand::QuickJSDTS(command) => { - let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); - let wit = &base_build_dir.join(&command.wit); - let generate_quickjs_dts = &base_build_dir.join(&command.generate_quickjs_dts); - - let task_result_marker = TaskResultMarker::new( - &ctx.application.task_result_marker_dir(), - GenerateQuickJSDTSCommandMarkerHash { - build_dir: base_build_dir.as_std_path(), - command, - }, - )?; - - let skip_up_to_date_checks = - ctx.config.skip_up_to_date_checks || !task_result_marker.is_up_to_date(); - - if is_up_to_date( - skip_up_to_date_checks, - || vec![wit.clone().into_std_path_buf()], - || vec![generate_quickjs_dts.clone().into_std_path_buf()], - ) { - log_skipping_up_to_date(format!( - "executing WASM RQuickJS d.ts generator in directory {}", - base_build_dir.log_color_highlight() - )); - return Ok(()); - } + let skip_up_to_date_checks = + ctx.config.skip_up_to_date_checks || !task_result_marker.is_up_to_date(); - log_action( - "Executing", - format!( - "WASM RQuickJS d.ts generator in directory {}", - base_build_dir.log_color_highlight() - ), - ); + if is_up_to_date( + skip_up_to_date_checks, + || { + vec![ + wit.clone().into_std_path_buf(), + js.clone().into_std_path_buf(), + ] + }, + || vec![generate_quickjs_crate.clone().into_std_path_buf()], + ) { + log_skipping_up_to_date(format!( + "executing WASM RQuickJS wrapper generator in directory {}", + base_build_dir.log_color_highlight() + )); + return Ok(()); + } - task_result_marker.result({ - wasm_rquickjs::generate_dts(wit, generate_quickjs_dts, command.world.as_deref()) - .context("Failed to generate QuickJS DTS") - }) - } + log_action( + "Executing", + format!( + "WASM RQuickJS wrapper generator in directory {}", + base_build_dir.log_color_highlight() + ), + ); + + task_result_marker.result({ + wasm_rquickjs::generate_wrapper_crate( + &wit, + &js, + &generate_quickjs_crate, + command.world.as_deref(), + ) + }) +} + +fn execute_quickjs_d_ts( + ctx: &ApplicationContext, + base_build_dir: &Path, + command: &GenerateQuickJSDTS, +) -> anyhow::Result<()> { + let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); + let wit = &base_build_dir.join(&command.wit); + let generate_quickjs_dts = &base_build_dir.join(&command.generate_quickjs_dts); + + let task_result_marker = TaskResultMarker::new( + &ctx.application.task_result_marker_dir(), + GenerateQuickJSDTSCommandMarkerHash { + build_dir: base_build_dir.as_std_path(), + command, + }, + )?; + + let skip_up_to_date_checks = + ctx.config.skip_up_to_date_checks || !task_result_marker.is_up_to_date(); + + if is_up_to_date( + skip_up_to_date_checks, + || vec![wit.clone().into_std_path_buf()], + || vec![generate_quickjs_dts.clone().into_std_path_buf()], + ) { + log_skipping_up_to_date(format!( + "executing WASM RQuickJS d.ts generator in directory {}", + base_build_dir.log_color_highlight() + )); + return Ok(()); } + + log_action( + "Executing", + format!( + "WASM RQuickJS d.ts generator in directory {}", + base_build_dir.log_color_highlight() + ), + ); + + task_result_marker.result({ + wasm_rquickjs::generate_dts(wit, generate_quickjs_dts, command.world.as_deref()) + .context("Failed to generate QuickJS DTS") + }) } pub fn execute_external_command( diff --git a/golem-cli/src/app/build/componentize.rs b/golem-cli/src/app/build/componentize.rs index a7d68a867..199c95d9f 100644 --- a/golem-cli/src/app/build/componentize.rs +++ b/golem-cli/src/app/build/componentize.rs @@ -21,7 +21,7 @@ use anyhow::{anyhow, Context}; use heck::ToLowerCamelCase; use std::collections::{BTreeSet, HashMap}; -pub fn componentize(ctx: &mut ApplicationContext) -> anyhow::Result<()> { +pub async fn componentize(ctx: &mut ApplicationContext) -> anyhow::Result<()> { log_action("Building", "components"); let _indent = LogIndent::new(); @@ -51,13 +51,8 @@ pub fn componentize(ctx: &mut ApplicationContext) -> anyhow::Result<()> { let env_vars = build_step_env_vars(ctx, &component_name) .context("Failed to get env vars for build step")?; - for build_step in &component_properties.build { - execute_build_command( - ctx, - ctx.application.component_source_dir(&component_name), - build_step, - env_vars.clone(), - )?; + for build_step in component_properties.build.clone() { + execute_build_command(ctx, &component_name, &build_step, env_vars.clone()).await?; } } diff --git a/golem-cli/src/app/build/mod.rs b/golem-cli/src/app/build/mod.rs index 62c743536..10be162da 100644 --- a/golem-cli/src/app/build/mod.rs +++ b/golem-cli/src/app/build/mod.rs @@ -44,7 +44,7 @@ pub async fn build_app(ctx: &mut ApplicationContext) -> anyhow::Result<()> { gen_rpc(ctx).await?; } if ctx.config.should_run_step(AppBuildStep::Componentize) { - componentize(ctx)?; + componentize(ctx).await?; } if ctx.config.should_run_step(AppBuildStep::Link) { link(ctx).await?; diff --git a/golem-cli/src/command_handler/component/mod.rs b/golem-cli/src/command_handler/component/mod.rs index 78e8ebe55..6bc6f674d 100644 --- a/golem-cli/src/command_handler/component/mod.rs +++ b/golem-cli/src/command_handler/component/mod.rs @@ -749,7 +749,6 @@ impl ComponentCommandHandler { } }; - // TODO: to be sent to component service let agent_types: Option> = { let mut app_ctx = self.ctx.app_context_lock_mut().await?; let app_ctx = app_ctx.some_or_err_mut()?; diff --git a/golem-cli/src/model/app_raw.rs b/golem-cli/src/model/app_raw.rs index 532697017..13cb810bf 100644 --- a/golem-cli/src/model/app_raw.rs +++ b/golem-cli/src/model/app_raw.rs @@ -322,6 +322,8 @@ pub enum BuildCommand { External(ExternalCommand), QuickJSCrate(GenerateQuickJSCrate), QuickJSDTS(GenerateQuickJSDTS), + AgentWrapper(GenerateAgentWrapper), + ComposeAgentWrapper(ComposeAgentWrapper), } impl BuildCommand { @@ -330,6 +332,8 @@ impl BuildCommand { BuildCommand::External(cmd) => cmd.dir.as_deref(), BuildCommand::QuickJSCrate(_) => None, BuildCommand::QuickJSDTS(_) => None, + BuildCommand::AgentWrapper(_) => None, + BuildCommand::ComposeAgentWrapper(_) => None, } } @@ -338,6 +342,8 @@ impl BuildCommand { BuildCommand::External(cmd) => cmd.targets.clone(), BuildCommand::QuickJSCrate(cmd) => vec![cmd.generate_quickjs_crate.clone()], BuildCommand::QuickJSDTS(cmd) => vec![cmd.generate_quickjs_dts.clone()], + BuildCommand::AgentWrapper(cmd) => vec![cmd.generate_agent_wrapper.clone()], + BuildCommand::ComposeAgentWrapper(cmd) => vec![cmd.to.clone()], } } } @@ -377,6 +383,26 @@ pub struct GenerateQuickJSDTS { pub world: Option, } +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct GenerateAgentWrapper { + /// The target path of the generated wrapper component + pub generate_agent_wrapper: String, + /// The path of the compiled WASM component containing the dynamic golem:agent implementation + pub based_on_compiled_wasm: String, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct ComposeAgentWrapper { + /// The target path of the generated wrapper component + pub compose_agent_wrapper: String, + /// The path of the compiled WASM component implementing golem:agent + pub with_agent: String, + /// The path of the resulting composed WASM component + pub to: String, +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase", deny_unknown_fields)] pub struct Dependency { diff --git a/golem-cli/src/model/template.rs b/golem-cli/src/model/template.rs index e6093791a..c7ba6244c 100644 --- a/golem-cli/src/model/template.rs +++ b/golem-cli/src/model/template.rs @@ -82,6 +82,12 @@ impl Template for app_raw::BuildCommand { app_raw::BuildCommand::QuickJSDTS(generate_quickjs_dts) => Ok( app_raw::BuildCommand::QuickJSDTS(generate_quickjs_dts.render(env, ctx)?), ), + app_raw::BuildCommand::AgentWrapper(agent_wrapper) => Ok( + app_raw::BuildCommand::AgentWrapper(agent_wrapper.render(env, ctx)?), + ), + app_raw::BuildCommand::ComposeAgentWrapper(compose_agent_wrapper) => Ok( + app_raw::BuildCommand::ComposeAgentWrapper(compose_agent_wrapper.render(env, ctx)?), + ), } } } @@ -130,6 +136,29 @@ impl Template for app_raw::GenerateQuickJSDTS { } } +impl Template for app_raw::GenerateAgentWrapper { + type Rendered = app_raw::GenerateAgentWrapper; + + fn render(&self, env: &Environment, ctx: &C) -> Result { + Ok(app_raw::GenerateAgentWrapper { + generate_agent_wrapper: self.generate_agent_wrapper.render(env, ctx)?, + based_on_compiled_wasm: self.based_on_compiled_wasm.render(env, ctx)?, + }) + } +} + +impl Template for app_raw::ComposeAgentWrapper { + type Rendered = app_raw::ComposeAgentWrapper; + + fn render(&self, env: &Environment, ctx: &C) -> Result { + Ok(app_raw::ComposeAgentWrapper { + compose_agent_wrapper: self.compose_agent_wrapper.render(env, ctx)?, + with_agent: self.with_agent.render(env, ctx)?, + to: self.to.render(env, ctx)?, + }) + } +} + impl Template for serde_json::Value { type Rendered = serde_json::Value; From 33fe3da0a9bd9eb733b9a7b8a8d2724d9238d32c Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 30 Jul 2025 19:02:38 +0200 Subject: [PATCH 02/12] Updated to the latest wasm-rquickjs --- Cargo.lock | 49 ++----------------- Cargo.toml | 2 +- golem-cli/src/app/build/command.rs | 27 +++++++--- golem-cli/src/model/app_raw.rs | 2 +- golem-cli/src/model/template.rs | 10 +++- .../js/js-app-common/common-js/golem.yaml | 3 +- .../components-js/component-name/wit/main.wit | 4 +- .../ts/ts-app-common/common-ts/golem.yaml | 3 +- .../components-ts/component-name/wit/main.wit | 4 +- 9 files changed, 43 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 83b5daa36..eb272758c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11375,9 +11375,9 @@ dependencies = [ [[package]] name = "wasm-rquickjs" -version = "0.0.4" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "988766af53dcca920d774678f1f3bf561d442c9285465392563acb3f2d148a39" +checksum = "88ee824d9459a4c8f707c24d81af71e9a07e7aa19b1a7f1c15eee207fe151b7e" dependencies = [ "anyhow", "camino", @@ -11389,8 +11389,9 @@ dependencies = [ "quote", "syn 2.0.104", "toml_edit", - "wit-bindgen-core 0.42.1", - "wit-parser 0.230.0", + "wit-bindgen-core 0.43.0", + "wit-encoder", + "wit-parser 0.235.0", ] [[package]] @@ -11503,17 +11504,6 @@ dependencies = [ "serde", ] -[[package]] -name = "wasmparser" -version = "0.230.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808198a69b5a0535583370a51d459baa14261dfab04800c4864ee9e1a14346ed" -dependencies = [ - "bitflags 2.9.1", - "indexmap 2.10.0", - "semver", -] - [[package]] name = "wasmparser" version = "0.235.0" @@ -12464,17 +12454,6 @@ dependencies = [ "wit-parser 0.227.1", ] -[[package]] -name = "wit-bindgen-core" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35e550f614e16db196e051d22b0d4c94dd6f52c90cb1016240f71b9db332631" -dependencies = [ - "anyhow", - "heck 0.5.0", - "wit-parser 0.230.0", -] - [[package]] name = "wit-bindgen-core" version = "0.43.0" @@ -12727,24 +12706,6 @@ dependencies = [ "wasmparser 0.229.0", ] -[[package]] -name = "wit-parser" -version = "0.230.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "679fde5556495f98079a8e6b9ef8c887f731addaffa3d48194075c1dd5cd611b" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.10.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser 0.230.0", -] - [[package]] name = "wit-parser" version = "0.235.0" diff --git a/Cargo.toml b/Cargo.toml index 6eea5d84f..e3fbfeaad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ wax = "0.6.0" wasm-metadata = { version = "0.228", features = ["oci"] } wasmparser = "0.235.0" wasm-encoder = "0.235.0" -wasm-rquickjs = "0.0.4" +wasm-rquickjs = "0.0.5" wasmtime = { version = "33.0.0", features = ["async", "component-model"] } wasmtime-wasi = { version = "33.0.0" } wit-bindgen = "0.43.0" diff --git a/golem-cli/src/app/build/command.rs b/golem-cli/src/app/build/command.rs index 6aabdfd34..231ab0e25 100644 --- a/golem-cli/src/app/build/command.rs +++ b/golem-cli/src/app/build/command.rs @@ -33,6 +33,7 @@ use std::collections::HashMap; use std::path::Path; use std::process::Command; use tracing::debug; +use wasm_rquickjs::{EmbeddingMode, JsModuleSpec}; pub async fn execute_build_command( ctx: &mut ApplicationContext, @@ -205,9 +206,24 @@ fn execute_quickjs_create( ) -> anyhow::Result<()> { let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); let wit = base_build_dir.join(&command.wit); - let js = base_build_dir.join(&command.js); let generate_quickjs_crate = base_build_dir.join(&command.generate_quickjs_crate); + let mut js_modules = Vec::new(); + let mut js_paths = Vec::new(); + for (name, spec) in &command.js_modules { + let mode = if spec == "@composition" { + EmbeddingMode::Composition + } else { + let js = base_build_dir.join(spec); + js_paths.push(js.clone().into_std_path_buf()); + EmbeddingMode::EmbedFile(js) + }; + js_modules.push(JsModuleSpec { + name: name.clone(), + mode, + }); + } + let task_result_marker = TaskResultMarker::new( &ctx.application.task_result_marker_dir(), GenerateQuickJSCrateCommandMarkerHash { @@ -221,12 +237,7 @@ fn execute_quickjs_create( if is_up_to_date( skip_up_to_date_checks, - || { - vec![ - wit.clone().into_std_path_buf(), - js.clone().into_std_path_buf(), - ] - }, + || [vec![wit.clone().into_std_path_buf()], js_paths].concat(), || vec![generate_quickjs_crate.clone().into_std_path_buf()], ) { log_skipping_up_to_date(format!( @@ -247,7 +258,7 @@ fn execute_quickjs_create( task_result_marker.result({ wasm_rquickjs::generate_wrapper_crate( &wit, - &js, + &js_modules, &generate_quickjs_crate, command.world.as_deref(), ) diff --git a/golem-cli/src/model/app_raw.rs b/golem-cli/src/model/app_raw.rs index 13cb810bf..2fa49e7b2 100644 --- a/golem-cli/src/model/app_raw.rs +++ b/golem-cli/src/model/app_raw.rs @@ -369,7 +369,7 @@ pub struct ExternalCommand { pub struct GenerateQuickJSCrate { pub generate_quickjs_crate: String, pub wit: String, - pub js: String, + pub js_modules: HashMap, #[serde(default, skip_serializing_if = "Option::is_none")] pub world: Option, } diff --git a/golem-cli/src/model/template.rs b/golem-cli/src/model/template.rs index c7ba6244c..1dadbb067 100644 --- a/golem-cli/src/model/template.rs +++ b/golem-cli/src/model/template.rs @@ -118,7 +118,15 @@ impl Template for app_raw::GenerateQuickJSCrate { Ok(app_raw::GenerateQuickJSCrate { generate_quickjs_crate: self.generate_quickjs_crate.render(env, ctx)?, wit: self.wit.render(env, ctx)?, - js: self.js.render(env, ctx)?, + js_modules: HashMap::from_iter( + self.js_modules + .iter() + .map(|(k, v)| { + k.render(env, ctx) + .and_then(|k| v.render(env, ctx).map(|v| (k, v))) + }) + .collect::, _>>()?, + ), world: self.world.render(env, ctx)?, }) } diff --git a/golem-templates/templates/js/js-app-common/common-js/golem.yaml b/golem-templates/templates/js/js-app-common/common-js/golem.yaml index fea6e9401..b0df4849f 100644 --- a/golem-templates/templates/js/js-app-common/common-js/golem.yaml +++ b/golem-templates/templates/js/js-app-common/common-js/golem.yaml @@ -14,7 +14,8 @@ templates: - dist/main.js - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} wit: wit-generated - js: dist/main.js + jsModules: + main: dist/main.js - command: cargo component build --release dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} sources: diff --git a/golem-templates/templates/js/js-app-component-default/components-js/component-name/wit/main.wit b/golem-templates/templates/js/js-app-component-default/components-js/component-name/wit/main.wit index 7a10d254e..358fc151a 100644 --- a/golem-templates/templates/js/js-app-component-default/components-js/component-name/wit/main.wit +++ b/golem-templates/templates/js/js-app-component-default/components-js/component-name/wit/main.wit @@ -3,8 +3,8 @@ package pack:name; // See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax interface component-name-api { - add: func(value: u64); - get: func() -> u64; + add: func(value: u32); + get: func() -> u32; } world component-name { diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml index e0d3a6176..b83893885 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml @@ -15,7 +15,8 @@ templates: - dist/main.js - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} wit: wit-generated - js: dist/main.js + jsModules: + main: dist/main.js - command: cargo component build --release dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} sources: diff --git a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit index 7a10d254e..358fc151a 100644 --- a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit +++ b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit @@ -3,8 +3,8 @@ package pack:name; // See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax interface component-name-api { - add: func(value: u64); - get: func() -> u64; + add: func(value: u32); + get: func() -> u32; } world component-name { From 8fdb6a72e4d7a446e95ff68e7ee9e984aa898b49 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 30 Jul 2025 19:47:41 +0200 Subject: [PATCH 03/12] Initial version of the prebuilt golem-agent WASM and the new templates --- Cargo.toml | 2 +- Makefile.toml | 13 + .../ts/ts-agent-app-common/.gitignore | 3 + .../ts-agent-app-common/common-ts/golem.yaml | 36 + .../common-ts/rollup.config.component.mjs | 65 ++ .../ts-agent-app-common/common-ts/src/lib.ts | 3 + .../common-ts/tsconfig.component.json | 24 + .../ts/ts-agent-app-common/golem.yaml | 7 + .../ts/ts-agent-app-common/metadata.json | 11 + .../ts/ts-agent-app-common/package.json | 22 + .../ts-agent-app-common/wasm/golem_agent.wasm | Bin 0 -> 2399800 bytes .../ts/ts-agent-app-common/wit/common.wit | 7 + .../components-ts/.gitignore | 3 + .../components-ts/component-name/golem.yaml | 7 + .../components-ts/component-name/package.json | 3 + .../component-name/rollup.config.mjs | 3 + .../components-ts/component-name/src/main.ts | 52 ++ .../component-name/tsconfig.json | 7 + .../metadata.json | 4 + .../ts/ts-app-component-default/metadata.json | 2 +- .../metadata.json | 2 +- template-golem-agent-ts/.gitignore | 3 + template-golem-agent-ts/package-lock.json | 19 + template-golem-agent-ts/package.json | 11 + template-golem-agent-ts/wit/deps.lock | 69 ++ template-golem-agent-ts/wit/deps.toml | 1 + .../wit/deps/agent/main.wit | 1 + template-golem-agent-ts/wit/deps/all/main.wit | 1 + .../wit/deps/blobstore/blobstore.wit | 29 + .../wit/deps/blobstore/container.wit | 68 ++ .../wit/deps/blobstore/types.wit | 77 ++ .../wit/deps/blobstore/world.wit | 5 + .../wit/deps/cli/command.wit | 10 + .../wit/deps/cli/environment.wit | 22 + template-golem-agent-ts/wit/deps/cli/exit.wit | 17 + .../wit/deps/cli/imports.wit | 36 + template-golem-agent-ts/wit/deps/cli/run.wit | 6 + .../wit/deps/cli/stdio.wit | 26 + .../wit/deps/cli/terminal.wit | 62 ++ .../wit/deps/clocks/monotonic-clock.wit | 50 ++ .../wit/deps/clocks/timezone.wit | 55 ++ .../wit/deps/clocks/wall-clock.wit | 46 ++ .../wit/deps/clocks/world.wit | 11 + .../wit/deps/config/store.wit | 30 + .../wit/deps/config/world.wit | 6 + .../wit/deps/filesystem/preopens.wit | 11 + .../wit/deps/filesystem/types.wit | 672 +++++++++++++++++ .../wit/deps/filesystem/world.wit | 9 + .../wit/deps/golem-1.x/golem-context.wit | 93 +++ .../wit/deps/golem-1.x/golem-host.wit | 298 ++++++++ .../deps/golem-1.x/golem-oplog-processor.wit | 33 + .../wit/deps/golem-1.x/golem-oplog.wit | 341 +++++++++ .../wit/deps/golem-agent/common.wit | 108 +++ .../wit/deps/golem-agent/guest.wit | 27 + .../golem-durability/golem-durability-1.2.wit | 98 +++ .../wit/deps/golem-rpc/wasm-rpc.wit | 148 ++++ .../wit/deps/http/handler.wit | 49 ++ .../wit/deps/http/proxy.wit | 50 ++ .../wit/deps/http/types.wit | 673 ++++++++++++++++++ template-golem-agent-ts/wit/deps/io/error.wit | 34 + template-golem-agent-ts/wit/deps/io/poll.wit | 47 ++ .../wit/deps/io/streams.wit | 290 ++++++++ template-golem-agent-ts/wit/deps/io/world.wit | 10 + .../wit/deps/keyvalue/atomic.wit | 31 + .../wit/deps/keyvalue/caching.wit | 98 +++ .../wit/deps/keyvalue/error.wit | 20 + .../wit/deps/keyvalue/eventual-batch.wit | 81 +++ .../wit/deps/keyvalue/eventual.wit | 56 ++ .../wit/deps/keyvalue/handle-watch.wit | 17 + .../wit/deps/keyvalue/types.wit | 72 ++ .../wit/deps/keyvalue/world.wit | 26 + .../wit/deps/logging/logging.wit | 37 + .../wit/deps/random/insecure-seed.wit | 27 + .../wit/deps/random/insecure.wit | 25 + .../wit/deps/random/random.wit | 29 + .../wit/deps/random/world.wit | 13 + .../wit/deps/sockets/instance-network.wit | 11 + .../wit/deps/sockets/ip-name-lookup.wit | 56 ++ .../wit/deps/sockets/network.wit | 169 +++++ .../wit/deps/sockets/tcp-create-socket.wit | 30 + .../wit/deps/sockets/tcp.wit | 387 ++++++++++ .../wit/deps/sockets/udp-create-socket.wit | 30 + .../wit/deps/sockets/udp.wit | 288 ++++++++ .../wit/deps/sockets/world.wit | 19 + template-golem-agent-ts/wit/main.wit | 7 + 85 files changed, 5454 insertions(+), 3 deletions(-) create mode 100644 golem-templates/templates/ts/ts-agent-app-common/.gitignore create mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml create mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs create mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts create mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json create mode 100644 golem-templates/templates/ts/ts-agent-app-common/golem.yaml create mode 100644 golem-templates/templates/ts/ts-agent-app-common/metadata.json create mode 100644 golem-templates/templates/ts/ts-agent-app-common/package.json create mode 100644 golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm create mode 100644 golem-templates/templates/ts/ts-agent-app-common/wit/common.wit create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/metadata.json create mode 100644 template-golem-agent-ts/.gitignore create mode 100644 template-golem-agent-ts/package-lock.json create mode 100644 template-golem-agent-ts/package.json create mode 100644 template-golem-agent-ts/wit/deps.lock create mode 100644 template-golem-agent-ts/wit/deps.toml create mode 100644 template-golem-agent-ts/wit/deps/agent/main.wit create mode 100644 template-golem-agent-ts/wit/deps/all/main.wit create mode 100644 template-golem-agent-ts/wit/deps/blobstore/blobstore.wit create mode 100644 template-golem-agent-ts/wit/deps/blobstore/container.wit create mode 100644 template-golem-agent-ts/wit/deps/blobstore/types.wit create mode 100644 template-golem-agent-ts/wit/deps/blobstore/world.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/command.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/environment.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/exit.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/imports.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/run.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/stdio.wit create mode 100644 template-golem-agent-ts/wit/deps/cli/terminal.wit create mode 100644 template-golem-agent-ts/wit/deps/clocks/monotonic-clock.wit create mode 100644 template-golem-agent-ts/wit/deps/clocks/timezone.wit create mode 100644 template-golem-agent-ts/wit/deps/clocks/wall-clock.wit create mode 100644 template-golem-agent-ts/wit/deps/clocks/world.wit create mode 100644 template-golem-agent-ts/wit/deps/config/store.wit create mode 100644 template-golem-agent-ts/wit/deps/config/world.wit create mode 100644 template-golem-agent-ts/wit/deps/filesystem/preopens.wit create mode 100644 template-golem-agent-ts/wit/deps/filesystem/types.wit create mode 100644 template-golem-agent-ts/wit/deps/filesystem/world.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-1.x/golem-context.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-1.x/golem-host.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog-processor.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-agent/common.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-agent/guest.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-durability/golem-durability-1.2.wit create mode 100644 template-golem-agent-ts/wit/deps/golem-rpc/wasm-rpc.wit create mode 100644 template-golem-agent-ts/wit/deps/http/handler.wit create mode 100644 template-golem-agent-ts/wit/deps/http/proxy.wit create mode 100644 template-golem-agent-ts/wit/deps/http/types.wit create mode 100644 template-golem-agent-ts/wit/deps/io/error.wit create mode 100644 template-golem-agent-ts/wit/deps/io/poll.wit create mode 100644 template-golem-agent-ts/wit/deps/io/streams.wit create mode 100644 template-golem-agent-ts/wit/deps/io/world.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/atomic.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/caching.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/error.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/eventual-batch.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/eventual.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/handle-watch.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/types.wit create mode 100644 template-golem-agent-ts/wit/deps/keyvalue/world.wit create mode 100644 template-golem-agent-ts/wit/deps/logging/logging.wit create mode 100644 template-golem-agent-ts/wit/deps/random/insecure-seed.wit create mode 100644 template-golem-agent-ts/wit/deps/random/insecure.wit create mode 100644 template-golem-agent-ts/wit/deps/random/random.wit create mode 100644 template-golem-agent-ts/wit/deps/random/world.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/instance-network.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/ip-name-lookup.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/network.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/tcp-create-socket.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/tcp.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/udp-create-socket.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/udp.wit create mode 100644 template-golem-agent-ts/wit/deps/sockets/world.wit create mode 100644 template-golem-agent-ts/wit/main.wit diff --git a/Cargo.toml b/Cargo.toml index e3fbfeaad..ec9e92e04 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["golem", "golem-cli", "golem-templates"] -exclude = ["desktop-app/src-tauri"] +exclude = ["desktop-app/src-tauri", "template-golem-agent-ts"] [workspace.metadata] license-file = "LICENSE" diff --git a/Makefile.toml b/Makefile.toml index e2a9e2171..c5a214758 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -259,3 +259,16 @@ description = "Serve the schema.golem.cloud directory locally to help testing th install_crate = "miniserve" command = "miniserve" args = ["--interfaces", "127.0.0.1", "--port", "41357", "schema.golem.cloud"] + +## Agent template management +[tasks.rebuild-ts-agent-template] +description = "Rebuilds the TypeScript agent template WASM" +script_runner = "@duckscript" +script = ''' +cd template-golem-agent-ts +exec --fail-on-error npm update +exec --fail-on-error npm install +exec --fail-on-error npm run generate +exec --fail-on-error npm run build +cp dist/wrapper/target/wasm32-wasip1/release/golem_agent.wasm ../golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm +''' \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/.gitignore b/golem-templates/templates/ts/ts-agent-app-common/.gitignore new file mode 100644 index 000000000..779a47485 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/.gitignore @@ -0,0 +1,3 @@ +/dist +/golem-temp +/node_modules diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml new file mode 100644 index 000000000..b83893885 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml @@ -0,0 +1,36 @@ +# golem-app-manifest-header + +templates: + ts: + build: + - generateQuickjsDts: src/generated/interfaces + wit: wit-generated + - command: npx rollup -c + sources: + - src + - ../../common-js + - rollup.config.mjs + - tsconfig.js + targets: + - dist/main.js + - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} + wit: wit-generated + jsModules: + main: dist/main.js + - command: cargo component build --release + dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} + sources: + - src + - wit + - Cargo.toml + targets: + - target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm + sourceWit: wit + generatedWit: wit-generated + componentWasm: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }}/target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm + linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm + clean: + - dist +customCommands: + ts-npm-install: + - command: npm install diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs new file mode 100644 index 000000000..0cb6ab917 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs @@ -0,0 +1,65 @@ +import * as fs from "node:fs"; +import alias from "@rollup/plugin-alias"; +import nodeResolve from "@rollup/plugin-node-resolve"; +import path from "node:path"; +import url from "node:url"; +import typescript from "@rollup/plugin-typescript"; + +export default function componentRollupConfig() { + const dir = path.dirname(url.fileURLToPath(import.meta.url)); + const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; + const generated_interfaces_dir = "src/generated/interfaces"; + + const externalPackages = (() => { + if (!fs.existsSync(generated_interfaces_dir)) { + return []; + } + return fs + .readdirSync(generated_interfaces_dir, { withFileTypes: true }) + .filter( + (dirent) => + dirent.isFile() && + dirent.name.endsWith(".d.ts") && + dirent.name !== "exports.d.ts", + ) + .flatMap((dirent) => + [ + ...fs + .readFileSync(path.join(generated_interfaces_dir, dirent.name)) + .toString() + .matchAll(moduleRegex), + ].map((match) => { + const moduleName = match[1]; + if (moduleName === undefined) { + throw new Error(`Missing match for module name`); + } + return moduleName; + }), + ); + })(); + + console.log("External packages:", externalPackages); + + return { + input: "src/main.ts", + output: { + file: "dist/main.js", + format: "esm", + }, + external: externalPackages, + plugins: [ + alias({ + entries: [ + {find: 'common', replacement: path.resolve(dir, "../common-ts/src")} + ] + }), + nodeResolve({ + extensions: [".mjs", ".js", ".json", ".node", ".ts"] + }), + typescript({ + noEmitOnError: true, + include: ["./src/**/*.ts", "../../common-ts/src/**/*.ts"] + }) + ], + }; +} diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts b/golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts new file mode 100644 index 000000000..179615db5 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts @@ -0,0 +1,3 @@ +export function exampleCommonFunction() { + return "hello common"; +} diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json b/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json new file mode 100644 index 000000000..e5fbabbec --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "paths": { + "common/*": [ + "../common-ts/src/*" + ] + } + } +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/golem.yaml b/golem-templates/templates/ts/ts-agent-app-common/golem.yaml new file mode 100644 index 000000000..752a7ead7 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/golem.yaml @@ -0,0 +1,7 @@ +# golem-app-manifest-header + +includes: +- common-*/golem.yaml +- components-*/*/golem.yaml +witDeps: +- wit/deps diff --git a/golem-templates/templates/ts/ts-agent-app-common/metadata.json b/golem-templates/templates/ts/ts-agent-app-common/metadata.json new file mode 100644 index 000000000..0579b8d0d --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/metadata.json @@ -0,0 +1,11 @@ +{ + "description": "Composable App Common template for TypeScript Agents", + "appCommonGroup": "agent", + "appCommonSkipIfExists": "common-ts/golem.yaml", + "requiresGolemHostWIT": true, + "requiresWASI": true, + "witDepsPaths": [ + "wit/deps" + ], + "transform": false +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/package.json b/golem-templates/templates/ts/ts-agent-app-common/package.json new file mode 100644 index 000000000..91ff7d9a0 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/package.json @@ -0,0 +1,22 @@ +{ + "name": "app", + "workspaces": [ + "common-js/*/*", + "components-js/*/*", + "common-ts/*/*", + "components-ts/*/*" + ], + "dependencies": { + "@afsalthaj/golem-ts-sdk": "0.0.1-dev.2", + "rttist": "^1.0.0-rc.4" + }, + "devDependencies": { + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-typescript": "^12.1.2", + "@types/node": "^22.10.5", + "rollup": "^4.29.1", + "tslib": "^2.8.1", + "typescript": "^5.7.2" + } +} diff --git a/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm b/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm new file mode 100644 index 0000000000000000000000000000000000000000..78413d7686b70e53ccf928712733863fa6e04299 GIT binary patch literal 2399800 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%0DVU zT>feKXXRg%e_4LC{HyY>%fBiAw*0&DW98qM|5$#!{HOAt%TJW|SI)0oP`R*jQRU*w zODYE{msVa@d3ojX$}1{YR9;oNvhwQ6Ybvj;Tvd5}3R^DEDN9DT8^_6!9@2tG5^6ttFl^ZMXsoYe#x$@r1zgFH?xux>{$_FYRtbC~Q z;mSuUAFbS4`B>%Sl}}V|t9-I@d*xG=J1U>9e5Uf*%I7MduY93$SLKV9FIB!=xw~>t zy`T}->5uL`DW!?m4B;zr}ALsyOn>he6RBT$`2|(to*3*b|o3)!nb@er@;9D?hC~QhBuU>&kB{ zk5&FqdA#!H%Kq+ORDM?ZW#w0u-&B5A`F-V&l|NOUsGQ$@OZNx5Kh*s|_jkH~*!|<~ zhr7Sn^W~m$K>vv2u+{8-U#){dIJLheH~ zUj04&m^?#v_rjdG9$wF0cJN^%I_=Q2%J17csa_5Ei zN++!Oo5BOvRf}x1s#@Y@pxVJpU$ryzud4<{+xNB)*UYMs$*@UUCsLQl}+1Z^`xPwp^5PDbXmf^%Al zIr(8Z>+H*q?C7~>$BE@9{j%aIj49*^4SfkfT?66v4 zSAErPjZ+S)f$U7Co zJ6x!4Z~+FvgO&_dl#$T~>>|X46ODK&quhgv>qy6apkxx-y(@ zYfcB)HrE)yCc!Xc4ZWTTk>!9e23N;g_C^rGijEHMB3f#epei`MWJNc82w+4jqPuww zz6eUlysz`0BaI@P^D)pyndkta#`V#=dHo)L1F!b8Yidc<6?KMcNpL5z(FxEre-VFQ zP&TM_UP_p{8Z<~gECawcNBV^>IaDN{3t<|%SjZ4|HOv#3iZ-w$l#+~;gzicwsAbnX z18nJ5ZQuk&U{n`(KoVvVX4jLqqVDZL7YoS18Qc+*tXw5EjbOyQ@NoW1Fd4i|ao&I5 z$y_yeGWbM8im{D~6UMf{99ET!uDHGGXnBss0QCaqu41h_A=sBp0!dXo1zduw$Eyl{ z^J>8wWrJbCyATaB>y^Fh5kTP@gD+t6dd-d?*Q1_iFNt2fy`yAhvnrd#Isa_d&1At$ zpecWOTKti{1}!&oo>kJtHN3N`HlSfmu6V2F2vDKZ#Stv|<)Z@Lx$-6k)6zHWlWlDc z(WxZ|oY_2N(`zzr(`zN|HGsSYtHD%gJoh%bR=RCpV>akI)tj_zR0nQZ(ygoe{$7FvtUFNgW;-@H9ze<9f0trJQ==L-u<6UQQOh-hxGVx7@FEZbSLERG26Sdt3EU5Jk}mr$Anl3GwUKC_aJ3!j9}7wpJ!yu>uz?sZ4M_MG(ilOVKogEHr9y zzELnf#^Gd|$05IDqVu+QVC%rbLtN{p7T_a9MFSAunHk_6USJ;a3?8&jDS>{G%W}4S z(2_aW>|Mm1v4J45j3U;3K{%%Sv8x%dD76IveZ<~w*4B+(PA9k_8!zPjPNJeP^Sc2K z5E#6iII%ZkNGPP|X##`(EA1`RdW5#x&2n;1+Nteq0kf8C z7%2kmW(}+W_J|cjWuSk^N6 zO*K{5#Q1Z_2fNqXtKvSyfNAQ((U59-0%gHFV))L4B`(w}YE+f}3sB{2RKfZq^%#e^EQWLwKFh zgLdQwSFl#C8^STV->PF5*s)dgX9 zbz#_3?bU@byJ{wcf^T8MdsUOLxC7|gz;16-=n2pbSGy2^2!r5LT$Ay749&bjJL*p$Y(q+mKv5grX0!+}0Lw@eV7Nfbp@muw^=diP z)zBiCDI^13q+->=T&>_8GFMAP4ZK*+m6FB}OJNaHxx)%%u0p{O9bQ4cM*o+Y>jAlj z3&0TLSXi$nyKA-~17V2;w`nOALY-X2B?x`;YF?pGuHY4m<1${M`VR04-FFd~HaeCh ziTN68;MkZC;c8#YijbpM^9r&0CKY`jYY`^C8UFj)WTDv)J0`eJ)2o2UfeA;@>@v4= zoK-g3@5JWH4Q?(6b4BfQ@Q>H!Vwy+$Rbs}{SdC5CS|i40!#06S0c*jI2DVF>4a8ze zPMfy~wSjciJfC{2(Af@{A2gC^8~8y)tQRt*G1uXQxwtX5dtph?g*UObny<}XmO`xL z@Qbc!QA#BSS1YY|Mrm-KEYT_FG(_C8VTnwXWksEsi=48jlbx|Je~=K@&6-!^<)#?=@uv{zuH zj@Y69KtB9qm5on9`jXL;!Sp~m$Ga7*3$yi z`e8+47!oK4VcCW~Th#V!5Zkj@lr%aJAs|EzLl)yfbOhRtr7!o*YiKkkb}Z~Fz*Gaf z;sVDY9s#Xvu*#ZP5PP*u1GyAOcCUt1AVbqIZfbx>5n>;)O%4ZzJ_B*j#?BfIC%pm+ zl~fshnWU;7Qlqyun8fvog=E}`A0VX(!I~s4kXo0Vf-N3&ygJ)CnCJ>C?qCjPvd&<_ zgWAx2Tu;Wid`!w7)MYun^428ICIUY>y@cRiK96m%?#P3u)lkkg1+R2KFGVlRU02N$ zD}3MVDl+mTzT(A=#f8u&1GpX(bJ}eLgrL0xP1Zh)jdbk6>}RnguZ20J?*WeCLJGqe62q(wdqB4dO=bboALT z-wD?5j=m|^1<^0%x>(2lFd76+ce4E4v`Yy%UAWGMgVC#t$gITP;35+(5CL3%2oP}j zLA(iDqs9Q&sgaGE5%q5{?+r5i5@U*IsOOqY@hos*Z-i>Ip`|Y7HcKrVSqM0zC}WHT z(*p7ucAZlM(y)?)cM$fv+G z_LcE-iO;3vIm{eqamvuw5=+lS>Ks}uD)<_$8S1!LGq|uiRCM)?_kakCf_G~o2{6?0 zPZRx^1w)_ouo~z$aZ}+M73PdprV^`6suBUZ>6|LT4FoE}e*^YKuYk>8%S#MK?lEo1 zuhG!eVd(YtW|Uk+8Vd7ox*BStL)aeW5ClMo@L(SCk^8t@g$-#HVO>fM+{7FOknGLt zo#%mkt^_|a!Hq&hOpXCwT->UTFbMSuG4(Kguzf-`EpMd=@nRQ2V#Z;4vqOpEc1%=QW(G!w`ea9lsSb^mt(?s|ar3*h@rve16b zvfw3VuV79y7=`a4#<8#)djQ}rtYw#)A7U-FW^am#gG^qaNodlfATd2~BiNHNj)Klm zTC}5V3&g6?m^<;@NgXbzST$n#2w18aEY<>{TB%1$Ks{-R=>NrN1<{_C(RxWkugcEn z|DTN3hYK*F)OoqYaD{8*7~SenbyE;D8LnoNAB#j5b7Ht2o2*fCztgZT;O+Kl!!?9Z zLp#WY_J-?9hc)=V7Vr9N#mUtcefkM%@=Qu~x^q+~#s$nYOBB?lY$3J=u?+ksZm6M_ zkPFsi8fra1{*g~CIYO3$Oiuz>7=_QN_|<=?UmZz9@3owsw-?8*WF`_djO}5>4YJ;n_vYp zXB;92#@Q%d!eifp%K-^u;RcY<;*Tq{TsmfXDw@S|>73<_&I!)O_09nm!3BmTYts!z zuh%o6$3gTgIlt>wJVA03!_60ynou0D)OSU>OdZk5&`rYNZEjeV;Ivu=nLj6_=pgkS^k zmrLxL87{a$m=R&Lw(`{i&|3(8CVGrcFw%Q$#(ivw`yh=%uxLVD@JY-JJfmb0;__hS z%nfld;RR!@&_jlZEXc^%4RsT%)ht$6t!Wz+c!JwNAtFK}i2x)HrEw#YYzssoY5&2a zPb^U4hy@`oc-_ZKSc-bbYoI?EcLidIV6Cu3B;XcEpa%q*RES2m*9tnkj*5LmcJKD! zH-aG4Z5qoC{T)&71VxwB`l7BCFHb}RAaxAJ%w*Z$ZApOO$J$*@!btREY%ObrA5x*D zXUmp06FhW)2tCJ}qHCVaWnB}8h8~oafv6#H7`vHySVGZ9$07(kq9N7^7(cTb90!anBz*;-bQn)C1KgXddHaZg{>|J&v zTVYLFqXIJu8ddTexJUwWrY*9dh@6~cdliyR98+UVIxvB;Lelo66s4jqB6m>>V%J!i zj0ka&Kxk_%Mtjr$fmlnj z7BS@Z^(C8w8a@^nvoi$~ySB$u;Tmi>#@tQ? z;zo}rdn5)L!h-J6a=;#KYj)}ZS+6EO_b9Vju3^B`F}v*IS|ebJ@DGs(TBKe0GuLAs za}5)B&1nFDb~Mp$x^43!)@7+x3^JoP6Eg)&0~(Lmd)L7w@Q;`Ss8eGhB%0K6dO3U_ zS@p^O!>+(N+dJ@W0SgDuxe_0h$#w+~L;BzkuqLFyl0~HneWT0-$t#mRjSXIx}NQ8la6fgXNPG6y( zAAR7)2Zb#JQ^@uyVio$)O9Vw(gTFk33JilS21NN5{N-qdwcrnys>TIcLQ>`0;tz-* zBWIG%O&b<8;}10(_$$kFYnABN|3Zd#V}?%QFVOhwZm@7qLk%4agWY-~wvx;i^Q}aW z$v~d*(z-BTvq2i^T!WrXR&@dG8VzNIJE=&HZgJHJQ!Iy8I=eLyXEYI~G!e%^M4@F5 zFI%v?ipyr~uHtfLb&(9AQPzMEYN67|fsGuPSqUC1!CR>z^xUh9C~2^BI|nN;)OFYM zvsO=akzvZ-aDimH_k;_st1e`_3e2LWedCBqZ+Eh{jg}RlL&w?-=E9yEH-#?=7v6YL zb%6n|CtMU0DI4}yyTV1)9v|rlaSopzw!mS7cAM3?82{N6i|Q;VL8e(-hBvyN-r6d{ z$}506$mR~as)3oI+1jq=iePvr`kpMBPQ7Tjlw`y9!fVN<6|**JgY7l$K2SbutAsB|MJ=Dn7H8Cwa3tPo;lP_%$|Av*NzS5GwFagU zNDW5yD<>ErhOwg=H}dd?3O%U?{b;I%)+QQrkl&Wbn0O+IK=`S+53y?DoZ!jM)hilq zFQzuNDIkBETE&HzL$#4J{e!$RY4*nb8yq5UniHoHYayA2$7w*=%}IMO3|=Cqbs$fp z3*6W#p;M;9oQYXoOF}b{;ckNR-+~e>GnT9(c@W)Q$DlgydT}=Zgd+J+$QZnl>k$RW zVgOm9hnU4A`R5UKUYH1Yzb>KoX!6g29MOVgK}_-Bfa6NfqGnKpd2^Si@1QuSWUug*kqcS7dA&PY>r;goW0QOGz*yqQgcUyH1^Sr9Yaaj*lYYiM}{dM{FiLzKk^jPJ?=tM z6c1BvpaaGYFuEh2wjvnQ3Nxo704JUcb3)+wg5~E)Y!;mZ$74h6$a`Y*F+IZwyf|ed zi^0q~g=;P^J<<^#`9|cHB=Jfakk7G6{a?{L`Z%ptNNIn2BkZN0z7*UU<&6GE@)QD2 zH_;r5wEi!K9Z=%|gaqLvA`18~kA>7?0-(1vl;K<)pa_Dh4GzKt2VEH5#B60OKF2ZJ z|6K3f?GrrLUZJ9kXaXQL zD;2ukkAS8L-3AQZB3iQ2xk9|KfGS5i#0@nM6kR|}=&~g28c^cvvN*Jf$OX9%lKC

q@k@0;VB;O|-WoIic90 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

M7Gg&}cDb)D=Fg9Hw9Yk&r^qb^ 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

=p^no{7fjz$uG7gwHl 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

dNWD>CEZKdB}Omead~t{Um%Z{7?8& z_(S+X_*VE%I7vEII#N1LIz~E5Izu{MI#rq?ogkeiohVI`PM3C+b&{=;70b2qJ&Lue zHL3%uH>z_57YZ&GoGAZ&BxJ;IOFXnTK!m=>F-7bGLPOa{qC4cDHj6a(8#Pc7Jgp+}~Wy+-=-l+#THYu2}bXR||K8 z>zAvQ`>U(HyQ%v@?W5XOB zuE9>h*kB}77g`nyg=#{+kOMTZMIm=67+MqZh8BnXp(UYJp>Swv=wN7d$P-!-S{bSf z2g3gF^YF9qKj9bQ#K?#UHNuK8BJ>C);*6wVC%}JQcdQ^(gg7H9?Ele$-lY zl{%Bosx#`Ubqh=O!f^6_SvTVl;{an{V?SdrV|U{~;|OECG0r&H*auYi!KU7(o~Afc ze^W2hP*a*oViuTl%_4KXS#2$}&bDf-Mb>uJovJrh+iX=fhMj7s+vhlEIcGa}JEyuQ zx|7|5-ILvu+==c9?ji1R?qTj}?osaNwa;pw){gb2cn^9XdvkoJeJ6Z}eB?S}-30$+ z{~Z4;{|x_he~N#q|Gd9*plhI8pi3YnfC~%__73(64h!}R4hjwq_7BDfcZPO^_Jt0I zPKM5eE`|<-j)#th_J+2HE`)Z6_Jr1jPK7py)`!l8wua7!wuCg{VE9$|ZTL;NXQW%C zM`Tn49pOZBA~liS=o7@_#IwYF%6#eq>UH{M`bS1QCyq0KlfY>yYA%WuwH9YciBggj zC+#EaD_boqk>65WSKL$j8daKcDu$EXmSJ&FyHovXL=CFBe zUK`8Kw$F7gaHqS|-1FTS_gwdE_dIv1dyadm_o-Lt6Zp>h2zAstv>)#$_!syw{(1g1 zf2tqnPxoK)cMl8=ObieM8G$*$dBLf{S-}axq~P@6q~N&VnBeH(DH&&hUYxan?^ zo8dm@J?=&Lh<=K{PoQrgE`SS?gXzIE!1d+_GlG=hf*?BhGxRO=F7!0?D)c?{Ec7+> zIP^C3BJ?rzKJ+B?I`ld8DfBY*CUhixDf}_~Dcm&DD>6PZE|MIX8No#IBhpB2BrkH6 zc%F!+N@&A5Z@6!{9YsuOmXt1KN&Cs}DxNE@7mQc$RPRs=wO*aMM53Q*9B&$D8f%(w za$9SyVOzwu$QH64aPD^=af;l0x4`|}GsipAJJ);C``pX$U-wf2*+E{A8)OF=K~^v- z{3p~b935^NZW2a>k>S{IL+E!XCcG%zCo(6Zh$thf$Ti{!&MrSQ4bMYIzYBY zcB|la!34EHE7E?|`gJ~CKv$=GRQ9-Rj&ZJWo>6Vqn6>62bA#Cjrr>hhGTTyHu3O^H zbLYF|?o_YL$E@QAbAys#%W&&(yKviZhj9Dw;_#PnY-DbvFj5rJMAVT!B(5}1JIS=A zdWG$%Q{gUjtK3RA%dZH^gZV*auv55W_-nXDWLbnS5Mur*k<+IHGD z-z)bieCK>wb!+Q#{9HfJ-#^ef+%-He(v00lG*Gs{xXPw?m%7W`0zcnBBG5fNST^4n zv6j2l!JT2HO61oBdxr&5p>$bT7fFryB4vfUYc87hl5wn++WJfaii;wlSST?n8{?|ODZ&o+&?#nknbT zzwB~9f5|KfUV&e0)Imkw)45}p7X>bSz_JLx7QX?%QZ6G=rUvDQ@yGG0;#Bk>(rx_O z6no1@_*YYx4*!ZTXw{LRmJZDzaj6ms0WVUtrf1j*%Lpsxw(fer&9=!4TkkXb2F%TP zvtT5ltHPMEI-?2kX1A1SxY=W8ZRKujH;#CoYZ<+ayPms{h#`I`{6MVq{=p+i?}%@R zTx-8%Oout7<%lDd^T^;vtfIU2jus)?hew$a2)qtA

?F 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 z zDkl@<=LEjb@krT%+z!Qa=S@m2=B?j*a^n4xr^hRx$K&Jj7}eFrw_1^b^Iy=lwuoV{ z&6nKP78*r!ns3UPE6kHyL!Mc6MB#bKbIY{`S3(M&KC|MJZ zQI@v{k6o(IGIsf5P(EY@l4pz>h77-B*E5uJ{MyvCeb|~bS8gp?ow;xXWwq;ZN*ikE z2*5Ld3}wx&FE+)GC_PR%Mp;Akk6rjs&hcy0<$=T2q`9;f@Z5j-PoJE4?-9?7uO3D= zu+s1WletY6%;f<$4i^%J>B;7u3zFrch~Jlt73_dwOtQja&grs7AsfqsX#^_^ARDhp z17BF=#QVPw**%cquA!e!;MbRZg#AvVgNWqN1X}&`4b0bauDd#CmrpZj)^%*fhFm>y z@sFOI_!{I(@Ov6R`^@?GTky-z&G`cO4bro2>IZ-Gm%eV|&*Ja8t5uBkIBXs(QtdmN z-Hna3SF2r;zd`=*!2MIf^N->F8}ak?o26bD8T;LxUK3~CBSr`8PB7qgx8aMy;A|fL zFCs7DvF-UUasRR4`A2d8$>90tanJMz)aT0k5#atYq(7@67qRr-f>414iJQx-*u~j= zx3Q6y@%_91`I8fmqb0(t%+{(b}gI-FUUdG?FVhDeCciN5xj zt9Kf3d_D5UZ80^!O?BO1hRxDyC+7dflal8={<4i$A13A2+T9b|a5ewj{M<8hr{oO+ zKsDd(pV;am=4Q9kZqCY!;RN>^o15Xc4e0k-&MW-RMDCxGM@rxzpH6|6jC&c!c^saTdRVq!Q7_ zrsbHf;b)&8;Qr6x$J)w$7|gjs+C+;$xuR7;zZX9!^qwr4gSW`{pp0)bW%#jWIMKz` z)oVb08x6Ge{dtpCJ~4bI*7VB?xP$3Ck>(}*e0c&`n8l_2%Sb1DfK}P@?qc0s1Er>< zzxJSwJ+EJ2i@IPZXe34(^1blCJUMX^e=Tg^hkNo6UoZ2P!+OhW-PW#6|AR=&y6rQ0 z4)besNO;<1JH1VprjG9%!`U=SxxOs6e-^(R9k*1ifZR)a{dTugD^E;({9isPJk-{| zg!Caiui*Iw{OtEjxM#TyE~n}u=ovJpXZ+oC{^6Uxto-oKuh#Ghd`cBs;$?-aEBKiJ zYkXyHwa{h?4+N{j_F*Kz21_Il;Q2$`hw%Opo{7Kv^n(b>l2Z}X`H4j{qCF-F)t%YZ zjZHRT7jbdX-L#Iu^){^M74Rt1_>IoHo$mb(CX~itrypQ}bDfT>zJAjyCvsV3W;An- zWt3rY`Cp^VDLhM*IH?|1j^?{}80&8vQ**m>ulsI#y3;y+zkvwI62~%n)o9MyNzELzi-Fy`|O4 z>uq#T^wNzs$Yb{eSrsP5^!>ReW4iU{+TGccpMCbT&Gi?W&#yhV_S|!ySwA7|o+V;t zPt83$H!r!ic7Sgf9oKhom;0^IttVaR-0D4!nLcczzDg zL#E5M$j1k{}B3NEEsx?X6j&g;$JHapGWw}Y&_4@)%_0rk-xzC!B)l;Eghn<-9C;o>& zd~)I)wBsqX=UegjiPt|l(Z*lS1JC1U+j|>hgXeDsT%QV_ ztC{B~@ceA>eG1Q2JS%$wOM%uvOjvpKC-9B)uYLYi+@nhO{3;&8=l>WF)O|K6sGO## zrn1dngI-1X_y^73AHm;aOeex0l!MNIAZ)hRv>*N;AhyYwNlAf2hu2)BR^A9j2>h7czw;h9GIvZzDbDOq>4i zio>y}&&5XnZdpzNz)*zl)E?}XS?Bs@_x?Xd9`^T%-cEmTqLps< zPhd*Fy9Ph>4k-KNbB0g$8uuZI>sr!m+80SXC)hkezP~qzs z%WvTKCVsc@dkeoP-D{1_o%HIp)#a;KRxT{9Uc0)odhN#Qxur`>t4kM`PM=%7e){av z*{fHsES+7wc6#;fMU(rooJ?vSRz$iyi&g8kiM6BBBxIXbO2bOKvy-meZ)3TMNkdB8~pRD0~>W%$aqXBD>7Mqa+2(lU{@mM@nvf?ARU5=i;%-EJG8T*eq}m9N2r zz0pDGo4e-`Wv#W6rsb=UmU~w)1TMohnQ?=Voeg<^cQvK!asxJv>sXJ)G%|4c-J3Iw z7Vbs!yV1dkNNg6AvullAIp~0&kh6s~q_uXdm3CN>RIO+(^O*;x-6vvjD@dX+AP@+m z0B&1_YN?6E*-6K&%mPd6o9*V{0*;DRhe?<68o-8O4O%16uDT##+w21D)o!K)IrA%%=bE@q7x;mmBY|fWm<+>Uv9m-Gk`6iw@ui9tA$~pGHe+SJc zr_Y={w{-r(#pRb@xpeu;)oZU_Us=8J+RfMBAQXT4=M#&M9|AsTqxct({K6x@^a!ti z?~&6Jj~)Hhqi2pT;d(@_6S)5J(U0IAuSeuMar8^_hSwux)O3>!;<- zPs^L1mN$R<=o9kpZy)`H`TK-?6++F+XXfE|{mZ<3 zS~~hyP2Rt1^75H^`K*66FQ1v0-}UPf+NJe=(d6Yb^YB^!YF<7wFTd;8rK8_t@_vuW z%V*}{v;Nh*d}dyL*RRB$*89^YFQ1u*&-z#M@|k)0UB50J{acck*CTR2fnH;2zbs|( zp8d#jc+amaz^56OGp^9|qsqP+h_dCz;k;rqXi`!l$*FL{4N?s;Vzz9*e9&6gw% z?@2AJm-qb2G~Xxhzfa!to^Sa6XXO3Q$a~)N4d3rfeACfS9laq}-XE3wqw@Yyxqnpd zC*)q!ACdbbN4t{is$6-0^eFF-%KJy<{!zJ~koyU_KO*CTP-1FL33CIbF)y#YXI@@;&%C_yo_TrQnfNM1lT)QZNc;J=y#1F4sl=cza^U8as;dN7T zU6N~if*fX9uIa=K@USG;R7zWtEANRnUYq!O+xTC{J+ERw;umR-hcGB zKl<`wJhviQh~3z4p;BKlW?* zlpguv(m(nerTOnK{TJU?`Vap~>9N03`o`}qEqzbv{&$uB&3BaM{=L%w`t7CP{Pxm6 z{YdGnK2kdI=Sn~EptQbQ`cK|3ZQLvU=630)yQQRC`n7)Pw>C@fZk3+jEWP+{=?6}g z{_?5P&uo-_e4}*dROu(u(x=kW@3u-WHA}yoPX-YWh0o23VD zlz#cO(tq??Y5KL&x2%>Lj zj(vlh*X2{s-n?gTw(SkFYZ@fJDT$j~M>gdDZ*3gG|7E#W8%O>vxxpLUJogPp=D*>{ zm!3TGpFVlyXXW~(CyxA`CywCyQ*!;eCyxBmCyxB;CwTo?x#H%#<;{1<<6rp1k)Qv> zk$*?tT=>M1o1Zv>>r0I_85iJ$m?U?(`LlGaZh{rZW&ueTFV%->9(oPT2e zpIqnlx9{<~vc~I|wt4+aw|M=|E4)4`*JR_#`TrdM?ajY3e{SOCiOUn$@jHj#*@>I@ zUBiE`!QRII`1ZAli}>AyM0gg@D1G9|`3jz@kp13}>+5p8Dc9HJdPAu2H5@B)6H!S8we zp2P21{7&Kb41Oo^o0s3*#JOWL$N0M;*HyW$9Gioev;KGT*ncG{5_~C7@XGWTjy;F# z^0AA@PT}v;vCrcAGTxrV^F`eA>u2$P>DVlOCy?jtu?oI2FLR&4^*1HeZyq~;EJ5B= z$L4T-PV#&fZlox_!FAx@UiQ?vN*lzinik$b*j zt9j);A!O=hxf0iemKd9ptKKJqu_auYmRG)E+86M97HOXaUQXfnJZR`Sp|X>BcM{L+ zsb#z)?GReR$NEW8Y%SZmjFyrn*jBc5`Pk=TVX_RXriS;pNn z_?<+Fqzcjj|9b|%lgQ7J^D=(R_|2de_USTe;h0zkq%Y&gzvuCL2EUWQ9BGeKcpkrJ z@H>gxNrTJyoyU*$t>VWk>tDrNUiJM+jPqBIZR1KDl_!X!@&s{Ip13U6OSoP@&N;N> zxM|m~O9}r#uD>GJFU$3!Tz^ZhGsnJsY;f$?ANjpU29In#@@-cX|uI-79i3aXZfm{7SdJ6pN57KAA*?4_HuAhYuaX{SiT{tg z_kgdWTKl$VB|8Mj4kXmjLocC3IwFv;DbhQFh!8piLhmh*&=kZVAc&|S3W%sk6A=L^ z(v+eo2ntBihzg2&^r*-0x@WHilkHAHea`c|-{g1Af0cXnHDymrNBdaO#u~xiau~Gd zNHNSBPQ8b5A4%4ISWkfAv}dT5V8zqQRvc4W@i!R%{iGR0OPgC0t$tQxjxfW?$3t21 zr07dnU;Y|fBeC(8(Z*UI7!PfzOFX<4_yGAlKpn*26@OR!UGaCN{L%PF;~$M*>KsRo z`Adzajm;@Jj+)3i-d+#WG4Z6UL8-DHX0Iirx*by84yjJA!^m|QV>OJ_L&;TIJCyLD zR%co@iTq{V#$LzU>tVF$tw5m}X`4}_W~A*)`9ra8jBR6jr7>Z#-PE(mY48J+@T)OX^h8 zNzZS@?;TfhnUN8>N5m9g8vTI@FH{@FmeUq!z} z$VJxD=j-g)-%zQe%!lRCFGjB?PDX1l>!YaDVKuSW?O7xvvzk8{fmNut2MZdP-+m zUv4YwEgfau(@wR@wx2jkLPBkuhIV+4ff7<_kgTuvmvxB;WPLJ4))nm7nnT4MKSI{o z?T}cz4n6Hs;yXxqpzR)JyBFK;b6q7ohwYwkuPu8WV)s!(xWtOv9o|2DgYA>Plu+qG zQRzid=}A%PO;PD0MFjVNvO2QR!(>>1|QzaZ%}YQR#WnJoY-=UWeK1-1a(` zy>{E{5PO}&UI*LjZ1y_HUI*Ii0DEn*-ptIN8~sRh155ty<*$JiRm%HUfg^{MI?-NF zu-D`5^*DPy)?SaX*Q4$AD0@B9UXQTX!|io~y&h(-huZ6Sdp*Qn54P8X?Darst1@roFCVudCbZd+fEOtzhRN?UP)* zT32fwt+ln*(ppn%4XxF+-lH|zR&Q?Jyu3Mi^YP~5&BL36Nng?83uXL8TTLQsaHcZY z{+qxVj@LC9S2wGL{nw3sh}YEu*FB`D19jOhWnIHwOQ<)bwrwGMiYAe=<;uFcy%rm< zTh8vJTv^M0NVFbj1+kRbnezeJ%3E{3)y8VeQT;Vy`dZbjvG!X09**kOIIod)U(Uuj zuZi^jmE@VWMpjAtuU4e|McP-VWNigTT5=6p*2-Q>h+K1)wS>quVXCh zJ2Cg`_Ig9ERk=3gTAu5@T(9S9ldF2JmYmVv59OhM(9EEI%-kk64|47@gnA1tIl~!3 zON5r3sZ8P;r&!7QLDp{tBw(?f*zNTD5PG?#-D9#>Z4z1CUe_eu5YBN%ft>5~wZ_8; z{^V>_{v>o9=Q`tvnZ$L9(Ojp9v(H+`+3WF~6^$l#1bIlhVK9iZt$5ZWI4Z~)Xdm+Q zo_qG;oO76Um~%~GJZEF$Y0-Er$CF|l{&D!nk!}S2FL}v%q^!q~-z36iJ=z;+u6m3vCEme5T$5-RtVWG$iIdqbi!FT8$lPTqSB z-g`sdcw_JNNxt4Y6yEzgUca|IZ(51>)<@=Bbxh^PAs%o67VpCO2s%n&~8m6iSsp`H|RXvq8RfSYl zK2?=VRb^9EnN(FeRh3Fr(-YLR1T{55O-WFb6V#*xH8DX=NKoSw)VKsSHbIR^P@@yn zs01}KL5)aI!xL0Of*O{fh9;=^1T`c<4Ng#l64by1H6TItPf-05RNn;ECqcy}sNMYWI+H$v@+P_sf+a;QoQRWn1?j8K&r zs-}mkX`yOrsG1V0CWop?p=x5Nnh>hShpKU*YHX+)6RJjss!^e8WT+Yus=jxt@7(I9 zTitN0Z{6w}xBA+xuDjJ&Zk6g*U%J&7ZgtJAuDaC~x4P_BpS#s1x4P(77u@PIxBAqr z&b!q)xBA4b&brkZxBA$vK60zmZuOyCec)E7-0GxTop7t;ZuP!fz2{cP-0G-X9dWC} zZgt45-gT>kZgs$|_Pf>og47#9YI~5{7NoWYsVzZjbCB8; zq+SbBuLh}Cg4D(!^>UEf5TsrTQtN}%x*)YSNWB=OUI< zD}&V2L25;idMZdQ4^qp5)RRH#SC{&?Oa0V`{w>r&si)YmR`-KD;AsZ^Kx(xtv|scSBE)upbu)Mc0Y+@&tL)J2!N;8LHt)Tb_W z-lfjD)F&==)}_w4R6Cby>r!o8sOUF^0-uEmx^_% z7?*0~QVm_IflJ-zQuSTxUYDxpQgvObj!V^csah^o)1_*-RCSlS$EBiOs+vnxb*U;Y zRoSJYT&j{wRdlHeF79vV%T~aeqaPwGRj7a!Ntkzuu@bF4JRsRfO;>NJ-&Fm8RsqQY z`vY8oO#&wcz8UyKU`^K;*A~|gt}0yrSj%+~o|wzlHrs-1E3%!-Rw%f8@FT%{g01Wg zvQNzZM)rSYua#p=j!ikf%MqP3A?L=N-{h@SW@3Br;7p9fTFYXY{=a~}p=3HX8j%NJNCuqM6OIj~>g82a*&z^4LVqDPMeeiHZ<{pxb%bCq$` zbTx5xcJ-r=lU<8lYv}3yt`A*T=xwF&A;-%kx%5VVpJ*dFw5(8r9! z*FnDpxp_d<+n%Ca)4DHPYewebYzf(>F+MA^ZOpcdQQDAgXSSn^)%9$@W(x@}6kIX5 zUT_P>ZE*0!;CYPRQ^79b&gBv#)1t4`n}- z{YyqTI7h)8<#W`^(KJVw9Q_&XhX2-~o86hdmkxe0cLryYNz6(+AaCf9T z+8yI=&#W2YPIN!c+JY|CsK7CJR_0ds0&=&sQBm|5S1 z{vH~dt8lJLx$e!?l36w+*Q8vJFxS@QdL!2%c>vZrlj{px#r-|5fZTa8#js^O z#5~G=V&1|pwH_*uep~gl?MSOdSZDGYhgH9@(P1+z`AZ60MEo;hudseA>_xi=j_DM& zvwxyp*TRO`d0Ey^VcEh9gqI7SVAT$97T!5rO6bS$>*Vmo;cLQQ#s5b5q3|=|Uxxo2 zzCR!!Po6xb@>I{$I8Vnsee#UTGc(VkJgf7(p68uBr}BKB=leVXdGq8gmA87{#(6vD z?UQ#@-kEt9y$d@NyseD!QHO$v0-vjvu<{O`HPQEAet<7gy z)2;3K4(9tP-?e-{<;#{ofBv%hYvpgsUzhy-^N-{e!bFheadc(=jrrd~kL5p~|7-Lo z9mmepUh--6`qHk)(MMyUOo5sOniObV;GqIT3$)@l!jufsm>lM$v03c!t#G)F^%!@d-H*7b*1qu4lYKfxrl3K6zH zV4Xcq<>fVPs}^fhvwGQ^7JH0d8L90j()0J~Ek}a76zgAXHSuGMB^O%}w1N@0ti{FF z6x&j4f3XjXT`Bg1oujMxI4fWAzxNl(>kKLO_((7Oy}#(#?_GRE@x>5O37i7 z#UiWlN_3mZo{{m96C>wDE{S|0a%<#N>p{7CS$+0D8 zm0VKtg_2uK9w>Rb$^mVBwr8<@BTWWNvq*70mdcKt8zPZ%CQXiDM zTCFs$ zCa8Vc-epIW?HW9->|?|}Rd$LqVFqs5Y9{gPb%wRR?2fXB%bqQ3>YZwreT%i(|BST8 z1$kpRs`B7$JZ+y8Z0x;-JRZbzxWF5n<)+cP;^oHk>)b42D@)aKW@{Zu9t~jzZNIPF z8lAtf6Wj52Z_Kb-mwTw(&~j5KSC)(R`R@F3vMoMc?qx#z@A)tKhBc#t#-k$l;2hUz4D)w|GfP78?TVG-BJ)d(4B1a-8t)Jwt-p2j8jfGxn&ruGpjEI4hnqMp_eb zrOhj?PsYu%9w6VL?i;z}m~H;1OHnNM=+=3CSzD(q)0t+ZKG$-F8MlnU-Ts-hqNXRM zpQVTX&f?wcNDg;;_wMRuS@S9`%b@qYwUgc-Y01&gyRZ+zG0Iw}XUH3jb=%;s!BZHa ztd=i1?e$ag$%>bBuFi2bv(mB_=vtg(7MZdpTi@w4-um7B+U$evK1~K_>O{?y0<` zN$OE>XV2`-&umFvUwUirHqyY}KeegUvr>Ge36z~&X;G!ssLT0|AvO5( zIL2CgDmAwbR{E&YwMy?)YGEC!^nIm(s65;<^2St+Y8d6=jlH%}4@aG;)YRHvNq!}m zG#<;FCT&bY)U>F_qMnI*B`P^;anzcqNl}kPJr(s*RAN+@z~^9g)Y7Q8qu!7DFzQ5< zsh!a=*6JX);~1LRn8~(zB`STZAEJJX%2~N^=aY8p)>htL z`Q6Hv^+7tVa_haw>K8u~j-$iK{ZQN+Nh|&AEcV zl-@9@qxXEz)OHHv=4Pa&Ya>9=brcj{!3{o*J>P5bP?3|3RH9?kir z*W`STcG={v(Vv$t+CpM7-j_%#v$mLXv_D(R-si6`fA76obA}@2oAFFLa+&#Js+CJ!m349i>?+^t$nrL)kaiHtoC@d=c>I{ZBMlm z)h<@MSx+!#ZpI zVii*LRChH|Emhmp`|4X28c-#mO~9~#1pylZwh?wT;CetvU{qkMK=J*Zzxcp;y!&-H zFxBthjobO>cKQD+;cDdS<(lq#*0tMp!S#o$L{OukUO^LsmIv(!Ivey$P$8Zx?asa5 zZEA70E!j*Shw*PysrK4i`y04(2b*|bEumw!sYb!wg2x2=ws^4}vL)U0Ccgv0SA&1M zZB;b82^YODdxz{Jv!`U=l>KD(ZR$JXRF0B4>gH&bBRsfCKo|srVF<*-P#6XYFdRkz$M_ib+c6xoVmNNbuy=`J z44Cit&oEygcU+lf#|FB~IH;K%oUm~sKSm`$zBT-rYU=fY9X4-M$u1Ojrb;*YZuW8+8@XU#x?^5U#nvDdKgOWOX# z_b0wT@%@P#jDIlx!T1N`zlmJ}>4p<42JPs8QqrY7}{Z8cjGTu8_q7{wMH1fqyps*=h`aP-F0e z8mRLdo5*}glrfvhyqSq6p-Jd0bQWWZQvO)_0u;X&V?l9+B^J=+*h!QPYEohnnxrOC z22i%QO`QU)m?T{uv(9d3XTs)ccURmGz0ak`~k>xF3ZrI&PcRMTG6p zZb>7{E+4;yDXS#=0xx{!i#cS-kK0QeeFn_A+041wjQ?!Le>VL-n|@~-u>NQa0pZp! z=r8Ck^cMOJ`b~h86K;Kh`wPM@p_c-#F{Yrd>N*W1FHrF)P{v})SWMpMus;{DC}4Ih zs3F8zR&MI%Wgz1VY6`LYK>!l0`*{@%eD}19d8T);nrdFaKLclf$)9!_XSL}W-`ZT+S|9}@4NJ` zY{lHC^L~ml2jCZ*#yX5WV9Y$+^P#y8YoWE3);3z(Y4t7R|24my%M73`axNq1D-&@~ zh8ZB|DsrCkKi#HCD=9XTv5d54!D8GqU{4lqkf2zpG7hk(H?LBMlxh9a#R@^%Rtr+n;(>c?aa5*pY z7jEJu&e<2@Plc~EzHVn;S#^)3t};(XYu%ye&v@-O=em4#r;T$y)n~5V!p6iKmGjAP z>wK$CNr|!BvDqpLJ3wr9YdwG-hH$>%$Mdr>uft~80$X7l@U(5r8zBApChP<`SKS3~ z!*19EdqMKvhwg_1a1h>wL%_4Vcsvrzq46)?IvGEzKV7!+N5Zc z`k3;hJyLh6i?mhBmO4p&rI52)&uRTs>jkZsv|iSFRqGd8Q?*{#`i<5bTBX0FU!+f@ zJgJNHtGIvGDsjJRw}el|Jq4yhEmvY}Emv}EM;E^nk`rS)qg|k@O>%5Ev^zWqJ>Xt! z>XOFeN{a1;KN{|V>QDn}LM^Bbb)c?IQtZ8GeYg)AKtpH*F%S!l!2?a8DKvxTa6hzw zme2}XLmOxd?LgX-*;3cVncUx8=qH{9_5OCCpVH*lRfju^pr3e%G?6Dwy=BMgy7txD zU+X}vgSEzM9j0}-){$CAYaMGene&X~IclQzPu4nB>vXL%v`QWQ?K4c>AJujXv@X<| zqV)-_OSC?zb-C6RT32d)R_iLQ&ue`_>sqbrwQkV5QR}N(H)-9hb*t9xT6bvOsdbmu z-CB>MwVAV^_Uo{NS`TSGqV<^8_q9sjM3WYH05};Q4o30gp;7Mz*|97o_XjMVp@Ib9WT7$Lb(8}``G1A^pt+};^Yt5@Qzt)0U3u!H) zwV2itT1#pzt+lMy@>(lujnZ00Yc;L1-;cxH2l_%k=nn&6APj=RFa+XZC=7!H7!D&~ zB#eU5Fb2lLIN;t)3{T6&OoT}=8K%Hgm8aTLw-({ytr0zQ@(>D+C zm!DlRuza>kf%ilC*_8tMxY2=yuo#lTtDlK4x3X_uLQ#_v?;95i#}@6@w2 z<^DN+2-{o^c&3?U1*h5md~HwbzT5i`^x-K-9?mxVy3M%yhMT@Ibu{tfH*pg7PxPB9 z!^~^(m+{+|#`1qwO}k8+ecLO36XxsoP2;rl&DYu9|JfG(_i{IFx?BD4)$s3^WX9N^ zn(@x46w^0in~~k$iSwo;jk8zla(E|SMzO?x-#%r+|OtoPlPZ_+yT zZtCIB)|r<-x9M+Z8%&r{fBF75!%RJ#>a4GEJLB)hE&U>Sm^A6RCEk=J>O4mVLBj|7uwkay;Y8C~dSOzJ|l?FHJCg<}W<6upB<=eEZm$K7Wp9niPP7P!vi+ zDTsn<;I#eUaLZiFtX#958arRV3IC@wvpSi0QxD^JmT%%5W1Q%WH*RD1XaC*+%i0}a z#@g7Wr=-8VuQfKSa(vcgHHiOJ)RbY=*ct!-l*;^+vYh$*`hDX}-JEtN%xU{ix}9bD z%h$wL&sn^wao2UYC5@@0jJvThd6_t)zTw6%V{U9r9!|fny8v}42t`5ikoYKFFJD{Z zH)Z`DHF;&E&iuvB=}*t?Yv=1vFWp}W&n$0eywmM0OTq=mw(g9!-M(p^e&=|LvB~eR zsBgh058v?2{3e}0%_yzdJL7%*&N$;XWu)gf;s2CoRwrk?)9ozZ)Y&oSiOzWAHg;bB zu7ErKo$TLt*!y=A=1+A#iD;UAg4mV}d8TP85Vy8VBPPEzfq%ne@=H%m*6Gzp;+<)Y zy$QeL-%j87w>5bi&B)G_bthl{c{<}Wa+~~&Vw>o+H{qhb;g+?PHf@GYX~taaoavly zqW(1I&iIVn&hq~$x4-iKO5T!>Go7#B8TU`P|B3uf+a23`nyNX=Xy%T}=Jbo9b02T= za%yLe`8_f?XOKLMy||rAdf`qRr`y>3Q>R^4-I9;f*4OWh`zPFYlYe@)5-$9CJYQuS zwUi;VjkSbh8VnI!V<<1`uh94ma{{CZ7(ek1<}0{yr3 zpDD<+#kY)qCik?tWVH-qXX=(Vm$W`(BkFH^$2u`>3a`&uhKWBLdNrHZ{Ve;CXPHMU zA@lu%NuQpYIy&P`SXR`T?*DCf(4X%64P-kP(iyu9n;TC$Cm9-NAu=mt@!zyDRhBZv zZPbJtO)uQU{}XD;FnV`+2L5T>$1!$-V?S?aDfy>Yh6xv)L|P}#`WQQBSbA=;_1Y`y z_(v;aXTtxt)YK!Z8j{;PN3v>fuJ>ov{-3auG9@3Q@@%vC{VyvT`-XeR$v1TQpX@B_ zNk3sr{DeK>C(Jj0Uw=xPG`{m=25p)t?c$l}WUa5~-qSqX`mNPwTYqUK@lH$$CY`zW zVzv$AH+EUmg=y+3Y5e!!fd6;?PFUO41`Lj1+ zzT@?O!EfsJXH5$Db6A>?#56u1kNFKH^T^C4ACpYIX~v+66{8>k0>K4AkPU(%JLG_z z5CU!pgGbFZ_*j{jq?}o zwDEPDGR;0x)Yr!NjqT06R?K(sJ=}sH;72g=#@?veeoTBuYSI{WZg&}_GjWnm+$OyV z&#IbqMr97lV*Ht@v%ZCb|yUIe&P*5 zdzr3vs#e|}v=`nayuFNfxNiq$>d?otME{1oEo?8N9eIz$JzV>TrMV{LKaaHAUV1jp zaOoT0zH-KAiUmFu{#ymasP3QDWUpdn`{c^UT!j*lnd6np?5!fE&jK87=J7Wg)E%sG(b>8J1+T!4#k2|kC*a0RZy zHTVL)gjDznuEW>x4SWkX;3j+r-@`5V0e*y^;9u}F`~v?5Q|I4t{|Ej6Gp|LZjq(np z*(RK7?3`g{%uPDq_a}{C;+>16bNaVI>|R+x}fr14{6%~v=4DUMXe-$afCd zTg8k4_Fgd)U?y})RebpH+ z@6&#y=exW!>}z{BetBP4j?IFU@d-%!RP7hHgvTW=;{E+ast@mW1Db-Spv%x@yq7wV z_x1+{^dlZrKjHyhhAu;&K%YRDqD!%l!#*w`-0Fe$2|0LgXSjM*;B%gNV(=H&M_k2OclMc{j z=rT1FKVa7ayA}aM2?xTLqD$2<(gB);CZQ>43f~b);yWTqXbLL+W#}?=DJt#rke??Y z+-iU}K*F3AkOOEQD+ zl%(*Tk`#0qx{Pt7Zjz5Ri|?7pcX9sJO4@3+-3x3p;*KL7sJKMF-;Z)Pm|z zEp|8QciZU;t8l9zYgay1mL}Y`?~<-Wq%vscKwyrvW>Euw+XO3&lEej=~7!-p15KdfX@wu=G!8RBI;g8k<*01m{xWzYqGLGLAn8f^@sg!k-dj(%& z|4nO|SDOM?5%yJU;+elQAu(3^No*n$WlmTzqLKFY`U9svS4saV=|8vAZ@1H5XidMy z>VCDqA0am3)_1MKt#9Fas~wcTgYv_zk`~{PxP3mjgY@B65&o}P5@pSl@wol%iE!&n z(q4tnTOA<%0XuyJ>GQ|zWj^d>J{+*q=dp-q>}JaN#me^^h+{5XAno~9z1fGF?Mzvp zQ2$fZ|6{xUhwb`**qZTYj`NKRRK9Z|Hu7zZNXt7XBgrGHIImflaxIpyNbkNy+|DI3 zary22y))eDHu;E3xYO_Jj?~8tvGXp+8Mov5{?J+6XK&vtG8X(F5j!k0ab_lU`4GF) z@PVH^?&KD5ySzJLPFEy#OnVi@>+@}k`2E>QSTuRad9+DW6L&4B4RxR{)PpF zvp@X1PcT>0U(9)~`MqZRMoqY=33KKqVNSoXmvD2wZNkLwL~NXGxm&lgjxZ13Z6&`) zEbD!{oyvNLu-&cXcbB(b$6A};c+#&1`F5U+yCD56h`o%dWgWTQXVUNH+m-TLOAtHn za)^Dv0c`i#_U8MQ^6eRkH+~t*Fupa`2ldv~vSiHVcT?Mv-Z7T(Kf(6{PQoep0Hkh` zkFxf(mT$<&w{iq=hcg!?&bi3%PV?JS(#kiiobgV#vXbeiSNM$AOXyly1FPT}SOLpm z2`qwzFdyc@Y_{3tR^GY|$3GnZ_*U{QPrfLGe>8cHCTwIYna}hnVF|6If2HkGKbh0c zx+K#FPQP(0E1rD3i|^bp;hE{yzCP7UFQ5 zdX?5;W&Ol?ZC+`~c((Mq2hrz)ZugzZ<8JgmM>!scyQy~H?+EkFw}IttUt9(@zG>QE zdmrfN_swe(ag!bKGjS(5{IhY-ark}Hr{`Zynsu-qHoz2^ z3MsG%(o6R`ahqWaY|X&VnLc|o_Y%PwX53jh-tfQEnpxH@xC!6DSMUW~flKfioP#sX zl+~a4(g%9ML(m<%LMLbsZP=z;KvRf?22c-b!97p~DneN(*~)iY&CIW?-$*WpXJ3ZKITI1gvxBlrMLzDUp{xyTx9h0mI=%hgiObCOX{D!Qoi@>x zIUj-QPy=d0EvOB3pf1#dd!atu2MwShG=dn2g~s54CeRd`L36ktT0l!^1+AeCw1sxi z9y&lr=medi3v`7Cpc{0D2cZW%1U=zl=ml{g?TP33J(cTzQ*R%~`97wO8=`fnR=M^n z*A&}>T%VNmqjj9P$2r{McP?^_lw(&T(#60GZJVTZmex61=V^UZ>jJF{wWer&LhBN( zPikGRb%oZITA$UrO6&7lU(mW%>w2vlv~JY;s@6?fH*4Lhb-UIbT6b#QrFFN~y;}Ea zJ)rent%tQ9)%u>+<62K@{Xpw!tsiSWtM#1LPqkjqdP(bLtm*LOeH|%civr1au`n?yQHtgAF@BH@hEh{}g z|EfNw0@Q{^&>d#Me0UDtghn0sT?6qj6PCgTxClRj)zOMs0lz^0PCWAhbs-iWg26Bo zw!tB|3?FypIhY5y7uJn?E!}y}2J%CB7!B=v@NF*m8FD|wb23mD5?~~p>&g8!_zwO9 zqaNmd0!)V=;6D)3i)VA7J;cFi*azAB&|YW-)%vqvg*osftbrYH5w60`0oV_uk06r% z?gJBHGaQ8v;T+^1$}>Pv6XHi$F_lJ92GoZ}&>Xr$4|o}pM{`dE&X3`q2SkjeKcE6c z!=tbW#*JgY39rCz_!iEM=RPCcf_o=&-vr)V1a^T+lb z^nt-}6uyC5pqBA1Z8!%PVCizc%MCBXx~I603m2g53dSC)!+r1|Tz#5*SI^KV@B-|F zeefQfgkRuy$n`Aq3L>FCw1keZ0G@{DAieF)H$2kvZo^fz`flTy`Q`qU+^drNR`N{9 zMNN9?^62wW**2R%Q}Aai_4F5>URbNwT1QA+8?EiMcF@{MYZt8#Xzi}Ght{52duff+ zDtY(Q?g3f{IpQSVxeO<6cyt@PPNQ&-((bXi$7=Tk+!M5WGVaOR?aZec;l^*qE<1fJ zL?*WG7HPHVCh;q6yBF{JoNt59f1}n{wQkb7S?gA<+qLe{x>M^et-H1E)hcz{uiXc= z9&*GIg^9}s!H^wFLJr6YA>f8k$OX9} z48kD~#F4%a^o4%V9|pic7zBf12*krs7zPP297e!M7zLwY42%W29+{84^TWGv2#&$~ z@Bw@bXQ3#33KyUl6o*JC1*M@pRD>v~3{{{iRDgl5nf8nz6w>hO5aJ@(vD zR#ozgf(lR;NQ5F7Rve+euf|6d$<8#Ln>T@%Wx4sg-_sP z_z+IQ`*0Kv!GRX-y6~;hhrQ<&3nyp3FICnqt~;LQH~c9$4#(gy9E5$a2X?`muwDEu zEbDEU3vacs7)RM=WLuH##B2+)4Vd}wZ|;*H>ED2DumxU+*WeX+8D4^wunt~?HL$ux zAYlR4a@3-iG_Zx-Vp)`9w<@n}y}jyZBJCFe(So+Rf~a-5g*Ksnc{G>CaeSi^~I ztDQN|;yh^;=MFvbZ|TUf8?D0}l=H*EoG(-&-x1{bC3yvLtPgL;v7WHLoR2x@?KRF1 zZ(&y-p6tQ3TDUxpIgI_gf%!?1<01L!-j`+oj|IqbsyCTu5< zO~h}+ejV=BxSt_>1uVnA2>)Z~T>P`JNkpd-HW3|%jv{OrIvDMT_9pL#ad#)aD|8~P z9oiaNKr`ZE32T5|9rCS1Sargx6IK-};V%zma7SWO94$va1AcQMfempvky8$KAV`6AE2+| zKaL(I?id`#y^*j3=swsByPF4CJJETBZ-Di%7G8kop#X8C$!{HYYjLk4>{(bTihm{4 zghkjq1y90aNFjb9;S1nVm2qtNrfR3~8AyY5hb;+YP<&Mx{ z34{%Wii8hA%c6tOk!T6X1I4IoVKf2?;LZzSxChvID622_aS%vYFSI9Zcn}`I{RYQ` z58wp62S?yt*bjT*ZLSUf1h?QOd;?#>7jOkG!Dny|}6+EZ&Ut#MlWYVEIe zpw_`!eKY-O3D^Gnh?OY0o1^Rzyyb%EA}T2r(>p>>JYC$%ou zxuIg8 zwSm?~T4S|(v^Le+Tx$!ht+ck$+D>Z+t(~-X(fWYa?pk|j?Wwhw);O(wwf5IKQ0ri= z@mhyz9j?{%oj;wVZKi0QSd8lm+C4*SlGa&T=V*22H(!VK5AcqU#HHx4Cw%Om)c)mK zS7=?S^;xZ}v_7x(1+8nfuGcz%G9Q9C7z#r`%6|r(11q7^2F^*e{dTQ8wC>cpOY3f} zd$sP?6^P-(Bn$UUP0AoqrT z(l(M$dF;&pwiAC=7rBmW>SpTVOlz+5I&J*9ooO<2JDq;3)}iwX1k(ypCxCJ$%bvg%Ho>m6TK`{GWDv@TPA+R!^b)BZalnY+p} z-|Dc<#51ouqM4`Q3ta0m{=5jYCR;5~RBj>8E! z38&x#_z+IRNANM6fwS-loP+c5DSQSO;38at&*3s$fva#0zJM+^YtM51xdXpt<#+WQu0h<7 z`=>a5FY|kM)^zSg%w{a-aBpC)6|?Yht{DvBI{z^Gcm#bqn)}De?B_}Q-E#KHRiJg&b9b|ujG2d1df>#xt>0iGLopr z6W(j{A3eg@cf;Syis{Wgj%no4hy0FU{|7V~lUOoEa3$7dF=}o`VPb0VvQINj* zl`?nJzV*~46q{p1x#z*Pj8f#akNAhF2M_bdw4h&KBA++uOS$JU7rXzE|J9kauP^u4 z$nO=>52h}MVa6cJqiw^9KSjFZDcozL&W*V)BG*5@rk@W`&VOiECHiRN68fC`8c#Al z?}OZrJ2-%QD3sTS^2T8QIP<`w%%>QG(xhuKl6ybgdpbh;AE@te`lB4S-%{7oj9W|k zyCC^I54$M$5Od@m##q{MnEZaE&6BD7E0ocYx{jq^uF!^Gx_bNS&7Slt{q;KGgDK}J z=3g_)sJVzaNgvVecp(1TuxhMEZ(QijmI&! zsN)psDED0E($1=+n@2q-Gxu&mEMxw30@sr$w>y0s&p3tA#)m0Su1i&=A106{iZTjO z&#$nrMB5*wO-<;hg7m+P^K5J?l5cL>-(ThvWwj;$b;Ms~46~8{=j1<;wjHN$F2OO{ z@j2-lbz;1!Low2xpx(={{Wsgp^Ta*yH1AI_PEV58QOf?3?MLq2MNa1WEPc6W6m6!z zyFH4VzNpQ-yq9_e!;AF&2h{%~>}JtF#Yw+~dex`?a!;-e`OE#d53q}&t$VuM+0Q-5 ze3X6N80M{<$gYD6) z8}##UP+>WBTgkRh{C4W~3S<36d+JD;hiS_d=s-WMq>kCT@=PbhP{(!9?;-E~-o?y^ zL5#^`@IAC+E_@Ctv|$$GFrM}ork_g<$DV$U8ikv_PMP4nme_)J+z;)gJs{T;7r8l{~WF&o?Z7gksV&mBFgUp?C@B_5Oo`0|!bBzAq zr2BR zJcWDYi`W+|_4d8Y*K;6a5W*P9IOJL3JvN3}2R&id0oda?cY8-C4xFw`wPLTFQ(0TZ*@kuxZAHauj z8a@Ik`wV&(K7n&^9whuTtryWt+I<@1>H5{|)7F?tkyb?VNub$Hqs?F+X{m=S6e7k9_CE{3hOQPWnW~RQf^2(6s#qZrMKGg7NSs zm~oQvk#UeRq|fI!;r+g*yx#|(6Lt|kgY)nSoPm$vLpTK|;C%>$H%Ol!U61|_FT*kX zN8k_~gsJco;cuW)m;LY#?18u8zg?bheWZ`1e`J5*+`l;OByL;N^0Ui&1hbFlz8(9$ z*EAc^mtZZdfmQH~W(B$omcSxd2=iec%+@5K!YhnzA}UOUNt*GfFa}0Kf+ijv1e-{= zSkoVWALs=SL3hm=;=AHLjdnuYLmN#?RA{bgf-c1_7HtSMpgz>K|0jVQyOdQ6e|4w^ zm7yY()09Rdp%`2wAE7Yrf{+iwAs2)|b_jw1_yfD&;1~D_Zoy6X2EKwX;0j!V&)^(L zyQEF0;5ZzFV{jO@XqB*ium^U*o3I@uUiwb@eFLns|EG@g*z9!6*emM=>{d77{xv)W zOJNZ_29LmO;*)^$b!#&I@y!1_i#((Bcb3ZJtD?Q<%J<@y|0!P*8bJZV3+gy$y`64z z{nwv5uW$RhjlJZRFOuKn(2FvK3Q!Ry!&Jye9r8mMghNgUf$Sjf|9WL# z0-Qez{Lfb#{_iW{l|20K*EE!uG*H1oMchIqAENL(sf^!H1-Fx`_?=Y4FGOqZL51p2 z!-tyqoz%kbq&9v-9o$ap;&)OHzmt3M8)9)gX^h{A2fvdh_zg{QJ86dBNpt*8?#C~* zfR;Y+o+jJ0FjO-b9n7{p&_?EfAltU6%*9e5bI!~snS15I%uh29Wlqanl;@GFK~~?1 zHrv0}K{3mu$1L z&B%89FvvFA8~$76%RXlcOoeGMt0KQILHg3{XJmi*E68(GtKfNf0oKBLxC~d}3)lz0 z!D{%c&xZY#XS;4uo_zCHkU1pJ7XEKMmuu#6de7&Y_<`a6pVKw*={>J&;+@a!nlRDT zjN9|@GDKQ4V_!sHfc25y?JJ-x*VIdL4FDFw6Yv~iN5Pp-R^1jSqsA6@mKRB5jGb-? zGx-@cc6Xz4{LL)AIVL;Rq;aZmxz0Fo`^NkF!>ok1Vb(Ah3h^)m2E!m22m_!$^nCp-i_;6dmP-QWS}3SFQxbb^l10op@5XbWwiHMD}3&;ss<=52lJ>+27* znqk)znt%ryLoCEVBWMT>;6A7i_d-3W3w5A2)PkB&1FFM45DnF!DpY~W5CxT>B2<9# zP!7sM87STM?)$$K=}JN*lz`$;42nV#C=7)l!p=L)Du}xP5h?4b^O;T>RmYQy%_#@WZl?d%7q+ZiuzXPndRj5BFWnDJ-D-k+^WXYv!j zv2&_~%YIW-_KBkY7L!J7m0X~CI z;XIs!Pv9(^fsf%MI1L}d2XG2b!U;GI@56h3=bE#v{@lKO<2=5J+g}=ISeSK;vX85ZMy^tL|}Z}Lme&ctV=>7_Mg zI5phbX&+1Y-r`*yQ^Kw7S+bY9= zJZ^e(*J&s2yTz^)E8qMb^Tn8?r-|uB_=G3&f9IG>E2WQduejaUQntVHGHZ)Z{&(w5 zOfP{c*TgGpIrV<>c6}v0y*isTSyA6SOu4?AmAs6NYkr(p#=1JlV#y&7YdO zN}SW}w3TqGe4)>Z0nMrGf!uFe{RXs-{Q>M>Grkt7iY@%SDp#;&F3!siP*BQ zo6o*|Av^((!-6F4%fUjJe|w+ro3GT(d|%V4VrS}>nWlGam2ltk((zOON2v3>zyR=P z6J{-CJ6!^c;R#p-DeyQfgvVe3%!fze5ts*aVGhiOS&$4#FcW4#B20&AFcqf2WS9gK zVFHYAla00rne|0_@y<3G8woS+%+#4aE9rdg)AO5hO}xwjamzJ$=VI)#s#(2Hho$=w;aQa~=?H&uGU^oo*IBo9M?W~WaO>gXc!?XH5#Q)Ykvy94-y8l!62BjRy zuP@q9yTvc}AWa{cdyvNOdk<2=GrI@r+a5_H_c}#0y4NZ3cXO}Plq2b+J{p0(+&U?6qT!(AQrrb?|Y5%XzR{Yz5 zD<1a$m67k(zX@D9iFpgS8XxmEaK+yK2DAL19r^z=`(QsD0P}x$4&gow!KHY97d8Kz zXAADXQjV07Q8@vWBl${wq|Q+qoa~b&HK}m_L6;c{%fNx}Eu$^iGX-@w^Ji|0SydHK7*NhB{Ce?uGhrA2ftU z5CgH$7(CDfnnE++LlrT65G1A*w1KuT??v7NLAydXNQGD7INVJgO!-oFdgZnxPRdRJ zDX$Ckf(_7tdTc_SeQ>vKXP^4I)0-2{V_!x#{^I1Dd4ik^NO}HjOqjIAxQ#l)#BI(g z{ApJDBFq}c`R!O31EXOSjD!&|91>s{425_Y0)t@?41@vDANoOG=mT-k8+yUR&=Vel z9`GP^hi>oybcHS%{{A*?_ou#NX8h*&pKl+S=g8!lFnQKX;^mnqdB#hg4U^}z{z~mV;dFD)>C6i~zRYa~Tf(!_ZfCzsnvD8g;?rxlv){!|`d!p_+@;_Bjl0gt zl~h3-HeGm55c>Q z*-4w2fc-$+P=kC&QO33|l%4YDHuC(rhi`4cC-5;bdmNsrDRx6V^1g0o=m+D0W90oZD(|^+T=M*g2GS=Nu&<9c1L>pjkiVAq-BV&(1gqgE2xELYL0?GL$UC0HL@aMXRItz{|k#*YiF4FUZE6l=)c-`T)me z-ZSmv`5Jc--sLS1XK)Wdzpc&lo{*jS-B82v+p`b%8IbP}+yaj0o7NqeNg#6_8wRO9P>RM<}b&6PXZbbQ{WPO4%O;1kI)LdN8CW(C5AqPagN}bg1&}- zGi(F-t^?-{9{H{|=MJ=?heyq%Y$+e!wbMOFcy~`9{PA#^u&2=X;A8j&X7uJ*SdaIS zLEh`;+{5!OdVd`6u7kY8EIJ9~J?7V84ZI4UfxOc!-?Io~8!Q4nVH11^?b$v#kMT4> zf5SfrO@b?ScvnxUe*CV(y&kIGOMCH8gOxBIh7u<4mJbEagFKhfpV^nRfI{^-??tnt zSFl^eoL&MJ+x*jnZ%pJo+;iu>>XL*%44r`It2`}8_ix;@pd;_B%X{lQU+8%ZEdluk zQx9w!qtC-vux^Ohbo87I&z6bs;Zk}`W{6bs;`$(R5B>xtk zgShLl-N`%RMPMoREzzkk9yS8cM0%Qz6m9N#+SX>C3Zpo8f%d?2ke)-DgE6m5ns1)jb1w4LDn9?3EEvK>~(Bi|C> zc}()C<&keCT!(70R*Za8pe3{ep3@}0hRwJ50~$+Mbp|pguDYM9sQQAVwXrY5WlC~@vvWGw-tph}$h>D1c zpnwcPQ4pDmhzc%LoCyElxg)tv(*eHkH{S1m(_fzFJnNkEoO4HRZgaqo1f{=UkLOmc zpMYKlT6RYMK=-wv@-WmDYJCf`Bf!&72){!>e}jPjwmqJ4wQd7F0E92Wya({SD|~{i z$HBh={K(4!tsgJNc?fyLGqBM6TURYZUjg%SD)Y03gSK9QHUj5>nZO?_aeiDy^=9j$ z)!0wE;eHkrmcrBIrBCd}$yE~rQ1U}DU1D>n#+!3BD1~=EA+Ts^Z!7t^l4*9=+QAg@s3Lx=U!pUP-s81JY zd-9eFvL5|@%CrIR8%@vReH;E&jz(yP);2LejQ6Hy$)|_Ej+n!JNPM^oNZ8OJJaI$E zaO(zhxZj4h;g4=;7v6pY7p~f%4%ckZhU+%y!wnmZ;XWIhlI?Nve#JyIwJ#I(Y z&bYF&U2!j!rK0Wv_-}&ErZ`90b8)|vZHs%ctRQZ3+0?jcWi#StmSsYh8JAU-6F0Fe zH!cr8qsr3bGRj8BjVVik?@;K6#yws(EN*z&h`5oE4J>;sZcy3axFKb|q3a#jr>t*W zzq0;u1Ijwbtt#sg*R!lwTymL~oQl%{AEI|3qi3I>XXnxDOQ>lQYRX3|rl1wm(TZ7R z$BcpGm{CJc8TI6f(LkDDJnEWamtmzWJ^DC;CvpKn5Co$w332lr<>Ge#6^~4;zjwK4v%$>lOM{ ziw^5gEJ6%J*Tpo(vBmLv9T}+ClgHrsmLC7hsz0{qi2gWiy6AiG?_K%#o{Lgc!6Zec zA?>tU@|Mo^fVao`u}uY-({jM_QhCrdl>T8^ET46WsS3*Wv%le%Q|O$%X+5@ZSz6AXxK(uRygZeRyt!WtDJQ$tDQcUrA}YV zlg>!XGG~-!xl;!lo#hFq-m=JPuq<{OElc1(&#AV|cWNvPoLb95=TYQF0Xv1I(8*eg zoJvcvle5f){AcG$_7^9y*qn^T?tGEekQdpPojcffox9lG&OPiq&gJYI&b90b=T`QP zlV(49oU6VnC%!sRyjHnm7^2!ar7W996d=}M?;bu-HObQ4kKHmeaP-; z96h3Mmb@JOZOJRq-<52Q-chnGdS}T?(KkxwM=vZ{9(}cBMf4XXCDAXIY>D1pG6Oz^ z@F|QgE-8whTQV%!>ZJBsV(0Brm$4WODS>k}1*CN~TBKO7y5J34W>Y zON|~?k{&&=BqMrKNm6u|lCII+N_s_4fQ_M~PIOF3-RRhocF~C?*62Ygi6=QF%c7pzydrAD=6bA-Jj8Y&joAUD z3CobKqye(i&=E+|NEjJMd`K>`ol73G=aCWie3E7#M;@_{C++Onq_aJZd}YI`+KvoT zzi^(>;dr$JHJ((ogt>lQU6ER`b9xCiYqU~MD zLk=xT#fYU6&YnR+?OCL$J%`-17mz%AB2n6tNC|3t<4JprtBNF(?ikaFm=%*To_?q=1moGxQ3n^abyyz~!{(8?>|_$l zvZOx=DI7q;3iC*4VLk~jtdANVCV9xfG}N@2Q2}2#b}~OY%9vY@Y2-F$(@MwF%vDDo zNka=Jpaow#CX+diDP$p9Kxf}0jtRty8Q8^!Vkj!>GMiw{*lV4zS0yA`oqdysi9*swju3^6GNH=l}*?t(k zYUSufI-=K|9f{;=%wQ#YY(S4+b95y!4u&9WXki{WTqU6n#^KKzNC4ZIgroPp$un>5C|-uw)R)j7U+4)C>_ccm}kab2Iy`^I3K< zqGchH7Lh^`sXl6Idkp44Bg75Ds=hj4w*4ac)P9GYx9?%Tx35tA0ISpXTrwDYMk@A<4CL-(%v~MH zA|Ketk{_|Be1knD9(zhxJB~V-+u`;xBhD5n%>5DwYU7UmEmGNM6749JKH83{nP7-WSYD@sJy6lySPT6QDR zu~L3=>{G}(%=-11U59KbBpWUL(uVaC$Z56{X{n4RJ(Tz_8>I#~U;L@^Lh;wi8^zx! zZx;7Z{!!dZ`CaiqM7HvN&G(6>@#6xQp_3aZ6?2;#SH_#g8bj6o(*2J=oM! z{!-jf`Fn9=<+sIg%8wwwRve+cUR+1{V{xETMFN#fagg$2aj^1o@oDzsB9&5IY*L;s z&LPp{Hu^8j%NL5CWw#aWWsemdVviTyCcPbFndy#k%na6O@oQk873VYuvTW@j}`M79H zB=6di$Z=a&66**i2T24`Fw$}33XU7!;<)jhL&3b{V42-GZd`U;MTDzltK$ZF$MFj} z<2XpRIF6Bnj*rR5*gvH?eF`o53a$JNvQiv7_Ms(5aXg@N`Xr76*U_3^F)Ah4*I&mm z;XMb-E@4=99#OK#iHdE_sM#i%$DPpQ7&4LxAfqA-K&B%tBFn+x`u#Mn+>dhS@qUdP z$&7ZSGGiQbm<>3-sW9hf+J`Xdj-gBjvNj(XTZFbeiDQ~{Rv3)qUn-7&;~+~y7Mm7M zB#$}9z;_IZ!aT2oV_+hVdwR4z*gl$A(Dn#22>z+CNhS3PM-kSMM)dYU$B#wEVAd7HxA(7ZWqLGW(!j44Y zuo4~i3mx(jWDh5kF*km}xIWEjfX^J8na?pQ-(ysMK=wbu$h?e^c?Bb&A;-wO7=^PK zp=}tQLpZ9>La+b82)%$7;*K_KvPgaG)wgUpLCxp4+_ zBhx;R%tWi+!TfjwBlM8HA^DZG!m%+7dxH;oBtiwWaSVxg+%Ys_n4`7w3+x>~6t{|K z?byZc!twD#95+9AhA6LM5BR>gp2CMLXH~#n92Y;u@$wsIJ;mqtCW^Sirix~TzmkT9 zcgR`$4dz?>P3Aj$tl~3!4$d)Wkhg2d>os!4ew}<_zfBq!o*|72&yog(7s(me^uqCL z9KNtiTL686p5ZSz%i?* z-9nyaV@VyQA9_dk_crLw@ZzTXxkVq?~RsEK<)In zmW&pT$MK29(KZk*RG@_cXki5Q*+zDPFBlj$l2Nc0%+Oez-TlaG5gOpIV{gO}$BBq@ zj`t%z#duG#PbbSAPe;6nc5lbb){q?Xi!F}~LtTH_rjP<;q&8-FU9{nQ+gQ>Pv(^u1 za1F2wbK$BjjcCz^8@B%BakS|Ijvx8R++@sB4Z&F%?Kx@dPFkSdALICO&}JnXwDp*+ z3#nztcY~NAqe-OYVbawSMn+nENR~wfjKj6}`?&VLglq0mxaLm7rEI?NV-XNV=t8EOf~rwtvh)Adf1#Sb<{j9VWZ$A=XYivri`EXGGi4zbg5R-cLM z^wYSGzv>KBlHy(LM4aJsafZ*wI8Ju%XQw)^;)?2NCJax>``~P^0)EHry@9j+pE%RM zhco>#jO%&l)67NepO>(I-oXBO6XX3l{y{`XSZ0^Qj|p)2Gl7ntOdm%trZ4u<=dq6- zz&`wu;|{rKS1@ImrNUL)G0fa!`6UOi}TL$?WWAirl-S=$W$O&6A`5ohR8t1-z;?JxiZI#_g z>vEru#^dwR1dP#1jL~I`MGD4Z7{)3cW0isYYe=Fc3FFlhO&&9L8z~j=4KAra_J$NK=gA zhmPB%m*aPG&;BKBz9fI)NcFefP(PmFgF&MYxFj{A{p*kzMW zmTz*%Yljs-)o&!4yTBJnsMSTScl!hWqGUC1xk@87reAaS^AZ-e900qplG z?Dt1)n%{%Sa22a|fO($ji&f&CklojvSquH9jM~ zZDdAvdStuyk>fM6C0jF`wO(zrvePrBMz*8I&`b6`IsDQj$^>645Mm>5lY1ndnZ)cu zopig!G*e7eJg2y>h-8Pc8(Atl%LXYsD`%jleaaik`iKzE&E#I-KH{{hZmM~z=Tu*+ zV$`W>oBB=lbE@0wD9uQXO}!2{r};tC1kFp=7Hjuwk84%BCc1IDZMrXYIjRM!)v9f( z32)l(DXIFiJnb$!T4f~R1`vW+YwPm?mV_XF}7`4O%5Wh_inCZ0)V zhBMjdft^{-Y(_s0Fds6Xqc=hvPkM`C6lO(~qM0I5(N~d*zST_+lZrosGQivAMC3C~MY-DvYw~>1hxqY2G#+^ro zzu-AO$FV=+l>S1-qi zEK@(NF2lIIufC-I4x{s`irU{+bDBU+T}_mxnI=)w7vnWiW790dhza)VG+Q*UY2I^{ z&uPBa{I1bxf6(01_-ZZMCfayyvUWH|R%m~^HXkFrO8boVWsLJF?G^1080`z%o7%rH z=0UnxT`P=yye?Tc9OFMjw@9}EvtXa@xb6bx!fhR=57g6{X3;m{DdpR^I9e*db=CLd zwL|oy^f^`7mG>f~8%E@xZ8K2YSjm%#mqJ=H8>1A3~w1u z8ZH~YH{3P&7$b~LjPb@~<8WiPakg=((P7+Se9L&!c-i>9@vhOwC&H(RPrOerpJ6@| zd}jG9@sT2W(oH@u`lR#ieWRSsdp;kd{Dmm{nNnZ;0T$n;z8yfj0dyNI(lH_xq~+gp ztI)YEyC~E6mbfM1^x)~*ZZWs`G}kq^G$)x;%o*ka^IY?4 z^Rwnx%!kZp%wL*sn>oKgzq)=c{gV8I2)+GA_~rP`5lf!+Jz0s|)2?FK`M{n+tg4Q6 zgghmiOM?9nk6B!?MU_dmqosR+xA+#H^xE#rUZtK9Z-`budAIhL>|f>QEiD=Sg`U)Q z=>!{LmNtg8y?=NAfiCSR^fJ|dl2|Tu?H_hgve;!Q)kWz_m(=0E-G7i~pZ`eqJ%6kp zM6URM=kMNQ{`L=)?H$H|S^@GX<@r9E=zxbsefc8>ev`YLUz#jt`55?BYgfxWHA1;( zfV+=w3#r9p)ni<-GhCe8u5!+^#T6}^i)Rx2YGjQgw{rPZj3-Hk28=D29ZBw{(?$Ig z)!4Z`D7W&ytjqh-QmGgJXT8WOdPyP^X{)LFqyHLB&CkAtoS{Su@M4hW73ZV}um zctCJ^aDH%cushoQb3O6R%wn>Q949x4o~h4tV@5MGnMKT2<~`C)xmF2L(tmFqc1)S#2wsBSQfG+6k7@#Y3nSc-#pAl^6C(sSCvw&{!$pX3|W){#5zLG7a-QhbH z=z&<{04nQ=evAitqC6hxiFS;awVm1|L!S*KL!S*KL!a$o(;M~Y0KHLv4$#{+7r7SZ z3XRbZ{<%Ou_~!!s;GYZhhb#~1k9Oq&{h`YP`a_oo3;>@G3;>@G&{%X!v0=P`6x3M& zq@d0MAO-WI07yaI1wab&PyjrJ*tpNk3A(KH zw`~b>x5U-g`)NT6{0bh>SE?rwIYpMf8N z?-VqSncM*X6>tssTyYpJNEJCJCb&!hs0wgsRIuFj=h*I5@Lv#kiYt`qIu{j$5NyFdvAoE}?16qY=vrVs zKy95OeHL^pV8+t|{}tPMwwQSq*o8V@0rmiU`T8sQ7*oSW?M2K(z<$I!1RMoCT~9-H z8aAHt|H%XAxs&bHDjB^N3l?~N-J4RIJ^S@mmgxt4!!2Fxw7YCRy zwsErY4TP+vEao}rJ_Uk+RzNWD2q5JyL|KS=P>6k|7_^v)0ODo(ufcxVUV>a`9Zo3e*GN1(4!41m8nemgEmY={d-Aet60*!^Tr4_mR$Ho>a1t`_fp~#5#4L zdcXh}0Uy8@Fac)35AYWe02&Ac0kogNA`Jlz6?s}8t&8fZFQxyYMo^c0!Ret`RaURk-lvTx#lj)nwcyB(^?}T~NRVCAU9A7+hEcXr6Iywab z!9Xn_3Wx?80!;zA?f(T{mUG+v_4feo#qL*l=Dvy;72bOfm*V5G?ekxR`?%c@L!eh|Jmt! zlmGrkXyZQcduw|9u)&9-+!m#GBt-+|g#WFDJ+l7&w>G4@%5Bvdxb?4~PrHF#H61JJ zYIFPl&*VBA@GGGnTXn~_0XR<#{aox-t%Sa+Fj42NouyzZ5me&2-qw@t>9s>3+a}Wxr^hv_6T_XDw*i`?jH@ce$r@ zy%)Q+USzAi$X0rhdB*oFFR#+ajy@IAe&HF7Vv)Y&`*s%^Ww%JFUJj`S$xpgBBh6E( zEZNnJK3Qcu-7%JUv0LOtw$O`gz89H0vUhH7r9RTU@b34YBrQ@@(;Hh=dg(JBogdO1 zsmk7)&Lh{fz6XW3@ZMw(8ej7B7PCs({pRO>a#_=RIrRJHDjO*(>37pKrpLHcaILA0 zbj|t&o&-KeEKj(f>ukOX+Go!kNOj-u9F_c}JW@(!^f^Ll4CGX@lgp&G zNPf~Yh@O<{rmnkpRFUh6)q_QWK^imt7vL}`6>9dGu#s1OfEj?}Tr%a!9r28ZV zt>ZjE{l5{*l&A7U+X_6}x`OG5=T}Do9c{}&mxHbYU5Doi$KsjRF^W#mr30OyO9whZ zmkxBo^RVeaC)*m(HLy>IeJU^<7^+BuECWa)>zE9{Oa?)oqUelRqk%4XPIe5?6?`Vp z6|pmcu6U+D6X=TAnLt;v7Ui{g&Uqc4bEa|nAx>{a4?H6|4(I`&aX=5-I?#1^Mt(V- zkzWqGp0Mkt=n2_)UcLr&4buxg6M$Z*a{|x{wiAG4@Yz5z_-wws4s;#LYd~rLIwPJH zNC4UcZGlIC7CZ1RBtu*nAoz&9TlfHvg=DP#qn_g(?I4s;!!d0xX5@a+wPzdv9CjEaFa zJ2M#=h!~Rr{DupjwYM>kq0LhO{B{@0#V8k{Tm-rtbU8B!{8V5NbW?%B;HLpY@O=Js zU*bBT0?8dX^_+J&E8)9Suy@4E_7K76EmI2#=7l7x1XMoLs1K0r2xw;xy0XzvT z1{MPJ*?juUIDK|^7BC%{f^l2U6aXoRUBJiBhkO!{4U7Xafec_2FamfS7>xgwup!Sj zjLUM2%W_cq|1or&@IMrQ=kZA@?|&oljL-0Y02hICz{kJ`zzMP(`sKX-Aj)q6 zuLG|FF9AEqE6~5f>jxr6f1nT0%T?cM=vVXl?vQr@Isu6;{T}G|@cL&E?`dEount%S zEF){7U(4&~pe2Brg(fn2f|`n|k99&sN9S_3VChk>SeUV0&e-{Aq@2&fOl0(F2$ zpf;X2UdZg{^aeLGes=;vrBxSDkni6wg*C@(tkI^cCV{{%23!Qr z0UrY&04Jb33LFN15O@oC9e5RZ3D^PMHed_*XMm@Hjleo!6|fAtCBPHl=K+PlY+yPt z8NjbEk{n<>_)H)j7zsQM3<3r~*B3|z-yP@-bOhpowgBya5$10pa^IZnDk=euMUsq`<&gWy`K{u(O0pj4FMd})K`K{Amql%4Rshx6RiUz;hHgeidW@nZ0Nh04>CX@S7zC97zms*95r%x}~wu4_hkPbdW z=9>#XPgb4`eu}K@8EZOpGi3Tg@I|unJn-{nWl#Ug$|dmG0&E4g0W*PFz;a*(P?_IL z(Cr3Z241PcPVTS4&voHv-V@}qn(&tzY~+tCHL<0i0qExe`q_Yf4*yI4xJ<589 z&~h)4_7-Vhk@gp9ibx+5>0pr#73naMju2_8NNMbJksmG6Oqq`A_&k`VNL1Yu(IG!J1#- z=~`Y{SgUF79ISsk4{KRreV*U3{?3!j@PTzK*43GSb+sm9ZJs==QC5sKt>JrXJxM4; z+ycZ^j)P4u*64$81lFGEGYso6X_FXYwGkx{C-&XIh`bYggQ;oeT6nLHmtFRxQ_!rEJ0t^V*O04i}U9uVJ)aR(@4V8 zvrtD7+OZPr(xLvdPhcIoK`4(P2_t7>eKEusg?PuNVvQZ-I&q7;{0`^SQhrZ=Ne;R(LmXn0rXmiH_SfdYP`YrN&2=&}W zzZxJ%+gBs!PmzSR$j?b&18fhE#(GJpZxrgwhy60l1A;oA!Wh(nU$;qE+Zbzn9fSWb zXm1Yk5ewVz(bhT`x9-SyFyfQ~Z=&A!Fh>qzjA=iPBHnHEc?R0P19ilstp&)-HT2<+ zfkLicABMalUoSzPg?gUC{OgQ5TCBjFM2@>+tV7me9C{-L+VC>^_!{J&!)G4iobQ9S zAm<%0j&z+#Iu<9<=8lswx6sC!XyXzma*2L6f!{*3a|Y(#&p;x^d}B7wpQv{*ayt&= zWI`W@qrM4!VUIjag-=7&5sG%+fPDk>eG&T933&=e{^>Z+gH3(J^+o?P=zKz5$%wxN z`Y$ntD#X8v_|wq0Q^?KdzzOu@D*QV1$9SU+wc+~#+Px08e`230h3>J9SXU0?v=*_B zqwcS<{~X60jGTdW?~u#4bJ1tyd(a~A$VDs6%eH6-T^sQ^Vv`n|w7>BOy4GG8@*JH5 zd*rzxau-3PR@F?WDm^q0e2{SM*$#aQ!h3D$2!?r9#rKp*cRXOE)q1!%X49I=MLU&>7^#*(ht znF-jCizG^cBN*2|0h)&tfUc8y6`BCm9w(DeaT1?VGCdoqsu0G&G*fL{Q*zFz`x0{P!1=5_|=&`{);<~Ux=Z9mNE zAAo7|Q8#irPt5Ip%q=>yMx2Ug%g;zi;M#*6|ze^NzT;nSgtn2_L}s1MVVlx#NexY2YK^W8e&M7ND`ufqn{{ z2QB~?0V=;N($7FY7x^zhuZjG1(64~6fp35tz?r!hJAOF#O2-SpHGsyEu8+J?`DboV zUb3e#9$%kx_ETEbMs4Ul2+2ooOTW{SmnEM1c(a%E zaw_FeqHt#mayD zJi&ea`pb*VMkUwo?Dfbe?Ueb~UX} z@})kq_%=yi6UyLDFGF^+Rn_pqb0E)yoTqwOj%l%~%~q9CrnBMMQsjRV%>nog zu3XT%@1s6fNCtPu8M4+DhbkU4mMiG}#jwf!Jb4Cp|2<{2eV)1Yw5g_SgC6-?jIn(Z zSP3ixmJ}(-3gAg#aS^ovDr~fF>3+DJRxqqWP}%-L$sOsRdIw6bGodwh0m4I~04GR`^@pC9Sx>3x6#pQ)z<>jC=t z`V`=3LG8v`>1XW$Ksqo5z$#qUz0i#Tzl1MmTGxU;1DrtY7eVP~R1+Cvy$y7KtJ0L0rG%Zz#JJ&WVChSM0|FH>#{lezzBX3=)<7RfENK1Nw@w4`Wv9a=j|{cnttvEOe77T5l30S1s{&j;q`!X z;75ag-wO9T01ZBy$BV#9c-D8op9AQ3iN&86W|ZPj(ZGk+u&XTK<~+z$RO(x z(5|@8&=a8dA1Iv;(0dRs0nY$Cfy)5BA3^U$n{ZDe92f@d0zL-%q|tbfS=)o&K{*q& z2)M?}2U??X@8S^ntw58u=r78%fla^^U_4~>zR-BUL{h9@fc}pA9NmD>M}>Pu8qjO7 zTY)*f8X&m$u@U<1Hrz|Gy6=fZK|UPl517aRYd84)34Sin5BHnsJtq_CZ(Ry%0Rpnn z4%l=AEd_1>TgFnGe%1@1A?-*)6z;E>NMGv!&}5WzL7f1-@3IfT3P{L*Zy?#4jQffv z(#yIZ^nG9q5QKX(@c_NoMeoyO0aJmwfQj_9wg7FKjX4A~Z!g@#IRf59dRYH}E<1`%ap@g(6{(APjIy5!^jK0xmq%>|AD;T=dqOaYD4(HhUwL@T|gZXyX* z(_~6JAZ9$!-g*bNngrqAl8Ll~>`|aC(8d}u1!EwB-gjyPyG5X#LDv8#(%PClRroI9 z1n3vM>=7%y4`?E-5Tm7)-sijtG)*M@{lM0TZcX{Svfx5ss_CcAyUMCh!$N?|t?MJqDZrE&?VJ zjk=MYiDo<>-QL6-`cNNw2GvW^4aXP)q#&lu1wU@Ncy@R^U} z8z{Xe_z*A-mr^%zMB@g5eWnJr4d2;748-X#IGpaKF(+0-*P|u3Cn^0_Nq^ z$IluL+Ij`r2%H0E0)MQ;`EeE1o2`phV?XJJ``@4@VzOQb|IQkW<1plSEtUBqu8%dl zJMLuypYbxI^(F8oVzBDh3HLJVgPMrmdKI*J4}34N9`|N}gTP(jBxEL{v(o#W2^(>K z08aMAy;ES!CaTj~e+Q3M#8ICbP+9jma1Xc_+6#IY;GFob0|){h1x$o1cYWB?7)&~= zg{zx$;lX58uz00&N8!5Ui6b)^`kgAlCxNW&{EXb})bWuSxw$#Hbfqjn9Zo%Sq2@8%fCH(}PI^xJ}J&+_-59)@aLXIyq}hPEOM%X{otma+>C5jLFK& z&z;sZFE_0zzYJTGwA|GEjJzgUIgOjOY0)NabnCQMqgsw?+47OmO|#OoQyVvH64#_T zZ(op~*P>OE+`K*o+0$r+kvWqyaz~HPnUWWomzh&AK0Pu!CqHsjM&!htyu2*htn`A6 z$o!nhJ}JqAt-U)XjYvx7Nw35~Bf2H`Nf|JrXHs&P0bL3C4(;xXcCP{*47v}Ur^_En z&nV`9%cH8s*_AV%A>I)UUp__?#j(LKwVo-g*%yU+=n_^^c^CL_S(*M~ zvt0ig%CzknQzwqkO3TWRoS2%OmFD(8DcZvXD+;>T2(+e7OojQh-r}rC96vrMEh#s5 zeCo8Eg8YBp)4U0(S!o3$ zvU76L)2!(kxs4yjz85F&sA_gFNkv?+2M0MU2$`2L zesq(}jMVgu+$Nb>V=_mey}9|3v9XnD;v@U_O6=KlM9*%$x(z7b`3E}SA^mANsLA%$k?2oeNwvv>(M4ySAFVl;e#k|Sf zW?Cu=6fY=lU|q}Mtb@J41}gh0mn%O|`eNm98pMeUI|L^Hqxfk{8xlOd!IlnEgo_ zGE#&-3i9eG&CG7{j`;pj1wXo?CSgp-ulIPuTALk^%VEp}z)z_-uF}@+{ht#bx%8y}9ttl95 z!Je*|xmmpn`wuaLNYU^s7YCC9qYe!(tOw%sZuE)%wYk>ZRBOSpLFlogHm~NUl~{g`x_6-+5~$gC+Vz^>=;4iUSfAEcA-w{1kvd;RJ=vPI)aDUgl81y! zg{`ls8HTk!r;7Ya@~)^o#nT14*`N!^De@uc8qw+*9W7xkM6%mU^cKo@bSJ#Xc^9%$ ze4T~GJ2>;x?OHi&YGLE$RlQB(TO_xbBrou_P{A+dV!yzTYB|Fy3X_OZPsm)Eh0t%A zpaSa$j|e~*7xy};J5lpW5)Ta_FW^#PvDp3(_z2y3`3#=_n@hoZsg%v<%Y@|W=YXrr zO&81FNg?m!T_;I%CB`dV2`Pp5t$cnf+AOO<{T033lB)MEo7+(2Hdd%_8!y>cL4I8S zss8HjiF=_uo}0gCuwmv2WnZJstsr)#O7?q9bCec( zVOYsFiHzotS(T_EZfKlULHRoBCZsJNw~KKa8OU=B$>=I-st|-smRT<+bB(KHWolh& zbob*W51nVUGNq8?jmYR^PbFVoNzNGF_o}H*IF}r(rgmvWg}GB*JgT208cpKol~9-| z%H$-56OQ+CS>-%ELLUNZ-VPdTg?<@1g&xX}$n*^NAe(R&`PfM5VKRfv#5rokeFTbA zUNL?r%eIuK@*yhkpR@-_`+Ir6@}=r*O+LfbWh9fpjAX`Po%Ur+8FPyH0i3VGj(6b|1wK($mgM(Ghbm?$p85w- z_QLm5#UF}LR;afPJAfU>E@HQ0Wyb5QQW>L6R1Q^oYtvM(Qn}@Pm&H@ycDPD%o0{_P zdw5?`{-pHb1n(w1P3F?M$>3ItQqRb*RC#o!qx+W)S zu9BRWH}YPRYLm2HLseBfzxPYt_e+J^sTZvRS)g3iK|F1QME!z1{HE%U3C@x z+!CS5u1Y1QT!rNdZdZ|$Tq-DPBq--yu23U)VW!p0w1Smu*y*6rREicZhL+0}yo9LS zrfSa$q2vPIRn{W!BV2U_Qg7sO?}L}z`P|%xpI{1a+I(!Ht59$iYaY-YsdDGaHK>Ok zoupRWN3~Lec`D5UnNaGVOjMB-s&|KQH&o!LM%E_2uR>Yqwp=GnQMrTUic@q$wV9jw?KTosBC1DqsaEfBwf+19hen{vv{>JnOzX zpa!_^;Ju09%tzqgl>B9;V1jqr2t-6ZE)gHyefGIe=V#-$LN$_Eo;(Kx)n6hvMz)$w*h0Krz6 z36eV>3*R%_g2^-Dowq(qf{DpTR462dkk5%-cxHlEC6GB}Klx4ex=Y$IGnvKAapnv| z<$el5+f^}7aai$}q7gfgUB(__udo*7Fy$iUKIJWC6K(?cB6pK(pvqD;z&ABtt76sZ z>Sxr~)O9p3a-%fGns+n`ZEJj&@}$Lv{Ui&vTz@e%3JBVC^H?e%i74hGi@N zdg0$jk5v+1`qoVPc5V)Nk~qmuWabpPLViFN)J!l_5Bcy;?-Cy-f@#9EV|p@=GvoRE zZDd|V7U}yN$mIp*Ci53E`X&Een`az9MYQ5!MMq@Xd;G47L5fVpRE)qH#dC^RF%D-H z*A>5FH1upZ+mLOSZQDH+bpMR85Ic>X)N3EV9HJGvLSH}LK1MU3!YoL&`< zF>cF$H^F?jCfi7uKHuli(k}AO@OA3rn$zd z>5n-g#2=-})f8%0V7{! zyB~9EhxRS)NzAO;ipGlem|r)we`)o)P+fgp8(lZdwKQFxt_U-34|jz7grhUMy>6xM zH&UVtSM1cise782$@hb*`1bImulGeNloEJZRen|LF6kQadz{8_f9{qLCun<6t^-e+0~48MQhW`^`o-5RDR9yv#Vc% z-QaTbi{{x~Z#P^tG7Z3WFxO+}42NwTaZgSqKw=RH}b!xS`H z2bs-D8BgOq0gpAtK$Q@CqifU_A<9hVIlkY^w7(InPS|fl`MvigUcQB|>22dF<3+x_ zS*-b6F5wj|dYHy}D-|*9u*~$MxbuJH|`PFF}=K(yF|ymPr3Qn zo=h;0W$0@hj>EH%LFp=|FS1TwM@1@>JkOI<>Yhyx#w{?@GiQ0!2Gf=#Qk+&? z#qGmrwj-O$+GVe~GF~pPihmaO5x&GN$*OFs*40tARt{25Rj%V>yrw*-{8p*rV!2LS z8fWL6+qUS5}s8-$x6|J4Gp6GObv@HsS4y;Z=-*lDL zUYT5KV0C)Qu2L%2%(ubyMuaxW%J6rWT%5$1|KUbk=S~6NClnvJZ*E7iU6uB}N(I7T zoS6IS8?5<1Jj3unn{Z=Wr!y**MwL;glT~i4$tJURv(nvij>DHJh+?iuq^fMh(45#j zL^SiP(J1Xx3PlC~YHD>iSKuo6*F+!-;$eOtqu~m|Fm!^$)9l@w8oH+k<%E)VYZ?a@ z*gTq6p~w#sO{%z6Fz^sacAk{;6qGAhIrl49Vx0ykrAX9HR(89YskG9qN@b;9yh5r? zvho_rvv%=GBYY!Ao9n5SLe+o@wNpbH1X-Y5)qb8feCotDcy;w?p6eMXA?MXqS5;$# zCc7$?m~s`CD^v(3xl~ZpNKnqZT%l5T;S{434(ZgTW^NVZxrUt%8cn5W;$mpIT)`DX zJk7bvl^S|?m-|)9^RBXHdGBY{6-ZsGw34b7k~^QEs!hFU;Z2*5jVh%{D@dwtwwGZ1 zFiXBtyDHdK8I~TW%yi@`xK$@`)yp%|oRCSSj><$8S=1uTGqjR6)ZJKtqaL!B$SlB$ zGtSj|&;JSV@Rcf(0xIe3amS$NW-nll>RBQ$B zM|ISMS_!=rvH+z^CH7u)6YQw5SfI$Bsfuj#=2v;sF3%$rwiBRSP%HCi?gSi^U7x^{{VqCiNO;++| zLhE@AZzFVqviK+>Z>P?E^&~uF`;HHTPa>QeG?X_@!uBMDY+Q(ow<-dz;hfHLn*9R!^)(aM*p#-(?0w3AdWZh|`syp&f6 zZRPc@xl`^yM5SW2d=<0}bpLWk#qYmklj@*UnmoLpt5sCP$CB-wGS*{)Da1;tm&nqJ zg^=LH*i`M>l%k<)oaJSydm@z`Fcp%D29nf5P)Q?eCsm-k%Qgg)8{#=GeP=Lv!<7&- z?#c?AiLtZz?*wrZp5MAhn&7|sx8v!e7)2j^Q+HBvSrNhZW*4(>uz#{`mEDyylrQ1` ziyr23xl-;F=ZoLr7_M@tE~_H&bj}j>F|}6H75^8182|U)Nn50SN6Y9s=;rA5>+b5} z^|SSF>HpTZH_S4;VYp*>)HuVq&-j<|QJ-l(Jq@D`lMRavFB*;;zBZ_h_3&z8>}#B4 zEc&;+O2w$}80qU>{+-h5p5MAhgx^1Cg8R$K%86Lsruyc^-jqHoa^&9L7_9FW&a;{T`DH|wh z=7%W9itp1g3c?dtFDVZyPb;rtL=>DK7tKA)b>#YSqcA#!+zPG)W3-!lhx-U4b%pzZ zyNB_zsG6!eVAKZS_bT!+cG;@gs-+mg9jdofCozuStM00N)Dh|?>UecB#&ooLvU(my zc9VL$`b~`QdG!tTpBUv(O?^!pjP)Q*re-Qee68kr%^r;VS%Ye=G8$?d8XMXhdKrcpCSXP_F>Eqy$GkdWxM=tmv&&$t zWo%@8)Y!u~)Hn_^ZIN+EuiGRlNrIrt>xf`1i+s$NPS+6YR%}zWKhz zzDvMw;^WfTiDbL)o1(U=*j4G?hW`h?XIxRf^!)|A(p1X%19eR4n&zPNWi|CR4Ku~) zCzxj8ol2JQnpLJ}K(~ojrQAMnKHPEB1=CG%zT98D#ti$FCcQZnuTri)KwoXl-OK~c zG5Q$&X!B%qf-1yFUq{tcH_yDve9ouTywiLf<^5&{z7;Oz-Zx+5eZMvTZr1owS)gBC zKbnh{eo1~Qe(8P_{AkAWvG35=EWZUP7x4T^>_zl-59?Hxf35SAm!J3BS0K16@Tdz~KkyM=zR5Sl z*e)={I2$$04(RE!9TYelzTRF31K#5`SIg-$U7p^2Ld{bH3lTA$w^|W+BVZ%o-O?@f z?42|4d3e!R8R#1#?`h>O3z2RF9OG;K1n-}hYo##r=@_SyTY)4lfveW>}{pg)6j!C}D+ zKZ9vK4T9Z!VVmH;l~m@|`f%NXsf0%B4=&U^DmWQ6<_6E=b4mG7v%q`S=&daD?7`oq zn5B4P`oW`=awfhrR0#yfpI8}bUz9SC_pBu0NyaVdlz3%-MF zGWR#$P24g5C}Iq)71}7YUFa?TC}a)o7dk35H?)*11n6r;Xi4bvp?gA)gq{t3-82?U z%A}I(p}&R-^NYSyD^-|q#1njK{=U{&$_0f{dovds_Rn6e!v5K-x>o!0`H-wun&`gK zIjn!!sIc*2Gx` z#Iv1b8y)^|xbP(1NYXL9U-+o-QZ60v;m(BShZl#h4A0P%ayUnZ`{Eo!BTAkEjaTmu zr^m)MzVryZG~k`^6X9(G&xZ?pe5m;b&(V_fqH{*@U8(&u{4VOkxYxq@1t{g};=Lu$ zCDlr)MSbXT2;XgsGlbgsaxr=;&8U@1Ch)ei`1exIUaKYBl3iZQS!=r}p);cplKIjovjhI(bG$NQy>T5aT$W zpBg zaP*Su6OI7F``J3zD~-3-Yu}|PHKFo${wmg^iV2Dd50Go_pO5F~IrXb-W>nWY>?Nw& zF_n*n(56-VwRO2;#Ko9>7IqDC!TXI!og zG5#ELuNrG}wRx8JBwlU8UhG@fQn%(UmaYfA(-^&Xxm$X|b*!RS*NLi=iZGAQ2$F@{ z#~XK%zw&NcSJ1Vs+okRR@FT@C{j?)_Wqb4vXS2E#lAd0Z&JJK)XG$p-iR2}mub0-{ z!EUVeJU%mCB#yc}>b_BTQ!PPrwC>ruspMMSU+S{4>exhb4o6kDPbv|7%4>pQ7aMz% zJi)e#O(h*sijMt?#Kj(g?|1M{hIDA`>L~hhx9`C?;nVB5SV||y7R5dp`Ol`+ST)^^vuz-URVJ2rAMKQ7^}zYH460>YlnqiD~+!=)726xSzPZ< zh3iMj`x>rfH~v5NzC5t4;@W$zEZef3#12_(C8Q{jOKgyBd0z^R{Ii=9$t{hTcJcUrIO5etn^!(3t+lLYlEo{W~-DB%f)h zYvEa$<@3rXab}!-QB3^(sh@|1t?_<&`u#7Z>TkEQ(5iX(2&UVk3`RV4m!OQ`63%(ZnF4Id( zq$<2`I3OL89+!S7y)P}$mFuq2U5_ukoz#i1w3WqO9oHAPJMLu6-#262vHlDTC|j~CEySN|T+PyhFf{w@87`bF`V#(x=aKJUkuiQkO>Fg`t@B;m@0^$9x@ z9!hvE;r}F@lXx;NKXEm_JS_g)z)!}F^Sj7-8{GFt!nJtX^Jz8YWZb)nA0`?NQ@JhU zK35yG_-A`wYZx}%6p8gj#6|Jn#%lijq~fG2lGY{dNO~}-EAiQ+pC^5ol$LBsZcOe< zbS8(Bk0t+m@{XimB`0A8n9@w;;~&MVQYNQpPVr6g2~WXe<8MRQeVh-$%R^`3>9r{| zej7=1wtD(F{~0qrF2+ZPPcKWK+}AuK^<%CX>FMc4z}$K18R>J<)1&7;($h0CGSbr{ zo0Dfa=BCeEFn__+eb6XAH)CGL$K;+mBi)E=VfuoF@#kiwEnKiLBL%O2r>8GSiC>hG zl5)1(GgM}xnN4-{h>$#1`_}N=!U6G5hlX)3RJd?TAX&~>p{S?=^&*$R@CzuDFY)c8>4+c= z{a#8;5N9|B=gtMf12V&dwJbljNu%6Fk_boI6nrvjn4145!xIb%@dkrN%781uV9~p z(Xua$7xk{jL;=)N@%RE!lTvz4gl@taQx^#0g2tZ)xMRxBb4P%BMRTVH=a-RwAPf9c zGL0zDMMI`MRVJgpRCW{-7jJV>3xZ~XU>6)ut$H4gjxVYpWg$s@MB#tJ>;)&H>M48V z4?r3xTt>B z(IKL1W0hNME);j#i;APR=Gn5=BJl8N_NaW7d%UJ0I7*1=Vv# zQg5*q3{M|T9@GCO*S%-~ksB41#wpdzM-Eg*Tu_BvXavUD5KhXQDuFI_Vl%ZTC34YI zNpYq@O3g1GS!qI`&NU(^D8}>rd7+V=NJE5(0shd+N7+-bs1ZuQOF|7vK{2`yK3d*l zA|5jnqnR5r$52uc%&@kgCFj`#=NU%hvl-Eg z&kpDCD?R<(MRU(3&?;!=EFMgYYT`O~5k2PvGO)s?T^Za*#b)p%>a>&GDVW=co`gy0 z+oU_&su? zC>azba`EIbH!Xk$LvjnEa0pZjCK8lN!|6E{7yQMjH_b|=$f9KAin$`>D0ljc)&ys9 z?mYgWn-)VnHE+T+w}{0t!JFWA()ba{8y$Z;O^bk!^s6wKTXaM1%DkRa_$%}df7kS)-=z}iw{~V5?r>M2TMPJpHPu7x9Q;WYjbLY)l7!f`aeuH5SS56DbTOSV{ ztd^Cu8!b_4MaMH8F=32R6Gp08Oiw89s26udaIM8-2*p#8qt*tQ2T*aMrPO;ob<|W;>0`N|KBBTg)MKa8 zV(3-Vqv#kI$rOc+fdne=c&LLVXAw8pNNUz<;RUCtS29f0O9W{h6eCsS;;ZWs49!X@ z5FI@8|8zbL*V3yLv^U_ir}`pV=5! zBA)Z+YPcFn>zv%%h^kau4P&Z^0Sz*LzSi66$#=96YyNy1e7Ow-B_KjF=0KM++V(ml zYkJ)a@nd(yB6X?L(T)~K6LpQjDHbifX-pQO{D~}##*76EjYg)9D{7heN;4_6C@E22 z#4j#Qf28oPP8f9`adCHqj&NvU{7FV>gn)2Fq9eb^3_-joC^+Ea&11!I1SjK#r2x$z zQw&@Yg4|vtET*csA*scW#$;lvMT$m^x+t}V;fX{-heZt@PDc<0Gg>WkH40U#255^n zDQfQ82(A4TXQWyXjx?Mm_Y?6Wl@-&(JWd2BECtkKnn2@Oi~T1jPc_0`5f^9)f(Xz zd7_;oD8*L^az6O1kJ1nZO&nzd;}^W6onEjRVJng|FBB(9+FUCa29cPkaEh`+zPU?7 zG0KW)F+6b(K2WM@z&!6497PL>k%Ifyht%C5kdfjuee8fLk^MDqD&Mc zDl#}80ee@icf=GM77(0i$niEK(h!A+G*F>=BT(ysI|B?9kc=ePSV3ZbAu{F0W0M=z zDnvk}5WRx)!=nq%#72`^HxVgS<8p!&S;XaqK-I=FLA2G>5pS&?HBQykstgiibZMax z*~G%L$`chg!V6P#M|`foMVx4l;)R)1alBKb=0JmsgC+~SAY@jmSySf`sl{E?A7yNa zS#%VP@D8ty;h4^APW2fr3|wOT<%6&oiKmp8QHP4X_!2|RO&y!mdc#9)+L%2rtwVFt z!~_k->CtIVj35fF6%i|5Rz!|1IjkZO5=xE4Ri!GY4 z5;PkDPvRq@q9`Wup{0oOgozt^4AqGiM$brXs}9~`aDz*&`goT%qUN1P-hbRa-ns&}lar0DUQ9i_^^$69S~^P0fNp%Mznn zo|HfpZ~maw0=|Py0qPYS4hud7gkwiYp_pmFr1%;G*CuFc|P_R1y(O>vN zhhISi4ML=lgsl_b?PW);3CBW(9J{o?hihugL>UDVA9d3WN!`<%baJsv)^Qqo= zwYi*as5IGPku7<$C117_$d*FcQY2f7WlM={DU~f{vc)D_Dr8HgY^jnh)v~2V&a=pQ zd2(L9oL3;{70P)rt8oL?;Gm&p00a()pmh)@m0*hRbCl}<)1qE_Jp$#*yMr=xu8-msFDk+<$@Zy&>|P+$%XlHVS!v&C>IvVg~f7ViCkDJ7naF| zHo34uF07ObtK`CJxv)kqvdBewa#6lqR3H}>%0)$TQL$W9A{Uj)MP+i4O)jdCiz?-! zD!HgyE~=4>Epl<5T%0c#7s$nha&eJdTr3xt$i<~{ahY6flZz|l;!3%=N-nOJi)-W( zi(HZ?m*mSO1#(HDTv8;L6w4(ga!ILNQYM$!wo$YptQS-xCWAeR-&WkqsX zv0PRnmzBz8WpbHKE~}8sD&?{&xvW|)tC4LM*_J2U@?~3rY%7#)MY63}ww1`XQrT7} z+ibF}Lbg@Pwkp|HE!%433X5EkCs*Xl6$NrdpjRk2)EB3G5lRb_IOO|Ghtt19KHD!Hm!uBwr%Epm09T%9jh z7s%Cxa&?hhT`X6Z$knBCb(vgkldCJ_>Poq~O0KS!t83&Mi(Hc@*W}AJ1#(THTvH_1 z6w5Uwa!sjRQzqBg-uCX|!fbnQFR%`~cfHe{i!PT-Ddygwy_xsYc*6cy>A$$9@Xy3^}$+5OISj_h8$zdJiGr!1!+ zMj2RUWUyA`^9B^AcAg6;*JanD{GUGmZoj`5*=jnd+hOl;ptSa0uD?$p|F2MfP@psL z)bN?W>C<06=k*SgXPv{_>GG`inO51ZYH6yyraBVu8?d-dG3f|j7K1-JCENjgeoXii z$mh}+{6*Mjq|-G%evJ4u)W_oH82mKC7suego(=VS7(NBE)`{E8{@36G8cMKwN>@Czb^-_}qO zJjm(7&EDSb==F*0i$A(^y&yhVn%^v%PY?b90F1?QH0uG=5 zENQe*!3m|NLfKvZY~Q+edjRZto!6shd))2z_HKt(c7Z@8`2)W84tMtCK#$w)Xy<8A zQ)DG{IDO#T8SAChH&rG@(JDNGJKSCV?g-{-7fh(Jd3$JqK1X}N>-6_!_j+8;_P(=t zXL}vJ9>gmU)a8E{XI=dz&Ij4>P4)*TlRdz+-_!1KP4oWk;pG4n{F|*4H)vrFX zQ5}@nflA=Lz_$(~;yR}tZR&>Ax_+ z6V-!3wbl(zoE;{iicD@)1s0<)_xU37{SQDkU`iy;yB6nn2+sptlzY)?(Kx0yPe-3= zJ-V{PYjS)1CZ`)J1G!x9=$I5`O4u^4-$9D~4*8R=*YbED2#vEE{znyuu(hbV7cMec zTGl&pgN%3~y8ad)YN*FSE>#Emxi?e`X|@(WW{OmO2=8=yeg2lVKEET@x6R>S?{K)e zzfTL$%3ybSVV?Ave5gq(GA}V30H0)=z%*d50Alf1Rlob^Ww6)aejV@zfZRU>^q^d{ z4oGQ>rr>Ubk>7hr>w&u$a2>!4ptO@^oa(n!+I<)_WF!9ivxGtbXpYmw)#V85J) zrz(Br<<(xV#~bjve4YU2l@$S}3+9_zU#lG*(8TTjCO+C!pu(!4v^yMYL|328zp!2Z zSs8~0>_vy?{p+{j^-A#g?*JL_ugr&99rZzFF?HL0CQTyRATuUtRj(ZbPzPhTrDyPZ zYR0n(JQ&bs^YG*eoj%@4+U(HJ9i~99sjbgsccatv2K*){QHQl9rx2M^+3@ zYd=&rEu0pa$j;O7g=&6HoSLcK?xwES<}jfnKxczTliy=n&5dod30fGr`#mi}RgjRQ zBSQuI;bM(gfUAt5Z3J!7TlE1KZ~ca~cm&*Q-JbRCRi2K3%hAwwEt=it_1gQu0MvC; zUr(FIRTFS?<6;f+D&?US&aPUwztQXIarzw7wbMVg4&=Qq;A~%eEg5o!as3!p7b(k=WQ!RN-ur=&xBhWXk z@5Yd3a{5isvZz`V(1 z^s3iEsnlW7%i%^gL{cbAWJ;|?&BM7M;{&)0G0mnP`&x&|hhfsx=LsyugVMm5LZmL! zB#M|+3et;B+(sb2Nr1tY)7MQR%ic%XzmDgpZwCjJC0oleyC|nnZ3wZ#gggcoWZv>?FrNldszo zaCIQ|dcx3^JY33spT4?2Qfza1_Qd;r3o}?Z_@Vh8@otCl<|RAF)JeuwN4e>`YklSA zE1FtrG06KfA@x~W8X8M!p88oc+o^VOaNXqt)2-)buwLZ56tEbe;WcoR4(Sb$@R@q3 zKOsq=2ZG~+oI@SD13fK71)a(t@S^j)2U^q~8jUKrNvCRfE!2wkeKF0Vk|uf-e}F&=52>s4q!IrjVxvS7vju4gZIy5j3?`m z#EYeUE`wc*Jm?C|zru>nH_=Jf3}5_`PmpIs^WNSX`brU4rz ztuYCiX#|g?lRjxXL}aVY1CH05>?Tf`#?A(=8OrN7`PX|y#rRA#ed30N4--K?8#HyIc~LVCsAaO|nx`b5+*X>Uf?4)D zrzhY;<#ssG8L+q}Y(FwN{it7*5ks-V>$ba~+g&bLz1YtyH&r5Zh)O6v`RF&Io#Fm24MZ7>O;7Y|iTC}N1Fkr_~m3ou4v*^ zHG7%oNY!$!&$M)@YK=j=1DQUa7K!4kF)*#-WYi&2)O=*r%k*WbZHEVzc`%#ct68u( z)Nv6p%rP3+hZx;<>=(ea!Qj#nYvdyCDG1QFy8bk z!!S^3gD?_W$?YGqFx5!}2*NTlwFNq{q(k!wA6By*<(O8GflNsoX`zVhPFfP65isE9 z`wd`D)#-wjHc0VWNvcA62g316A%>;albOVF9ws1_MWH=q@y*yV>JeWq0?HKdMo*Pn+H6 zs1uE0^EFW&uhFV;wHSI)6mJz~CTm0moM{)?|1a{Liu=1*Lolh&;}le5=52H3Wd13AgEt}ZpPA4c{#RoCNurn7(jl(@9d=+ z%n3gC05BC~8onQHvLiM89u*Hj2d@LH2W$XTh<-o{Q5%zJj8VP2A-xb{C-oKT4-l>{ zH<`P_+ND%jRG|fbNG0_vkxtx6R8_IFY3Z6VB}Hvvt=;756dGJ;MzwdMM^OFZ5QC`) zT7rhWJi;Jhm^Zrn)Byn91Zvk4=;~HIc&Em4ET-}5z8Xzm`39S_Am3RUD0Su)2l9$L ziwgq<`MjmtFr^K|PIv>_gqQR<+8MiZcE3>EKE4zH9)a?SucnXHUhmM9vKYC9YHD+K zwSbH&-X^lE(Fp2=s%L$4!=+c@df?68KI(VqZ(PYZ)pbuzozeuO4O@-WcRtnWlaHRh zX~oOMp%i-$&568O8GOC>0`QtcOylZ8E2yJhFZu>e1-L3!7c@-RVxVx3JNtTv*Q2sd z?T*sWy78YullCb!+GHE>KIg?aC`JS9NQ-tSTbsN(+0}?<$4B%; zuH6qyvb|+Jrrx|04uGexf``)pn%|wN$$b8f@^TnR7!AtHd+lzF)zG7vS)U!(kX39d z`NcXq+OPa#Ve_sBe>4}*%&N0v`NdBm2Rs`GEfd zZ*`!51r*p4JpT>!wRzDiQ*doC4USAl}#m*%@pF@_7t&sZUN74I#*C;|Y_Nw6o$Nzy{W&^5L>?ueeHu^7;~116_5IarnwncGY?UjUSKBJ9 zuO#cOg6yYgHhlkr4;^iM?81;i>zhd1k(0sao#}8-<=N@U)uKZd-40I0>+5#*pvXPg zS^5HvON>1M8l+FQ;hBx+eAGb}o>TK*-|fLVsv!9;;+~5*lrLQn6*Nc&!#Ih3V!piD ziKUVboMOWalurtqTn|E4Jp*;&ev^i*nLiHvoqG1LT?0{cL8I4IfKhds>9*CcEzh(wLEk>X+*B%(O@c>(A$L z=hC_q)#q=K<^sf}v6|Y9BpY)k%(o&-#iWkBq+xLE!Y}xnmU1Lc3lRbFnnJOrWI|h! ze&!vGdH~Ju)fF2)WsgX9{hB(yY6H6hX=$yJc%qB+^ilZnMMx9vY|>V!qdXa{g%yD& z2r(w`AnJlbLp8$c!)&m_Ov?ab;@3KPxVp3xGly2y?!`Q$4X3A~baRqLm%=Oxg%N^; zekPWb)TN>1tfCCQKkx-SXMsP#%2_kaYemmp=Y*Exvof4FadM4>Zb7G@Tv+L_M>&9f z^(D})2i;2oZmPA8FTni_>@OO>7NJga@Jv=mZY-_DidgcCNJ}#ChRWLj+L`L`7r>Ep zl5H|Z9=Nn~0^?Kg3E-OnTL3o#wgS=+A6=GhgL^w*2Vf_l!n5I$jy|`^=I;9fAL6KU zb&!SO5e!lXKsr~k=*Ls}(#jJljMxN)UZVqcM2v^zm^9)!$!r74Ms}7)>kw!c09UI9 zht)7zqg%Ui>I$o#e9h@hDvbRW=}1oNJ^mW90kF8F+5lDD1gMOd0IP)s5bFU0;4&Bh zv~Z%1|Mg=0kMW7dw~5goIjMe_lViBAbz`zf4g}b=Az!6ag%Q7kkNAxk@YN-zYCh0Y z>?&ZZk@ zW*UGS0(=$BaSevwCNcKbpl2b&CUwZYoJLz(siMJ_h&FpXbu`q{`ja@+;p?l8jIoBZR78q19HHXUQL+P66P`V~E zlvaB>!GA;NDn5SJx*OHuvw?=sHL(LH#3Ir^c0tb1)PO!rz+JgmW^v|vNEEctbI@a%YA4}%Wv_0%FR z+2~Ol7#r}kFoXp<97uyv+96Dt4u`MZ>+D5~k@3%$XT;tJX@6`()BZD$&e$(OyBsvn zFVEopK1w?>jlj^*fyHYw%ciRt5v+0B20G`1UL1h-pXhuf8FLtD)DsOt;r2iyx?%i+ z6@Q}lp=j6<*KdsiZQ<2gy`AVMpMDVoN3rlm4^CXDD-SrH zNee4~|9l3!8u@ACl7@d165@_;TPBSEKbb@Iu0gCzy|L(l~pR@N8vTJdKB|_4XsAUlK#_4HeJHk@FqeKi*ct zKTvXrfa;hu7ean&WAH-YvGuzQIOkE#lW?*xv@%oyr?mtPzXA9Kz{_)UB7Q;m(d&}2 z?KlBH(s5_X{bDY-kPv=WllST`iUX7_*onhwuok|&o0Ie992j<9zmFfb%sd}*a(-4M zPohscQR9nvh{XfINuOxpUsd^u#VJ15?)DyRXR8~ZIW)2KImF@47O1cm9Ng_9>nt-% zTh*jJE}CU6qdDybkvtwk9;COmJbnN?B9q7pL3An9{$o>cMCIXVe??1wbpqpO3ZGgg z<{f#MbkV#^>(9SLWLmR8&HStTFcdZ)LYS8K1!~?JevyjXO;xI$`ms~2=xo*17b(Mg zP`G3#PcFb`v*kjYSX8P3t2oD@t&crjCC&>at2$*eFaON@O_LQOsSV0E4Qq;5qO1g2 z0Fnbdv`f*#J@BFMFMhc^lIAJkG>_Ke{1I*%(=C`6YJQ|VNFFqNrizO-e7h2 zR-w=K;Hm97eD-w%OC8oc77)B{NR*~CUO?GPz{jV#KKTE9HBY&=O}TFQnCsKBKlxh} z{|q+iLnvn;X|X;ggTV@1iOHrPjaQEe2Q3&?xy3=1MtdI}Me)+B15S6R2dBF`9L+AD zjb12P?Z8W1>l__wButO--jTCIJh9K|!(wxd)8Xo9!uqNj39o;-IcShDtxGb8gw!wCU-O+ zip*av{N+z|d1Lx0YrM{n3s=`brcZwvR#zO}CUG+6?3}34&dO=Cc1gq$BP3p| zsm13aXyG2`qoO@U)R>6y@f=TzclMmlTK6Ko#_C5@&E$w@&k3a5J{-qEx5u30Eaif% z)A_ZJjB{oOpqf!%bE@Ho^QTZhoAA>jUll5uwi{!TfQe3LS3qnRa{rh>zKVuZmE21- z19z5}t0LIchvobYlR|1d-Zp0kwoWJc*7nfrE>JO(hwy*K?52e_yn&OKpObg7>dseR z0%;R#ynGREQ=NFHp%fbl7en`Jcr9=lIE@EWp^5JWsYR^Ai@6QjMyjalN#T_)Y#el) zL1QY-v*FqrsMz&9lb7kz(eOlri#qx=t*NZ6ZfeS}s9kO&m#wO5b#48crfPE3H#FO> zu+`StYU&%B)-*OYtZud~x7F6$>Q*EC>Iz#`4PaH%@`^Q0S6ABVE350Ot12(6t*feR zsIRwGAU<$7S6A17r0Q&{ZmvS|x|LPcP0f_e>gvm@8dgT2s(f;al&!YUA~y{w_J-nOc`xuK!1p?-NixM;Yt9uLr}ZpKs1sh$$oH&m>t zX{v9is=lJWp}M{qx2viv>l^ASSKf_UhArxYgbiQHLPiFzN)#R>FTR^QJO1l zjXZacx}E81$1Wm9njBM;*qx{ISXjjs+Oz|&Z}E>4(0*56j#-4IBjVd>?{Q)elL8|f);XGJWA{Ch!c40uSXVytTtZHC z%#WOIjM>o6slf3RS{MX>+QK#WQ#(P9*dHMBV4H6%@ZI{HNZ+O7%k2&vTh6JcQ;T?y zly=K$R|y||ip^YX&BS`C2RrQy(oHl zArRe<%Be-ulG%fk0bXo)5Vcwyj_tzYIUSY9TgNyGMEk~0O-lE!}Q#7%y%6A5^U4TRSZn1k8i5**!kxWS-!8P_t zsGo?#F(h8%tdTf_64PA}g3j0t5vD^U6p^D`tRc9O(>FQM-7q2Z;*5h@uSiC_8mLKa zhY*w^XKeYo7b2~8460K|8g(0zJASk^N3#xikBudxvg~qnLJ-{=quQbKDIL5SWW_fi zv=?fk4NV-y94w-KiPu{B(Ok7{X-7CFMowg}lIOx#uyU{+3ArS-f^8rA3J=*1ytE+3 z#fu{moijzfOwvbG9yLv^8{bIsdT=m>$dkl^ar$seR5eiz#tJZ<(fK;T=s$z`o8h+aBB?Xn!jI*jjEa`|; z4&R@RJqHEpRX_fLcWdmu_BN*r8*k_*c;6eR0G;jpI}tFi+@4Qw2KsO+4rX9sPM&xZ zTP$Ydz>#(bQ-|Jdu(my8>={H@4r^;k2RyE*w{-%Y%N&6hiw#uM#h(z>yR(_U9B zPTvuv_XD+X+WR8>Gv<{JL`2pW=Uyf1kM^Nx{|u|Pq?9~(i4|{}lcM5BwYea>abkmy zbZ9V(BsVbwWXbb1BLQ(ELwTIIKGY{(ub|AGmgM9rqOs5>1j{qR+K@5$z}N$ zu02QBcPAg*M*d5#$>86q(avsTJ4}JMf^8Zl4uI~cfJFsM(hBy^6fET{w5Lb=6bR#h zc>FtPigFOd$5%3`3Wx#8I9|L|0=m-1~@JGO30Xn>o zkph?vNC$il@IQqQs`FF;Jy)W>t^hay|5Nz;pTfuak|Aly%&e@ebF;D%ba9`{nwvEv zYoQ(<7tGDdNBDZYOLC<533b%18TmjT@XA3y<&0(Jq81MUSp4)_k>M}Xe}{sPdKfga#oz=eQ| z0smW{|68B`ljT$E>(mFyO+bB*aO$JfC&{+c`Z2i)sE<+@#k~-q*-mtpfZ|eLr~XRx z$dBR@5KSzZ@_s=!CHYYt(iKFP`Z>8Np4R^{z_$S}1AYSd9UwjrXYK)u0XcvQzzTo^-~;pn zb_4DLoCJIi@MFL)0RIV~vS>Px+ywtypZ|P)l3hb~8R>nJDNPOu*TTpKqd25%$zPKj zicevLYc?H)6Ht8e*JzWhYHrwy5xY`ZZZf#7Wd^FmcTYHkf7Ehx?VU(Wa zpJ-`uDL?Wj-pQ@yPw~i)(rbR&lj2i)!YQ90tjb_N1pEZ>4&b+dKLg_GF&+U@0doLG zz#@PQxCl@LumWlU4S;I^Uk0=Rx&SUfFW{?yuLA}EL@Bp^LUX{fCzjN;HaDwFCa9*BmflZiIPqbIE; zP<(n)engkz54*-|)6$R*qdYXd zPkhOMZ=v4s(LI(9$O4oC>H%v3djKZ^-vzt@_ya(HIpP8?0$d8H2e<%Xz{7wi0N(|? z0r(~013>C($S2_QfJT5Fuom!jz&PLp;6=b&0HW~+JmZ=m-+(+oHJ}}E17H+zE8r;r z#eEgeUjP!C(GLJcfI2`oU=QFfz|(-20P$;3MnEN?2M`481{?w05BN6V*MPqQW@9br za{$UC2hU2tYCs1-yDWM61%*Y$C8cHdwsw4UudCa6?OIol+tYg;zV;bdw|+z4^;%r< z#P80)L3)fX>g%x=>4lHFEPG5i$ZTQ0;5E#W-pVYAE_Pqg13~G90{S<`f?sD=i^86g zcCpRDUCf%Wn^`ySWA_JdVb+`@%pyI?tb>oT-ry-LAUw`2!N-|Z{{;M>V%E@8%o2JU z&u4%?hcJNjJn-k?{&%>)1^VB@^V`6`&8)ibfW~*36#OpyUVz^Vz`uv*_mJ<4@cRMM z{s8#Pi2Ew=*MPrTV;g^v1Rm6K$`hoPi#J0RH`J}fc76wQ^mssfMNdF7? z{StHuehv3;koRvSYsPQk{xkgkjJSV+-(RFd()+;QM?L)&={^7tA4-<~ze$!frn8s~ zI%dkyv9wH`^?ZxYT3oHONUb{Sc&m;DyL8spZk^@UT{?E_3Ecz1r*wH2HX8DR?SM`L zySUrH`oCtF-S}csTEd@`ObH((`6cTte-I$q@B~N|cmkx#SxOKfRn4-7s%BX(zHFAI z|0}bk;G=-YW=Ya>v#eiZsn(2TsSijiQy&Zhq&ht7QXi65r7FQysTQdr)!N#a$_z@X z#W0Y{5{6PO38TO_1K)<{E8Ui|)sOH&gA>Pf~r-TL^nQ_1@sysgFoMO}$ro zC-wEuN_{c-EAagrJb#0%gN;mf&Me*5p%7&_i%P+ho;0-y})jYO>D#c9TVV1%3eORXhRG zYk=3`21su-63X>SLk2#Aic!x^IP~k#C2jiI+msrZ+-T=*>`Gfpt(S zXdTR(e{@iq|L|a*sc}>?wT|YQOb8EXAb)yvAWSeQytMp%OKcwB0NvNul8<}0?Q;4UOOFc}h;7lf6q**5(*8=u&{ z5r0}i)aOZ^a_Do`1GiegktqG>RcZJSSj3IJZjD!liIHdHSez8J{kQd$F=NP}Sl=JC zzMxl5+`%M?-L4F83=gxLmGHI+<=xV7+##my-}A%alfxN?ojZ?*ZcmsoboAtdEbjBV z!EkUC6?ii4JY{Qew-kIhE+y$4Wq-0V45ujtp4&5(lM*{GAvhe|uRN-ZDEH`;2ie@T z&%t9Kg5veTt--y)hf|2cKIOTDH02FxaCqo#X=sQIJ|En}nDXG5UK$uy4i70m%g9U$ z?n((w^p8q2k@1^KMN6pip3uJFe*B#>lt{yAraK1iRUQxCr2J`4a40@x{b7=F62J2z zT^csrnt0$u|J}@_S8f{`2_7^WLJz^Z44o_sp4#|Q+Gs*X=InbO8&z(4*Y+q24TnbQ zFF3L^7?z}g6Q(euhQ9aE%HiO9p%0MzTLg|oTnabN4 zVYavbd%>}rzN_pA{rsF%U7WIOhGN|j+`VN~IkIWj@SUN%C1Y^2vMu;TR#I>zQMnoI zaxa@b!=UU@#&CaUU?}uwDNbo^$W^R2ZmzgwB5h>iCP}d#O;DTgF6EBklghSG1yihV zE7olTRr*XwR7G{#jQ-o^DArqo6_@lMQFfaYTY2z>{%3|y^uMn>Fn&}DhC?TeNpVV8 zxhHhkwCS75NbtU)uu=KRY&H`a?9*-97JN8axg~$#nT?~U{;}Z8WogO|m2BHBnaWGsG1mO$ zB4)5C&m}X(b`9G8z9kGKn_u3%alF<1+{ih#rv@Gw9O}3IHFR6h_O|la=2M1Xt2H^p z60F;A=wJQCJA*qa&I=7q%-Y{?-5Of{$bxaRLw+4T^X~kUwt{D*DxBhPZJ@tdf;@RI4+3Ms&Po%KWOtvgdc{$zsy#=N} zoy!yxn}3Ksdz3wSy!DE|neIuHbZJt>IkuyljzFwN~nXY4I1{mfn+Sn#r%n z(FN~P!g2Z?=&81U?;jbv5Y3^Ok}~44rmE~g?4E^p9KYG{Q#L*; z7@n<6u>Jd9A69lA8cNY`&lu7vJ9Z5Y5A2NJeC*@{XgvOQ4?4q;<29}(B&d7G5&3oD~~s95DUhiunwITd{1wvj)Ytb>OkM8mJon>jQ2<`HGLa-)P69lPoM zr|-8V?+cx{>)`1Afg|Dl!Nce2k6HI`IoyA^|F%u{jSMT}2@gdW)!PTYQM%bnZy>=?QK;Us1Bj)S{)AKoV=-kdga_gMcnrrf+m z*>z*^F$>EWSHgpL9Z>~ui!w5>KMXtZ2;0S!+wb4fzcsY~?yVSG9=hvj|KYp0Dvul= zRi52*%b@k)+y8j#K$%o(*g4LWH_L9Fz`&@4Z?kMuhVQ&l+48*g*+U10lv_3{C-(o| zVmPu**_CNHIHuTYZXAaSzUi;Z3zfTn_Pfp2r&g>yJzkZ&dE>5zJp&ar*F3zx=Ix5o z!2_FL*t~zs-4p!>whi29yZa97_fP%(Tc#&QPZ^ZGSN@+(Rj(Wkx1Rs=42!{b{DKK0u?fb;}*$!3o8N_PO2m&R**~`wcd%lN!bq>(h@s zWvRL^19pW0iUO~0Vs@(oLi$5uDG70L=xfU6^YzN+%PU)Ned}Oj*+%P|!7GAeU$%@_ z^wi!|v8ej(rWFH?ElBX+ai&`n*|8+kJ<05m6w~Ktnx30wsy&D8ozLztvd0%GipkWQ zP3swN-p1;Vo1S~k^udRw{kp|F;-!NIsdmQVb!m%_og`X4k{CL4m}f>$u12iJt_^3 zl!jlGhK4QSZ_b3}0+n=Pt75sRn}@@jhekqNHI3c9byIj__)lrupqQ-B zoT^9(o(SHkyg!-|8d>>a$T|v(pdxGIFN1F>t$_=|PsfE12EP}y(dfV90_FR`d$xqb z8@G%O@7=U(^!EO{#>T_LN;rJi*hpeh_>j;d%F!i3>u*Yv!mSM#C>5tCCMIU@3|UX1 z6>d=~&<1>r(-xh{fZx6fTVux-u{rs3I?QhJQEIpMb)z6V^^QDvp((y&o z^*xKLzrXnIpT>^#oE#e(*rL1x9lho!O6}K%_svl5QW_2_l0}3vX6ta-d(61^Fk80= zF5H+6FBN%QPP@D1G8_i=bh-L^yM5-%T!HoYRy@vYwVUYyH(rHCEMPruW?P5jtc0w? zi}4ls%!3<8QqAN5))VM~vnK#2-iT_s!rl$k=L3o#J%H1{mQ~=j7(_PHlU3lC3)lJr zYk_vJMKn*Zr^nOjF_VK;c`{S zX05{k%;5!wuZrQ@b405fulH7ZdU`x=^EG{aeQ@I&&+TSj&aRc_@0H*TsW8EvuYv4-xJ~E#u5EPOACMRX#+@r82 z*RkGA4|bUo@A;!@&E#OUJvfHxw7Xg$^}ISD?@oLX9}Q10%$cuoy1S`m$xoa;#~XQw z-e~W3+1EMEjos)2Q-i#yAY|Q$7tPoT9I@qcOAfXYuiT=fE2)-O;&*fG9d`3dd`$!h zIty_HU&7WS5^iwy*}Gfn2t!6I@%<5xubY#A6F9!#X2zYIo@>#i=m9srZSQVr>an|A zElvDWFXoka*B1eS4*bd)YQ72Y$*`5E0e{PCJCacstFwE|01q5^_Yh9Mo7Fjb@zE1A zJs4iMYYUj^4yPO6vTLyc1G_3#K^TSkD3&k4>iXKL9_Rr#byB!HoNN_}>a%;z^aRpv zzZR_ttovGE_!btR$GnQ<65spjAR(nEA^3p5-2pP>1dbm)br9lh2Lg)ro~U3UF+Mtk z@6~kR8+2y4JK=%1pPVhL?0pc0E1H8vqBu;N|s@u(wo-@3X;|$ZNi_ zT9Z84DkrL~(d9)-yy|798(jFPA1PU&5Y|;*j~RftIF-wbiYHrz9@|5;(1+%$x3@t8 zsA%}I;L`n4W2z=I!A z@^uHy^|-P6KIjZ+-%L?_vSB|w43Rn;iQhu zSM@ps=_XGX7Z5x(5B$Digiw=4s5#(Wi~JhA&&9;P2G;1quVOm9vHGBwt#&}5yUeSvMIEiiS6182xO-WX9nDQW z(+n4(c;^nC8Csm2tO-4u^g&ZMWC;js2I3f@U}DFQ9xWE@agm5*Rp{0c~}z(7}rhYA~b+sKs3{nHQ}{rzq19h zhXIHX_&`s#!;Rk13_-+UQ*(2dtBVi}sSrML0E0|&k#ul(GcjIAN{vFUaAJIGwy*O8 zTMNo`hZAoQ!P(=26Dpo!pyrw#u0U77Ob-SsAYrBlxsebz*6hSD>YHT3OQ}}~?n3B!5X0yk##}-UvpI)*kSbqAlMeIntbWgk#if0d&BdmSISSP0J%v&wwZlnvlQBVxBi|zGaqqEA?Ka_(s)1H zyGByhu;I=619}$J>%WD_`}8lG`pd^nLE~;ye+t`_A_Y^V?I~<9g()ez{uF75`}C(I zDk*Wn6gH3|?MjhC7Piq6hwZoR7B*;MLG@o!ENp=Lhb%h9lF)BqxNo*3g>u+X4#RzW z4jas2!5lV_BZaw7C`VFqX7%StBRL5O3Tlv+;dwa9_VMxNphnW$i~YnUbkj zGNt30im^ZQ^udDXm$Lq)(%@32aK}-8KQ!5Md?|aF`#iZ+I=ED~dujYD>C(n@>8IzN zv(JV7kC1UVl(2n^LD{mcC}=cnot-jzBMaTgf;XnTStW(5;_)AB4H}hJ#kjRK{`J;` z`-WDI; z7C*L4I#6!;P9nP}@zmIT$%*~R53SUVuhfNB-rY02NPj$23T18@OAM7O#!4T|1onw>^8rf-s@vW?bD^AZ@pdVZiX`YAnCj|G;RQB&!YCzLW z`+soJo5sbv^V#e9DW?PZ#%)F=A4(yAmvJb+zdTs5$=ILYZ)C5OO2P7=F;uD;->~9o z)gPb9-Yj4f#)C7D7!8VX!g`>9oiZLMc+q&5RWZJ1J-yucUQ$c`DdT&#gZb~8kLeyf zX1KfI^tW%B^VXu*42d@xPsgJyPp*)HE10r^ZCWvRY{eZDy09_+p|2%AGmtnk5P#5g zX9akvI2=q?g8K?|-@TMU&0HE6y!1djdvLyCY`zqpFZItq*#6}9^nvX=u1VUsRO0_? zX^%to4WVKBR|Ji5-%G#q8Yz5D{Cf*43sQCz#GNSUO*{Pd%zWu|QocO6B4r?6zq^DD zlrW_PoAvY`E;)UUKK1QnebD$lz4U-SLD8Q#p`R!Rk7MP*MK>GSjYigQj2qCi(--O` z#mEk-8hF?kMkU;VnmSOR+gKop|4@N$(8vajNdrb{q#j47aEgir>v5h+8mnJ?dO^J& zjeCbtH)MPvn~fTEN_Ng2kh#{y`xh0q@2rcKbHm1)hXoOUdD#X4*uJLj>Msk+#8EouvkA(y!Y!m) zV2C(&l!dU%b2K%iFYedh=1)8}Ja6}Ud2hy?9TytDJ1g$+EQ2!Z$uA@+Uyyc7rCbNX|9NW!o z(2Ro}Y{1Nv@*(aQGE0g%UNP$j&C;M*H(*W&#det}1Z;ku@ zZ7IragNr3)v9xJ13od5+=`M{dHiQ>fZ|aop?39K(7d&@7@%y7QCeC^IhJ>)Gb66 z%uNXAw!X4!b;4#FJ8IMIvo$LXv+mhBL)rOG*}~TN)3X+`frZJZ+ZQ^2b6WSg8SngQ zNz(7jm+0UAd0cPuRVVX09dEyGNH}0;VS8NA{=z{PJ{Z40N!pl{^vqY2!e3>BUuE0A zs=x88_J)&}wK{%yb*uhcUx|D8D+!ywvJ88_*9P;In&e>q%=Z#^?n?Z>oV|BI6xa4R zey8ouva{^cr7XM5E=5^j!4fO%!UEEJv(W@Zq==$oo!zA>O0giZU@x(OCW?vC1;yTz zyfk8qn)2RDfB7VN`NZ#;1%1i;{{H!W@64HV?!D*UxpVK#otbm)J@-lX*2gtbeq2=3 z)++l3vko=rkWmL3r$^@}nsm0@L=V$MP~l0;I^kpg`SbQZvQd#OD!fT0XjWlnmD#o8 z-;cUnsmE!qamOZOTPD+w99*Y7+UzPi;EKKLYMR{U+6Y}%!{i;V=E>(=9R~yQTsOLk zVgH*ez120(=Y3an*%cXG;lah=2)*1oSLk5i0Yw)6xyBl;^fsPGb$k^6_&)m46?=5i z73+0<;@@Oj*Mv4S6@I%jma31>rB5J7}1OoMy#OcqHEka z*Svf)iC*Wwm|!{+#*wI*L=XZ5M^YR~SP9;1`V-HqKp=(_LXrk+!r`=#NgGK*k~*Fk zYb5iI9dRWd5w7A5t{A+CVBhB|dX(V$T9+#~(df!RY?G_N=qjmq&71W3QdgqQ6^D-M zk+UoDz?E9(3f~pBa6IEGgg)}1t8fQ&bgqQabsE%~c)cqIyv?rU8CL=1zt)w4ydH%> zl~S&S`@h?=CPeY=$05|CRUz1S0x!5pn7bjiPb49w`p55v6dAw6zYZb4eG#(!#&?{n z{Gn@};!*45m!e85<|ZH{6F9i3ykW(aF##d5DQVRWMl+0c6U&vcN!xbAfJR&r3kT~F z;ju}exWHq#L23wr;f=J5n>--4dc#JbfT-QDaTg+8G| zZ{o4FFiMbcjNL^b28$&ShPwrDp!mk+)c~V0Tpr6~jsq^rZ!|wIPDuKfj%$1U5DXQ4 zNg{%5104^n3_TJD!$U5;lt{fqVVIPKzl?YeXqnB8q3`<|u*#(Rk1Y^KI5-YHh#XO@mRIDT* zM9k-!Uc9WiYv&%|)F2Z4d#t%)V#q;*uwu>tD${`RP)fPAC9yW+De%PRt%i}lI7Y%P zDsb={U75TDs-JWSsGQ9~vqAx5TlNEkTPzIL#RW@{5V$HsQ_R4R@!Bl{BP$U^$wwRg zkrWTv3Lc?kY{*1i-eE)!6RQs+%1S}j7z`4|M#8rr#zfZeq`d8iDS?$d4C#lNg(CsP zuvdf#96p*}#*+9%-78kO-3T}%jD^ewu8BGv3N%rd1D71BM{n7=2baDK841APmI9X0v|NZr%u5f?jQ$+O_Zoy)xd*NSS9VSUPk3x02RA$} zn`W{9C)_z?DHjZ0@^z?eIKo{uToqgwB1f)_kC~{02IjBuAyk8>Ms3~nM)hj1JZQzr`2>$fRvif7Fc)lRgh&?9JH!x%M@gXh3uRSw@t|H zTc8d7kBg|#fb}-8Y+nMFxlw$LCZh_3(V(X&0tpIlfDpwm(8O0R{jV?(kCZOv7cTu1 zABamq?#P?>c$KtLW3^=d(w_jrxXKFNLIenoKm=M{h7v%U^A~@SCbFUsY#P1dNSq7G zhr&{jBj+Ys7c|q%1q};`C!t){5{?9eS-p|74YQ#%C=eJq$xX9beL!iT^Wg2&R20^} z3IYl2%ObzzdYQ?HKbcpoSXbVGWt)=ul`U&PFkM-JlA%~2Is0qaA`O^VsQ7CbXmEHF zO@9q6)x-?j8vko>u_g-SMZq~=>{5VU3A6{LOMuMHSX6}K zBS1w3rlwvtX8cI?qXb^~T?W-u4u-G((`=fT%>d#$5ce%W$(lc1fu@STL^MP5r*aK9 z-+%5+p5g}Hz$l#t2+-EN%#qJ9#*mf^k4bfH?y&ic z%4!V+Wmv<*p~e0yBHS904l@7$j!8#g1cz6eRq^U8o<^~-9Nw$K4tr31Wl1Sm49HEY zhVtaTT4hrcpA>18@LM0UzgD;=AtHgdED6d9SeS$t2ZKd7xa;`E_B4qRyrw33*rF)h z{k*v}xHlH_WKC-Aqs^!K)W1`w=*j_bc}br7=xV+OBO zgWK#?MQJju^_0mA{jFt511n0rMF&l08v1jgt)^#&8$Y3xH=+Q|Y;FAn6j@$5zjXKr z^-^9{Spmh=MDpZF=*x~k6A9FRh2?@S8TuvuI1-Z#MxG!CYk4%0yzk}hGdDN66bkpU ziQ!)2{cz_M=Yzr}H>RWlWZ+;$=FiPzh=Cg>7mUqRFXrzn&=f;|@rqLu5reF^Inpnv zf|b3B_#4(rf+D>Z>0fr<)~6FR#UKC%Eo~NPrE>Y8;>rcE?u8~IDtmFPW?^kaJK6(0IlfQby@NpTu&bA5^twqC?99?b2{|Oy_ zDnX44kHKQTn)v6sv;s6vF@}g?e>s@Sg&UOb>iH`C@4%M{;HesUjSauhKwSsY^H-%A ze)FO1Kc50T5!R65wgGP%-~If_VQ9NRm_U#+)C%9-b}))5EiM(Mp>#AQBNJuM(B;lS z(W!++5yfa8nvWKs3RDH7BKREK&_;xm6To!68mYYlkVAPT8tpsA(Rq}+hu$+>kvLVy zdKtVTeEfVztNh~vqJrXs6UIhIcEL(F?Q6LD276Q8vReC9dsi=C(bBQ?z^+F0`tHq3 z$8JV#XvwzMyWsO}7ut#T?s0-SLudLjjvldh^z>rcG2_OgLx(4^@%)N8Gd__|pwN}e z*RI~Ue(UC)+m}9y{5brRs88>`_rZss4SoMBW@ls1bt5ls?{~AJC6UwNZJCrZyg0!A z0|%|ucNW$cLa}IeR!%`)b=ksn6k7TYnh8ounw@=OQ%~i|!h)i?CB^&{ zCw{8a!m35pu;SX1+GW;UP!~ZH7_pylfbrYmL_5(*944Yr42p*~C`Cfz9G(bgVTkcm zDm5Ji6X{?P-G<147C4X73QpmtXj9Bn>{7g~Xdq50t}B{}i;CUEZ;DppM}>ikqNY%Z z)HJG(C?I1G!$=E zXQdW}(>fHs)_}svShNL7=wggV;dlZHk4Qv8{YfbNVluj*OGV*C8VVO>0RIf&n*;H4 zkkOKh!Z8?+(q9JaJ}yKq7Z)PK^hL;EUW&rawQw~nP^W$+@T>w`LaR}@Er-I5jmXg0 z3_tltkqdDenejg4h~I@g?;#F-hB~K`M{@)(^bpP=LBuhDVS59k>7 z6AJAA2@(2#A%gfFuIUdHiX-g21;fr`1a@900IU6Pqoh}})LkV~wnTZGXSK~@- zDPCvcp#`tw*5k+ZTL58bgTV##Ew?TS6Si zmJ;=r7J#Ef5O#(zqKibGbOgSy8hb&C3aT;`3uZMoKSHoUTAhn5*pDQ zq4|EX&>-i8;msR_hEW@Z;gW8lvuVGuo;x5sZ#f_|NDc`NyN(N4%px?HEr16A4*{z6|)XFx2iU;Je_z5BNUd_kr(yVQBo{gq&_jc%B;)au&eoGw^=~e!v#M=mGd2 zfFH00FnS37he9R&2;eEem%{VZKOpWKi2GL9sry#Qao-AE`o9&18omSGA0X`y5D%F6 z5%5pKDTNt_*N$7e`LibuEbSEaIJNxbEQx+$P zccC{^9)LY*CtN`*C?##KXK5#cHx17r?TYDWBd4P;Sah_jUJrbF`hqT;4yX@@^F`8~ zTqM0YJPLTH(_Omh;GYiXkD)m(25>Bm8)NCsWE`ysPXPWzy33MCoAD$_lLC3C)7!Xo z+VyfelsgOfv!UGCP;S7MZ1CrRKL`9d^fn97Xa?jl1I{r6@|i(z#%DtOEQp^4{Ih_6 zHuz_Qe>U&~jphLV9N?b={Bz*?a-oa`bSTVoJI|HT=k<%|^TsD>GN1KU60n$ zy}EUDy#+98fw(q^Yp2im17KU}^WocQ1GWQTC%`U%-2i*&Q2YpO!24*W>22Cmf1U0o zM~PICZlX?$hiE@37x_mjMB6N0qTM7b@{UxCx-32-Z;7u+u|7bgkc<-H0l zfN?zVP5}RFz&njm4om~yFyIYi0%GGCMPv%oeLami=9I$_jdK~jkYk!TGc&s1%pBI& zG0mu+8Lh8p4iD4=-N>}+8kzN6Bcr!(VhFsQ=|Y>By@pMU%DjaM5N>5o)NNyS5A0yx zLfy?gKwy%Y7*8 zdvLz@AkF(w5AQ?%?*q>V!1Dp{d;tCr7%%E?jCcJ<%zpe+sEZ-S#W)0Y`We%y|BUg) z9x(N$2TZf&ArnSEg77EIHr*5Eg82#K8vc}_!k;l=5zm?6{x2ZUFX3EY0{)5-8oz?J z`kLv~ea*OcBjy9s9(VLCGk0!7` zMicmlV~n~_#+V#+p{6ylp{B6;q4@5#p)zb+s3~ZBXxrea&`!(}>e_D!4b%6Bo*1|k zTBpAfdW^gpYSdj1CC%4EcM&&3cj31~>$p3i@V*FD_TLRXUUx6F-tt~(K=Ava$8P)- z8r1w-XaN2q6c(!r+i!9S>$QvuJ0WxpJMqFJY`<}8*onE*!h)6QVZqzxh6Q6Q!%mr3 zhV|-JhrP?K4tvM4I_wl$6Gl*VVaKqRFsF+xVF6Ja!ibygVVf^^hMmB+ht;DUVL|mf z!j4Ve6&7T8H%w7!2~+fc7O_qm}%_tan?{=LC|ATZM2SP|KQ5~J)5 z)3ZCU88a2@$1hS)Qx|oZvliQ5tXQm&pc=(`L5)Hpsp&R5)F_&rfOdm0WsQ@}x28KH zsHQtI7{bOu*yNhcguX^$hydP5@JH8d7A69n3UoT~%mkbdcpl&iz%_tZ05$<`0^ACC zGvMuj_tX&B;hJvxjT)owIOK60a8FHlOHYl_a=IpfI8)Qz)Ccsrnr`A6-G<*ih#(qD+qG^3M1FHf*5LF5kT!)aqQ}z6=uUBz;CSRM7ot;k-C-M z62r4>;fUTHyJ%7cu8$=St82`2$%Ao_vHO z5(&^b0;XUg2JAs>M*GoO)Q>KrE9eG%jeZDUqmR&Y^b2SUY%o|U2(!l=F(syfZ^i^H z4J*LrVe_#iSO>NVJB+=9UBT{QA7E$k53woeW9(Dx40??HjxqQsT#l=7Uwkhy77xS2 z@i;sYPr+y7d3Y(l0I$Sr@MX9WUyEM^0YA&^as-hNAuT#HK ze^5e!Sl}oaCGZrm0zbh9!6w00!A`**!4bhx;zz+T;%5PTV+l?WzYA^>F9f#;TzH$H zgd(9tXeVqSLWJXmXNlK@Q-n=Kny{J36t)p%!nMRwVGq$P+(2{*yM=p&EkvKNm3T+^ zCOR*)2nU2R(-=Jy$;2=TObV01=YLS_-Oi#f*(F;AI)Fh4QBGo*x( zI7(Papk%qkB&nA)OV&$vNO~o2NzO?IB$p+Awi;WlZHVmz+o`spwtCwL+bG+mwkvF# zZ8z9%vfXaG*Y>dOo3`g|FWX+Xy<_{a?Ps=6ZU15WqwO!Yq|`?0Bz2dvQa|Zf=`?Ai zG+vq_&63WM7D`K{RnjHWRZ^3*S-M`jQ@T%jSb9v_Cp|B{CcP{DoAeXuW9c*Lx6$&3Wh-TzY_n{)tXFnXc0+bY_KEC) z>}%N%vY%wgjhB64LV(O zy5;oP>6ufEbAfY{^9JX5msFQ5m!&RCN39xV=lY)OQnxj3JKXlTop!UhU3UA#?V;N< zw;$b9?ppVW?o-`U-LJWS>i(JgL-)DCN)OgU?cw9$=P|}(x<`UXsz;N@ZI2<3#~xpM z{OEzn1#+=mE)SAVluwiA%PZvz<%{GS<;Uec@{{s6<)`I+^0(#ZWo47HE@Z6Is5}^48GLtK@ZFHH zcgN{Dy-{z{oApilwFpHVjN~GXk*3I|7%s*bV~S~lC5y~ST#_-#lw?iF*Kjq) z8dFVEEu^n)(%0!5^oJsh5vGX7h!#UjWL;!KWMkx^$d+hRbVGDw^ug(-7;{WrOhe3} zn8ujc()qEbxP$S=_=E8+AjK+EmL(b!4<@#p!z+^Nk{XiMr5aNYrnaOR(@bdx(^}FG zrnh96GwL!LGS+6S%Q%!}$}#0M%`nbroY9iBEn}Mjt-=gwH8vL@J~n>-g87NDiSsMw z>rqP#YDq#Z8K`9l)eRxz5KnNIP@NB6cNx`1x5Tw19r_xp`#V;525afSTjrw{!wkdn zxyz$rOcpnYjF*w|Be2cVs&9{Mjcku;jcHG6O=?eVO>NI;&1g?MkbYo#iyk#bqJw`! zbswO*B-9v)*X6({AXJRcN7bknUjeVIrLZ8HvO(FXT&p~!G%ME?;tS9svq zQvlhdBI{KAah)&O+I|1dtL-X3tV?YSAPN^#Ad3^L;z z#XOgnc&fNV{Gs@~msVZl!RD3 z8Kr_iIs-(XF!=yJh;VrUnv0514n7l~g_i(#87y!Yhrt+h+*$4-uR@Da4U)?%@g>Mx zev&vvyh&Upt`MbgKh~fnh!5$vhNR+!C*d|} zLc9vE#uwp>tsh?|+>9T=n&A`7L%t4g!Iz^pydCer`v^VSAC4Ns(cW;>dj%{Qp+*DR zYe2mQbkKl~*<+kNW{gC~B2kYY-VlWvqfy;-)HogOosOEOql44Y@fg%|2N~n|eQzA< zjYoSYc-F=D#=~cFLSw?-#Ky$EiM@%(K0w9~P*Xg{#bd@~1bbsDzwe#lS(l1>(@z=#n2uoIn~r+Z(XkA)F9Y>tpkwne<9w_s)10|Ci_0=*HDxts?agk?Zpvw# zVVbdbM(@1d#Z61s)~?M5sq7l8QIGcOQS$&Y4j^uTC(OG%O*m%6F%E~Sz`)xOiS|aK z=163|&KtbquA}Db$lT{?;zv=Vy-EDu{5}G^R^0nMVZP~U+JzZ+Vcag5unRe0dovL1 z%_lJ935+{|0bxFY?ae`44uWHI4l?)hGI9ln6h@>NXa^6i;An-BRt&ra9+`rZDWLOk zAVw*;Q3~T3V&fTNlTyKXDLAFV=%p|!6$4(1flgv$C$Y&-!GT2!KZS9$!sw?M7_AsM zOKdz#Y=X(J!3s{RFa|4(TE#%HVxWuI*hOrbsNg0kxQPnmB!zLJVqlVD-~zGn0Td9{{SN((gW)&A_Y3xu`_XP<(;>vw6M1N*V(=O*NNP*G$Q=%(*dQTl8P^bZ?}U4$KLfE5kr2j6`y`0k|OyTRJvyJJJ{ zjt#y$KIHEBv3JLhyE{Jk?u7AoCj{S}IQH(u@pmV_c6Va%-59IO%#6v5;rE!B?ChBA zn3(toLjp`+;oXuYrAy$*lgpNsE-NivP&l_-dv|P`S6_!$-zKlVyIy_od-dJ->Lb`b zn(Y&_eJZvOuGO3E^Jn=D=s=d=fSAhmMX-I5R)*G(fR=%4OPth z0EcKt2ZKI{_XR?1pdZxxXi!7tBWq#Ml?z1s{^D|*tY`+O%IrS~O-VRGaKA2iDzg5bjpx|pIOX`}EXqlq$<6#_rgRoNYvQbm zSqo=4FIbaRos|_*x9WuKNw7dS2$x1g+QO!b87Db-=s(bYNCGpmnQ z*DY#ZG_?5n;!!n<8owHC&AOV7nk7qCEjhmA!jf;6e7f|>(jS*juI;NmU%Pnujpe^C zU$pX<+=oX}9#plgb6Dr{Qaysr6v zGg|vvOH@ln%d(aoEpyjbtv|K?$cF11wzc-OzSY{^7Sn#Y{bu{U_NAM-%^q7$Z#lc= z%PlFLb2QoDI+*-1ZRxk ztPz|uf@hB4*&{f21m^>uJ3<$a;CX;60jdFN0G0u)0EhxmqAu+Yz)jk<+9QDZG94Si zCq{7Z2tGA}-x|SZM)27Y{LTn|cLZM;!To?QjnJ1z@KwNf0PX{P0PqpOrvL{4z6JPS zfK%G5TF`xCZ{SCd5hT^qd-BwqZ@CGCw3o;(-_Fr49$}~6?0fsd#X(7Q zyRyUW2>2rv*a_`Kc49lm&el$9Cxbs!dpkc+z~|fX&m2C2sS(T9vK4Nz*y)Apw4iD z5(q_Ns1li-J^1tSd?KI97vu}`Mfu`1dCrjKf0t67v& z+BPPoD(%Y!)Krh5TOC(`$61xZeV?5RQ& zbwrCoN6ArmSjtf?(nq7{kmK5;+T&U z^+L*tyS3xcbk=V#MC5oM)CPITkl_O@a`Zf*9gSoOQ$NwZtL@XW4sOb^3_As54amzN z+^3y{lGInVjwYMEKbEy0J7%ADG7>|5O-9j^75#b>m>Q;~M+2`!Y` z@KF1;_O4dyhBWSvp=yq5$0LvE@yQ-xd$i#*e8XqN7*NVZtuLbdzSe%FeP8Q>{QjnO z@7fGPi(Rq&3T3;zixVR%Ib zS~N#i5K!Eb?weCsW?THuf-&=?xo%0JVBtXzwmQy%i6^8lL;5%r4g(ybQ8jGTMfo|Ryd0Gm zqH_3ADFi!SNysLNFG(SyZIWzkl95evIXY$ijX4EHbYd5c98bdVwzA~>gyj5aek|l% z*zYZ>hPUoqE7M6-g%(wyMdye`Yx8H6)!$d60T(?tAlP)n6>ZI6=d#hHux0bXIQrZAZ(pHMP4|T{Dv#*X;b;+K1U> zZr;k(TtW5qWdkk$v*n}gf>{ppKPi`12CaH+b=;Qwsq46*l$$9Y%g?X+-dwYVTX&}b zpZ~|&Nr_*~w9ji?R8`}W_U~mEk`Cue5^pY8R>ZElm^LRHTN+dM#@e^bdRm(n{88}C zw5zbF=6GUh%C!{Zyf0Q(n(nW?)Bdm2@bpDF|Clpa^hf2G+GCsNzuvj?_Rejomy4H{ z6|^p%)0U44UZ1O~j9J*c_$*!}% zE+5mnF4vInGOuw_! zYkX6}mUYeV&C#V;GWZXI8QHL+RWVOJNEx%}`jV-&b83rfTWd2r&#!!U4Oj+mKNkvbJ+KcPwEiHGeU@I#Y`d71y+n0sb#?(%)O|H$Xon5=Wc0;XhxpBE=#ZRk5 ztM#j^*HGL)jkTs)Q&ydWY;!SN*gq6pET^{?=UEsBdn7qFz}0%i0@jv2}l}{pZ?A>(;KL z*H3J%ZtH4a(y?;O=UXy6KkaWp97qw0*F9RO=*c>!UK&0#gV_@E;U3g1WB0< zI0-l@I1xBoaQxczW5JCF=K#(goD(=_a2_7+?sB<{i?6RzIT2haxNvYfa4|8l;F6M( z!6ksp&o3y55zGa*diAPRYt{ssOe5Vk|lV8w=ZR*ml9T2evn?n+m~p z(<;mZUI8p)pnwoHF2IF2jVnNbrzQoYkfccksUp>sfKpH@N-Yoy6heVeK?^`7rH}|D zLJ2KVNQF{`Odu1=Xqf^&2^IDV2Z4jaQQ)X>7q|=EX?KOY%3bXt^iX)HJk)Yt4Iq@$ za!22Kp5T5YW`8qVbPs=~ZpRhJi~_)|6gxsvEV zSJVGpNqhzUr)pkRi`UCac~v1^*6N6TRT*B^k|=O5Xe>B8ExfDf46~M!*P%!(^Uzp8UYuF#?3U!%QRV?v6-zm|uh33FJ=V?gZ?F zyOMBMhzMMS6Czw8awn`iE^>E=T}%-C?(S|wSa)1$<4#(4cN=$ihEOo1JM0p7!ny;Y zl;ZAE_u*Y3b9a}yD`oBq7t$T}QSQVjcXu}ecBLDkaKmwaC*Aqooq*k1B6oK}>5dcb zxI14)(%nxWCj|;QsgTP(DcHR{Nx60R@|3flaxYdchaCx6oP-^28x|LM;c^z2dy#UM zq~Pc!7I;Z0mZ4Z%iuE8_4>`+HEK9O1pOkfjd?+|l9+ccp&bot_q~rqNltZ5ZNAQx+ zgd{5`SywrWDBzLXk#dP#E*1bYJ6?dKJ0#K_AkUY}mB<6L;WcWua(ho3#!GH5S1G+1 zxhK!%=qs?5voCnI7ku~&KEhW($zM=%Bv<+hZ1y8LOp?;#@GU$Ad7&`mtaZ`)C>@mc z7|PA{8@*x`tz{%Mv=>a>gTJepXf_H}4sW@L-}vN#(DhD1lOeema#ZramMhRI@c_q%-m>j>^;|LX#76gXFK@Z2lCz_H*|;MCx} z!TEsm_4V_E#n?u(0={=;G1v&$p!U5`{b)>!i5c|U_q+D&J8GNj&C`8vpF3~4IC$mS^&2;D-M;t!ho5}*;NhdkpFjKJ%dfuv`#-+BN3?>4V?uMV$`Uc0<+c;Bal1ojDkxC^5vo}(^24M%7% zUVLOfz7NmDv+#C#Ha-VGjL*djVEn~4+!x!9m*92y8~70zi$OlzaIgZW9&W$|4}U>R z@TK@dv>c}&uEJO29DWEtfR`LOh&SO2H3+rhyYW5vR@{R1V*{AYL(hkLQU}e49J^$1 z%XnfNV2aw$AA{|D?Lq)Dq8&mVq8+jvGE5HF9C)TWhj$z(YMsM?1JwpW)BsR?_<%zn zP!N!D*70q}vyMHEeCS!ncO5g5`_PA&9-n}ctU)8WzRdk44#r-?+ljp(62C{Nk%ClG|F1qVqlF6}*~rOcC>cj4kcnjT z0WEph$M5W#ZkVJ9k|Gch*@$gHhT!Pr>@v#DJ>SPWXhq6_UK08VjH1UtA3;czASm(> zNnOOFgf{R*3m99Op>1iTpFjiO5Yd9M0v8aSI3R&7E*&Qr1D`;F5IzB5vLFDCu>b~u zDBzp~c)TDSj^hA81PsSvPFMjG=t_W>`SS4rg4YDGf(QtW6bz@=3tp!G&zU9)CJQQn zXE(gy_+l%eJC&)%2>!2P^H~Q0<8(m?6phdN|AR>z2oeR5Rq3Hia@3|FCv8M(gduB& z9!<|o$OM^WT5@t`Rs>ANQm#8fETG&;T zklK>FKBcEfo*KSNQFFNEyX;Bnj+L7WG71rh*<#zC&kjiZF-=%lwLY!DSi5{Voz7K= zO6ZcYHPxx7GZNbQ{!mjQ0ufmA%(GQ#1s^W?EH$gBGxysx5WFN(NW@}!Nyn4kNy3wt zCwC=(k$fk4=eWs&gp~A@xhYFiJgBqdN>bLR#8I6o`%-Qu9!+^G9UNpj6zWA*TJvCk&IIr0~yX)f=rjJl+4AM!qjiFZ)g3KCCOfw6_OpC zeKh;2;}6;YlP$<`%VBd0at=9v?fj1%_Zhx3KFTSc@y&$aC(tuPVY}*japp%eznJ;s z%u((yW(sDd<+8JkujRpCkY(2TSx@B=v!BZ=W|z%gIs5VKC$obl{_kwRIn(Bp&MBB^ z_F6fyXU?fPr{`Rs)3NuDIl-!66=q^{+1x7=`$9g+FUT#+{e0r6ajm^XQn z$D~bp@B3WI!=c}_I(~2*!fC`oP0*Yl2jTeie3%|ghD6PuRkG!c<5%CC4aUuu{>b=G zEBw7+UZJ`0Y2o+&?A*b^!-av9OXsehyJPOsxeF#I!2~%Q?dL_m6vq_1PH8Wur#zk9 zk+L}jm259Q#(f;Y|0{Ww%qdALxi~gv%5Nq0C8_i3=arA!Fi$bhv2@3j@Y21dUzZ-5 zzjwl?^G8kfDmyqay)1ERby+w3UA;}}Wm;_2s;Z?`$Ev)k$c2UB z+ZP^*@T(qQom@>van+lv$4BEzP+##iLUT|9I0yf$N)YoPu8C7RPG7!g-J+wR`xo_v z_Ju|-p0#-4;`+tc7rTe4YbL~p)^x;I)pUEwmh4XIOEM(?9!BeaTJmG^56P}6V^chr zDqxFUI!U)~X_Rh@PM)5)tYz8FWuNPOGBaym&m7Ebt^Ip#kY2Yuc6rkBl{p7z9GvmZ zayZ)UszLxw+7M3~ZCUYyQHVRhMSIZoX+AGEZ1gRt|TBk{z?l2A&r`bV#X0 zILG2^Y51#xih`c&g9ZMP-`D+E=Ujh%(cF4X(XX+rv7zz9$j6OX)31?vpl>Nz@?q11rtwj~HN7+L__E^K^HEo#cESJe+I1N% zhgKeG>2GmgzjS@j8j`-T{@nWS)<2-%-!QTDe*Hh|H?@7=X4f9r=-xiD>B9$qw98@cANb+-S+?8emnl3@g+NM@A@U4+HJe1ea|~PGZTK@`NvMGTiWg1 zJ*68Rz?*i#mBU;nKSb~1c5yJ93E4COLdr34Fesha1OjzZ%F7h`LVzNLXgiG(L};oQ zO_QJrQn0wKoa~BjxGCTBKzHQmi4p~BmHvm7|2%>w*}%#_*mygyVh2p;j77U)-_7@0 zdk_1^Q?IzMF#fbwck<5r=u2V;eXARne)H{Hi&jcT`z`6L0`Qz~3-&1)R=q5DOd6B!y z4RDvhVHDCwC5(Fk6{;atlw-gVHjj=!Jx%0eZ;MSo>@@B zpohJ`qE8T{Ll3Y=JrgmyuY9k?e672`N73K&ITGyyreY*|{az1^5AmKrBwPpRyag_P z$k<=k&slm12pB}7zNi<-?d09df}#FX+u=fc0p?yhoevdfIcPx`8ZrapVkpH)=3X882Z&J1+JV4)jrL zFLQT|m$`oKQqNcm+|IpGa4%l$y@7oR7uR!(zx)$|p`NLOQ2IYPEY=c($8s=)jvsnt z!3S_;Q-_DE>v4;a6PZLhHOF4UO>7<8z+T3$;@9z;cq6`+y^Xi9ZEOd-fo;P1;Yubo z2nYz0Sch|Jny7;@#@TAzMnG(3UuSp1h1w9iScb4AbhM1HC-$%hSc_;Mdx(95ZNb;$ z8*m-WPBjo5(TZuK$R0MFJ_$eOZ?ZblK%Qp9$pO~FUScn^S6Q9N zLbl`A*-PY2c7VLg-ex=Sjrb;fGp?h;DcWWWzDaGME(u#i8$=dChuT2XDjO9?F{(PM zP1GT>RhcMzRRh&TIjUMHXVq5GTFO(^Mk!UVi#AYd6|3sPUx$A)3kV!9QQPsO>dVws z>auW?XbapRZ>W7#*QqfoKb1}ut}>{iR5z(u)pS+7Dp8fJ>QnE)Z&T;hj7_Qv3C^kC zR_g@ms&Iipkg3X6?Xv!}?Zx|Xcus8g;SuWnc)!pnGK=(TBRhzj*?P8-y#k}}Z@~Eb zgZMi34!)jkXE(B~>>>DTd;>SDF@hi{;s|b3i->wrqbNsB*a(R(b{pHxVj?lIo0Sk! zLQmVlsG+^=LAGDCpFPYTVL8=N{1|>5*Ao#$Byj?7RbLb~i`I$S)zQQ;79;EEUN(Y0 z#S-LOte%V{&#)2XMYf+EWUsK-SiPv9?8R@egXAstB6*L!!=A)X;cwz^;d&~964{)_ zH>)G5LE(BBW8N>=sE(vXDzVB)NmTVzyJ(|Gsxng!sz$1ra#F1a6HHyAb(BJ7RJBuH zs%@fH${T*@&*E?6@8JE^MQV^bhaXd4p{`L^gqua3B20Kh?W?*$`Kv~&^r{F|q$*l< zi;7dls7$H^Rgx-2byoc@euuiCme{1JF5vH~&8m0QdO?ONLJ%p)Qst4Xz?>qC~fa*M(PwH-*vaNOhb# zMvc)CqDT=%H?xiEdi6SWv-$+vrS4SkP;XOXDxnRbqHLl?cZ4^D*Mzr($?8OPx;j;z zqE1q0sMFM&*e&d4wv#1QAlOq0Rijj{Dj2e@(x?JdfvO;o_3lycQXf$7Qy)_ARqs|G zRPR?GR`;lntKU?gRG(J&s!yojQlCxry&Bf{K6$h4X3fF`_&B^v&P~VA+dP(d+SCUBo?23A1V+Jw2Y3F zP(fr6C%Nl$&xZ@rjWJ0c`8@XFv_`FEj9Efz39V6L@$L6DX?6Z}l4!r_es#gdU_lTq zF$PiED2Z8X3P!e=txn3>nd}IVBU$V)sm>0!C+&?=oxMdGZqG>#_I36qX@h-}{aSmA zy~*BaXSR!w>16$OdYRsiu&3<%WqNxgi?FxIBJJz#2V{-*&Gzf;`|Zv49E{e-?2tWX z&)FO8bq;!m2#0V7125=sv^eM-IY*15&Png2b3rb87mEuTg^$8U=|*v|sIO&I|0v8= z=L*Z9xN@!**8$glSI)!YVUcqn*2a~jQlO-jIwhwxDJ{x=CGzTH&w@DDPUWGJtK!v} z>I8L`x<$QSy;I$-M&7tL>22}Hya{j0yWfAn|DyjT|3UxD{#X1tZzRx7oYi z`QWvF<;-V~315y1^C|VcIMO&f=qEUyLxcxN*8TecV9Y#W*g`7-xzz$Dw#E9*-yDQKl|EJl&8U1^>da>GA1_>B;G->FMd2 z>0G)gy)NC7-VdXFu?$^?-a1a-lF^^RWm>XP7M?|B39{%cn=B^FHcOUepXHe4oTbYO z&oWqtvRbnGvrsmct;^PDbJ<`9G6&1SbBG*Wj%5RCwX_bjqBdQdzKv@$wprQ++EBZ$ z-PF#to7?-_E$tWEQ3uwc>wv|$I_f%%9rYcJ9St4kj{Xiy$3VyMOZm4^E}4={dk1I6 z*>1vD_=NZgkL~T99c*Q`Pwed(2j(|d7w2-Rv#peJWZb2;QpVpFpI|GdoZ_4xOPT&B zGUf?-p~YX&_zT|)tQVe}>&52dUbsHo3y$4u_y9aN45z}_B8IWTw#DRgjEo{1ls^m6GrK6IGkQjF&t$gy(G>1E_RNcX zE^~iAO86`gR6$hqb5tVmr7l0ieW1FX$!9`=FPN}UdMlsV!njRJSEK}{Vx=!g)~QEG znCFcmeUx9}-T_CX63SVi^bw-{c_ZB32sWhvMf>FWD5G=&OA(?hU*SHH0_R6KFh0Xj zB(mn~jq3S)8xVy03Y63%p*Nqav&2FjKz}L0FefPXhRa~_c~t}{b>tB)pwNC@Br4K* zBMN!zymgVfXa9$^?*NPH_})Id?9vfLL9i|sup?^FD7w3VSYq!b%Ax{d0R_Px=Tf8# zcCljby(=pAM2$vcO)M+A7{#y}TdaKV+`9|=^Ix9td%n5Mo_VLwnKNf*?&aQ5=zOew zH26OtWSnoq`SZgrCue5e+1h{`b!2cRgDpxAiKGyUDD-Wv(nnfy*!#+ ztfq~1DzB4|ccD){8ptb34Q%uZZy%{aUf$pk@$!_;x=uEiI`J4KGUp9qOYAiU7v6HE z>YT<}*Exi&=_%zuldF8(^$J5n>jvj_P8$@(K&*Yu0eIL~(8I!4s>bWZd4cKUe zs~`aQHF)tK&kBs5^y6ObRUz+WC5{?{tx=x;sHbYJsaZU^fF5 z8tg-C^fH5kw~arDy*HYzL_cua)Z6C#Q?RMnYM^4ElhPWD%P*1VAFP}ZQUm>#Z>XU# zG%HN;HdMD(GDAnb+)#}|BE37Khc|`joHdYHgS#q4Z)K>jGq{4Q4jN;1gR{4fwaVYn z3{rERAmu*Aw5eFG;u+%amg1nQ*xI((R^KSX#^3{Q8DFw=H9ppq_>n(IZ-`TBG8$!VOizFZF47S|jW+!X%qW zb;GPG$$JKJ+H<6;F3!&=!dIPDqDOOjZ?$}ne^ocv)^4s<-;sys@@ns7RoxO=40Lp@ z^3KZ9-Q}IU+H(3NcTlLdb$6|zD3Rlro+vecd+Ke9m1C^C6f5*LzOoq1P1?FzxwFjI z5$_2&^DE3*&R^T`t?QMg4s>?(l{=T%KChu3>)@-)%4r(o=!@&Bqp@03Uq@$<7cALG zTqKQ-O|Rm&tE18VMP;LEyHTUBWVF&dm9#d7lvFY@Uq_?N(b)V286zEyY$8umah13m z>u0%Ec~Pyx>xHe6O?@$=!o$+_q76qcJYd;$W5X9tzT1s;R7MXnhCOOn)DUyPLoHtT zRVUVmS|2LkH9JJj5*+-CY7-tNsSGU&74CX#YlE|1b`DC<@+$TKW2?Fi!~=+`ZtrB3 z{VRjQ%Ut?m#XGrQLS=W?cS>JOThdioU)|_R#y)z5k@eKO8f~i$bXF+s&B3l!e9g|v zuC1J(%OZR#C;N6&DBXR@&{O5zyuPxsp|5)|B)%RQ29obMquk(OtgV+hW29B161ma6 zgq%xkj2>{-0cD2`d2Nkt4TY7n6^10E#^{TIrdscBV9APs23x3WyXqjCOOF;>Yaks z%KGwi*hPecQy3XB)|zd;PR{v;rU`oTF*JT^>#gTQD8JZ#!$75b13oWREhc}1bFr0= z-pbwJrU~KW%?HD(^E)Lep2>CoDb@;u?3o-Y&ugQPw~x18)(KkL+6Ib1m0++{Z0M!L zC^j^Px^Cc|f+i^SE)5j^1}kVYe`S3eYrTAf3YXM#MfEC;E|Mvl>x#Mn z7`D}fwsF=O8tFc#PW`fUs(}@&3?ucmPwN$lOlfV9J3=R=K;1RKWf)y*r?)k*$5qgG zhPEn0^Fn96he6@gtJwAy)+YJIw(fo{%zbF4{;pLLdJm)oJZ$3EKu7#vv%8bO4sDyQ zszLwjvId#DR`EB;6@~`&4b?PalT@8F&G3J}&B%GYuU{+H;t} zo!l{B7|1cedyr{^EifrgK)zu(CVPLzE zTO}xC(z~puCw1wGOy6OHN=b(Ln1hun%&-tpgR}1?Lp42>$n*_)rCFw-(l(8|!Iin| z+ZtNvnlvb}Rh4)vL&%#&;KO-ja8rfotV?8t?_`ArwU|$I(JPCZ6mB!rjL?&)=ED`rN0l^lDl3XA>8Yunbt$Pv zhPvckS=B&q+ez;mVQ?#vV?|@ARBSbFvA&YQJ|aP1+u(Fb@5uE47rJJ}Hn(&oj?XX; zdn@%a2ycVVkX`>836Q!PDnsQ$loVp9Imf1$P-ueEhv!$r+8>dX;v9<(#eDCckKxg|m>BZ)_8~+0GOPha(_86d z9f@^VXTGRmDL$(6nmNc$j)esnUz?PjH>m%Y=xtQQAR|L9%=Nrxi}iAp=%Dd8xT}gQkL$4jogQDaTs zbY6)pk!%C^^GJn{$g)DthMica`1lukD{Y_<4Ap(+Xn5E=ES#+MJ+MwKaWc{bqn%#q zZb)*~k9ZzQi_r@#K%airFvK5KOWOR&)_Oy+4TeWf6=o1l>X-RpwXWzKg6!vXGzfbN z4b@P(&fn0PR|3_XgXOWI;rYcequrf(?eWbEgA+42=!J&C237rmyj~qSD@&Xc^urB7 zI&0-q-@=F|N`2eeKN4+dK;zQ4J%x|bvVKW zg+6VjVH7hcH3nIsL9TN4cAuf2d&9`apejb8sXn;aTUCq!U>vV+ZDi4UOfV{AYoCx_ zn?7OL<9pud9%1}W?__Kj;;fH_Kr6U4_R`BrD(h!IaxHRw zHCkKyF4o)3A#_91&qZ=&kz@W^J?n9vitSYA(cg2}6MsFv3_r%uKy&`A3caCp)?*gM zhRn`TKjN93Iq8KihAIj;^{l7Cov)mA?s{SHISLo`FL>KQRU$jD_j**lsQP(@j`yfO zF}y~GGD2~FRo6e00}8Y6prObxEK#Z+hE5! zVdxv|^i83{<{0bij6Z_gHY%eHzQabwT6%ej(#SmZEsSn@B@dPr`s%HB>6xpM#mzM) z_SPBgG?){NF*@U*e4|3=thd3hv4x(D@_ZvSz0q9-4`02%kzGdC)+!@n%bBr7Auq-% z-zY0IG6ypD2P2YxG89G(hEC4en{QwPRfa_$A$Tjc=xq!_u|B=JL0GI$8ETk+h8c41 z=r1n+rH0=9(_sD7Vm3x!cs%V(;mHJ*_(SEU#VZf$4XgUc1IHeCP=hxfq=DTH`x~qt zmfm_$;Z(!{)xhdt8Eii6$oC!;3Cmy$VfC>2A3VtUqX*T1tpn==+X8kf>`d5P*nHTR zu#G<$TaGyc~GUu!3KszQh4b*LI#wdk}=iHG>@fDYniYDdD$vcwFwI%$cJEfi*XRIWMCN|sJl8&?ndGN+iB3ko&jb5S0_E2+Zz)okS?s` zCn+bUvrWl|TewscGI%=4F_&c~!HF=Q#l?n{I#0j}%JW!}tf7#@G;8OlWw3RBXOhEW z)3M2vo)i)%tQ4UZ z%iGnusd1@m1Z|iNTbz7b*powt*@oohncI_gWv*wZaq6+KT|D%dZL7~TFH&{ATCy$! zlS5K)vT;zAq(Y|E2v?X^p141IJIdIO6Q&Ci*JaKV4kzx)$`<}iv*jllr!P)2Gvs%E zim|LXOa5%0=7ry!6~eW-^em$|8{f6iylZHO|ESPp`!&I##amQK^D=g1YZtejbKP`a zv5TCYQrRYHhe^j3C+f8Ka(mXn(Zu%zUH5HFS5Ma>w~|cpm~}bGIzPpE?J4*yEsSOh zo6EFs()?B?KV(L3531aHBdX3T~@+$1MUfZ>#)~MYs0efuOtsynvAOAGng!sX|$@uvn**@y)kC4C={xRuV$`3SD-x-d~vRN;`HXZ32eS%7Q>%58u-KD}5?IPi|DFV~h7I?U>S)Kn9RGx?SjIFJ(Ug&vmt9{Q@wK^4Ne6yXb zJeagbrd`EWv7t|rGzZ|#9#~tm3=AL_A)80jtQP-$-_<4YHD^q+45t;znC4j8sz%9w z*kYWmQ^*yzHpn4AaRm!($ZjVEK1ls!%dX4Vn#xS`SqQv=>TeQuumda&5Acvn8a4pA zW}wxwN1UHGk~`IK$zb!?axNX3o2KeWQbg>KlBy^x%N;A@8>9!hua$iFu0_3Yl!aRdo!bIks$do+io7$;sZ`nx%D4RdGq)|0Jom-@4#YbFx!U zrUZ8UpEakpp0KBj@9`e<{;yPJU{FT#DwLPFmX#*r-1IcRt}D}ZpOt~N#wj25D%+L* zU0zB^4L0PZke7TgsiNye*LK!v7~9KwYFMxWQ%Xt!+XxBKrm*f-GPcTrEoa)}Y(6W+ zER!Rw$Gh2>X?lh-Z3iwKFxoDxQ$yBOPOM8qq08Bnz{A3XdpDUF#((Y;JFm2o3EFp> zRW=QB9ax&6`JAlzjUCKo%W(HglhR($q&V0oo?iAx#*vIQ!k5&|={d^_SdKhtIs1j> zu)j@qXW}uIV~t^L_ILqp{0TM7Y{;IotmKQrG9oMCl#6hj8A;gWki4`7RCr)vV$eRQ zd(DE3G^QPzsIA8qe9v~x6*8Wpp&QZ;2uE+1)chfM++g8_!;tbT*WiwdkV)jr{-uA zSV2lnsu`fyxf-Q zCJhpTce9{=iK4LTzHa6+tMmOL=zNWK>Dre}=le?1r@9tOVQE@+V$j(kCr|47l<5YS zX(tHJbn$j<*`W8S!8bRj>*_~nGj%S8?)`m==Dsjc$R6HeZs3HjYXWO^depC5 za_>-`%0cLe*7B01B}5^f3)m}ZH<3&;^P z|1w?Q1~TEOT!7}_Wf!t;uZ7^x$=gsx;Z4%lL=AIdIl^sQp@eB032y}LWXHLGAz@;m z0;=?*a7)mx69V@MzX-Y?8VZ_ZRw!g(rV+G0OxIJ%hCgKzE5u(UJj4H0ZY35Q3z!zS z>G8=MTWGi}InyLD%?dt9G&hAG{8-qg^}?S2;p&pYv@L`@M)@qAScW|d>R`hHi5+Ga zST>2A%OK5j;XuRGRScaI{94d#vr5tW3qe&=!NE_7=fOf(w$W3l;Gu0I=V9{kZ+K{h zBJ2h2HbFP}qo8$6)D$I~xwtqHT>J{|nAv#PB?)Yls#GXr!O&zZIE862tiBU8OH$6H z+(`;LB=UBSv4XeB5^EDP1#Nis|75O%pk0}`odqU?znvN<>pJ}_vKY%>&SGytWN~r% zw4rNNW*T@y%jd%|<<0*(*7~dw$JtNV%k4cp$SO_6=G9BHrM9abRB3kez0$lKmIyiR7gQ301G0aS zdDvF1>6(o#i4)6i`<+WonWKl?F1?YEIUk=DwYBnUyhO-w@UU~(>dZE&sA^r0s-!7n zf%59MLbhG{)>Q4*bZ6a_fTjY(+gvBI6?C@~(96<=`mR+f(o3yaXclBwa~oRiZpvIi z8x6g$*}#@&R0roZ#aITVu_GSIX)>9el?-Qz$(^f`A~OSD4`cIW!n}rL?*$8Qh#LQ}y z$qEJC+;z^!J}KQr<|3qPiZVU4)pzpg{ID@AF+KUv988EQX;OPbuQSaJrn}#m>0aN= z(|%0uv@2=6^|*&&uRkX1ylXPeA1o&+>~aD-R#}$##x7&we3$C-7KG*Z&kk&%6>8*~ ze4XW>F&L*EWi}mHTDtuqR$yz(a$T}CPZGDFAd}J6^At3ftIJrREjDO-GPh!}k!2&~ zIyx)ZLThYStgVFQY%S+cLE;kdCTJ*UOW4^RA~%k6PN3ukGF2jHMSf-)JI5AfZmpS_ z>ymgL`s1i@BFkgRJeDV9v70w`oonc7Un8SZ+W*7>&F25MvmYSWZ+g37CVQ3sR>;8r zS-Ui>=)~mh|7$0PYs#_`SFvL$VlU1+ylied??$UM?Ve<9hg7ZIuCmveH@0Rb9ZF44 z*_68SS|;x$?O{z>&=<}!4Tfqy3%taB&`PW3&L5NWl6U9ye$8~3m*r?mAtBh2=n6I_ z^}mujzIk%5GBc}1YLB}Ol}JTiluv7jxeM;3a!@r?HCFkmTBt%*Iu-vfm9np7k&M4m z^|h=l71oAl;zDIsW{lT%lrk8lQYn+e%>k(7z+$~&qhT{<`8JzL-rinb{LQrn4H`FY z(xhqA=FQu+Yu`Q~phJg_9o1@$MyLDfCmJzgMCgbSyo~yCPnwAPEGZ1 zZY@p*2_+qc;U&HQGz%;s|6JH-jIuAVi!A&X!~GS0Ww89LG_!lDg_}>7W`C?J%k$xG zvsnp;IgVwyt9S(5v5~=Yw;a^US#Y8`#wraq{7|g`XYl8o2F2xmgSAU~;ds zaIc5k5&llF8!X%#E!>+d+?y@jTP)mLE!^8I+}kbOJ1pEgE!?{-+`BE@d*C+nXFuGP zP)BE2zRxtf4_denS-20wZ8k^Xa6!7tut(u`1+4;m4DPC+Zm<}F|M;}o zeG+aD_<6z>!d)G-2CSv2`3*%UfaJf5;e0+I4*fVhZfwqJ_YvDczw^>Hd!`%wutzj=%xP9UN4u1Zy zKU>8A1@1QRYYWRw_wlYY3pNe5Eo>a@64-&TqhUwIOq@0-YVw$FXJJQfGi z!Pze+cCzG{I6i6=TnS<0;}Me^Nk2hv(O#hMP4(UfcRRS-n=p^bO>{i3T-bP=^ffs) zKAfT=D4c`X@X7J9(a1NJ(3m(HjaRI2MqWZp6w04AF+3)MqQj@4j`)k49EJnX;4?ag zri_UiA5IZ5u{1I^JZv2JA)Q`DaZ{ouj~YXx_?cp(rNhCHb8O5MlsgUHJP`Z|8$W&; zMewuo_@RTN!$-zP;wwyq#7H|H2RHH@!ME_}_z4s~bs`u6f)m(A$59l{IRlJ~$BB*{ zjK?Wk(fAAnPJ|1OjR+eRPG|$+yti>-k>NB^I_nQKW-^Xf0~064j|4Xf&B2LdG%YH8 z{AdcB5{9!Er7nnzn$EL`jznE1gvZ74TtP^tCvia@07A4x0dG#`Ht)M@PcZ zJqF(a3O7Nqqk4hKaEL|6aBfPCijC)|ym5C#RAjt(Y8p+!d42r&G_k?qlAo9dMWQWn zu;6=WC~rheXeh-)y1+#=2K*TbHjIpk86O^oFaAiii5WQ-ZKXKrghI|3&fWOvanUhT zqA4skGG1aCYCJxiw+g9yBJ*EU~6Cr~PLYrt$21O^GYMtV8n@>`{2V5e7uE? z9u0Yp4u_cI95#{V=-`<6ScnluXk;8kj*l6MPK=L^8Wl4dBPMJL9}>+?&F7=0ISwX_ zN(c|-@=O6^VsPl2)B)h%sF(@h49@+-;eX>t!$T6g(Es8uO1%^-E))k&@-7$|8y1Z; z^~%|WilfO9u`&2+RQTjDYHS)}jj1s|KrtR%nv4VTFs$QZ#wYOMEy}?}B#46if=-7wL186j~j40oetn`Y2z2Y$t0zqen;JN6a(H)X0QHh2Q5zc@HjO&*@k8bVG$m0D zG)b=MG)--}Y>LO&i8%)IV>?64%A#|4GzJLzu-pfye0GiQioq`)7>e^7J59wKvj>~yrcBs09kLTL591p_jggm**?8Eb^0AdR&prq6)u*723x8CJF zLl|%nH2jKUXQF*2p)BvVa&Io9<-S@jmj696Wq_k0Eu!?5L|pVMufTt%FZZTS7~ql+ z_T|S(nw;T~5q`F(1aWpKjuDmI{h_oa*MPoVB?o#qJQjT+p&)3^eo+ul^H`O{xcTH5 zoH08AXRu-rn!FH85>OMKAkKxBK#Murgk!@ej^{I(3C4wo#bV+#BTLVrE8}YgSD8%P90_#Xl z?~QcD)<7moJ=#+>5fpsvA!0cNjg#>A zB9+mn9AGSJZE`s!N?Htx1V@HSw9a@}JhUTE-x=VuOy=AO6!o$H$;79KXdX{S8^K3T zLnlf7VU2RpUmk-@IDk_bdHkl6=oauF`#X;lykEfA-JDtxAz&xH#PIWlHkX|-Q!k#=o$U_g#FVL@JAV1i?_Xhv1*MVaBvtXHqMxeG z%9HT>FtiW-e+B-${nyb?ykDn6t~lLn;%D$ASF)E;jYgcxWi_Hq_*c}I`&TtlFUSGM zuYqkyUVWE|7MN&1P$kJd_L}79x=5|)q={z!$jimc=%D3IcfR$24iON zco;XU(9d#wP^cG|1IYa#P7!Yn>c{DF6ZH$@SVl9ML|dTWIIgrrqMN`sj$eyZPHRnc z1}KJ!O`M62<5WgA9Y#p;159+iDc{@4@JEE%D3_0i=FnFhdkvFld&m#RyBC?_p&vND z#pM-rJFhS3pBRUnI`Q^^=0GoSdeY>7fsa?<3+Q)FkDJQv!P^P^y9saO^#WcrMWQWD z;JFPA4mf7_6(dLPuAQ-4lnRDGHW zKS6&xki4cBD3^zes4u7KXqSylRy_>k+eRj@K8a&FRbONBZ;JBy_;)kaqn9*ZtLVUg zJE*y~TtB0xPq#_*jtMV9e%yZvms`;5Tn~fpGf^KCRhj5-8+rfAtk(l$oH?wJux*Kn zHpl%3q$eAMBc9D$?hp7?q%xaBV!3kp1F0VJol-sISyDaZbESI7FY|C2$ye}j(CIuJ zbS4i6y(xyvnPOZi)klJd9mkn*<*lJd9OE#W^-Feb%kj^M(hVt zBb=L)SrXQm@F3_}K8~~|T*UPd<_$A`GlyeEIX)jr!n;b1%c05>I{2Y#aYx(04;ds?LD>9~o@sEFSS;jf|h#Pp~`Z(srQ z2FJWkeSkg2R^YzCTu+2lm2gFUC0tQo6#gIe zm3>oRDL$|7+o@9h5S<1C4~O0s+XFlVxVHr!3fwZjB77L|up)miUDTNW$Zr`IC-*cMRndDmvN9K@!%kXSdc-#<)Ur0(i{Cqop zzQsYN{^Rk(@Wa<}=KdQA9B3LZD3L}1o7=kpXD0o^-BE~d z<}dG`vA}$PW3CU!e7|A^ZD9_#j6d$1_#9it=h$4n3)WNIn6Zx3n@mq)(PdrWGwxYiFD#tZMtSZOzOh3t*%Tp|HzKAE5 zlV7qK7TD~j>oinv8N{(Y6y-#q?g#P1g$-6JNt ze|-3$@X`Ip#D~O2^~25e3ezntIwX8#kFZ$n#MmBT)4Ih+cZ(mdjgRaXKC#!R$vtBd zf^pl|!qkDAKeyww_BZsu^FtKu6QuYapzTc-L^Pdy^cU%X{y`=x`45!{bqeO;E@hqi zaeCuxkcdG=y!2}i5rc~O$FIFb3@T#P*Fl}6{0E5{1W=HOIpqBcz;hv_Fc1F;KcOc5&gEw| zuu7D7X?@0k*NO5i4kr?Tk409M=Ee@(|iL+X~3^d@!_O&{4B*j66_Gyml?p_v7YCcm!ApTT$~@J z^%BQz#PygIo&|hHOfQ9V{Jn`Eyu57SKyiMO@}CQA**`hJl0HXdm|S4X{+|czX)&M9 z2cB#0AH-h(Y-L*S^70k}55auN>%Iu?#jssW^C#!W5@2r;OY*{T8&fz>vlQ6P6mG`i z{YK=?^Up)LcwZ52p5HQHf7}NX`31k_z?SV>0c^0C4_5*gK^}SDtKjCw1^P!O??S6h z`1M4NyO-l&$gMg5e8kykT2JukYw%-(`Hknd7VdShhY`;4dbl^h^82~w{@e&$Fo9!9 zo;dzT4Cnuwj=X_OMU4O9H{oQFzqaMrT3qi){k;kC{lxZ5>p_mC{Q&OpAU(&n;(UTT zASQem`$uzoHY2>NX}!mJu?1LM|8fAs*E{0)N7}7$Z-aelTJOP&wga2jH+((01K7MC zGGnv;Scdzv+*ron`AvL|SD5xIJpWz5J;eD$lHc9HOD)3p089Lk#=~AdwF;(alRM3j*bKWfcqL;ez-XSyhd!FG(JxPx1V3ZpF-d~^LRo2 zr+`>0-k7|50L&caNB%SILi7J_+}`_5`Q>uZV`S3__Reh$Cmd;t^&`T zQ&HY;z**4u{K1E0Ue3OX`c>e6XY=P1eK7B2} zaULEKIVNf>KczBe;-uKP$?*wOrcRsQ!mnj3>2ym?2d?jK09%d+jxFc6o4{iKU_ZnuH)8()bIOfn|J*`+%l^3yd^o0} zK6ijmTj0CE-Pa%=@RRSg%F2wh2bwUKH*UV=Z}ti)z7+bhY{q}$*|k?&hVKqYHuaB` zzdC5qf8sM{e(?PMKz%IR|0l;5^T9pfpG0|)#`AsPTEi;Z_W-!sPnh3ud&z7p_4Px9 z@3oL`J@7UQ{0P`me-{C-wg`U=d|%w(OSwM*er|ycz~%Z93@iqg^ra;K9GB}$gg*ry zF3um4{^z)_h^6=(|BUun;cZ?nFMk0a7xnwCa(qV&zf+E@iTY6*&(9FQ{%naqaME-9 zq?y-$z$L)t`VaU8@H~t5{taxf(2u3S=f(0R{m8K=o;#Sww-NZ6S>K|*96LGxHoU%kzYl*dBM-&&2sDKcHidJ49&RZwuaJ$Uym0)^G#?;2{R8Y|x_<*m zuYos;;Zpu@fX|xe4|s9B_nYwFz6qDsA9#X;_*|dwHm|?nev9-|nZyqs&hczfKfqza zDzW_%KX~{&QC~>+Lpk0k<|nO>I9?;px6*oxz!Fpd$oNG(;$vpp}zV8vg z<4}p;e7(&vndDmro%SzqzPW#ZKLB4tz4&~`!#@I-;klw2e*#`%mS2Q_=JCz@Bj7K< zugv-!_$%;C^Li7w4EX+LDL*-%gOKrci}d_HzF=DK@bd9EpX8?T$uZw|^5>Hv#M3L_ z_{X9=CGaeZ@~nY#7gyBZ2Ka<&zsB>k1r|j8Ahp*HIL`vx1FyEg4#3O;I|47Yz)rxc zEN~^@o?9!*cLw$}?dN#;F2IeqRD@RsF5OmvU4eI4@Ehlclm7@Q9IT|OzzR`+0Km8b zf41l^ci?*#xEgRXQ+%G@19+#od|*%D<)-lraiQwKW_jas#!c6?ps0J)psJbnCzYBv zs4vIv0}dS9GfuAAiu^b>e*f`nVDn;iM^pT-iA};gyS-Njn{XwAx7&s2|?tAAItkAb%D+N=I!LhQlHmDxTQX?4{UkAm}7JLp6F+8 z@*r<~Zft-sZVs8pJKWyzJ7$4>fX(_w29?(k*t{P!$_2`Z&fna_oS$gs(w?ys^#@F zmtW0P{oHW<4|U^R={`BUe2G^rubrgfxk21byyGZaDNjv%Nx9? z4g4(kTWx{=xBV6mx7=@WEVc)keGfM`mixVS@RRoQ(tOMJ z`{j9SCf>{|^GT+~06)xjqgCwp<@`EUk~r%6R)Y zw%qS_0=C@mh5&ynZ)W-Fj4*D@^3%nH&GOULgimke{B#%lqZ|D8h`3rg{%I2r_bA8X zM2vUHP(L338uYgnRWHXUL|mgBmx=Lfmg8a(*DA;JMT`%pn({M<>FbnZcX2(TD#u4n z_2uiGA5i{gQ+>@iUd+!!9G^TqOvIk$_-9jn&GGk}>TAZY#rQSL2g|IOR8?x>$akmQ+%^#C@2ElwmP~dfZu#@)0Z2CxmeWD7gJFlj4uu^C z`y=dd*b%UyusYZ<6CDXU3U)MXIBW!LBtj@H zE*fgvXOB+yo8HmwaD2<9&CW*kTe)@X*2dfL)50gLVgKo4$FA{C^Dh4Kx?>VPLKeK~ z=cCq<`|H_VC`^3SXi43_JN&%&%j{KNO$P1Qkkuuj$ya+V)|0f2iryY(;D++ub&kB=#--u83IijubZ)vJAJUuk5EA=L+FW$!!l z#;tns+C@$7wYcT^;lZrSd3kxB%kaZqgnIfd)Md;lZRq)-ZZC(cW8ZjqJhsjXX?fbC z!)p6`ypATL>TGqmCEObCfF9l8?)&BL%^|?Lxz-cI;Wzf>mVMFikDW_n6A(6Sf?7EX z;q2j0mlF{uWv9}Zig+2F?q_Eq?p&GjR4(Gr?>=?eLZn%I%dX*4q|3`$IC(kJuH1J% zjlag3-)6_SHOOOaJ@GVeVNA*3vLy_!31TB~db^&>TvoG)kuo%A_pHCVX@q-vq;F)@eT85L}42 zS{LJ5LQ5%+meF!tD`+L&IbBWpxYiIqvvD1*$D5%WX%nu^w1xPgyW40x?ZCB@cF}HJ zduT7NeR$q?0M|h}gzGRJ!F3dGSsugNmB(?Npp#UH>lCijbOzU1e7x=)oyVJk7w}f# zFSst^TZWhDGOl0g3a+d48?I}(uG8j}P&X}|{wi|Hw@zi{z`lb%xvt{1re##M^TNH1}{!u1cX*SOx`dW-8F zuJ^e9#q|N#M_iw9ea7_#*H>I+q^j!T@KnYxd)eFzF(YC zb!TV3muhjpzO@Y7`n}Dg*U6l4X64|_UNWdD$LTSSGW>hR_C~XJ$g1IfPwCP@vg-K% z^b>kl8H54HUKTL{er!mn&t`7Np!!6iINgviy zaL;J^+{lft4f3J;t>4nfKMN@!ZxLy8gJ@KruXOCeHaZk`j@m`nr|UfesjIb~?4CEL zn)9zwNv*HcXirW0tK%km`&}XhA8Sr4o+ZU633VpW)t~&y?vf9M^g2YVBGlCEc_5S(}+Hv+YHSM9rBe&r+XI2P3p45z% zpI=6;M&kMW^_jGP(-LYk;3nPf_>R`OcuiNq5bP&qk4p1+1DV?D-UV4Ul~Qz9!q(H!f5-a&h*plJ5)FP z5Via(or+KD$awZw8t-pM!__y){lRS-+#dR2`Fy%ww;?s0^A{Bj?m_1-wj|rf?xde} ziK-R$rq{JLk%xX5HLuc|l3YhpQWqJ$ojZ(n?4C`vpZ!B!x&@I-_ivu`cuQr*XeXvHo5*Xg%sXZ$u(p-ogH$Pem)mWJ@(GSO@Y^RBWMRT>S~}bH=zVh ze5Tq9FVn;;rBtQkTYB+|(Y~i==)%7ZX@PPfoto5<=*`1)`fK45Dk@HgwpXmYSSMUCG^QPqf>LnDk@C!N3$s#}P1DgN+O1eKWi>e)ZO12N%lUti6^drls zp=<#@7B`=q|GGot*)ICC><4O_>r6vD5@_TGHwwFSj4q@fAs5YYy8e%Xy2krZ$-#H@ zXWe6DUv(>`d;8MpBphGYz7{eByARJqZeGsEcZ{Ihg^#}Cx=;s)B(=2t4-;!oS=FQof{W5{#V z14_s;(wNM?^!d*=v~$fidg$hd8)a+A@zWnPx<>^4tvp1H!f~+hz?0OutR0R0aD?Jd zyrzZ=9?~|}f+Disk>ZjYeXMIucc0Xv4*S;Apc*;k|EnGK417jaPOPU^^$yU>t<|Yl z_-49(Y6Cf_ooU$AU#Z@Q1e%elp!907bbez$iis{FV+rodbsJ1)|2RZjBaTwS)vI(( zUW@j;YDQUkr|8U%DKw|cAM}2BKAmT8X!}cFy8mJssede>-yTe$+zWN6@t+52U4wRb zP_~SA^jkm&2jShbX8Y*}_7nYKvxyS6R-ze0){whvW4d>!8GST-q4Yn$Qu>K6^dwERQZofH0#7~wEWLgw5{54y0}&#+p#}V^8wY!hX&B> zsxR>|_BmA5VKgn)W>e~k2lU66#x$UDM~HT$=K zZVz2bZ!Rn%rykj)YPXTr4+^EK>OI8TE~3jS8BMxBhkki*kWT8}QjhS;c++DXW$oTh zdkcS~J_EW??N60xQS2F7XWgC(HQ$l-y&0tMbeVcK`bf7f{!D+p*3!(;4`}<ldud z(fTE4Xv*Ll6!rKVz5JsJ9c>ptAs!(#AU>3?AAd{H^Uu@v=EJE{@ZVIkV<3f{O{GR( zp3&1=uc_|Lixe~OJF?ZEqq5uC6g{>G-{3t@3v5r(%;A%1+>X8UYxGL$7(0W`R~}36 zuWq46aS!RhFGsOH?L$R-ooMn=eD!*kjwav9ASbt`BzQQ|PZ0}A*2tY!PfwsPUrx}# zPDZ+mx%nfx~U(5vV(wD6oi-Pt@4?>io#tCuU0YkD(^8PuAZ4os)K zE05`x>IjV+v6VVDUO|;ZFVh!?ZuIEQCz{)S0u{|^O3!X2)93wL$XI%fnt%5T`FSUZ%za?or|STjb!mn5s`aOi_zQllM>^ zsr#1F?8?sc=0IioeCaKF9$0gX}`hYTl<^9&5;}X$TE@eVgu1UrMX`7gDb|A8DZVXEIFNN$GX{sqK!s6uICY z4fty-C3?4|i%*wRAE)({*J=-Kxm}5(lwBx%?@OAUwu#cZFQE_D{K;$nKAMr(jh0^Z z!Z$(h(Y?+C=+WeM6j>5TUspb)5jR3EoseI#UH{z(d7*MvGO z*h9x>I?(z)_sHk|D2jS?pO!83q|J>M(U>a@$?os{6ueqRJ(pg@J?~NU)69D0e5569 zdOMe@4tz>puWac6)-*9c^`H%&edxf4ZTL>;En0j(jNJX@D04L>tzAR0e@~$Av!_$y z;Vm?-<&PBNGYmIF|Hf`-3VnVvfMi2@kbV-wO19i+K6!mmbJQ#t-zvbqbZN-H0ie1* zm#6YAAxo<9@_SH?s=@TO9M?^J><>z{UPpZ=J-3L|aE$-n2*Oh_Jl9A#*{=Pnf@SX= zk01XcK9yAm^yi1qpHt6kQtj%10UOlSep??|xw0UZi>K6q=I0^x&nA`~KY2xc;Em&L z+i}~~mwSg?-?leNo!qYHa{cWArub56xVxv0KABd%SNr7w-?jR*rNcX;dicFNE2`)w z6@;-V9hbc@s;@<)x=bIDTaYq4`Y*S~Ms<~Uk>B;bo)s`T#qIaqca7?gb3fE$S27D8 zyu06M+;2v8*w4jbJ>TmBeqJ8$(dmLwo%egIVNcfO1|+>cf3f2Uqk6)Oq~RNvEeUW= z|1f^=0i*h}@yq<`2j&L6?;P7?{&tkN!gpea6CDHAUi-b}i*-h|Lv(I>YpbyZHGcoP zD`L4(UFo=Qo8Z+jV^ZVp+h}BV+th`y16O z+s?U^_%x@W*4@u_d-pJ^v(Ib{*2ZK6+{zl6);`3jo~3xQTREKtEWS5uURSkIy>Rp9 z$6w|y4rn_vK6-jvgm;CN6W;fx{`^11p59+*KSsVO68B=|^SBHY!yMO#P+ry~dZ|@kJ*d{Z; z!RiSfwHwtrm#(DGuNoaN(6{53U5-Ze!EL*H#P>)Fa69B@|JB;4?ml^Ykt}ddfZv_& zpC`(U>Tdu3KK%RpIRRzvqxaf=E>$ar&27)t%_(@bdVc7+cctnvy??m;cenWkm$tNP zv*}f-dTz5mHU729D~PzGoUrpnsrtJA!j6Akn^f?AwW0N&PfOKqHLmRQ^vo+TY_4*q z+2d06gzk+uby=MfP`9;f_l*xq)frI@r|Vo76x3wf6`lSlRS!$A)+J}t;DW}@-+S5L zDpl85)-`f@)0qWJHut{!_FAdB^7hlZzefcHG)oWD*${^FthZb85wJ_r0e?<{rlO=UQbIqzq`c`=|A#>YdM;q)+Xa zT%bC0xpm08QuW}$1E=1x(o`4+tU5UfHkG+hIL1rH11na zAU*#qRVN;4ow~zyY{AJt9O7N`OVy=YCLA_Kjw~I|rRSW2Um^nsmH_{L!*0Z- z6}bWG;SYL6A^%z%dK|geaz;U_tR$`~>NBn|vj3MC3jA9!`2@3}Q;1+LXQ_V+=1TeoTd>R{A@f+|n@Pe%11MV%+U%{cTha|n55#T??EpI3KGpR%EO?B)R6r3-c=P(TY-Kh5X%)?uT z7Z}d{y1UJxQuUA{xidf18(-ku_vcH&M@!XPKfI|M6g0n}ch3i_6OWgwf0!F_d;Gk|U%)qCtY>gQ7RsJbKTD$b=A zgd2v>h`3y;zUf!=cuvjCfL6`Ay;%Mm#?!Ha->)5;S1`Om$GuiJG2Z-2SNL7d4H&$y zMU_=|OV#^^#ziMbB?p}RGHt*(jIaGG=Pvp6VPe7b*T0_}hw+!%>eBov)w2S2{5~{q z^HLqMj?XKwt9^UeY3QSUj=NgyjE)Of(KqG(a!=^PFROoS`FL)?^xw)tx2X_+h~2du zeR9AL*9J9zj@ODtHL^o#pr9m=17>Sphua|2RZ{%KVlWmNw#PPTnWyW{}fe%Wg; z+&8P!aleh%&BTJxnQ2u2;?%kQk;dr-jn=%a8ZyVI{ynXoPH}K@z&my3)8@HG z^`zL9eO{bP3P|dH;ZvVwM)k{izvsBV&nfsLcm3L3>!JTA*DG4OGrQnb!h}E={@Sw`FujfTmOQumsGve?M;j z(M@aO2D1mRl=#KMs@mSo%WQnU%;zLIZaN#He&u)iT@`- zYmLo6E1!1wK8gR|#M6@}6z%TWU3j4Wyr`DeD^E|px02$kXY%y7Pd*v;QjBlNNw{x^`2J7N)=mh!s9wHlbb;FK!pUwm zUiQD1d{!OMw&|uP>8DRdln!m^yRT6F@Am&g-h04DQGI`)yGuZNvnxtaq#LI1jxJ0P zhoT4w2ngtAc4sz3(ntYffl#EEprD{2*ee1mBDgRC0qMPo2oa^X(4;8r``($|WYS22 zzt8jkd2f~7+`W6t+#7rCE2zPS~hJ|jy`@T zRkPLmC|^1Dbz6Im{(AgY=9GeRbTwi1jRX3X8Fi*#dl==M#rOSk{Wm?{vE`$_M=wcW zN~?bz+^_%8r9q#HU!gqrdL389e*MA3yK0>th;q(jOl-AZb^c1V=c|Y)FL<<1%RBe! zzs*xlcd?@!bEVI)2EXWAU+FOUhxHfH-@paWPIS*9v-ku|77n2b?kp%!1$h8+Q^-{(7XEL>FY@OFX!>u zJM^cnfB#gynJC9h>i+)H?fRmbIn^h}p&Y$FdgL$L^ly&dKH|^EP|k^d?DcC~^@Yn` zzxUo6C{st7Sr2U0_YC}I{UbT&(f-;8uf4umAF=87EfL?LoY~5^cE?7&>xNfbEEtRO z+&el|XtY5;{LD1pLocG7)1_s-SJ&wa?;PE#Cx@~vQ*!M7S$EBE{YSfMq`u;PpR#N8 z-#*-Q{mh|rsPA?B(zI1NC06VG)Q>37&1v}O)s?#Kp<$!CPeVETdY|XLD|GjsUD=fq zQO;bJ{?062U-{?a_MQ%;{%YS|uLSgMuiNJJewfr>thFX)iQf33?zM7n0tkL|q@ zIanX?>H4cfv&p&Wy0H6=(bA}Mf9=qoL^-q8?;GpAFAb|bYR+xI!?w%`6aRVUE9qFD zw`V@q3+3ou4>DhTD;;UIEO+4zE{r73Jwq7X^So99;@wOJCoHf@x=`UJ+0{jO@pR_QmoaloE{ za<;vH#jmzW6V6G29e1Ieb7NZBzq)g~N;@UT%vUe|nT&GoV^x+v zx=T7A7$N>0iSpL2ky+2~md-tYd5nF>G1Q;fw0+6im5ou|bd&8EY zBis>vmbh#=N2Eq?ruG~g9P9pL+RU6_{iD*t5uV1;*T=hS*L?m?Tg*|Z&B%wpOTV5H z*wt67Ynyvi8q~but4Asiaes3BdB&D=R9gJdUyc5(>pp(4onuts zr+=Op;&udHIEi@d5d6 z{ZO#}amgK7Gn%_LIIwL_zl}l9ap{G)xfL^mg95Sbmp+bcu~LPhr&g`HlI;HY(IrQN z2aijRb`#tGGHkMY{`IIm!TKkpp2AhMP zlajOUntSiw(A}MOr0XxiIe?eV)7t!UIn_P?vst&>a!yLw@4nDrRn>I&%!BRv+9FR$ z>sB1^{>hmE?yoN|iMGX@l6EIQ)p*WruLj0nf6i;0drGR`>DZv?YA**~sM6_|;K5VU zo<;9mWv`BPZ`qxGHCX?&wETCEzjBM-fj8^*{2=H#EnS$t{oN)JuLP=3cxZNT&S^>b zpceP6V~qQ*p#ja7b6Tpt_oKTWw5JEAwujYe2i-Znapsi3#@Ct;v4L)wf*5SS44)FH zDpzl0!#%z~*toH6V03`pHSt(*&RJ=}XV-t)$G08}07(>FZT(b91GsfA7dVaHv;cqvW~I zmXj;pk-NGgJ7Q|!($e`?g7wcyE0<>af4nv!FmLKJhl8GT(%GZVyXy{{9r#`Ns*Y{$ zIVpJQu8LJ{v)mn?Sc_y+=cKtW?ECZY5m|x67jM+EMV^=1{ynSH*6U*fQ}@on{Lf1x zwoS`uc4MM@-;qz6+UA~@R!?|wV5%cIAhvFr6Fhicy86jC`@~n@b&ts1e>qtHg4Cni z{zUfNYwnl{eR6}I3(`q?Q>UI4-V1E}x@MGZ?geS^M?0QAnw#zxzIi+XiMk|q?Cd)> zyf(`n9J3AUe^F}E>d`IpD-U%qeAQLMhWqT3ncC~l$|Kz4=JbrP&AljX4|K`ucWqqY zLR%i~FG@|j-+lU#Izs}rhB-C{>tB-g_ZU2C@5mYMq;JPu4|*<1w>8;HAFVPbu=Mf+ z=Yw-DNsd=i`p>yM#yy<-=Vb8UC8_msDk>{;YQW|)?Kr8}pWp0tA*z+Bx6IM|QqMx( zu}jL5PeK5)MXzH&*YMk!>!dkrD;-XMZnbVoFmm+4L@a{eZ7}2{TlDI`O^4=oo%E?3 zi|<$K)PW~IY}j$7q_ukDqhL_i*Y9rDWYoZb6zspC?a7%-^w+n}zdU02Vri4SE&cXx zi}X1Ma(>F?K#yb{$r!eAk6!rO^tp?!RgO7N=#6J@|Ks*O`fC$! zum8z5l!r8N_5ESDzU{l!)jBRD<;<+-Uf8WKt=^JtKNV%$J%hG7cIyv6@z6bU2BMsm zHG2JLyYyck{CH-UZYX!H(6eoqUHYnqQ@-fQq8vToC+A-~^*i>@9`NlQr2ez(pU&Q? zcj~vMoB9{%lh4M9Z^%3KE-j`mirtIy4-3SLr+4TFvifcaEJZna%9ESl+My4*@0at+ zY?S9NyZgcD9r~D_?dtZ-L^-qF*+a*->pKP<-Tbx>2M(Ckm@A>$ht@`*!a(){20m?u4x*ci1Rp& z*sTA3<<2&X0Kc}}!A(Di*`zPL*m~cH+fdG$9%0Yks86}k>xC(2KrhuE*RyHlM*VoF zYIA?tMash`-93DR-h4&v?3iUJZ{4wR-J$jR5Bt)aH~bjoth!Or@_OB|bxv?t<&qhJZg2{bd;$MaS7Ge>4$`Q9XG##a<=?Qv?^xsg^uhO_9OHcVoe$UOSz>GFT06>f7x$p6tCLV${_N^|D<1fzgMqoub~|MQC5#JD|P+x2j2a*Kgx46t}MB*LSJ@i%E;N> zNx8)%YhzaEk5^vz#p2c|M_%qVY;(5$ee~ze?afI2jgI@>**eo^<69YbqMZ43U|BC+ zfA^p54@BBgj*fn-vU9m!t-~`NFP;K@7k#z$jJucVaoUt_m-eDOcW>v|t3T?m4((Ov z;ngU|w2aKyzf?coXhYho3kf~g)!{?J~DnVDZAuzY2WMn=uZ43m9!s|Q1it_`fr}bSxcTpIp_TY{W^T7ciPT; zR8vBE?n}@7!hWmoyIMPCLJO2*R$s}8{6?o2ooYhehjOHMM!T8|_4(YWeShDEvTgfI z@z>_--wx

&zw4i_wFhnzV18zIjfw7b^Wp=*QRpJQes-Z}4#o-;>)>&aN9h?)}g8 z`(_+^_0w!pcCfw2eyVR1){Ja9ALY#5u`dq%SQl@fJLA{cq^xxu-|s{H;L&dLznqA2 z^quM-9pBggZqm8soL5Nw$r0Hp@9FnW;U_M7iIlr_JNMi>dW);4K0fn2DG%S`ZS|I( z)nePGjvZ09eKGOxCU5AU&&yr2#zo3kBVVB>>YpPc&|L4=JBo zS)uL_efq*XDn(Q#<%StmB4YIWt~I(`KZnr6S)(qTO_I`1C@br|Ps*+MHv7j&Q8R}x zs13QOEpz3n4>!LlZJKw+{nsO;e%u`^=DaH%y?tthwZ}mp+v;rIyWoB4%Y_?;WPXiu zwtZ{g@gGa?R-gUBeQAWA-Wxr#-{;bznN>$leTQfVf%W}&yh9$xYYd{slwD(tDS!XWt(flZ&BY#oBRFk|EeF#*}cX*U+H^k_JJ3_ zXwjI|zr+vP2fW^5K;x+?~Kisq@$DO1GOs(IP*l4BH_QO7zdt zr@ePbM@EqP`z~eQxmKExTIFnXFO)O?>e2N0TB-5VUuHFHfpYW}hw$S%Y1{cXZ=Y*N z+18@o=?Uwl``y1boU@0}_x66z_T3<5E&RFSBVVJO9oQJ#bfeUA^V{d6UPn2m!!G`> zjZ*s4ADvm+kJPv0maW(%xjG!3y@o?MXUh-viJPS(-C|pIsey9V-Pu*1+ak^06P(=b z2>5{?>er30xm9}AwsFp89p$ZW*8E}MR;lJs%lBo^L^*l%djocEmHxi_;V&Aek@~0E zF~T;f@;l#tW$S`+hlgWp%-AM9*IGN)u^Gz9ZW_F@O^R_`oNlj#a(~|*&-2@*rXS|` z9ytVl;TaG>Yn}`tYWDnQkxfS9Zu+z z+(ULwt6}SUL|Xju?$MuuexH}r`8Hef5vkK7JqDckM{$2$>)?&xlq1shn$LG?JoME- zV72cy+kzvKec%2L{a1_+{I#OrgSM?lq&jbQoLx^E>2Cd3#goCaN2KnL9=b0gb7&y* z?a?)DwU0{OGO7&p2VZg5Js$f{u;o#y;h1HO4%sHUU#c_wV6e+kX}kSg;#5asAZu1E zQk5Q+(q{G8H1MC;0KazVwcwPa(#VKQ@2yxq+YS}ogHw)4y*9M^ zAkj81a4;h9kZr*+sp``?u7kGM0^{$memJ=0m{f62u-!o0*g)IKQ~wE`Jtn!5U*7u4 z@R9DHJ=Y$z)ds)x-N8XqTaR-ud8OU$HtM)E$T8#T&Y8p9Nw=Lj66|tZit+}3$sIZ+ zu&u89KrrdJwA9t;tuIC-2WpI$F9xR^m(G5sPQ5>KOrUktjNgLuk4w%s`;54Xl{ZW7XJ?&@wB;U`s`ee*_zP)#pwa@lj;;0yspr1lGdn=zuenuP@5@%ZtU~*Y*{Cy zx`S4Za_Ex-Pq*&U%(mc!!h@#YJJz*N`2hD)_-v$*z%(hPLFBQtK|Gx5`1t1@9VjH8|y@boHl|ZwK)bV0_?U72lQM*^^SgYEf@jXfr&}ebA!cgSAdc_rA1vnz~|w z`;T7N&IMbZl1{IoCY`;Z1{(gU?+BC7pZY>ZD2|Q{C@0c%*@C!6_-C<~{1<>-__>+D-c{xaE|Ta^mND%ZE;O4_bBo zMDXk>>BiVO^Tg$o-OaDObC<35X=z}eC7(@wE#3XV;nGrM(@?mn!N*u$Lx=?C7+g_thM5q-I>DzUyRt_z?OAd>eui3v?;Hq1x7js>E2`zMQt;vtWw5&Wq!Z1(To$Sblb4 z>R-JAHG=Qev1Of+>}#vNI4N^f;K{o`J{X*TMp_ivc2^~6x!)gF_dXls_;2*<8FR(a zHLwbr0b4Hk+avr7Pe#8Ua7=pnQn1!psp8bLBK>!lz|Z3kKWL+%=d6=@9$8`C)3_0r zf{KaocNy-9!J#!Tv*U z_~EPX+-pw?y!YqedN#<77k;(*=`+Izy6K;CE(gz^mHLcHwmT~(1`=bmi@{pC(!Q$o zI?fw9KG6H+(HDX(bETYb{`o0x*xP}-Yy5LP*dYzxjyj{4`>5t(lU9`APJWN^!Q>HPjKuA#xP zfw$)UP|cPL{=N;>_1WO-f%%7C{ySLff;79yi(?1ch6jduzQXyxAl+0wMY6Wf1_ zur0VC{q7o+JYd-C?q2J@xfI-TL89yGwI6f5?7ru_1vq~fqy^m;`V)rDa9^Cy+=*z- zQp4Bp^*FD@x|>dD5Bz^oYWwW|lq2?$Zr^v)j|RJ3l=_VO=7+f8ICoBZ1mORo)Z_fh zcNb<)4;)>QbT&BUqLk9?vGY};-*rcPy8Li({zXZCt%klhI4y9XaqYX27+h-g(*A*J z_RPSc*15H8xfi8+-CwUZZrI!IZBOrqGxH@$_{cv{i->W*+_>UhHtLd8g?V`MX8o-| zr{rHx1-o35_Pk%QVv1v2;PW1yv%#cGQeAaj%_I7|?z**)+-=LcBxRkQKYaDjvF9{*k|%4WAJh_wo-%gJ&;E5pkz87Z06QL>>{A zGsGBjhQm6sVTL!f)cLvRA!j%)z5G#A)Ew52%N^eB+wr{qlhkNJa~q+j@tO<1J^Wg` z6S{uC z>m%>OW_`4!{>r0c=H0hT-xa&yy+21C2^j4oE%ieNPxma}spqtA`exky5oUXvr9P(K z$_dI&edDN39a`?ay_L~E2Yi0`_1WmrRK!mGv1%huUwC4_Isa@+eTTT`I(@Q3kD2!D z=rs!?&GvIG^_er?`K|p9{f*4kJD+*}5wkwiQXl#I(nH6#>wB9op84P_jm-KOOa0gb zxAz&hU6&SY`Tmaecb2U_+R}c=mcQFH-L4PX*S$%@K6foM*T+&nBW}fvwcGTF9!L8J z=GQmtZI=4azWlOZ>^433vk~l?`t{B6AqNXDkFCSkS0_~5ru+L;yuRwQMrQkLOMO=A zp@tuB)oWI`IP}bb>Sq01Oa0dGracn9RUh`~#rJ*?a?SlKtv=JzKKjLkdzNg`$GB&H z*{oL$bABg3(`SO&FkmtvezDCdt=%sR@6OYv#3IaHxLZ;r057747z`6CW|>Us`>prG3|n zv-)&fr~k2YMZ_=LnwjlmEcII>wYkIA>Q%1&I!s>{UO!8HPHo4yFMrm1Kh-@Y>(?^Y zM_Sr%z4vIX-D`CJp>IBX>Cf8c_%=&@)~Cr-aJ4RWtv#phdk>bap6CU`uLbY_ak$ZH zeM;ZkvL+meG}~ue>N7XQH-Bc8?jFJ`E2`h!%4k+vJ>=5i?rm8QM*cJKC;hP=jh`7k z4qd>*v`I`}If;SZ)=Y8v0QiCa+|f_nwkBV zRu4IU-uh(sozmmQfL>|2r+2UF517xFZK=am13mg;N2=zEM8L-?_@`ni_&bLrjk zPe17Wd$xS0>8m09U0QvnrG3od@!NADPfKOjIo}T9uNX^xWF_gg`xoiGURT_Br>zwWrOu`oY_;Zrt}`i_rd*QXgrl&;0O=pe@v^d^ly$i?7}hT7PSOoouS= ze0}O)~rPOCy>TN@6zB^)${%4h;uQtkTYK~u8 zeT=1j=C0fBU-Gstesb;29+R4w?V~OAwtp6UmOVwE^~sLEUVZSOc|Vm_A8Bo0dqA_C zVfvrZ`)Wvs?lt=_t=?vBpSM$%KT4_3CUVK}Yh3!BwKJt-&1cUX@N)>iW?Jeq-|XEp zGE3Ti`B0_4`@{5=rQWu#$s-+SNL=+k%+k4``@v?Zk3Kr?g*J1g?t9Ml%dTT@WsI5) zIcDA~YUkJfkEABom!+rP6@rgUOMUj7JHD9qne$<;?K*a9Qnxn{@IV3?V~OAIlqcikLl9&s_%E%&4uy1wZ8F) z$#<`i&foUv<{@VrnDc|4Ja7Emhle)*Vui%bbUiuw)6n|NwbW;huC8obDZT&Q@D1^^ zE12ywE%jM-O#J{#O0lPt&xUAxm!%w5~iOl^~vcI>gKMIes3`A@T5B7{kPP2 zee(55<9?PZww;<>+aKmXEcG_=Nk z&u_ET=ZtrsesjGP*Pv(DwkaX}k^?zh__eifuf6mJ>5JdL>O6@L(Z|`A`kcpIW43OP zzOUQk`BhJc_7`>);pVp5xoiGT+9+*r{?_W0Q|Cpf2f%t-?3dfv9#UN17kw;6YONd)3;^qe>HdccIje7*Qc({3ei8=mim|-zn{Bf zhxCKH!H$;?h4vSAH+k)AFCP>;V28AJ@VNz>66=J{hozok2X|Y!L+ZDz()T?czsIbP zvD6>i_3(H1?v!TdWStWJtZddtTk6*iTsdjrPAPqNY?aN8TP`!kjkMHLcfXgjZm0Co z-m3SHi;ObsZI=4EuG_wTXqWW-&+72x zKIZv@%XaOO_G=$iZdR@8vi_s*MQm~(vPh=dIwGlPtP&sTMK;LDR3wZfIreN%CM76w ziIJL-3KALp(&N)2kx()c8Sjv_68Sxie081ijS`ubh9rVo3X%w>B28?hswKuDX<^wbQSks&Z8JsER~OwCA5(-I4Y0LMNlHz9RMp6Ek@0bf1JGVUuFXU=GM>=v+V*7lDUH=Y&sa00|4YQ9 zlQko2nuaZiOxCm%%hDN{J0nTv&H_L7Bh9U9>yVV178#d{$svKDufH+5HmZugQX{c< zBo*!xDaaw37?~W0thOCnb_wlgc%ehn#!@1`DruIt1!fJ3WPkH_sAFn@VhY5sww!rYDROiB!AM2zzpD;OD{l$4B2n#k>o+`aif z>VeHqP!cmDk+(L{7}j{q&;sL`jP*u}=1}rj%r$S%o>0`n)#O=y$d9Z>hT)C;D7+8` z?B#)*EpKeH#l|wlC;0|gN5}&%75h&rBL^p?qw^%6FCD2(k;PaG9Uxy4GDjPm)fG8j zy~pO;D5JW8R=#{|mp9 z&?2Gdf$3yO_;wokm-EkOez${Du))Thj58bREpJqUQ}VZ|z}LteO)^Lu&zT0C5iW&6 z+^-~%qe*(mt2B;K=!tCM9~K;=vz9hEDP;gTI4ViA94=c=QGvr2I+=-PJL^GIyy5u) zrH~Z1AuN>tK;4bSBV+l@!;Ys3eMe@M|7AY5RN_fG&73>vU73bSW*t=9{8S$WPXT=X}bt^nrVWs^5 zf)Rd&aHOi^oL#HPIVL)`I3BIgDdLZca~xM9>Q$^1YTh%Y0awEb=W+BUL6jP0=fwuosFFGe)C^|p)lH*6~_zH4vm zXlMVcqB*;JZB=deBL6&Ip>GiM#7uEPK5h5f>QqI2g{lY{e}9!~_tn%UUpLbb`cap!2w<_k>c*pXjFk6vYR4ki ze1b=b#o>+`tfVH`FJ7-2yc02b`*fyhOQp+8GKwe0raHAD1mULgMkQ~wqFE1cl0is$kYSz0Kib(}b2=44r5IYEI9}zQvi-h*onQ(-A|?W09i@KO{<2~PCylO0-_yLR@%gLg~z(L!7zNvG}sp7bb# zmAEwPFf>Po5jmHSa`JvB<8=B}POi|W+{1)MDbly!=SS}fqi~AL$@n!nVnDh3W*8&G zGm_5VXmh!o1 z&F7RWrIvdnmdYE+BzOpAbhAMA_h`teDM`u38z#Vs0C$FBTna$NN4w-InRYS*_9ipv zpO%&!6=j?vG6NqnxhKXxk)&qa+7uXy_bQy9ae7&okHZwIjxwg;EbkOR4JRihrfRn~ z4bA29^D0HTL>KSpye_#~=_^rSFTnTx%gu06JSBQviYf@S%c-bx_0p$MU^6g<*rb28 z87!ci^*I?)U~tYfQLZu4*bJepn-QKuH^S7Xrrp|J2&(22I7;CK)}?wiMXou*m<31pXHTKI(gJMd(EKCh^H zy%eYM3h#HxwKFgo*Uk2YKxcANe0)??SG*GxcWb-h^ZH$s;&ZWrR}d)CFW2#6XpW$x zyldPj2|j~CrTK&;Fd9jTaXydn4ed%z_Yw}-t9jIPQ$Ryg`IwO4A< zxvsDHF*pM7<`vE`#V@d!H(H@Vc%DPr6iyVpG_SHQr+hoPZHsvj%OJE+c>jb{@YU(5 zh5FV67EHL478J_IsTwce(f1bm22G==T1w&0X)ohtSQkUHJcZM#$alVs&Ru23knQ5M zc=Z;K0V}AyCTg6YV*H%n>y_{7UHpSFaY@e5#YEGVi>buz@Kc;ZdvUm&Jg6U`s8TC<7 zCfOflQ14Mu2H|eqpb~oVq@KjByG8JT(Kq;EYDWd#9*YG0JYkUtNKBjg)x z5RRS~m6mms_Nu?E|=Vppw64lIou!38VqAeTZkKs6*W*MEYIL-VB|;o zmAPl9aX_?qzb8RUQ;0sJ$hlhxNee9P6BHNgm0Og$m3hm}lg^WpM!-7qF1W zJo;jp*V}?<5Z%W zOe2a~PeKwdyFwt#a$Z1`z=I6t{Q^zPG@;0R#X&#~^(Na7()Z|3_3TzV* zGjTj4I2EVM$1vm;7i6X!ccKYi5LZAcTzK|^kEZ=zm0}qzjv_i`w(RgF5}*pryf~Cf zE_2+qU^x7EcXA*;{W4dMLOHIn^km#H;f=MfIuU=VA|#Un#rt^PtNOfx>?|2(Zhp~F1_Y%O zcHcS(K^?TFP}o@B3n>$)K*r`O8J8BJ9H?X^B~|l~d&b%?IZ>(?qBBkNGEUCP`avy- z<-n!T@0Ey4N#{JR;=l?F)*n|42=d3u(K$doxugvx1Rw`#FxVfb!g?WGp;`Iyav*9l z^P3=Q(IqMr<77FP>T~)Ozw9n`wev0knh;T;lVn|Okg5G?mG=646vVJjKaDF_ZdDE- z1of_^gwLq8X9C_{MHC>oW)v_6E|sC>)+NiyZw`dTi8%^kNhh!)h+{?+{i*;&DNE(R z17R#l_BSaJY7rnx>(dxC53mfQ06%JqB7%IAqsuV>+1t|ayb7Yq@5E)PiK0`ZIJr&P zCH-_UgtF0@vPOT!@0iuid!Q#n^k zK;(qIb_$$VmP^*M6&}Qye~LkZrot}9xYy%xPU5W#Wsr3~m%yn$fe}F(QC>}MSB`P= z$-0}4L+~^u3gCJa4NrwzM$zQIZlg+ve7nmm<6QD*OdB86~LJ`vhLnguJt z2#iziFw2}DRnGafHEe9+4fR$JVk-4NnVw5@s-joWM2ev(oP4?C8>R@SywfxEMajPZ z$)rSv<(-OGRh%5Fd3jELYMMDIQ^QpPZ5-ND+zU}rL{t(L)jm&D^1qpu-wz=$#VU+n z1;I+mPnUd26+rpaU|8#!LhZsr3UX9b=uAXtE<`8GGL%!3JC#gDmeem@0x3iK7Z^qa zvnjZIgcTCJ@-wAk#5|l8)=G<7a(^uWd}o1!Zd@Ha=T*E;$e6v1$f}~;SuKr%&+DCb z7J+KPRIOUk2|4C|3i2VZ=JhK)BSOv~cXz6N<37k) z|e!JwV^*m3!xjvJ0Lf3y6lm-U-4n z1(tY))*R-05Gq2T#eq7aMM{32u-2u_yfDynUYG$C>R5%9j=~8dtU@5xQdzlA8CIHT zTk=%d{9tTgVHlxBK_#*g*3Z$J;N|7MJ#I2zTEH3_9ePZ&#T3E(EHqhxrl9#2yc|VA zqR%LDzdY>IoTSYCtc=YGa{8859Roe}XC!*s}jTHST3Cl{89(5ZpBSEO`vW zg2gz)q(xG*(pvx>qEV`r+_Fr+^{ZjjKCleaLFdVkZGL=#zPEsQ=68l z8F4mBYhLjOrH z4lG5BH*QR{Nb(IHXRwEqY1ZURO3`5On5H4L5EPa0B}jqIV|${ckMni!pPraT%p^ND zY}>FKF>JK5hSsJq^NmYGL(-9gIl*W#^p{}{X{duBeo%cZkAqB6kTVJ_B@Z#|O4$^+ zoA?I2lnR0@MH8^}P#*IpPfgrnj6n!DynVT5Hb!OA~>*6KFzR8 z!%YsYwkA-j7k(T*KPC9(j6`yh3J%H}LMGm1nM)ee_zjjRB}K`A?FIQTMx_iU#}rdR zBMOrnpQd`8vX1E``8Z8*@Ej&^qo8wLe&^zGsy|^Fymq&pu#4nrEns#wS`90lN^tAC%qH`6%(Gq)=UIU2zdw5 zFtl{g(GtU4ubgTB?~VoJ3?j!;oF8_Ftc&x@!|mUjA{>kG1{ayJ-NY3Wmi1+V)DVC~ zMYRKjJY^cELH=)?Crj5>d!w*i2oh3qxS+^Of_<}LXVe2m{A7Qe2DrbJN|wxUa^U}G%lHHw?NTy|Sx3R;a^bcY zK-J^SX?}Usf4Gh;g%c0UU`>Pwf^xF*>-Kp?*O4*rkN^GBmBr$%5EL@FR-pQ2IV>IR z6y?$X;ku-^X5cD=mNjlc}{l~S{V=z z@Oy&Mf|pXD0@CF1|LMv=s0$t)mbIb_>ScL?y*zia7i0zHDGBr+f+fM zQ~LMtwx?vxP z3yje~Lpgn-3({(cx8AU)p>r-wqPdtNBw8udN4{3dwBCjPICPt78Svi6P8d52;sgF% z5M1GZ3aVL3mEW}AB8dqh8UtF@2>~4-1eESHJ6mLRXvTbCk6}^{Xn-2W4 zMk#o(AQwi$vJ}HSXwa|2Sc1s!S&mi|dG3F>icT0T2`=6z@;+98V}<oWy4&rco za#A7%LPL;0C>Ocpr=h0PG^YyW?)So%?Zf}@SzNTs>vF+PUFBh!;N#_w%84D}Eyd%= zI|V!z1i+O1aXC8x#RxT<(<>5NF@g2VpOmu$*bhMYNx6W0{4QKK@~8inPAGUj3@Jrh zh)2>=(urU+L?^f?mkaK1;L9Myf;)lynf)truubBJg&c}R5irF^kU%1A7L1~)LOfaM z_P~#Eg(PbbtP;ZpQ*PQFWg=lAB2OZJ>H%qKM>4o^yMzTU)*c}9GJi;Zgny=)M2N~1 zanlG44TnG;rn}IOe*PbVox(e5h)p%lDdNI_H^Ud@+;k_S5j`cPLK;XkjPjS|>;P5- z6m%gf%lZKM0wsS{&JO%=Cx%SJ2?IM`V_m#Fue=?wETTs!3J#FM({P;qx||)*EaQR> z2Q~|;*ChfE%`ayMipbIwEHz=Pq4`A^gf1v|2XHF(!Qq{QeJ`FwURcf!;5*Dgc_{c{ zb>)Y3l>ALOJHXgSV2J6gtGvlC&S9$m$L%~{tqA@SyffMf(Xt1;&OHXD{2~wN=_s`i;Pc{ ze<)`MAWwN{X=$I+OL;|xl9!aT0~nZ4J^}iB#!16!UXYjm-$tfbam*B6x3C4H00Huk z_9pqb-$J*;A3)%7(Zdac5(E`aHgdo|-XH)=Cyq_?*?&O?rn5{T+Su!YsE2~3xgU2H z@AAsa{=-|q3mHEzLPw6{2Nxc%yxcwvt05hnn82Jm*e{qekgWKw)I-z{{dwl%d#rdlX99&WBg5eENWpC&r} zQ2g*fQ*e480j@gZ^({sV>b(|ikf^NpwXiei#OEhy)?RE*zGG z>+FHjnCn6mc-gQ9iO>|LxJ%iG!a~NL#7iS7F<-`LQFOxo2%Z@T4ub7)@(^yVFXu+U zYajl1ewBfjv=b4b{?xbNRb2&S331|vwK8y+BS&V2CTgusi z217(v^FwzCgK-At7F+*slQSSaVUEkO;HaD;<@C$j3>G>RqsYo)#w7x7O#T!Rk&~>v zsbOVNRPvdWj9Z%^I>V1v%WA74YLK6n6Z|9@pzU@y3>LP98NDg-gS zyyL%wb`l)}7TgN)>W3sn-f54*2{!EPU>KL25;ur=;liWF_zLs`iEjbRQ-;M=i6A`k zF1umEZ>U8;d9sP=356|=NL^GEDzOJ7QcVE~LOL<)A=?s?NrM-o1cY6Hv4dBIU$VU0 zPJ*_W_f}{C7DOpi$jTwFAI^hc0XuWpQWr-t4DC|EDRc53JMm~N&=Fs#6U$7WONMf$ zgEpkVWaCVVHY`2|>kD&M7$b3h&85)tUb|9c1T*wl9u;jFp;OY}q9f!zMraH~i1Dg0 z^rc`d1ZyXs{ELAMjHlpJ5lunkQW1L+*pB3q8;!?d!tLV6)9M0BAOfgTEOFpKKa*MRYpOX#>2E201uLc7BzXlop=fG z=5<&+&0&d4XjwHAg7V=-L5vQOxOqam4j+F_{>?6v=QH&qxO9r*1PdhQ_oERt0;m&k zv9MAG`FFqoY{A^WLicn*>#MR&6xuW&#k&A86wgD;CLc5wlQVS?4ZF32h^=fr5gf?? zb*MfctjGL}oMS#RStSBCVml+OIRtkMBmyKflxaqX0NV&YM64%?AvKKp5a9%NVhA;Z z_!}@>lYhU}898xk;a{fW%2Id=Awv({YEMv~v#@P+vM{UUHC2)SumVbInra5JG}M)0 z>$kG48V%hxeC&7z{<}bTto-M#&Jm&XSU(6z6>)C7Fes7_-)c`F6%aBCF{NO&2k@ok zBL$J2WhW6PDiq`kVqokcwvx@?N?>GoN)ie9~@Ms#+ruJIN@BF7JZp za}o(fOtU1?Jc5uQx(Q;?Vx#aqG4dn_9e&9gqCz}FxU=>!Ugznxz` zZy#qsL$UD&%l^PHY)DJ`cOX&5rw##E>7Y{jVnCe+iMIgO8_YA}vd9iUIdY{x*++8`a}|9cn*Fh-EiY5C=dznx%rru=OV|*_*c>yEPcUARCLPag||3v z35HYTi}q0!$byGxxSP$SObZTbz+(n-{dcffXaS4t(Eo|`zV&?|!74NuB&#s$1tUt! zm+XfOzz^xS|MfmV-1qM`pd@5a()R{k8`9DfR|tf!P*VFxMI|VZTXevm&nU^{?kTB# z@!u1O{}-zaKzE4-qjZU`+UQ2`2iA}$sbL9Y~rNC?QTqzjyZ zSxUzsi2uSOo(afHKP(F&Zni-)3Hhagda6crpO zZf(X3GgSGCoj8paw9lnQ(_PA>b3=MAS1j`2EznDt-)zazGjffW+U^Rc7;q|jmOS2fQ9EX?_;2Hf#3)sXaxCh zyQ}D=5upqz+z=hYL-J$!O@*8YT`P(2DL}LbTQN=k2Te;hUWT)YX~t|CFPk$6M;W+o zr!cA^=0RWpL_{YMn9aXJ@+}&P4|pFu`Mr>xB7BT|<9}%V?B^glfKdme(6DC*>k_no zY8-yv^pFXGiZ^M9297+>7?5mYAyHRe9Wf><8HW*EMfmuznxo(VPb3W?P1OuDn7l*NC4QrUf9B#H7Mzvxct6dV-1>hS1{RWXv$pBxWGw zj4sws0<&m{+~xCuCe3ub_y5zSG6icz&5V77S%q;Ntm$E9!N|iMM97>ciOrXCu*vY2 z2b=0+8JK^1VH<>Vgos%q9J9Hw!5Kh13zFG_QB52116S)4lry15E~vzOAxso;TB1NUwM?H#ZB-P zjnJcp+XdKAV+US$G_r1EC~g3B1e^v*EaJg4a4}*1hh~}J5d91?-QbM{j{A`Ol zafD#Y5BT6PW$aK0lmW4{ zkY`sKA`V2jF(6M-k{>p|u*M+)I`hn1aO=BhMFXKA!m5#V$&(!<7FiyuA?hijJu2*b zWr44-n}qc?Dy)^E!F<5v4Co2YQ&1PkQyj$q-c`UU1Cx)63QayF|0yD=&cj{d+mYx2 z0DIvZ%5;N=85i6?pqUnF7ktK@khNtw3@0xRffo_Zlf)t;(G3u~i>|rc(*kJ>y zB@kPR_@N-e7jja`Qys*U#$0AD6;~xKv`M*%u@QnS!o-n=xd8ldIGBsR;dlZa(1j+z zBEc!m<+;8alMs;8CC;CL&Gy1S9ajKxphx&Dn0vqJAVGPG>x3(0C{ge^iA*l!U2hCw zoKF&Kq<@}^3ME1+Mxxn}WM&C%R ze*h-TBi=2t_(0YVQ(a_Slczg)Ot=tPRul{oY!*>tydpAG(E<{$$Zt8Ck_V;CtZ1Zn zD7&Gh!x+%j!$+0!di}7_r-*Lc`a8q$8%`LYi-7K6EhZa(leI9FQf)(om7#46htn#*NM~gEd;;w1k$nM*HI7*L&U6rQx(Riq#7p1|7C=ERh6<{3L(0u4HEGsPy8K&^4 zuq`oL!xS0^5oS0nY?3(~-;W$b!D5{=Qd8kZg~G;cM4|x^1q(va1+34_P?lATOU1x(2=s`#^E~u? zG?GU06k_4|dHM63w>9>e80MfY2Tu$yXhr0(gViH~=zn3LS?jp8;7`#s$fCh;dJIg2 zc7l`VAO$B)5mv@a%U?PS7gx(J(}=(ouPF${ZtfRa!Lb;rCP4DSI0Q!LKKUzyMi5M? zxk(9x5G33sp^}P<>STPDhw|iMP)0#t=ZVnkqkb;L7 zgi@euXBd|g4zLKDugc%v9D9(qdB<2qkaG?34heawz=2Qxu1t;11wv*qm>|LFS5e^t z4nyfh4nq!P-3rli7Rbn<2gceW41j`oaWw99*adxGWL(}j!ZhzoO3pBuvoK7omK4cQ~$%`E?18hR6J&n;3+J+ziNFvEcQHeznqSAWZ_tXq3FGP@rF77ay>BV}1 zHSoi^7x4>Vqw<4;7}J>7mFZL#YTqMFRuDHcta!nL2{r+qNw}+#-vCNVR$fvZ>?0PL znd#5K^|+uBAs(4Dk=Is$L$AEFI50NbpbG+y!!B$pUZa&L=!}sPOk9BE5nsG3bK%5{D zie8u^|75x7Ev>`IZ&2P@^NP3wyg;0+mqfylS2>y&fLPND5qCfWP$jHKSSJq~B|nEe zV=#tWZJf-)^gOifgoyDbAp{-bw-JE}8vBWvsuu=C2(Ji9A1AMY7^`IQF6|^CDiG3> zq+fxw12OA{n2I}$u#)7qENeF|gxW9`77LR|q7$QExV}L;g9zL%8otN^FK;low4&4F z%;}NjS4Ag>RCg@&3nBua0j0X+jgGu%Y6T`&VkgB;&9A~a1tyS?!lI(W@eo4VzOb1wa*6v9Tm-B>yqifT_Fef9OuBITRLr_zc*rY@;AsvYpp{ydY?IBz6bI_K-3ea$Ck#{>t2qXgtNGF0fE*2jys2*8n z2nTyO(prs+MSMyEdn6AD2@(Ph6Cxh3yvLxhN^I^5jm?m@yeI(38Qi`|n<9wvUUPE{ z5$R3lkNDDtl_}_Iu;>UZioQS*5;l!N972Tpg(%|}i@3G8zWCUbxYTr-*r*}KV_sLt z6GXb>cooLaSX~hogy>n`m)~8!QjDfeYz?X>HH``JpGE--Gzg)TJuho1N#scp64xhy zzyVz-KsqD;>L97E@>Z$HPK9O{3W5T$h62k=GBw1uO-+sS#%Fj^$Q6OUq2PpJ5>f=? z5`vqhOWvPxsvjGexAHvY{75SipM5=e1mh>j~gsq0< zT~Z=h_^7DPNr`>%N1kx4B)nm`27n+9S-z7f!z#3?;4+Yw1hTFiN58_0QaGNfIlPI6 zih3FpSPn0;)&kuj2bZSef>q?-9X|3LrU=*U$hdP58#UDzhm0a}DwMuj8&W9g5sIKI z3bz}S5X5PMgyrPrL-|(|M`ZF&Ga*B2;nx@S)&OnDk|*%6D}{E< zN8-TBe>jXN{$$opaO8&lDHHm`V`SLDGeW{iAVqdsJsy}Tp{Tj75T6uI^3+l)ytUow|RFbrNBxz zOj;;Dzd{11BLO6M1&x!B7$m%LEc4u03u}uIBc8Bz2rUWQ0(jrcM;*_WXWZg0eB@2U zQvk9-g(72^Dj#zY&p<8&*hf*Z1t=}o1FwTWwJ%HA}pGi+EPxr{0foF#iI1j4=ffeMF`F9DtjpO4X zH#0?i@g%l+2B>6WjAuw_MTop`Ibk7bBy~i>zf+Dj;axG>vPg?(hzCP$!8!n(3iJUg zMnHB7)(hbbpj?z;(-`g}d@bL^ZKrsr8d@M{DTG)!lHm-AgF98tvLmV=Zt6x!cVRV1bpQlEh+iiHz5AtAs(sdBC%#4@iX z5Dl&nJD+N{PfvrG4OcBpKaj?P0pkOu43_$wg<=3yy27^bG;MgyU;^+P;7u10$VcJ8 zK-`?cvms6uVEw$IiTU4{)ECk@Y7n9WS|J~VmV*ctE|jWs1Q`zn5mX#tv@}R0<%h-qVHC-2=`r*w#p9gf70AfS?e`&ug$i?U7XJ49rL zxK_Sq=seAXQ6h+k^F)B&^HD?+2jMW_+^IR`zb!Obf%cSfM0$`|<9R0pk&AIJvB=c` zFBo(s|5MTdv$W119HLdIQIN}$MAv~YzkIzU1|F)#BAz`KCoMy9rZ}OmhZqPc}z>dhC3}r$IzQlK3J$5&~912^_RQ2QUpCk^yKy=y}&OL~>ANipctowSeAM z&a9B90)>teXf4E<=QZ*eYE7gE6(P!Zd663o;yjl;yaLh0JIxbo9s|QU7g<|kVH(hl zd=RMbs2XAKOS)?dQHd~JVG+TDQGv>#8ic7(1w&908s;XKcA<`-OMq2FpWvR0SgHHz3udf`k9&lAujRj3}3&}ObCcB zi9{38L=e#gN>A{|^5_cX@y#vPB7LG#sCNzMaBtn za&g!n#91Se<@4BBJTKA$Icc5-l)&5pp-ANk74i*`2tqcy67sqtfx=0K*0^H3gKwXL zz+;3;MWka;=@Tm$&aMS##)x^{fycDY%wS;&@M#JtT)2-xz>JtYPI*$nCH#Nbd(S6H zjx){E>`Ha@zi@UR&W?9xcXL}CT8!D*ZlmECf)d*ef_6K5n;Wt_i4x5c5OZsG)Dk2? ztw~U80cucdt+m!#4K+EG_j}zVG9yw|W>!|CVKX~Rbg6Xr@Nn^p=Y1Y=StmG~qm8WQ z7nq*q87t5aT2~~{79o{A<4IQzHD?>`c*5~%6zFCCpVGyPyHbn5&gUfiyXg}BGfz(NcRWsh0W_rbs?XpA& zG}8!=-UX0F&Nfp|TGGrX%@WMI=?NpmcPQ9`r0EMZ#%)VIc}c^%n$7q+{6MN-0uLQ( zc@VkBZ{L@Y7PHN?- zxh~o5Ce)64*O)Knd%-vctQn%RaK93oDAY4XEXgrlO?ct7DC*HsDTfaF&+3^=5(*zV zH9|NdnL2X!lJ^;BOC+IB@rQ!(0=xkE?sUeta^Qu;BB|v9H-F&1*?g?9qoD~v`T39 z(ik)VOabZ^y*x&bd2q#&s`GmYiqo=4Un+oz%}^ z89*Qk>|BJ*qxSzNR&rL&d%10%_?%rgZ%?;crCf*?I(NJ+MGXdw`%WD12I7u)cWilX5O+_#ZQjj#~K`0th*fpr#C~WnLrCSU#we>)T3#=z^A}^$> zRUbD2Rq<*S1T)3>^5(P+hI3$SF;UhUqQS@WjrE(6Ze)#Sl%eF1QDoFMVMwS~YAdq+ zgmpz>SV{Kyx+c$0gq7JpcR-@cKP6vl4PPv2Xh1m0h=OpHM!ut7HRH60enhM^j>$4p zTMUBb)zvB9s0HkaA|5s<+mh1W&bfnRS8fPY&LmgkdKrKfm?qV&OB!$8dZmXyFyLY{ z8CAV_M^6U(>N-T|k?c#m^yS-vkq)B}_7m~MMs*v@7ySnCG`V{HJgvZtODPPQRdS9tP!;tCbDTuii!`P2 zODa4Bq9kM(cXq=w=HF_Gp+r)8K4@f&Jzyc0dZXT$=9V~=CA0*^nn&Q!aCW$3|)6Zb;Bb?NtVmKw(q zc|eq11YgDu?CS&85w(4)5}`@Z^sf?5Gb>Cg4k#y=A_x4~OtXlbCG#hLApndKe?{KN zR74CsYqeM2Qw%jrL-czZ ztVzLx+m_eZ!g|MOV-W6vQy-jrL2>jumu_BZE*0R>LrZ1gg>tp>rb$RtFSK5~_oket zni5t?<2s@Sq%x^k`Gh6K4vntyOy3fuqMGk4IE!HuSs*P z4lc8QTbRU6tCjn23sYZ5{mTWA9K>f-8^)j%U_DgtUb>GM5^cY%KE8>&Nm-g%UelCmq`;5@3~>qxxS_p9fpX zf8{lw-JkazV>?1<;==@CfsvqE@Iy*!E#ynTPP@1jZD8ymWDY*W5*r1ev*m&^2&a){Q1;iMiYHzY)cFQ1h- zCm&hT`s%$S9Yu}tlhy28d&3(W#vR7g6o0t-*7&F!8*P8s>GUWFs)?k?08F$6$}osB z!Qp;Xr-ElL)q+8dc4QHdNDRPfd~8W{PLG>>9o}NHt`I&*#1bg3`uIiZHYbM(qcyNu z;rB;T^b;4QTfD}Q3TQC;EPV>&)F-D{IrYLG^yqubdDiV$tsH1$A(H@YOMnbfbX$E& z!yD`=B2qv*D;JbA2}_4iIf1PLO3na)1Hko9FWr~LGiyW@vhGmX`uSzMd_9t4E6ee!+Giqu>$p_i_)!Kcy5pop$ClR2jEPP6|+waDS*jt^|arMMwdU%M#XLLMVE3{-Rh zA1HvWecdF2XUxBOHcBiz)DrI&q_?-*S-AEk$(?NH2y=6=qpn$kvWV0-Oq65BPF=UY zlfkKH!g5)q{WN)SeHkMg6~-VV5(-$^s+s!c(%;%w303cd{zL1aAC4;+Q$Vcn)*m)w zxXlRi@O27_OOJS~)x=Df%Cr{?67?n8=~Mus;0XhV`qt7`(;T7ReBuPmG$`ILK;@`} zP@sebP>R6Rw=c?C23(9Vgzz^avn)c%-?`)5pEhg{UT#NJ6To5zNx*lPuARe7bs<1( z?!!?VgBOIx9nl0hk}?v9GE?8v9(9F$Z;8ANn57lgp-+siS^sftg&ppy1O)(X!CAVH zNdHduJ1P^@$AYs5zyX**eczy-+EGmdyolW53O)X|0J;b+?h zOd`5?dxV4A;e^qzqz6BdH*ptJ`d)_@CLb})f#2((J2+yBE`tcRVYoO;;tNy?9_wNW zP^=*>LpeHy%2ZIQA1}S;un8Jq;yca>x_8ak-F~eOkdl%B1yIDeu&4?A$+1ondWJ5T zKmLE5<_=^RKb;ZN17rj=FWk&N@|4^P>Sr3K+KUr~hun!nS3+|Uk(Rv&sx0~>5a=GT zHpH(X!wiV6Me65^Uh!9I^^+FdYK|4pHNQiiSne-aR6wn!7L`p9l?Cdbr=DGS`DuWv zEDs#56h=iNeye^lbpsU$HK9@nURvY>fR%%3Prs}u40InaPHP}SRdBO9@y!RZb-rAW9Sr3%acxwSA!3AUpuwZgF#ijbg zjEgm;+|z}%Ndy46LXaz1`uNZd8&=v5PGy&HzIUvS!~bdTiVA_5jFKbm+ADM#@JbEl ztS}_)g&aYlEsS&|cCAv*=PJw|WZRSrg|SWaC@tV;_>)eo#Ug8x zLKm=Y+ro|oSM2uw?v24fN~iZ%!wM*OCBAtL|2xb746QAlwi@Gx$Q_!d@pj#5Sz?=} zboXjt)Z5yV>E9kyGs7^RLEBAbGq`Z|pjoB^ifDMPgw`M~UcNivyh7!!BCaaK#}z;!)IC#sG~dfnFBeLPZifaEXu8PdjwN3rGY-vYCHm zb;8HNS8P?-b}_~9IHcBH!UK=En7u=&Lm-!8QF-4`m#Ify%-*>YIQU%G!?v+--PKK| zcT>hY<;(-EK6LW?P=>~8x1c+P?f_D152Mma)uS$E@6;jSYzA&bnGn{1tsZ?bdnZ4F zNCef?l*^F~bJb%mX73P#Ktd+a59p(XAM56e*?TFWgbbrJE^~_XO7+;~2g~&q8#{4< z%dWBKWtFn_s5E5T3-7qx(is@S7}x*`Em;b$`r~e=fl%QFD_mk(h+Av!|Kz4EGWCSzHx5}I?U3W3bp62V8&&Z(Q^+y709&0A-ZL)w-HZK1$~OmW41982 za%$o*HelK>)e~nl2a*4^3k!t{(VUJjGoG|8950J@aiP$0gjpEj5_l>Rt$Ff{<0M2L zr!X+XvjxEmB)Csm)@Aae?08e0q%sO=z?hZhQG zD#m)Oo;KyEjjawhKD-AJbo>-hxsk7)KGVk&C^xY_<#{Q)htKvI%La`)YSMZIonpX- zMwz(>(3^dEH$-q6t~u~Th+jC4FuGu(@YOT*YO5FC?@gCaE`1rOnx!QNutv?_UIS@t=5aHeyfsTQF zFG7kQI#vn00d}WQJ$qRf_qX3{je~EOF*&XTq@af~j#~!?{QVsXT5vhUDM)jax~V@# zmYQ6~EwlJ65WjQDQpe;4aNNMw@toyH>Up%P-rbOZ34T9Z0;pU9h^DowL zs+5^buMQFFEIiWT2U8F3-c~POJ{pXG!vI{fQP$S+=~LVJ)fHfl%}TK#75nHd z2q`j|YW0$3fo}G5REI#{C+4W`k-)J;qDuN}B&(oTEnvGqe@-g#p;UkA@^|zWj}7Tk zE3b6e*+y9a;P+kOWR|Bqe81PZZ^I#QmpzHoi5n($0j-`VK3Z!kDJrNd4q4u?C~gWW zR%%1x!GR1O%g`nK__Af;r0bhS!gybTmXf5aY7#l$Gj7%SIyH(0UKdPt^?H{ z9FY|9nq#p$lT6qMA|V0rDA={st;^5X%e8$`4scqC2^1eWl2`}62EpGZLN;(!p)KO) zsi=g25rxL-HOnuTaW)rRT`CSW%I0Q~?b}sBbr-b&S*W^4eJLofCSm8S6RqJge%o3Q~(HW|DNtjEd|sz=nDmqmQFRcmmF zSsqsQuxJ)(?vjKPH@QCPN@%0RKq97zHIav~N|x#^$8)FOhiZkg$ zLqedKcrAKgB1H7IWub!UU-yTUe@?s;x#{(_C_9~*bYgizSlIz%K~f*9w=av7?>uj+ zdQmhgnPkT$1%{NVPxM>8V_Eq6=V_EXRcd-`0-NR{u()N*5?Bcpfn?N6_0Hx0HfJvo z<3fa%AE0R{t1Z*{dzl@igMo`8Oj_iGQbYBwrWBcq}f6kEM{sAC0) z)#edo$Q&Q)-OKl!^MR^p2wXOZW+6gLEEc8`TfJvl#4$%ESA_ySxaMjZ7Mly!u}!o* z@g0p=B5_3rojtgbY7*-m~VpV%$#dp#Ubb=$ke9#F(R z;V-VfY8r&RZAsENDH^2UGvm-t)%&!;bLebYV%f5C%uKP3xbXnMxyT8+2v5IX=Usaf zVrA~*&FbPs?u>UcHlu$-owVmU3tga05K1d`jC1-c@F3fKqoRAAJWcK zXdo~RI03AFLN$H8UXmsUQ{xC4D42REW3!H7SP1kQ;v=Xb%aAJ8dG`Qs7Ki~-1faP= z+s5i6`ZVZI)QDQP_7XH_S+>~)O0ltVnvDC-)|mq0nZ12kvzjR0NQpqd2p|ReK$3Xe z;v(bq(Ro%Qv0}o>R8A9=g_ylmADj2-StNx6KNh-IP-7wK`|;)f&H)e`OzvTYj)tOY zKnZ%L*XW@SPY@j9d!GqO)F-q}V(jK=RIv$~CsfnLplU-G$#M0`W#Rg-DD4g#f3r?{ z_RKeTA&iYg;A2}hi^@{<`DI}h>F?m- zn(%=mZNd&#HxwDg;yW51!gV64chuA(QFi29P1G0WnQY|KkfegY2oglHj(4Fd-o&Ds{xX_AlvsW3UY!(H<;22u#%hCV?oTU?Z3~InPJF0X?Ba z^!AbfDKz!vd6xl%eIXhL1e`)r<>=~tW!{zoNFqRXM5eIxXUq3%xySLLUf+OaQTYgkHY%nf4};yq=e&svn5m#`Pt?z6+$XGR zaJ`~fg5NZv3C)I6SSZnR?)3uO;avN^FD}J5?Rkg#SfD?3Dj?vZ(40RAn520-W?Nnm_(j>lvro@MpI(d zL6O0Xl=*pWLJI=ylh``n4lYA&(IB;gn{qiSwD`&~SuBYvvo_aL!utwn2b#uu4<6QlI z`Q>f<5IcMDp=PuXC0Ka2yM1lLIMfPkm!esC*rV0Y(l7`I49?0v6|0mKpyA)UTD~zQ zksJd?`EE`-Qf`PCuqw_T5@U(_!}9;vJd#Jetw~m7{WxSDcFCb1y7%!YGAPC&WFy)D z_!C(M^)E+Re~3pQJ&8X^`58IjLj7_1;qCQ@>wd)b*RbOoOK{LcyA)UBMRrn%{e?i0 zLE#`S9TKkn(@|b6mL{mpC`G9cR0bfIKQDi~^=i?zJnE~xw zQ6t{uG^duRQaUklRzw*ID#z-tM_JlYXc3SnrV_+9i2(F&m;cuCJza13p%1%SMn+YP znc7&+BB*c&UApERt_<(WtP*Rw0d$-`phD494(5kcFq#>}h}Hd84kK6|aAf70 znlQW5EGIXFFaoP7Cg157QK{~~a(Fmr%KnWwNQOEun6zmI1Ix4xArz#FDHUXCsUEN* zxz3(bkN-A!gHACN(d#2keMn$ILX7ay`-pra8wYDE+Px24Io0eQQQg7rx4K){8h7Wv zRbT?KD{?8B$o?Rs4*_g#sLPI@VcZ$GP_g{UU^yT=7FMRXiPJ1&w9;h z3reFt8k_XO!RF>2bdwH0*Z7;Ir|**OBmQ%G|AzUtGIY%zN|315NV1oLpodJcnI>H! z!_Tm>A+Kbb)eKgkj9^wFF$1mMzHy)P2tOodd3~8b_FSL^bo!C$H`UT@URiRs>=aRrgZev?BGNi>}B67ec|m zn?ZFSx&&0zqgF07udZ--bGF_%i2Py~>>-c2SrkC~4!5)NXJ7B}GT@(Y*Lk05vn7I}P5n)MJB6}X@Ss8*9v!Jhc)Xgg*BR`NHKP>r47#LXw znzLc0f*nz&l_&-5Jda(`1+AvgZXi-}q1fHi0%{eKb#+RJ z*)#N1QkC3dZ>?U_sFqNVq z)U4GrR}{lV|5SskJqgFdG@?QJ2H0x5r**32GPWtG!-D#FAdHTBmVRH; zx8uvU7p2??zIlpDC`yG%Dq}>?UfGrrnfFyyHl;f^6#2%+Wji;>9&D;=kHrv=Jqsbu z2DStpm-TSaso*;m#7LeCWMNZ55s|!qEHpgYun_^qG&! zSNaqX(IB1{#w2vdss2u&fd%NKp0gri-QIa1B7wnmyYy>EcP<3uUFF5}ao;EGay0=* zMr9HV*TCD=b5}&le!}Dj<{iSLU;qf6OsC8lP%Mn)2=%6E1_<4A)${cFozRx!w2;m{ zoTN<&H;Fk`k^rD}Ad&V#9#FPG+MEO_3eXfk>!WF&_8pzhuiBTP3t|yO5<6ay{*ijY z$_CTm?(OGJcgNQUzOS!X}PCf()v(+ zJRdSWJ0zn8OJ5G1jC#q+f0E~sZQql+*5BzB>1*hap%@{xcZW<|24zY+e~h3#uQQW zhqIh}z{|79&eY3RUMFK}&vJ{6dXO5%Trn;FO*wmHriKe$Wc&8&R`inVWy59kb)9B! zZRoYxKs{lZe#ISN`MVVY_A0-9*L|dUT9!n#dzKkSWr0X$J-q zrd4bqI;G@VMt5>c_p;CLUT6aQqoH$n5EjIJL4g|yI?CQwbMHx2i%`xy+ zmPAxgY^7eMTb#Vi>|k(#3Af4K!Il`XXbzPrln$Z@4&hy>UcGV`#&}4JPTivHzra)? z(U>EJj5#`3F0_tNMW|a>goWcMyBd`X7zEth2M_DOsvuI2k^7pJoo2geehis-Q&*Jq z&e`f58N#DWkM?Vg*)+VLIT6FE6w8M5wpWVffv=EjxU@4W5I~co)I(vntzI{7f(Oo4 z+vn|Lr5v0Sac9Gfi;V$M7xL$6ii7IL>h*`MK`I$?a%&m!V(1ZAwQn#7?c@h>?s>4^ zdlHzQ&KHO@>wFeZ<3g;Xq11V{8n-FC<&Sx}(B(NW@@ zmaxdC>dh;nTHo6oBjB*TW34(I^_6!@i??bkrdqK;Lh!|c)PWrdmYH0=W##SiLV8Wx zqkN$D2I*g?m1wqk-P$U|Nq{O%PxZivn)WOT?TtlavY|4-X<`#m2_zF(32A-UHlYT6 z>q^;tfM7TrGRH_*yO38GSlE{DlC+?9UA=AGZfxAswyc12Tm!mdG7$B)z4J5%+X`h? zMT|Z}%CIx_cI`s+rX6O(vB%QjMMZNI`3RIgVm(2`=!EJWEB9a$MmqI+bhgus^x3X< z$8i-kz>Een&jwHrDM>+SIRr5A&XxBX1ELX2s>1}jMJH&HJT;r|4ACo$_Q84=`<0MJ zOyqcLL%W-O$+Bti7I808BaKWLwCmJK2kKobr)6T=IC;Za(W}epaTeDUCbkc2k?%P% zHz$OfzIykH)IkR(J~8kxwZm-=nqfmpJILL=3!8~HKPzY3LtB=tY=H0Jt!`n>^Xey4}v^&h^D^me4+-8EOns)8bNsiz~zj`pAmVLpKKDxccv_&uZ#zGb%of zp@nHg=#+xpl*d;eUFnk@(Q#n>=D^Sp^@e0_-kl5LP;ci2*|RIeF+F^x!{6eFBc167Cv8M4vg*G$s*P0GtU}DN(0_mFcr9SM&6vPavn6 zCbaESf>*puA2c$T=Dw%2os|?*Bt=jxgVW3>-0iB*9ch#@!W2P7qSfTNtWbUaNX=2+ zOQAb-p+09WWX9?XD-UfOU)C@RqTYpr!1IYl&FJWm95DKj!O3-~#ViRW=K)7-n5r+X zgt9%QH%|^h+t$IxJM(3+8|h=wq%qvoqm;#ViTvag;fCr<+WxA@)w#DQz~V!I#$guO zL9+XD5TJnKO-sX(JM+iYZy8|EY7WCBWsMLjB(RGatiC+$5Gl_u{VXX%I1F>neD#%S zKgpXW3l6*^O*w9(Kz&t*X7#lAdz)Q|$I%Jf5B31Q6nVV2MQl`lVA~ZTHV!Yk2iFw@&E)md9P#T2gp>nxouWeGh~Lr&Rl7Oct(()V2X@Hr?;M~6gF>?A zRuLyUC;}pT!~)1>SS88AZ%_O3eV7E;=RTz|C>eqU{m#k{+S_vkc3#G>B|RjIymO&A zcaZF|1b=mkMW~EQTVaOX!PyRiykllj2TxLtl$xhs~Wd*_54q zr~_4Pf0#)K^(Ri~1W;SyKYVx8@f&RJNC4b+4H+R8iT>8P`;PGX+)aNM%MUwJ=qSsc zh!=5M=!)g|g&5>}+E%Kp9xC1aOs@R!^jRIHsBS{IM97OmJWGLGiesm~KkAepQz*9dt(pzy5K?1Ro5#prf z!c#w8$S5gzCsG2{0aQ$Wfdu={jx@@U>?h$e-?d4XL!_a8zK~IRQQ{`J>>T7VRxV|r z`gEJLBm=X+spBz=QKaByal3+BAg5m-K>(Yr`o%&97<)+d7IB_{`v}n)RKGmZG*XJ^ z!d?|YMuG~I@2X!dWR$RZVc@}+g;5ZaPglP_(kLOmK}ydFanCq?2u}WHA)}3w%@@JEu7TdgKs%axJzVAUdyH?D`{#W`cPSE;BY^%h2rZ!gnr4M*+ zHKHw9|3de=9jsV*i@V9Ti=`pgIlO4pI=f7mOV-%3)n8W%ZoeuF)&heJ#KbC)MW6ow zWnIDu66Zs_TCPKc#w60Qt3xatjCNuXYsUxxF{1vagLcMj2(g$t@Y>rk#$S(EwSpW( z=O97p7{{al6G?z06i8PYSiZX7>T#+*VcxSMfnxHeAkqlc{a2r%Bc`K5jXi|`iIhdg z#qY&gM$cU@IC=#i83>M6b|0n`F)EBr{jbbwgJK+FZ}=0S3Wg}0e4V8paIDjT!<9k4 zn@ef|qEbga@OZlmb5iI5#BnwtGOUvatqNcGu~FU;yoa{CMAQ+a1}>R;@bUHsK?}wD zglH{?vIQql4>{ic!qD*nYe`@t1uN*PhaPi(5#+^CVcR7rcG*1-TNOxW+uxhseFV$_ z2{aikgcr-w%hbbHB{kh>PHgjNq-|auC4Kvxs2)v0zlDmi$CRi?9BFJW$R2>SIf5oO zbS8m%Km`fm=I%sI0xNb6a(-9sOA>fb~VFPNzMlDM9s3VOH&z%$!d9wmfoWn;w z`Y2-q9srJ#@Hq|+ff@CfBaICsA_YVo1Z27jKo;ueBQ*!t7sz)D9}eAVhrrBZSEmf1 z5dkEakD9mV<*CagJ#JN!yRF<^9|vT0I-63KZopzN73n|>-oReA+lA}(oG{XH`HQwR zLODLKk%J#`=#1#+<5v%7PBHOCLJOJ$jNp1jU@`hu+DY%j2n??7?0&Le+zE~cZGj+2 z&~B=qc;{kbbZ8}E90dua^}J7L%b&0+$c$(tinTHzhPxZeuj%}RBu|Mn@?W_HYjs38 z=2D2fpj0Gb3`|lzaaGfm*tUVR4h(#t&wJ`ey=!sfULSu*8wRk3Q$Vl|xNV|utX>S3(iUUb#{ z%($w$;Ii&H>^oB#yDNd2Zs5t=XinJZ86Pxt_)x=;fw7&!JCN&0w*tpX)KgX;arl&p zp;g7CXPL4AL#yjL17=l5Ix>PSIB+eCa95a(NmgRK<$=dENvJKrHX zuH&ew?Ta)8O74`>2)FUmR;SC88sHx(1&2gqOxcVBFd|h?Ulk;M4_9zlaY&ynTIcxz zbez*fy0AWP?Et!0q(b?@H5x6=dtrGv;9*j)NHgTQ#QudE(DQ<4tR6@03;M~V;n9MX z0tQ%n)iYOTs(o3+<2`HjV#u9gS_++b3HzgMg}lgT>j|wwr}#gM(MyLFlpGWgf4=~B z5asHY)oC@5&4LSJsz4~G2i=JbC5HENR&SbeHySAF5q2Xf`G3+iHI35&#!YYr*nXae zI0Jc&=U%+ip)?0vV>AwR`w)qcWh0e2s;%ql-fTk(nZq zItMT~PLH@f)IlNPc7ijhdZFIP{iAWXn6QC$YT}DWAC0Hvq(oct{Ep^g7Yhefu2cfY zu-^DYQsrcHycZqIMn;1?V+TS(UJA++!K{mNOd;M*XM!gdN%+W7FPU&%>02Wf_)tdx zAIuO6C@!EqaFuAF*kl1-s?YP0x2JE)cMe(5!!eMm)=XP-(j|PBITe~gYJo?GjOb-E zZpnhvIJP2}Is}`;#!@ezv4PU|6M|AAVB?PL{W#BD5Teb?O$r#5sB#dhH?4{~!N{{FFpg$~o+kyr z`!`N^_SD{~@f79y@uUF`9VE($Y9XQ;qtKWFAiZsMAsVBgA%UZ25ROypL#$Q3dG!g) zV(&+DNC*ya`P|#6r8d|Z>H^?~g3sa3TtDV-cE%MAox#!WU;h)j)M;a5MwVppHCs2g z!3dCVFh8B73o9>;5Jv0ceW$@->8WBQ!6KSB@c-*?2sIG;kYZ^*JKCx4{k&;Tjp;`J z7{F9Rva+cu)g&yjBaP}LK||1GSNmoX`SEO*yh#WxS`Ys!|isY28D{DVc8>Kz4yqcix#v0Q{`M-JwkTI`SgdQQKL-h{ckB~aWw=L$i zQgR;ya0fL}l3++v_4Z@2Q3V75XAWgF5PBr2uDxURhGuXg8YW$8FDSsoL^$h>JQSSJ z7Wn1G1wgUIc2*a6dgy}ydPNv9pq7?Y23EKmymR%E7KJQeQ$~m?0z8Ef1oap1n#QRT zgJVXgsxnua6_JNKRei$-I%LwpmP@^OiMo2B-o1L8_D`F15(16dzD~$8fJWKQKtb2& zOQ07695KL|7R6x1s$rF7HZppkDdU8YaDrygdsh26_zU3DhIz$j>iTNx%g^8&?Xntc z(y$@|2t)ooA)g1(B2n*M-CN`yxC~jj-5Upcl?Xc^6f8gADTxcJ_g!)x1C`v+*-#)H zATC1$Q@ww6Y^9ErjdBnKCea;9ETJkLz`TPyjRYxXs_nYA`oQWt5096~dbXXZ{L4w} z@{pB$H+W;jHW4Q7Qy2=DH81kUvV_`)xHg~^z(~}^+vkCSKUMJlK>7^)7FM#otm zGcDR`znrCTb1SJwh)Ds80IaF2Ir_<%MsHrCg{FuL|`<@7crQ z>i$C>?*g^q=XXS;@ZLMS*TUaW>=RPkPsG&Yxgzv0^Ag}!C{;1QB|oCmQ2h>%KP>c7 z?TGYxjD~Cf4td0Oj9y=Zr#Wi(cMr0P>p~tB-E2a1P6&(#6&jK7q2}OYi#>j(yn;V| zQG!zzh!=nw(1at_kz)ma;-YlxK(0!K2*7pZry;{opS&pDhS>XPFao^6Ll%;*PpxWt zPl$I~oDYWWpT$umRAbctf`@?I(op`N-RE=~B30^@AOSn;e~u%Vc4RNbnwhEMR4F|- zf_evqb#xVN8xcK|)E-$D=`;=Xo?9PX^}F6y}iT~8i)jW5rX9h zSs)OF&s^lkl%zxFJXZ#Ls)z!Q6peuWkkTNg{Mjmf>rBchk9BbM6VKvOYv&JpSVH4h zNztJ`)C{?n{vBfkyBsAF?{tco3pQ1syY$8gzZ6@B^%9Z}PohG7epMLaE9J|9d$m$W zI=z|fY4N1f+G%e90S5lQ%H#KL?kbPKl5J#aD5505g)$fNUclyU^@U4smLkj=Qf<)I zf~=*8Pkr%X&l2KzuzsXKw5WeYe^-6!(wn8k&hhV1d7**`l8I7%`4Su>^+d!&1tN_{ zPdN80m*5zY6%P?}BY9=v9>wab7kjlKv=>SlaE^2`GJ%Qu+9fzk#1+C4)-pt(1a76i ze(8-7xwME}7sx(J;M~Yo-HiHQh^F`8y$rmLa%BgIL&@0mn)*JQB zWAQFHJ3~0;(7U1twe)lKtxIku$m-e9{g5+uVk*s2_3cYD^5Y;8O-2Zmy_6J?NBz#K zuojL?r}UULJi+~YK>qjq`@L^fNhcc{(o5~*;k@SXL6U@Fz!a;0Z*`YGqDh31Bb#d&8FiG5o<^e$LwtY; zRx4C*s5~U*^8Hm|p&Xc?x~4LyC|9MZb7zxane9u#H3F7EFwGBa&EilMJYsv29z_X} z_)?ORMfcSYR{eV7nzVURGA7_q4UQ0-)gexo0ME}v-8!(;4_B>Gp9{%dUDwSeO^;3n zRj_$M35t(zpwTc}IH;K!J}Y z4{!(c%w6^KV=X5^&AYH5Kt&KYvIUm=&#MpCVMNRLb!PJ$pfACs3t(P32bwcaq!{=rX75FZ3#_z`y4;#i613tGchT$wRK>?0ti~} z%pmktTrF`KMli;rT%mqHPa`>0f-X^9SZ&EJA}=>bBk0FN>;hUZvfUtZJoPVgG$Q1t zg)n@8+%915RDYbK5%RkZwVJqvF;uC@Z~SSFMxr915Y9usnKJRj%GICeXoT6Y0B=#Y z4O3F##Og0|G!h9DumzS2%svAt)L-Xl1fDI#x{!jPl9RL0Qh%GH5!RT4lr;!>n_Lq@ z!uMO7eZ|7o1Jh0FL>aptiVAiAIT|Tg>X@P^SyO!ks!Kg!jz(}fq05K)FQ$G7RwDJl zIU31AD*dU0LcN!F4Q%v5b2I{zr3)k^#bF6ax*=UOPb0a_I)gw6rq&2HZS{~j8j)%m zfP)Ez?BF925_sqwjieO3I1zwU;toI(T=lRy8u5_443UQ--5SGr7OIEO(FmoBB#Yyi zatCf;_@*AQ_H%*TjJ#VMt1{;yVD=+>SDNhC(Q? z>qHqBl11%`<+)TE!ocYv%JIlKURway6ENdUl=gteC+em(EwM4G61?Xc_edvW?dDYg zY1<~|3k53ySCF()khwNOVgpSPV&S&e4vEJ&aQi!gp%WL5yCkMMhcd;45C#G_knI`d%dRnL+ zJLkB-4iIEV*eikZvka)kTpJHUFl(+NW{HGw=zs;qTnDI5z;ImVJ|tZ!weOE#`wzpW zkyL|;bf1e5nTrmYZh<;5;jM!u1$rUwO=^FL*(K@;Yr;7`(zx<9tloAsD2G?R)zuV{ z2zL>`MFoRkI64)vdgAy;5m#S67G7ok?eo+^A`O1qqGST2NI1TqG=A9(w&KHDrspHY zcf(7jw75hjp0n`DYtPl*)Wi*83Y;ViGhGz2AFwfyp(`3d(;COnI&$~}IfiPISF6C7 zjmTBHaDw9Wsi&-Une)&fX)AZ91Wcegt4z-AGSM3Zn|b~o2b;6-FeV~x1sx0|y8+cR zu6n9|IWsa`P&I*IMF9~Uh|G`()6>>;P4Edjnv=q( zU>i#~jWhKOv%#CNu$n%&r!wSjL%0PCoY`1W4L4>#Fj3&N3h?6|L|Itp&s=NJJ2WF3 zIg%gLDPAuB$n|tJe)y^0ZIkTj6<}WGgi2v5;DxG>r2u+>Fo1g2n(%y?_u~nRwjG?> z%~~DA`Ofv*=XRk)6ZGbGH{)vA%saWE`sE=+C5e+a!{Uk(0$l3ZYkyCp2KT{WdRIYk z#r8cxjKvub2AN4FXG-WuDShaA?8E{M0d>ooaH5X=FkEN#r~CR|*J*~BjlJ_->VU(X z8<_vd^nw`RzyjMt-JA=})pORar}37V;n;UM+c|alTaF8-}CZ&-A$dH z%(puExAaU6z5^F2l)jX-IN-IOyY^^(G=kv4<5AS>@G zv+k-j*%rykZ`^LIKLe=f>uy|O^r;S<^iGBjUH|Q!4qSOrC{{>VQy*mV7pBLpL=a6d zz5scxA4LA;InXFCxQ9wu&^XsXU_5{A*0zcxd|Zb_)~g$;qIK_&R8BlIT2u2sXa;f> zRYl->5kduEJpLhj@p>(VEwQt^?CE$tElrBvRIsBmQHV4ZGdQpY`O}rQki5ND8?qM-r?X@>o4;5+O7-s_2L$icD+)}C~fFi z&=^Ls3MME&_0@~lo~#eu=ItzmTzV5Di6u8lZxc^G(~t67PAvx%c>w`*k)x80RJD4^ zS}=GM^+py^g5J51>Ic{>a6-V3m_f6rUb-e?b>_x41ZU0w&sI~iOt!{-kZF)1 zc-Sm1VQO@|h$~Vcx^}q?VWP3xPi%Vo=etsZ1Azn5?L^LVY=n#m-Rg5qm0}NgD z>a|njW^mAHVEPJq3zkP!Fs$knJ))XqJL=Z)?n}>b>P=s5(@WgYOI$b;p^~HER=sBJ z^_Rj*pS(+Wd^soJ)6U?WiZm+uwQC|L=b4Q4MD4{PX$d&xVe;~*!Ud-yHrDHmcRX^p zJ8pikb)l0b+uJ+)9rQ}_>h5MxDVb~$X|khG6Ktv1uYKqaFq@;TaSAbkkMe)G$Rs~v z^@d}*Y7qlOYY%lR@}!v8fqLWGCuG+8cftq_s+J*BpTuG%X@hHH1E%YV_t7!^vNBT~ zn3)~i7y{}xmIS4=YqySH2w^p9Ia?+#{NwvAt2dUzNOY`nCyPAJ_1o6|Yx6aX5;_{q zWHp7@>jvj_@aE%MQ88X*g4Kq)A6jX?ddu1)TE-ije8|cev!d#|U0^2%yBW^6VXzpq zGsao!y~s+hz;(bl=TbS|#Rv^|N-_pP))+7Xbq#M_GZb25&bKj7e5`BFL)XGBZHu~# zgm6Nk-nRCC$&EO2h?T*m!@!j>K@f)eDAp9hGrZhHy?t#s$=tJxfKyc#+rV2rzGs}= zGP_TdLMY&e>f6V$Nh0-*JK7Tn{Xqhfz9243xGh%iob4Jl8;hwxECan!2q3{I1dti4 zcj;hO?>>M$c+f>?ZQjF7ernMZ9TTojYZw5L!Gd!{IAUBI^{Qh!m%szYP|w?;?THc@ z8dhsxZiO5?X#FQXTK}dSvx1KtL6~zU$AlP~ry@ALiYjr=KE{SGbbGz1Ma#2mkt!bZ zIg211SqY@-)7W-0N4@vbJ7-1G3r%;ajt?y#D9ih1J7&cq1ynz6P^bKz6=o4+Gdj3>c0Y;i-pFKz&*xi9~PA-Mev5 zBN04}5U{p)I{W8=wB>uAfCuUbcnDem2^64KAXmXgsn5(GNEYdF+Cf2H2yC>0e_%j`^5@ zuv7|p5Gynk^7zn%{w9BLOmCA1DHhP!ftt#&-ayalLb2-UD$_~sk|KxR)dD7hj6(?} z&F9xd`KKaOm&Y-LHmB+6^qnrRPzu(aD!k2@VOQNq?oFnbeo*E`;1c@q7<{#upI=yO z)!mF~X!7$n(&J-3KRgg0F(0_@2pLEcFWQ=Dq|X&^!DZ%h7*F`aADui zQ)ojA#8v0bYFa>=3zt9;}sFsT7{6G04LhZXEt^fcwoh^$1PfrHRah7y3F z3qf6azWT~2aALbDyU`TyIkK(T4&i6AP-R8yNqu!q>u(FHB`|c(wm(4UEOLr`6dW{K z31LZH50Yg*Md4GunMvz>o;Q<92kFs}O6jKD$aDJeMN%@Q)Fw$)eP zUc0Gvej_tGG_$3~yXLhwy3k6AAwcf+*N6 zt(d~48w>Ppokyc21R{7uD}T85^j3%twd$c0vh`^Hwz>d(PATXxeS)Pruqh6tY6D6P zhomhk$LdFGZ_<`y+&j{6*ba7u6!gZx{7gg7{QZLqn+26yl^WFyNaqnP_rae6Yunh+ zjRPRz8%K^CW3N}2S&e;mDBpvLOORp!hH_8+cnuhN+NDl;Z@)9$0r``WC#gw(RwpU2 zy?@uuf4cTbnU|i$ggrRxvaO?h7ag=vy=xmjt`dVf2s0NNAW!}5j`OaI2xuJ+U7n&# zlOhQF^F!YCh*$W}hrjFY_H{eg7QdLKZS#>|t{Jp;`$irb1dq_&?ut(PuhsxfPFSlG zKKkpm|8aP6%PQ43|8Le_-acRB;e~n$U-_d=fiX9FKd&-Pdh1Bop1})u=B}$v2)Y3@ z2HOzgs5~dm{oA#twmk;#_PP&m$EmL-r=)DiCJo?c6gK8rq<(kDIibKFBRXQauqYv& zLGA1B*Z$|>ZAyJrwu9Sj_Uhgr)*je?`KZ4PI^v5phUUsWOu4({EgtGA5)`2(EJ!1W zvvcaH5Ytrua>seiu)gN_nP|iUn1}UQ{c-K@CLQDhFZ@rV?x6PH{5!29^5@BS(5R36 zW$k|&UU2`IQ~7QznZN2Xxt;|>m~L>X)m3V8K{W-+2JVZh=3`hurryS2l~XXcr9ion z+Eag9OR$|P<@GC?9{1>$`^B-Pl(3#T*xT3jv8=B;Qviz!#jh!5U+9K;5UBf|I7J@= z@g-A}UDX`BcoI9Ex^32>kJxO=aRXj~bSUM*_dhXTxjLMWK4p)oO&N1Y1%-OR3BkXQ z984wF6ByYY+eHDYL-kCr^c}eg_%RSFq{h*rs82oc#KI?!aB+g}uMg8=3QJw79<=yA zVEM=(dlN1e2ry z)3tRQR8dnH<2AKbqbu2o4bmh^DD zCW`>gIRt-0h>r^O$i?@OVVOlGgpuTGsX9#6O^fe?=s52p4U4RVj1t{|M=ib&_-zoU zKrEbyWkl(mdi3J^NXaU|flg#Hg1Vk{^_a!?K|;AeILt32(2^j7)y<3VBSP*S*g!@R z7iUfpsmCt953~V2Iw1;%upMlD>T!$j!!95;l(RD9o`lOsJ$~_hK+FQ}E)``48-qPi zPdIU!193(+h#27v0c+%e<%c*#>WPaVDN&Bni@E1O^P{NXs3)D+WTaId`082gkZGvv z?TB0w1)+rvfqmpd9J2UFvK$gspj=>4E#Q2K)l(MV2iw_~f^Nw2as;pn_0+}p0Xa|} zke#RS(({N(si!TzkFazKJC6b0xLTw}J$>2UBXHTt#xXp>RF5LBS$I+-oiLdxRj{oSI^elvFDJ0%bVIEDeil{ zPF5PyNRy(xj6|i_J(U*{T2$mhOAU)2IcOp+w=DjVg2=ZrFV8G&=`@OS^_<1`fhcWE zF{Vov-A%wnspl@f4=;te9%*Dhh(p^(7yWrBF0!HplqzsThY*y48K>Y#J^#e5?a&BS zyo1YQwE0|nc#s}Js$_gw03DJ?5bTeRfC#GT>OnZvpKd*6x zp-bU!Ykt!{(G9Acdk4EkpX5eX@HBxG0nQ;nf=nQ+w@}oo7aYUVfPFib!x|gUmy`O1 zC;C(cAp~F@AP0_hCb|BaBGaTbCSk)PP(fJeDKo@cq#aUmLOAzRHVkwViyv(X{a}EW zDC!15A)1pfK5>({YrR8;WaQ8?8XNX#pE8LsDdE+1bw2JiL5ZEMGbovI5UCrA3^>P* zrs%59pTH3j1J43^gWN)hf)#$G{gTB$GfG*Y&>X;S1k-@Ps+TUl51eqYU zTwb>LJ_7DIH=^c}b(7hyr(VAJJ^*qh5y2YFeGBs7Oub_9ePnodSs8<(DOly9tzNnK zK70?73<46YEyqP7TD|HR`T*Yu<^^3EUOc>h>eY+yBg?EXgKQu`Axr23)vYIlx@{nG zHpmuI({K>v$t-~k=kOMCOU8+(UbFZ?q9f@0nMLZ6-7GpnuU&i}z?9Jpx3ZX$-J}5H z^SZ_NL1hXwB{&bTBT~W=tJg2S4|Y}>i1M#XU>^x|^@bA<8#sW6tNo9D0E_LX0qMI9 z3lQ$(92#Z>?ku=r5Q2E);-A;|GIZl0--JgAx%6DUY4Lqf<5r;l3imQ0^$7mO+fIl! zNAFGp{4iu0wXZIq2Nz(DMF|g>rv9qBq%xm46cURO*>#Kw(~^=)=iEP65tFbo}tf)mx9D4?75p5Pc^whd52KdfSO-=y-4&*lH3Fa&Ac^ z*OSacG(hMy+IXE5`yFe3HX^+Ut=SMvKvYZkvOrAW?TeoSs`COWSwhskVcra4^^Rlc zgOo}b1;Bd>^k{-oy>sz>SQrA(-r63Fq(q{StzLW|uqU`##GzXffR8{3zkBh05V9;$ zC@1(AMcg5-de7qfz=ej1+09Z8IU9i@_1?wz5f&5-qp}esDQrD?tlqcyK9bzALWspk zdnJ~Ss{8vF--m~doH+o7MIfw%{qzHi@1ulei~>CRpymTEIrYKC_kkWQl)5e#L<(OG zaEuQvzK?|a%q|ia%LIfdwK^YOd>@EF`cxv2wTEOMTR?qe@qIwb6%o%2eRP&k@J-c6 zFLngQk1%z7H^OAc8i``{vBf_npa&1JYv1xoh>~JZA76YQkjQa}ky(O2nf!02KC$>d zeB5N0v;et*02?t;pIm$&fdwhp{5gIgFA8pV&;O{jEq)fX1u2Q}UywQiztDN;+8`r_jIu!N6~k~C_Dp<%*m z`O@P1usIW{0Of`FX<=uc`tsuY2nkxljgMJKi{Xip10;6{3X?+aq&Qw+v zyZ1=8h;V5!(NqZe31TFcmrx=|1CW|KM83XyLL@kvO&Es)go1r~3Nh`>;KT^3apXMbimw8ug9E z_YvAD%1W?!qy%^JB39pAd>`a8Fqa*~-&0-*@sMvVz7M+~bc%NY)(ZMt{N8UbzK<|K z5C9kncsYdENN#^;@qLuGOGPHEmmU$fpeWRL7vBeJO|nUen8R%dWJ!H*@qHA?7e}yi zoP7(G@z5 z42OrH9uWsf8wl{IA1!`1p%jJ;HRhN_Qp1mZ_2Uz_4I%J&JRNG;BL}l*1HqFd)WTqP zy~;zAZe}L4YvJd=o`4MbAihDugB;g>cWY3s5OJn}tOgTAxP&ae`pM!a2=5OZwS$O> zkUg?Bf4cZS{2V|W<*y0ujU)Q8KU;hs#Jv$PL--iAE6jpI{e1C#Fh58)!kF%QK@tKc z`{%{?QCh^=GcZj8@r$7_|Hb0_;4Qd#wJ5&DkWX;U|MGaDO*Q}*pZIfPp=lcw>Q{?@ zBoYS%y3w^n`wI+ap?>h~umai18jgR1fqhM8phAlbYMomV-hub{Z< zjLzH40Hdh2L4qhJ@$Ds22MT64Rev~fcP_z^7g=1~kQG{4JXZBrwyiB_Q_LU+biv~Q zs6eLDbsZ0B)e{X0gV90zUbCnR*X@pggoyg^{ns-gzU^!rtV8pl5cOD-!?LcK`YlOcyy3p-2wO|Qt_0y(UJezs2O zkRmkd1jz7YyeGa?_gmj>uE?WOKA#c}yPC9){(=xnnjCTqThyts`$<9u&i&V?RkE7; zjg6l4K5@h%-WEh}fa$RIth7um#ONNduF2C!bGdLj}?eVH%x;g0uGokn>W@v_Au#;yktsvbOYj&uPH_}Z>GFH%c`3cZ$> zBf4gb;0@k8Qow*E9;9xR z>cTUG;3dcGAlxHfSEL@cK1%Ge-?#ptCe-Nq@e@}E#C9P*GFmg^qbK7I=YG0 z6UZTKm9Y=H-NnC9k63TR0*2r4!1dL8Upp5PaBNcYC;wJ&2_{aUg`C$x$+O0>dgS`= zT5E{#-KnI<`dx+}xMu5e3@z845sVbBuI-)OExoNOIao^~ z(+;HO@Ij&+nXAW)THYfYi-iBHYKCALGlOcmPlcywNZ!1DEn^Bz3EjX-me0v~(;V5b z1vY_W340mMS0X8354|!h)nnIx)Z$TKvmdtDd)sN`yO2UpGt3buXFdL!2aPLj487V! zKF0dvb#pBmHP-r=S(`)zII+LU9~{%$YfTyvdQXaaT&Jr8--VuF*qm z+@1iFxk@bRiO~P`T=nGU!F{lc6-hbWo*dU#ZeKXqA3mqM^aKeMs>u6?L~76bmg z`brEGZyT4F*^gZmdR%JAQY30Z?6{|_i_~zt9C37gLdf(NyVn(to$m+-yL{cDguDaY zA{Qr(BRGm}DCyk7Mh`hvPhA(yYLAPZi4b8sND`alZ#~^r$vy+tH37D>cVV+DmHsdQ z-9XEf`BQigol%kICHq7@O`D%C4FqO(f~)i-*_Qqm+f|P!MB$LSeQ+izpj1EV7mLU)j24$+mSjwV*mTNm+8lZZByRK(DjQOUE|?)AI8kB)xdh_rGNidq=1 zyHhaL4&b`yuM6pGV1hfXaq7iA%LO20z{Dg{YQP;lI-KXkC{r z3^WSlTsrAZbzlU-X@IRjtdFQ4+`xhFmFmUo7i6OApx+1$f^pt?`#IPP(q&ILynieg zZbpXy$zzMSE!o1CtpB-nHBi4gbT^FaR9m>1vy%GSIw1PEv2iLRD!E&nC0bZ-#1VgW zcll%a{lFbOXglk-Q8`mOdN6zi*1?9#+8+8u|IsbtAOdr@!LH>2h2R_DzTB6tKe=V} z5!xK{{E|wo%l7J^^|+ZaKOer>$NjvjU>!&?8bS}v1SGd4Dq6&6u@Ve+|MZ=v_>|sU zr#XSE=^ONO^^ch&RwEKR0E$Yge6kD?;X=J^{r~8##$@}(K+cmZb7zOL@bmEBa(ccG4dMe*qUn5f-41f+*4JCj4>6c|=O45XXgRnX6tu;g6xm2U{OU z9_-n2)T=j4_~SCq!7zhhA=gi0y;N`1*Vbr|fvK%DfCFwkas-mK=d%<9kqLW~zH&!@ z)Rs?m(i<_vWR;OZg&_hQ8ocQtD@fh8ezTlbkeO)Pt4bwdV)W=qH#Q{8r1SCs9{4xe z-A$mb*29rqwAtM*?k!-5Q}PQrggSZ?G%m`@3^5yC{#O3LlNK0L1ROPleuh|BLT!1h z-n`z|ruN!+i~2L<%QFJO35ZjWS!u4`vVM-o2#qwd+2#f$hD9e~YWGyx_^qz4Nj3@nHRfVMU-%b1kq@@jvoQ31 z^|tkm`oQpu-QAsCUmrijpbz$B>O$}du#W;HwMCWBS8reMsfjc{5XzC)>54HymI`bN zK2=DFm;jY}hYoKB&6zVMNpH^XZq#6>dj{%reM&WLSgMF8qc!r*^@L{#jBRh`ODMGu zSV`4H2{+Zjo<38j>jT(%8CZBI7>@#LQtw*Nfk+B2cAcn68c8O7>w+D*Z;27POKBM#bzNEDOFaHla)!rGN67Y zQSUS6o8Qe2*!qXZet=WYe?78ylAEES zqQHPD1NeC?Y-wQAADgA2sNWDsUdnW-Vk|hz#Si=Vx_}xEA5olkbBu7!dXa3xG`)LH z29^P=B9RM#2lgp!J@tw8v(vQa_+6?-cZJ!YBhT8|JKrq{V;7}fk(hJ{B4mQp#acqw zN_#=Wqcrn_bB&q`HHRp@4AsL z{lVoRP>{@0I`z}U~JSdddppgAQw`#GKAjOr%raA<_K zEl~6-geEgq3eh+xyq)?Wp?vlE_5YKX({F;USn`xzvu_BpQN02eB`E30cVhJgoqp>7 z`EZYpUG+wcr0Br&B0(n|guue4ELGC9l;1%Aq`s(Q7?T={Wc25DcdlpX0cE{}nByGr zY$B+c`jWm(0|P0o=YVC>yL(P;;s;~yG^cxl?G$Nq#`3|70u>mgJ`m#REJ*O8~ zY{7&lG)Gv3dS7apY>FN1JXK%0WY-nh?gX`+oV(YK5Ow;hzBmG7p!R3>a^k+*y;FO5 zRwrfgsG^9i1gcJiBw=+`Ut7OU*4-RiO!uO12r>V-D2QChpsuVpOss#|A^O3pL91K@ zt3+irsmb$yaeT67#|<`k5|S}X=Qs$7^XAYb~%`ro%U%kb()u4;?(jgB#3*f&w( zU|Bm!8L4k-D8%sDr0*{OLif6zecRqD@@}&2vSX!Y#KWWmE@De`vLrL6zBTV+v^d-- zc!iULVgVpT>f73~(4%Pt>EeTJu6qnNiA?uHb)E$cBY7TV9Uy#70`(p9>2AKA_y_xY z(6HW1{%Z^WM^*p`=^~4?yM^2XPXRhSgKP&P9Lnv$zNqgW;Sk}4h>#KY3c-2SlltBf z8Y6KPrj%+GcmjmnsRvm1c)?%!S;<}#e|m^^3QGn>VSWFAe=0+->KByad}&j z`oX2Tvxyi}LIC140g@APQ_gYrW9UbFSX=KAUgTyIJ)>pq-|F6Bp&)IxITm~u|>9CU^@Jd}SamYWMaP5=9PH23w=?RdCHQBn-yVH;aWfH!3DNlj zL_meP`rYDoSCaaoD-Gxp;62bl_4^r@Cl(wRCgy5J^>aXg`VS^KYJy#I7?FRdZVEu; z`id}cN2JT4WXI(8n7-L?48$FYwzBXV&L<<*%0^u$$N-iDdbZ3J1NkdqqK`Os~q&c z6&F5C{WfgAm^b%7si8S0GH3!Q@c{XeacFdG1+*}}GXK?40?`vK|KT9n?VkyHX_q^d ze|8LIuI4$U zf5VUEdEY_Vv7uxCleqq3_Weo}C& zGmXqIH`y;V7JI~{Q4-BcyC^X@)FV#LfxOQFUZF(~4_<~$E!BUIJn1kbvl(i>REmz! z0b`feK?l+(6g^8^UFxc0b<@fF*2{z%on6A(f`zJFh!~ z5YaPH&xD)C1*Sou2WAA^@kgE1g$e<;cLs!@gXG_iwjL`aQT_A1?l}qG;c7uV852S# zMPmV?eDuj17;|ha%KDG%Mm9FCGR-P!bwr+Nmg@=V6{BGiQSeHrk}3|%4%L%RK13E;byv>aYlZk@zKR@MQRDxV zd?V{gY(QB`sHJ0dR2GMyqbfjhHl&78)9a7iSCz!^Sco?8SVJcug5cfy8IgqE+KdGb(F znSLQz3J(Btfggcq2^TRTX8iDHofL>!6$_mLKxCd%=kbRZ`bY>ukXc}HpvlcFK#bJl zKKtaI=u#k#?!9(50aoto^#b4x3M0a#z&psfsasC!!X+6~R97nkpxEo`$@eu3%JwR* z?R)A1-aW^WWMbLfMe9{~bUIRbwxffwIRSBzW5@Ou;vZW*=cHsPb&J!t?@Rk>v44G0 zZ0jDVKkIdYL5IJlWfeTHB$SKwHPCmAcS%aN#5YJs* zJUZ)+J70@Q$!Z<29D2X20io4LIe3X0aZ~Ak_07|?B-$NZwxjWU`HkCpm6&r-V?e+n z3KWDNr`7egmFxn)p>enyh1SI^rLDJe`x5BHfUlO6c#)|3B5&U3vV zSOV_$!Ip2_j)4QNu|ApySl4yrm~r_v=ZS0$VDBL;Y!T;eu3mGp0n#$(nL*(+NdaWN ztKQL=7+cW%aiiCMFYro`XDe*Curd)dQ?EUFyHyE+s3S=k5trbJQ*4yiozw}bdP3tX zq@+`dS7HP4HxorD78j#nlECF8R-#@%?;8y$e};VriOU==@F-Dl&>@XMP`Cv%jd6Cl93Fq-~MGkvQ&|;#_x+ z89CD{)zSg$NVn9LWKd0>v6(k=ns}(VDCE6tzkqrpP`90wGIPCl8yV4|vIV45NX8<& zf(Hh=xlnI5zLN1sr1EGiKwt&`bfIfJU!gO20wsH14k(1>v&pb58kr-l^MPgg!wp~EOkpMwN zU1d(!K&oHB-5B5~hg(vqd-Ox{&R+jxYJnKXcs;lzE?UfC7dm@`NOQWQvP3mW{k4=^ ztbkDGbE)yst;cZc7~+BQJ;82t0sHdQOD2bfTp^0!5K){u#ns3C@D*P!jF>@K5&}F_ zxT@pB^k>-?Y>Bi9AP|AyaTyP2sXu#TXAR(!Rz4FeJ40cvAUJ@rm=jsf6n+#4_X>c_8K0i4(XT>d!+O&tVa9Fd>EQ_5ySs-2ZcnT1X{S{HR7EVdIn&Ho@RY z2eybHxNseX5P-uZ(oFxYojeTJG(9SKUK|?ta6E&5(&E>udW*mnI3%C!$FU2MjaqvQkFBw6Oeqtz#!%#>N>S17<#cm zmc6}G&X_5ijACpHafT4m#UNaWe}_k9oti&66I6NiY-lPW)5wNm*wKUYHDC*ux8Pp3 zJ33RCJfVnjmWo7pY`v(8rkO$?FO;Mbl!Uu3Tr1&WiQ^M@PDaPnv`-f5DK!kAk(@Y0 z;u@5A0#^g$27_b-`z+bJItS1R-N33wTMM zIoajX;^aG7XA`hd$#xK~a77%k95xW35R{_uPVF2v=8M|EB=@4NtpAfE02YT!hzU;O z+9IAX#0tTB5sL%3)8X*Fos(S2qh`7BGHZSFHW5RNP+Sy+>wIt+8Rnq-I!$L&QD444 zsDB&6<07*R+Ipk>Ot1Xnnfpj=A`W0)!8*+)8g z$da6mGF-G=72``J0@r{M7!zr{``+j%xXTPTI^irkZCH^6{7^gTrEgRUk!dIi-DnTh-aVZoQHuo zu@@u!j746PlTML@$^IFfR48W(`^bp070|LiIyVg3OD< zbp0@YLGF4=7JOB^m~O1lIP-;F0cj}hnFv7eWH`p5Q?HZh@RP}yN5iso=i4;x+C z6>5uXveo$BSX^(%6FLT|eaVku+4&JUrcGi-Gsj3)d;fi;T&YjP~Pp!XmEZ zes*$Y0B0rOK?9!vocX5|2ye!CKODjk^9q6k+!LPb6km6x^D1hO22JbFg0W?^=)vAS zB_Sx~$7OF;*Mn1V;KKa709N{6=2vf?=_oj)e;&sd@CWeR5r{ryK@j|VkH(nop&SB8$*g=(*aiylwm7+ zb*0?|Im8Sn;AkI%_6zSB9HcF$vaboBH^?ha_!Snbh-IOO|UPw)syA|!LC z+;yu2Z<%JWtXZ?n@q?*a#}7v=PJkK8)BHG5!%~Kz3H&w+%S9P+H1qwqDUV9)+nwJZ zoX=eUB7E<_hX<5eB28q9xlx!V2r*{1!uS~cYOq@=zXD7!8o*m!x;cG3k)J-E#!pd% zKat^;poO#Da5~P1G2t+QM@!jvl**|T0ki(8yD^odEEvNE8}zqQ8KJVV@DT`9*wPJW z-xa?J)5xa~tw|dLOu*qEAc4c(xOcsneXnlXCRLjRJ97w_+z$g*6xUG~aNk1q{eQ~v z;)vQ(z>YQc^cX!bm;GQBh6k5W$PvXn?6HV^6pv&-T!rBwBtgtrU%nM{Bg2he&2o_PNE|wDBL#ydI?;C@zqM& zsPAzV;mM!M7qQ^*`+}^H{aQ?iD`!fS(6M(jP~xWM00JgcG)sib9V$RnpX&5)kFkbQG!+&dK2(#czKs+%fn+#Bd1WP;7BUU-r8nTT>eJ z5o8DZH86)`Gbp>Gi+e3U!c4bmlXwXT0K+Tsz!EMMN+HTGHgfxSa?uK?AL>_P5a!2} zWa%dRLuA-eIDyXNrgDs<$m|i zd7-SUZm#$N`-xHb8YXk}h5}~LgKk$>&J+~Ey?*X}EzU(`Hy53L3FVMp)A@1uPV-PR z9z>wPsc(4p2#XeZ;;$sTk+>2zAUN{OJ>j12SCFr9Lk|=gM2*Vs?&1*uJ=D|WhNe|E zd|*bfTMu{01mY%OC!HNn@1Y^XG(4dJ>%z!DBE^ylX2|$eP^_SB;`BEx0=PQ| z9-G-c)%yOVM$DiWF6@b$3>T!WRuW`s=2>BzXl&O1aU-tmMJ#})GXjBeFKJ(NWMQDjpAS+jNZ}g zzAo9yXlml;mMh^>mP_PtG>t?adjr}1T=d5^g^@|+$^=C8D7;$p{fJP(Yg_hrnJy+P zkt^Y01%nkddz^@Y87-MTz(unuSHq(2#_BqdsJocP0bS!Q^~Y1VV+nrNMI7Y9`NacW zMu>iLlDa+?O)8B_JR++LsVJGc3YHS`2ez|QVbE9zg5W9#x&AhxBM6s>{Y;wTsCcV* zhhyJskqcwz3cGeW@oC3yR`y`mGE}XH@RRkI3VE3T6sUSQpDxH*+X3tV)LKU5#7WN_lz8nh_R`0`VboAVXj>)uA~3GlTr6G#9_^N6#gP` z!-6RRrhIF10n0qj;GbjcB}?FfPT z>3nj9?}Na}Dz{LvDSLJ z=fev;d!mcM|LUdF!m}z8AQUD;?AhXoHqT1KZ6kY<>;LA%5!llPna<&o38(`Ixtl%N z#gj{xn5*$H_F2bjRb_mp*F|O9>Hs3mAQbRWi7rrxNo0g@%`to=!ek;=37paBj_cZ4 z$gUzkt0?t0o)Iu(*ows-?TLpzEO|VKOPQ5_DkK&Q0vhA6kChoGF&)Kuc@Y0oT|B2` z8I&G6II2gooirRRZj^!jMBXkL z-NgW2EE!)|sn+7Z!#_ZLgm^}8VWGn@D7ZPGuRJE5Jwpk>Y8O*t!m;%@8A)L;Fr13uY6UpY;nJjYgiWTc zt`(y6D#(yyp%dkzMzG-ImRE;{%rYLG-*V5~{S zUvYK;(Q^ncEIk*kLD34=r+4EhK`nNT2 zY2kDL9ACmwxPT$3BI3DUAV92|T1hmyxH>_FYhVmZV#1D)whDvn;B4_OTy6eSax6MhZ;JVKKE?jZh6Zs)~zE;hCC`!Z+&j|8{PUi{7sI zCvbC2%$2U6aDWa5BV5UY_yULwiwGi#>{UvIR-Wyv;DEmANL8$9hETl{xwpx32PYn^ zCaf5^{u6tJ`RvtJp?ejYT`*M53}HumE6A&0ti>PJJd_-GXd&o*t^_#-#OxZ^&+My} zr#C|s5r0c?3qwoUYk%$*aOxg`-x2Eo0Y_o#jc2d>xm!R)|7anGZEDbbULu~o-Zc(7 zlUCcBtFTC$4VH$A3=8_hRwu&ilwo1PPJOJDgLVIgA8TxdQ&uigq+FGV;B0X`yZlGj z6f5_K6X6mZ4NEcfDtqJ4J=^&-Ol3)IHYEF@3BV2Xrk}e7$k*Vh*dd1K3icMw-uz={ z11vp>2nGmK6UjsBDP?c@u{A-ez$QkbfOEG{IZ)HBKZTlsQN$3g3ohW1avZ`y_BN|z zs2~;*0te)Bdk84d?LoXoDie8>k`0@v7IbwSOf7~H@CCn!>~#B2w62dwl9a{uJxJ_3 zCgI}=hxl|38$Wp%sc~lf4i`hWDFX=ntIeCUlbemu1dIDKU_z%|7K|FFB_XHj0g+?y z6}$5X6h z3pf;wvx+$IexJy1N<1~?p{7_6@T7!&wVXuwJnnEKR_pg_G&mX>Nu?MoE?+K2U;udF zzg=PieSPqsATil`q-2?5J@!hxXW#=;|Z5*QFUNo6zX4L zblH=Zw_NQhmz&@4Nz5TnyE=>55rhNQU@f}B6_gjlhNO4t8JAm<_19-z?edBXot|@f zj7JzxhRV;oI*j+i3oe)OjK*Fx-sn+Peo4<)9xIhzcDW>2lEe=wy`sOV9r#yWKKZ8a z#}Ac8UUPLwO0|$1dEMo=e#J1-Z@2< zl5sq|>uSaMK|H*N2T6I~GN{)NU9Dr=FvQVEE|W?C9=pc*n*S0`BhQ_N!Dx7as&)gygxido?p-8T-s&5i0L4ZZ|*RMru}C+|}*V zU$KQHp__Jdd(a8YA7b0!#;NM=?jB2l0Yt2+jPV%R9`3fnn1J=3?k+qv!Sr78neex_ zyAz*v*xtw8f|ttZzHS$O8P5@}n$`W>9e5ib;a2kg@;o@Q1X|7k_1+=sJ*|rey1R`2 z7C9sEL?165WF~IA5UTh<6;Z272fG8PP~1$+Kc!|tEH`wNdo`qtmA1y^)|l)1 z(j4vf7|n1ABFDJbL`H(O+;gSk(GI{^GB%VOJ=WbJLD>fi!=uN!rx^v6AO{x$2yUMD% zI7x7N3Am-&3)R%=ej#3N*lnVRyt1stE?v+Ime}sxZUV{Rg&p2kBpCU z$*LE)yUqSds;uONZlA1bJ>?>I5Axyklza!+shX=7y8~u&zt)TEyOalN|@FGSND zBw24@xtk15e~I2GpTJ~BisPdE_B5XxwBrEWM*7}H-60N%V* z)2CcD{Gz0y9}TH5N!dF5y)3OE7pvQh)Z-P&ksXoq*T1jiUzPD>K|yeP+Lj2C0>+5s z*JRDuDM7{8-9e0iA`oVf!@$jaI7j)0+rzLc>IDa{-gNg&mM!|0+bdIxj};m7+issZ zBdYW}=BU-Iyep7k%nD`#%lw|(kD0>gu<*F*tp;Q7`|j0Lk}9?3Sfy4GQ2f9h;DQ>+ z05V>yd}x;6Oizz}B*26TLP;DCs4X+T@Rqxejr?2~wHTjBdz<2>&5@E(L}uty9Z8vW zK}C{26TpQBGp@D(i->;i?jk>w7u?pV+WW#-F?~#5N{2GVA|MNrYjv*9X-S~Yj&b# zQSN!D?&RUzTR)<%;lXNYXAeoS^~3DJtp z57DnidOjdGHwnkw-7{^%vI=P{jqM?oG%n4a9xt*hn1jBM8`{g$Q%``nWYCYjJ!_x` z0Iki3D*4>d91CfQ?&Be4H9^TzYF|$fU!-G{y^PBClL97bvwYcK3drSQ)&d7e>y2F( z5CYI0=vf^-1Ns}_W-M{^AP><2tE8XSzy>U5o2AQS!H<)v)Zgpbj`xt+A()!A*C%+^ zLZX^>Xk&0owSGO((}%C>2A-8>I?1yxG7%7qMjl-UF$Qz8haAYy@w=$?_Mv?gI2^V@OW(ZFtDZNMt%p3^YU|LF``!i49Uo5c5 zY?j1J1R{k0=y%FPGrLp(R1$?AhcA;Z)Vb{Co=(*z!ul2R5!8V%e<+Py>G24~-3;0e zldcl1z;|E-5D7W1ww6HZH69jatgCjJZ@k43K+?ARJpmqQz1 zyih=I@VF#ufvRJ`e`4K90&^nuwI zROX=5=;f`FWWHi#(c6rn37?(2>FrVnT9o%YWVWpXg(!8W6cMpbM7p~K3KmpU8%AgD zmWqtjdjtlsAb=3z%=gxTLY2Eupa2ak`p2QpCv@EJap%Bi0n$?L0i%DywH_2mG7CK< zNNXYl;Z!e&AoCAPH#sr`T1jIcF=0_i^rHfE=%?ZwsxOauDE!HQ9~aob_w3R_Ny0un zVRT65;z^H>p*M=A0#|xUU`0$>y2A0aM@$gxrl?#iJRYD~ae%i@QgwR9vlfAMqEsS1 zd{!o|KKs$<)bx|JB3fQ8w^Tavyl`j929^xZeK2A9@Pdp06kc$Z1nxx-d6G57Si_fu z&S45cr7@XiiFxIh<%=Qwl%O0#2^u9wc*U3@Gxw{OS^)oM`n>XMo@r=VK}D^?zHEu0 ztME2oQhMFvM_!#nsM{Og5Q?OFGgy_txK-W@^`^`)bHl*5b!}lX{+9G%K?MMgcOt~w zmN5z(8AFV|BYEdm=YlIzQkhqNSHX8>HW)0+z9(hpjX{{sjV-h0d|%d{$_w*-Am!#( z4et`BBsv5;o0?x=a&ZXH7?|z zN9vCG#ZLtYGUK%h6-rF84DvINi?{>F?dnja_POLyvu(^lGX90&9h;w9-2%GP*kEBU zY15aU(B$oIQK>1|EPf?0h6?9xJ7P4s1x*iMdw!wTwfTcF>)!|vvr&}hL6~n<|D_j# z+0uvaM3QQ3z^GzJFYO6s%sX_kYGEg@Xb5}-gwVD%KD@KnjeiFgmzF^+86MrmOS!bM zwq3ns^9rV5tK*H>I$(hl?&c-qg3@jbZg;Q9$P?x&vWMgp{9I7su=ezlaHB1w=${A4 z1orY$TizO=TF&7#yOLq_C{=rVDU5+W$y(5wyN}e06eVycy9<~>?wU;%IebIycg^eR~<4bBGj8L7v5yQ~5pjK-Bp{z(Lzm(c{|Bw9(!CwbR`&_$!Kb<$w16%aVt zOQ~Cpm-Gcz&(hc_UMfe5s7l3DXjSE>dZ`FW%nqf1p5~=EO{!5qIQDI#r+a<8;s^3M zd&Gigcwx;GTa}&yj(DbbC5%Rfe3qANp^*&%ps@mH%c5;64H%1jj+e5>f{Nmp=XyOd zdZYF81aTTmNF(QasrAgoRk@~8a)GhXmbBS}wF|uz;pQs0q>H?iAkh_NKDk(4iP@t$ zm_jb`QUEnyqnCQu!FwYB>KFBjlyjMM!Zc|SG%nZS5}k}i=jQ|huMq6hp-O=0%6hJ3 zT+ek?Jy$X=xvs85V=~UluaW*qMR4$0TDw+;#&^)&>jV}SR7_6D64!fa$1Gwm=>{*A zR9%h-{3uQlSuPM!XC3Jqy%Z){0-`2h6Z-2-`V0yT-z?v;K49&GRY|%Eay5 z*_#c6bnyZ28g*uC5sye?AC$bbvnZf_$m=z`gMn0Q59?5j?#cTjUTSU=m08TNSo?<_ z6^cnDDU1z{*5-|=h&|+qkIBfmK$vsU-+22-eh|^dmp$&K83S>VbHiZO`Un?Q@=wSL z0Lqmx`j_0;lU~=>pyWDHdCE&Q1SXb&N*REF{iCO)#9Z_y2kYh*u&S*P95+(XHR@TU z3_{|cQRt`VpM#YtJ?mXtA&-ICKml%L4E=Smws7v8=e%9)0s2YYM#JT5srJ0kOhqcx zTyn@SSjbB~RoC;1FUo`{$&PFYr`uo?u82YLB>{4_W6JWFo6^hDTaX3p3xUr8x?-<* zY01|?D*CGQ1A{dBE`xkc2&r!R6?$tLs$Un>L;+)h-tf}2(wIpuNqbY~nq5*1G!}i! zOS{;d%IGrc5qgWDs&C60SbO=7bdn4cV%WCt>KII65-nj?CHXxsEo9?OsqafsUVO}= zA6SdR5kU!d+kPmSstd8rhD;v`VyS@q6|9>iek`b0+D2YJ5yUaMg`|BdrN}D?Ib!&z zlt1%&IkhGitA6h7z?eZhD~n5C2tMlDW<2TsrO=N*;sBgTv|kB&ft<`ySn##9N(`tg z?%xQp%M^<$3rw0o?r*&T&K0aj#B|vLj(#WPN>`xN`t0b_O;y&iJNYP~0cBL;A8>H6 zG)94ZXCGG!E3G~dK4tfB7oWhhY7EvO!dZ1!AB9Q7z@onG=EKf9dt_vyNV&U@8$yj4 zbt`9yQ?iGTqK`t1X5oBKA6Xw^Pe>ZBq|fc;BjaMHRWJ9JPS@WJRNTi$){LnI)RC6V zF-gh3J{q=oPQvV!q9^F}u!IlWuVHK|ZGWkcl+e&!jFt}YQ3%0Sk5L>LIaD6RZR*7X zeKe$6KaG{R15zp;3eTdW}7jzns0Zo`ELl5;)IB)n; zLLbMmty&p5%twKPeO|C|uzI+UtcY(%_uyXVuZ3pS>*cqDm(Z<=f@ zlRuGS<6rKCmw~n?`ee^p2l119)NUY=DsFSKkMhozJah8<`SZ3og%gaMw&iM$8gOys zR3F$qQWQFJl1iufI?G_y7!kgo&Q&+RtFE2l^B{;j%z=8FXExL!@OzfPD4U!w^cJCz z&-PJGG3+`N2F?+P(rM;MVQ3us*ttFtNXPTKfO4L^OBY07KHof?f+Me;Tg3a5-r*9v+YB@DVl43oWR$PCvB!ZsO?krDFM^*-TkVw*PkDnaB1!N3Vd zYkXNQ^i3a_Y7Tg5qHguZW-yoV59ynHO?F|ZdqcxF%MycG>dq9m_4`&bbeR3Q`H;p+y*P&k6O4~4dB0SxUml%|EdUfw*Dkrs1i2kFSmF2i4pw^P*5n1ydN%b@lsvl)?qQto^#*=Tfc^ zCHQ8HJRo#MpFAVmgFe}D7Hl%qUa-rDd_-^~A@Z=0DT+$DLQM(Vkw+vAL_b3vbhc2X zM}2Ff9|{g9ZiU1ilWsPAW}hDyxNoe9a?BIbw@tx_3JWcbJShzWfh=iH2{fY$8nDz3 z;?n{vR)rc^h*gvweK=pO5R@Rl)5Xo`Gd{mHI|=8rKJss5s@JPV`keHw;RCZgKjj33 zUy!aV%r++XMIl!O&Ml0VN|Sm?ma6WRFz}DkSmk9&RI>*LB93QcuUP05cgtTDeAAf+ z05=Cv*0a7Q;AQ>90LuS1deHQh#om=kwREv@T<v)A4tLG&n)<%OqH%# znG^Vt46PA-jmiC3=G_WDX0cDCGV3Qc@u`mrF}D)UjGy_sbt?&zxd#SvTmIZfm4YcO z_Js_|9E*xOSg+zs8B+6S7W_&HFUBNnJ7#V9YacZ}vzUBjp>JfwY}@>1_V!y}fFG3O z2|9`cdd2Sq!5i|knjQW19ny&v?c|?C$6>LZ{l7%7^i|L~;Kbs)_$^v+b1qi1tJH6C zMl#lHH$TPd`Uhs--EVd1VagtUiVmRivKd+_>}kF$r>?#HTpxZXE!*2qL4t3(6tj=C zjU2t9^h}2)WO1meo?-wN~%1_ zuk$#tbhUS}8MMc&60G$hm%MpuE!&Mgoiaah^X2t(%TAhLi^lvNUqO zf6cm_2Ppt5k8%PeG+ux*x_X6TB`oB$$oylpPIh;Z2|(_;9tEF8mX9wWo5aaQoc@A z*`(|b+$c+BNmT;oO*-U=TeXq-W}$IwG0(F$J5w^}p71HX2gpT>l(#8E7Z zLbqG1Hq_iZgbwL7DJKJTb#w@1<4zNgFukRvFflUF#9e~v5VJ|Sinx7QAKBf0s)edG zW#_-gMB7|(36~Y*4)xqCyh)#{0g8I_$MeFi7 z_#l;x$7M<=SYw1DJ3k?7q)UX{mV8oCrLkq02JjKtse$Pw8GlN6Q(a|$+P}u2Zil76 zvHGAFSRv3LNvi+Q(w~vV291DuAF!%q*Jq_tl}JweoXnqk=cuf>@VwDg*bl%ks)ZN) zv@A`YSy|0q6j)L@ny}|3KlK#j(*)#s*-vYS`V35c#qx@Ny=r*{(!XXI8g^_EuOB`D zulseA6UNKL#ich)LV+sYG+$8tTQUu#3aXcH`*p!eHp~>+ct_e~o&ucg#@?0c`O10X zHrjhKKTHAT&O%{&U%<+sy+}7Crw;^UNdE?_o8tHYm^rqSD#ITNT|oNK;Np^5??*B^ zYbtvD@r0}do==2?unR_0Vi5XN@my(-s0G7E`7@&e^kM!uz)Vs0 z6CS_wucyF3QVjNKNCtH{-Z8NLl=(n200iP4SKKK;*~e&nLY-`O=K#gti6#@}U1uQA zE`cfB_E^oX0rp<627|>^(M8=*0L*dkCOukdK327RK-7Avpe`<(HS7@}KUX!>KeOPT z0ZMI6qunb&0mVqf-brEM-VOPr;-O{xNUKIZ${=dWhd@FgYVI4*T_x(vh%X`?mB#jy z*)huM6)O81vfy~c{sD3$wR1p0`G5fBcB24<^#dDfK!UM^hRx-mz?wKbl!GWdvUOI! z*lP~XGr+N-SUgy*&emIlU{jhF>!sCg@sNi0aH{OkfYnGn28MT7fHJw!C0+`$l>(x% z>fthWb1jhvRMB`nV(JAYD>yPx7nH$7M?|Ny94J3GE;Ivj97nqLGucV5)CGz;ducpXm;;N#9CrsLMGZLOCD*+>d zP{9Q_FnCgcN&xNpeESQn*(V3;ra@&aJVnMV#dN`?R^K!~H9%3$TIWA-9CDuQR-P7+ zLrn5fsye;i0Z=hEc}75Yh-v7o{cIfk)w zg8dpOFvaS*0YgvWm)bwnR_b{HV~ar)IDq%y(D?zkE|`eeb3uR#@TQzE96GwN{`Thu zb1n*qw6bdx*GVn0?3bX!19lOj7LWVN{>7f;_F2y)-YnohjFBj8fiO4d6AUHTlzmW?WZSD{}ykZQnOHT19$HoXPi zXdxe>j|6(y2y}_DhW*}01GIst5*Q{<gM@E!%;PY=)+b)b66j;K_Dz6RQ8jLZynGv&MnJQ`IhI|{M-;yc zbgTOYu@F$md9ED`zGGK_2cqz-(m_Jd+oh}9 zvYL{PUG81GR_BBpl-{z`yLD0Iw32)H-0t2*2~{;Mek$l1Eurv;=&Dm2!4zdp+_Ou> zK>=VfBktAZ!*Uoiz#;D4)n%}q(Q0YDSRowm)3rKhW0*>@Vo<{jzzj3~zFohV?28UE z$grPuT-hmslJiCN-(M2RI%mrvH<3LK=ptF+`b*e`1G~6jdO-n*dF6wwX}Kzmhg%#h zX^Jcx^&iqjSzKRNB_ti%MIVuQVvO9>>hupY;bC1AN%idLz?O!sd0zQ&>n8w<<AG_!0|X!l2TQMlI|YAAwU9Nk6CtoNdMBmI~zng%BQt|YVSu`(4# z4jxgTz3jLyvQ<6J>d$|?z^(paf>ZVhT@zpFsVCI+)6e|@^?ILs16Ui~NJlt8To@Ol%5d_n8x^*RLl|R5(F;r5Jc7}CI zbSOI0nqAdkEZkXwQD#ppt9^DC6;u7os9{8^W`Txq=7MeH9BWZRF+#hD0yA)~^$Q7( z`QigS7B}k&TsrUgp1h5M~#mc$Sjyb6urzZY)oQwnu~-Cn7It}xL7)5 zCSwYWV;Pr7o8}ia05~F*wg6GRw6U1_2o#J(FO#Mf4g$vLlXZC)m1~ux$2B13gDZ|) zVs?e)Gbc+vEuen*2Odqi((;)z*7W%*SqxP zO0BqENLhx?5XPp8Y~tJ@tVHF+fsV0dcXrVPWZe(u5S1GzM7V0MT)InE#hL{nj`W=x zsq}73^J-r2v2>6QarZX7j}-5dIZ@pZ!}q-M{Q~qV3DSFQF74s-$`4pd(mME{3=F52 zEYyM~lZS+2sN%-tKWu4*$5&v)d!&o9sF7_el~{b#(g=gGJZ9+&wpGC0MtJn+@y0g9 z-SG*_gjN|O_esU_IrD@937lJe%F--k$YpdF9vpev(m(8b;IPTaiZ1Hb2w%XLxg$C# zJ|j?JT>-@%pS4t=`>8)?845w|c?;lF$}h;9h#si?Mae5~60qVWSw~$67_4rQ+u~&z zjG3|-C7#kNf=_y)1XuXuU;#7}x0Jss9fG5_dgaFPYcg~_H)HD*OMl*K?(1Eh3lU>T zy}u#zs#CN;A6f+_66S`6G zJ;6Y50bVa!t7PH4Is&B(H@Uno}nEvu`%Iv{d|17R5~461MTdDon&5 zNd;!QVrU;*E6^F*CoaW}=V{Mt*PTiFEEXkSL&J9UoA=#yy5`~e=XfadUwVNW6o<3OpYY7Jp zu}@qo?q>Z^tJFX2-c8xmD52=f9^IWr)x)EEc2it8GbnG(y}C(U^+d7z?A_h1R4;u4 z3_gE|H?og4pX{0K+igId(6~x@ziv_=y{amA_6U>vTgR+Y4``^1WaU6>Ch$${$RE_* zp%d$$AzP0WPpW^eZZlRpx&E3f zRH~;~UU5X{RLd*&bWf|-1#gIv=;__c9SVIz*)!^I(B96hzd_48tNw;+&#u3rnse&4 z!ZI2slTJo!;wqt z@91@8^s;*Oc#mG*_&Iz<{c|CYz*Y6n3zv;nYF7!Q$vawej}Ki}ud^`p55x)(V3jIh;#Xw1bc56j#dQcqy8$`vv|IqqND^xT-7RnI zrU+>yt4+==b;aN&>5B0Utm5W|1W4SsNaIEh>|`!4PLeuO zd`TwU+K?`6zdWIVTE!5#UlHuI7Ls*+RoFm7@_1gB`LzjcQ&N9j)@?zC-cN>@{>Fql zFlZ6h-<(hfRf@MJ^j}v=-WI$@VlJdThqSq2h zeqf~N)kKmX3aVP_i6lQVl8lNX$&Zb4dQGwDCq{~1Q!M(aQH*)mek}T#kz~|__@+iV zy(UCDFjDlIlJPH%Vn$8L_*X`fQByMhwXp!qg`+yTS|s_6k;ZI#+P6lUnJ*Uo&PX%! z#iBa~DWmB#A!U>Cos2XyUoyUPkfM|oP$;SHA~~(8mGZ7Z%89@Z6_1GRD{S2@NV8t! z2a}-f9`u=Cu(^P0~~BgznL zNy;H<-yo%9BN-?4V3n0YBL|&w&5Zj8dvuQ?{fl1afFQ*@J&g_!2L>tL>Islt;Wdcx z2GY8oIF6cC^1(q$-84{DL1*fX9U{Fl(^>7IQiGW^SXH4t4{J=ul*kt7;f)m|S*bQh z1buKL1)FBLJJ}*RGU&CWz|MY@N}$gXdIr96bg&IMsFWTP?7)-a8OO>q<{I#ST(A@A zd>+Y-9B+Q84xSKn=^uES;lyC8dOIn&8Xim`Rz+o{P;zpxb6^0UL_#@5`pR0318S!R z-T26$fs)}g=@`Iu{B)@qPiF*Mfenyn&J4Dd%h>H6A37`OQ%MMjgMDxOoh=m;M45%I zRObX;LxaP4=%@oDwc5GCcKpj(T5?{{#Yd#``}x6kR7DkZ^nzd~9*cuZIEo9Ud9-zr zj290BQOJ20%S^HzyilyZM5YFX;6-w2uw90Vx67n>Wi)!Zo(A>g3dt%PW`kGi$#}a; zP2qU{YI#6C*T|f(5g|j@23_bEMQ(hHTqnKM->wgO>z_D^8?1Sw%he*Pk~hlKvfxef z1P!WovowiL+#>VGz9Cf(X5T8k<+#TOZ!@2(gSX3k$o301Uhc5Ijov98SKpRa#_qDb zLWsTFoI9O7-6IKv20h_k>%f!o`+^?82IqnFI2pe`=*K&|1P5ugYx01U;OqDx{{NtK zRJ}eVxv_;rKv!dWSbED*a_Julu7P;C1YwpD zJ^--Ng=d2uoD#|MoM4@Z=nNqrH5+?g=0$x#?iZx9mV5w}7lUgnWt@=AJ!d&EY9i)K z(p`QtX76Q5`N!ZAg{n}%UlH&@!>`IGJeZkZlTTQQ*MqvwUs?*6a;{uyEIRUrKqeOo zwZAEFz!%+K_?Cik96iVKyv=2jdK;I5;Qmf(ppRHiY5+SO?Njds+w_$8 zf%5<&DDYc<5NzjU^6^8^8Bpy?;iF)CaY#LW9Q4qX4ic*3vV9VC(s%gNU~6%R51$2F zNxmzE&x38y$ocd|(1UQ!*yY8ZI$hMh40`c`4PV4w1Ap3j!2Imz>Z_7 z!XW0~1bqW^p26;cp8RdFMfT3W3nDO$+(J+qSu!{Vw|QjPv1eLSA_<`EE$-CQqkmG> zu?ZI0xd$ysJ&5ZqHSf}cxKc(+xriMIgncg6b~P(NM$CngzFW_l_3TDEjyuX``0hR4 z`o}69P4=)hC#O00>_Na{X%71h1yIw$+Fm^^xje+py?a{GaADixK0VGdNbJ7+$t~Tl zr)40EZ2R}DtxDo@7Q~CFjE*bUnXwW!BS)$S^!%$iy#`Na$N3T30Y))C!kNWU^B#oE zVi%+$Fmn2(4DsHygC>4~xrAR1?r~Q0V~Y>zK>!f5C|YIEY<)!z?ODh2jXYLeb8UP- zOooTdhxY*eu_H+2F5{%a5j}|ZSLR_Np$13xbk<*v>T%L4aWtlg#))I_3Zulac%^OP zIK09paXen}6FouwEQ3u% zAouA#Z3AR-mFO9$25p|n?uqqaDaiG1n9tX;v+vAe`j@%G=^m#ok zNE?ov&-JVnFX(9j3N0PIu%|^#9v2a4q<-*E$`%)!3A)F_B|Q$1m`i(F@NXo1nfe{Q zyvK?6=oNS+OS`hi0ZMXJPrDE|BwXFliEDaVWOlFZX+@~wq5Q~oJr0cddaNrZ@&--; zrf_+W1OMLG}g{ro_A3Bt9SP}ky5>uWu2OaU~#j&-eJ2*o#gS{dzf;nB$ZEJ$}*J-^x+zyN9k9xqIyDY_-igbXcof% zlYEbTBddqVEVaSdx9k|W86MlZY#OM#>>YzH3Ki@K*tNDyg%-O>GE(_~KW~I}!!l4<-d>D5o z$I|IgG#pLL3@2wsW9x%Ep`L+AdRAmsbS5d|%xZCQXvV@?ZM3@4h8sehSva1b1$Uzj zhlZA@e`cZ;hV}?Wlel;-nZ!kvsc4GVjm2Yl4&&O%cnUX%#c?%WIEOoL*7v}UG?Ok% zvggzmo`oLF3j3ML?SDuQGuhWxe2C8qYlqr=%7YVBHOG4ms_h%N^5a8`XJQEu;C}-| z)ihsb!mnq8)yU0fqAEGJKa=Q9px&TUW>`##8~BFD<<5_pYWJ+VK{u|c049x&LL!=3 zhNB2(eghx0P8A<>CbjD72JN&+&xDF*`{Hbyma7iiG)=SppYFfgcF_K=*|z_?eFr=^ zcGw>OI(NYTw7<9T2fuCd%O~3owjGd%k9IR7k~BRTKd44tw&#x%)$zAOYS>=AwCu1w z{)a|2`?=of4sar33g*MEX=`%nHYyAaZm4rJdR%UT`J5G_r}Ruqs-~^2X9hQ|Zn!OH zPJ|4V-2nw%(|WC0hAW^7ylrJdKHFN7kDeFRWl*k%H@ zhN=%$)#0_9N+_Y;?C0c#)-ZZFI0BZSXP!l(s5vGt(Kl%c@i8SNs-jbktfxNTGlhBq zw~8gr-ffIZ64jW3O=FTzE1Q6|nlf95H1#^IX^hFTPL$kc=4x8&H0hVx57|)tsLs*< ze5OhO!Gc?#)-m~%^%~VTEXgbp6=n*D)a;X&Tx;@@s*H2;GSeq7W3Etn2wvox9Wyo*X<12vRVAQs5amicB-HfeA!)q*E??yVl<6*6fj>?GN5hPsVJ#b@$arGh+}bJ86zoazh|prEzqLfmU;}m zU)$J&)VlFNi&4^4+P(I>&b$BLRFBQJgMAbKmVKH>^Z%hw^Z&^e(p*bz_8oqyWeyB4 z?z2zV?3>s(3E5`Yr+KuHEwe+?J`F#iMZFG{d}=sj-yEOpA)Eh?AxFrLa{j-q$rAju zna7SQQDWMnq}_=pN79bW$h2s>=5u9^Th0G#&6PPxe%`R#u`t`C?d96yK8I?X?HhgA zHOx+IXxlN|=gjPAo9nTKv`lzon>}Rr&(7F-ZElB)E$pXHmxP-vAGt8)?7A&wDT1Hr9R;1yuSPTy}R7>?lA|xfY0mU{q2YDJ!OwwS6uN1 z-q+##U2p94;yo)aeg*G6cz@%m8^5~z-4&Ov)^JMXe@U!D3>4oSF9C7QzjeFl7HD zSCcc0#c9Rj^tEM?(z>C|*^A{{A1l$@jwx#$3$!gDo4|ocL+uSBHN#R|!dW{5aKO5%^peI_-A!&;K849-NKfrhpE}@yosz zbS?AAeJAZBfR4AXzjGMxfUWiIPJmNOMgYW_@h`%2a1qL|d5oCv?nUd{wUh(zfH3@M zSq~5<0Z>UVH%|* zDg*L4{Ok8>?iLpsKpAHrJ`v%Vi3#nSVPf%VeY-ma1a<-)Gicr@gtgIMoUVGkY{#tH ziK;WsF=j;7Qqa+m7vnU#0VGu22ss4n*|4L1Lc?}f=41!3#i_7G?-sGeIs4UzjyvZJ zU_)n0n}OFCUcc^;Jzjp|igy8LA-uo)>`r^#w%^lNyo7hX+%%RWmKnn%v`e3je(?os z;^JB@0)arMv=r8;g=@xz)7PwpYsQ7szk?6}UO*U+a@ZWinvjJ!g=~Wv8wsGsX(tK6 zgVxuwD6_+&41ja-HlY?E8A%mBE=CUfJdZtdIR~zj2?rh=7BaCe-d}k6xN};Q+FHcy zS9dz;vv-a;@NJB>8}IL}*y*Sv?tPYo!iCoto&eoA_sFYB81$OfF%VyWSBSrSWleq@ z+*m4p;fd3(dG)-fFXkk(<~LS6xzBCq9nFUHin=DP_?DGbjKu(H%6xnmNS^e3`K~YB z_RiB6k*2YMS8qD)rN{O?>Ohh}y@l?{S^$J&+7>GY0?M$c54aA6`-CZ%VY zw;#HS)3^ai)g8O-a{Kv5U4_y760e`Ue%L9ypL*ogcwGyxFFtYDE)VVd?8OAAZhl^I z=Q)SJedML8tG0}5QD!}KP4jO7dL!f`r&{z2lLY_iPTJkTNGDka@CKdo|3Abff`yHY z5GnY>dpq8DkavHlpwJAvyPnkQLIr*js6Mj=(r66;V z&2j(;4H|`MYNA<=%#rtk5eG4UVCZhpN{~>HTD)Hv#>Dzr!r4n)2TcXsW}KUYVA*F2 zzS#XT3@1o1Mgum8Y$SddtrG;?u?h0KiA=qy7ih#MtQw|j$M%v^i4RfopZG|UQT@V zuv6NSAPaV|vx^RS{M;ii{sOD)$NSq)TzAaj`#y8Uhj?$tJDKR|`yVGvm-P^lq#nM= zgg*#MJaNM9o2dW%TV=LiOooyTMdfIfG-QjF$ZENr7bh$lVpFhym9qd_c^=WIYxz^h2{9@fu zZ{IILi9wz=wt4a6CBi{C^8&-#@YjyNPW<`t*Nwj*{#L`^8u(iie{11yZTzi+zjg5! z!e1Z$eu=;J@V5c}evQ9b_zUANhQB2KQus^bZzKF|jK6=w-*52uTl_62df&=_ZsR|9 z@t?c3UZ@dv*S>ZUDGh=LvdGB-Zjlbv$sOJrL^Nt2pwM9e7AVpT``UyrK1}Ot5lK{| zB-%n^AmFzV&nu8_|0=3k3Mex^3fA153_>enEfVrUxHL9{SX(_bv|qs^Jx zx}p%^;TN317JsDINio(gGMGQXEFHaVod20xyGP47WbN8mamInQz+^x7oz~kvd&jSz z`%N!Y0uh5}?=btD@3x0zXWIr{3$@O^VTWDtX5WTgYx5^DUc4=b%KQ3j0Wq9vG#p8r^wZh2AfeXYb`n@XbmoXoqH_{AwfAp=!*LA6ghD2I@q{jxGYK+L@+dhIq1lE00xj(4A~MQ^0pLX_uh+fW41C7_KU0in2U!bG$?9S(;R zvwh&8y2(vK$c}Ni_HD5{ckn92I1zHU1v8p>@kH^+o=G?0#lI=MNZ0WKI;Nr) zCSH)&Pg^9wX`)BSIaAa8an2r=itB(U{YS0nMw%bvBT0Zlre$XM7p&<9bFza9LIv@s zIYXPEynTJgo;Ki^{ZACb680l)y=_c9&;|_|?>pLhJNUk|x064ky{IE$U)T$YbbZI) zdp-R5Td$WtTlV_+^SfRMKzcL%YH2p1c*-vU5T<0WHe2iM!e2MOde6YZ5JByk8H++5 zEB~FnL&%Lk6r90-!eGN|ZP(`wc|-06YxQw(VkX{$6 zH5-aGq3%R6TKI-yX~N6gf{~cc_B!&KtlmUk%#E-#DrI0`zwU#51|1A(=gki74if=j zpouecMuhM=nz{1xc3Yd$5E_h_=sAr!bs+_B4b0e~I3AfX#8=Sq-d6i2BF6W%)rFKc zAOy{2ZLCY|4sB-7k@jmbp=H)X6`&9QjzQ>pMF?7iBSpmyASvp_+IZA5|7TGjG?Zz` zHXQ^9KajHjO|?6tuZ6RKu1xQBIyON$rOLJ8NvU$}$jCwUbtrwd!{0)5hcQ{T-ij$~ z2e16=nl!|~Xaxf>v^mhT7AkcuRO&FbVD~^%8IZ2jgZcq?TAHUevzr*ecGCrCr7aK$ zsU_KfDt73nB&M`mp||pmb%Z%imJ3Zl8DgiYN?~ZA#diGoyF&O^&rLFpBCrrqZc|0j zZAeNa;zlN#CsCM8SSeTn$LO%AqPk%RmDY{FnD4qO>S$6$Vb5()MU_3bu8KND6%`{g zD-~6AzCuOA071Tj?x4dmcK^B)FcL5YE#1UJcOxE($zh&ZC(NOGWdbtJMgE{v=$xrR z8OMacFhIo?gaWcn!tMs9kl(ehg(>B7OMP=qp#b6xCYdURze6g5aN&hKw@$B}wcyPM zGHMt2QP8BpI)Va%Wp>w_E%sJJ(1ksDCDvNjjP->uG#8z;;lWW`lv%o{w*>%9Kz1N6fVNeZnJq@XZzHhbHEx_mHD*T!TE>cYT^`a(95qhVDf z>MEmaU%P?0uv%lvh`5FvEfVtjz*DgpYpB7W2{|{k`O!aA5d=Sn1WDtJjfQMlStppi zjTQx{FEY+{1;?%D^>$*^Eg}?)rHO(sCZL1R&?!y$fwo{Y9=jVNsx`e`(zBj6wT{#D zbquc6*Lemy(Fv92jNTRqhYGZHW368*73dbD>#y;y8(L_uwHjJNc(+0~?6VDq7QHIk zTBIudU0{65KDjbG;(tqf+o3R!i~upj+S1z0pfRmoG6Z90F~Ly%L|8X0SM91YkOj#bS{J%vl0Ft&)2hCwEq1J!*fK6GMM@U=W5el`Ow;gyfMFMOqX^O-_ZX*!U zEHC&G77}MDc5ifu+5b)XdBf)5&V=m3>F7;@RA-53lMqP|pQ-gyU9~Z3rWO>P2%y#u zr6XelOoO=Ez=}a2?Iwl53PSq)B3<=gq4FIxlVIH5zsYcieDDW0mPnqZ%6Ik_@{#>W5bYBBlz83=g1CN zDX3C5VK-Q-&X&Q}@f~k#XB^PVGHa8q3-a1&D72Hx%+}@$-1Gsxx9hWo+UHk2FqqEP z{=*~6ux<7Zf5j6;5b_~%D1RC=g$<0qQ6&HvunN3}tW{v0ScQYqD{&w6wH1{#8WGrV zJLn1|Z14|M+Afxic3Lvp>z0i6Gr0W7>o@ZHr^<^_p;N#Cpnxt!BMJJni2@jkNR-&c z6V3O1hamwrERxlts^d3U21&J=#rnU1sQ)RV4+dx<`ld-~661-nfWW;h7m)N`Q&fo< zOrQb22?>{_CLIUT!AkDmOyw4g=C=&^kmWsitQT z=@bF82>~OmTN%Wm*8n%Huw+uuB^(qBu4o>)X%o#;D{fOOez<)SDhDCaFcyHqK^Za@ z*raqwnLz0P)habaTv#c&TTPKWyHc^qvoVkU-$-f}d{<~yhtMh-LliyZ_$)+>mJ3>x z6{Q50QnhG>(+QMQk|vsV`dStJY4sDk$pgT}NixBD>m*Z9q)rMUJ1Ua7++lb@fcCd2 zD^SSBy0IgprUSxE3wJe9>y9D$XD-ZKvfo4u>uXaW)aHdl1-c6JB&HQTX~j+?g&nXY zHjEl65CU*e$_ehq1tfYghxj#MHbJ;K1!P{}fL>!g)NiN-77p|b<=a(h0N!j2Sr-WL z8MeW8XziPOj7lKipey)8pOMq=Qf<%n2PNQ96U&Z0erVrJBU|-C5X) zCTH7r+0p}HNitJp!kV$qE6GVFEiE#qthnA-6WP}KW(~$sg7AX?e2`V0)B1MXXwsx;upJa$@)A~GyEUAS&7{67P#7Y`UU?$m% z#S?Br4X1-t9cBbnKnUDMfX12e!R&bkxFjr}NYgScw1kd@05(f9PW4a|n`j$$jl?F} zk$FN}9k3y=W(tx2J87RDa);a;mk2f(1Q=8Ylu4Lwku$(C@PTBm17k@hE)0YuEe4^X%hc6Ic`4a1l8 zkuU9doUzEiUZ`V3+usO!4nF-STI&qS8c1IW_Yh3j2dKDxoy1uO>T4mRMVJ3Kzafid zc!UfNyVu=N6NGzcR=}%{%=4nTx(u@EJenb!ldwJR<|omi$$ z?}Sx9*0{nNOE`77}A6Yn_flvm%`i`&+HcztEXgZtce{!`)?0iUbcA1^=k zt=;#3`r>!6q1lD^*Pn&g(5XjVOXmQ+>VJWpE&Is&yU5wC03rV`T&9c78e@A|De4ZW1z0bPMI4*z@@ZNVm>J2?G;UhG)=A<0oSJ{2Z4j&m9WD`Naj z0{2=5dqp(#t_MReG6*e5k__PG{1qU|pUWc(%3c$A!js|%^tl83{O~+^AF3}F1egQs z7VFq3o=Ws82N>@B++ZE40TrE@Xp} zL2VsrRB2{vw3a*BU2r@UQcuEgt_&ybZ?i``Vhi+jb`iOrms)1nFT}?u_z~o0In&xU z(pJF1Ec1;8(w%S(#7xluh2FQqQ3M|xAdP)(STNY+05ue&QDyrg-BA*j zRjPs}`^PuT4%``)H1J!i1qHJtmPswsInrmRFA8#hY8wh^i!$Lct7{144#kTEv$t?L zwO`tR-XUxW^VzPR?XJsgKy@|!8UH*?Js?Z?Uj~nhGmdTgpm)+`kDeX;=-4C#tfo0x z#)VPA(tUP?B*Y=@aJBlMGmrQrUa;V}?G^MOR zu)v^h`1gp-X41Aa*NClkdrYH4DJZ*Or_N?Pwr=0oh7VLq>sG!X3$>=1@p7Z5u___XJ)+kvdNEjVvGN+;X16WebGMZVp2Zi}s5W=UoWLs}ey z7Z-lnP2etnV3Wa!^*IzC!nx>e!9;R!eXWaS8&iZtmZKrG9n+!wTSDy+q&TbXl8$~k z>+=e+t%LK5D%c7<8v#(LlQY%INd{!X(AC$TnTAQkGxBz3wgU{J@%F_`1!E&=WrHpF zf(ZjXu89=^^JHH##wD>y84R9l3N8q{ENh2o0-r1SRxeKb!^ARns_E8=P{I_tp@7Mu zfXShN3A3!Gz%qK^J1kN}8PyFPv>f^rw8=!H1uzLXjp~yC*@4}}t2qg+Y7zjwlTQN1 zZ(m}J-%-=Y&+Get&0g=Zk(J2cN1xV2mqRp3T;sgTIxF(HcO>?aWYMIeC zb8eEcO~(WN)7d?lJ_vWlJ{>@!z1;6)=yz@AuNzK9ZiEvHqd2s(5l?>%Af(JFuBniS zz)KLyD`NX7{h!+0f&bhh8l5~tG%o2l^1%ZD#-Vi{1B|2=_7~ErNHke0M^lAzB9YG8 z{ys%jX&%bNQM9U5nUr$|)kv5p1yyu|7|sad9YNyN@dmU|P9}$t{-b|Q($!1O;Xm_GT`%$j8kXx1#|m^G_@ zfNs_-Ik7lv)~0fF6sHrjJe)XR&L&PDkA|n`s`B&wRS%5SX3hF5PKa)$AA6j>`GVtaF=Ho}@^)-syz&ITGH~Jkr?DH7_G5C)dfkF6m@G zk&oy5^W}7;kc=m@Ef>jz#ee#QnT`M4)0E2>Q^{B{(vLI6saU*}Z9Px=983M6MINlo znx&uboHc8n1Zes1S=MNw*q`t~Rxqh$qv@WGqt7N6WEtx{&QWRaQTm{=us+hh1mQ$}&d6&kdv?r-fW1 znJ)In%CY`PDeF2{0cr9Fchdw?%liM^-383_Ckx4FIME;PFBHRBcjYInq?Pofc!CXA zel#s(E>e!>%ZVal1eEi+{zTR@xXKMC)k!w}Cz2#_(+{`FG2y1BVu?t+9FL~c={)|; z^=G}SJ~k`Zi>?TjYWjtTIdB~z;av~)u+~S z(%FyJXJ1xaLhenr4ykZDQ4WKBr^4kzBv;P%EM4W+ClX&P%0?38E(17^&5$Vw!q5Z( z#X=+&jYo>*M1MM$OQy1`E&I7zPO34lwCP+jo({)T=~yYz-(M)?v#YPVh{Q#W#EpaB zT++djNSdqLl-4LB72@f9I8iQ_!;x?jF-@}5E>|Mb52NI09Kxi2m>qG?z{+RMTA;rR zW&gQpdNCg@=2G!Q1pk)Oxk7f0>MAdj%vHkdF6Ij7#v>v|HYYaCRt`a4lKK8(DwZt7 zlF{s%SE||iVeGkaw$OINbSXmobI(^KkpQ_)7t;NuSgzEc&aU-S<_p5b#Q9=k<9wAO zu|j_|RSG8y`Tjz_lwEr&BG^bnxJU^BV_6sl(2do{L0wbHbQq*Cl8cuM*>!$65#-7n zL{Od^h+w=woJ*&%*5PD1RW6pZzxeA9g0eWn4#+=EGgBx*GbzRM(Lyww3P+;Zb^o!- z6@L$XOR1m*E2nUgaG@AY$5N$2vY0Lw(%I0ei_%lKt>_Jc9W;$L20~g&C-Q}8ITefb zC$qgnKhtRA43f~)S_)HJNTz_MlpNBLY~PZfskKPVh^{ce=n75kMswl*WF#NUrE`$P zQt9k3`=@AEmmNlHV_@fy72=6vxtQ-SrBdZcJUe}}?=2chSY!r-)1s}T94$iE4aalE zM1L%qjAz%|Vv2eiq>f0Wu2EOxlxtC6p;&+z6pr>|Sg};GKl?9prl>DDoWor()kwq= zAP|)#AwNWu#X^$IJeAI8|8?FJm8`r|35nu>3RC%fApsaGBv55Km&neTEZ)TWzn!9$ z{@J+TG(%Y}VMuI%%TyT3cOeb13FlMUU;TcH3XHL)OA-SQ0U9Ao6c#f4J$jgi_@B;| z3MI(q=~90*yTQMGe_aWw38iC^{!)KFR!Wwm&^yEZ*{XVKz4OHU`xQ&z_>o3VIvYDz&f}Nfo2fa(^;W%7w$p{%qua^2e2#?IMY& z=!-C<4GF(vjJ{d_UwhvjCRcLYSN&!u>};IbfW-m}9CDn+ zpdDN#R$0DhT^4Go+aUArlbhwpSj^>Ye!7x_I;=R24LLVe ze!K1Hl(YY@N5|zjFM$x78={Lg*}S7PS1;x&*h=SWjbgbmTb`-}ozqk|FB!BasNQg} z!i#f-(saI5%7NvB=}y(|{a+fg;3fkGS}bB^6=$Yr3)R|mWoGJlz#-0wFvm70FSTiq zy?!f@cJA7WZ0#+W=R6o$Wu`WlgTiEHwpgD!wbTaFxLDdE~vEG%I(DIFUm+%xc!@x$P)-sHlNc6MO$qLf0vMSmzF`PQZ|P@s4$1E zEnBLWrl-z2E|AV$Z$mO4+pK7vXERq4O%I<1Sub1k%YB7(KT^>99wHMoT%T4m z$t%}utIzkb|9qC*@p}B)>I=i1D`HrE4Nn{CoEL`~D46;ZyZuDQb>l(yMj4&XRoKHS zc7|0v_c0I0vP(^f>WdZpXP3F?S0#_*M+v-ry4;wV$>*kCcKqqSB0hIl9=+OcSBCeK z`H|9iHPYgmR;9&5Ej;$Q&9?@Fjijq#&T5r*R_pUqt6V>|1@=>0%T5V(zerk)E zTrQI@A5!0{7~iXZ(%NfWtj4s9RmbNlT&Bj^bt?X``&Ipm{i)h6RJE^GM9B8W>hs$w z?ppz^{kL*4jYxZX4R~YK{#uj1 zwZFeVM%u|k0v}!X_wCw(l-O>R#y`dpOYT8>e^*qksGB$ApN!m6St6A~Re7>hfg-9% zU8+P;Ri>D#P+V0hp=#7^<+7Bt;F-9`%H?5^&lPabDp!Q7j$DZbtX!D}tz3mtR<25E zD_5f-E1#udE1#ngE1#!PD_@{3R=!AMR=z}At$dlrtvo#OSotb#xAHZbunJk)VHI+; z(< z)R5hh1F2yHf6xPe$OnHoHR7xBNNUtBe>AnFWu|3PV=ZZusja4-W2y0${4D1SZE{Q- z`IR@n3jE9NRgtOa8`%=iC|^oBwJnfRNo{YbvznR+nd!CEjt$1-cxq=0juUXD;L`PE z%WOZzZIj-dHoZB+zxWOpyfg4mc-xZeT(|-DG2)q&HVIhYAIBYg8~hW*)RvN;l#=rE zXXIzEl)=YpOddP(DT$1Fu<`sl_i0M)rk;K~`P|PDuR0U`j6`h=pY@{qd2i%%-pJ=A zVo<#4$M}{P;}-hg0V%*i=Szc%?9$#IV@pwb&Pz$KD9e^DtxX|bF zU3gqP;=p!&p&_VdL@JJ6d(TMl%EU}#fmM?pe6eCDeDd@XzoNRl`kF)A_?b?nY@hXW z>->0uLkc*<$8!(ty*_~?ZOYDs5B>W3{A^}zncZ#U*w=li1GqeBp5a2tqa8qII8chz84g1eeQFobo@y)eK zoY?Sw#oFEF+0>Qq1P6PK&aloZ1H7w`(%(^oc#$nOhNixg2G!Tmsnz+lN5iE}qOpm} z&p^QQ{m98p7Hc8t^z!VZ(ZDQd9m(K;aH&a|1zQ4haKp0mOE_EW!Ne0`OU(u==5}J-nVZ3-X-@H5SGE`YV8@AnWp0eG_~-Tjc>w{<-?Dz3z~vB7Oatp@wv)#c^23~J2i*PC}7l1SQjG&w;jJu3PrK z?R)KbeMkHDO}0hpKpOw>`;WAR_gl3NbnKQ`84n(Ai__;Z{!sh+0qgNye>mF-u>utcm}DGx#ivUdCopuUcHY;mnILJ`KQT z&=(*v`ec#-G^1a|3wMv0E6mS4D!P0jlopQY;3Xgb<_FkI9q7-`1}(hau*sf*EX0D) z%vw3uxs7_L3=t|Fh@jsQc8E~zFd*wIAgt4_S_g`;HWt>+hJ*ZgP>c&um}i9DBlrGj6A4 zml8(Q`sh>!AC#QUntrqemA0+3lKfntglvIkue^%~Z=ejf_c9$jzsp|-9w5AfZT*=2 zH-o1|@yx!{-Au+z^hP&nfSPzy#kU2ALNx24v(-mNh+)TiGvN_0OosMWSb@ zd421;%dTb7Y3b1SEShi>ovxonyAe38dS-(EQ86j$xh4N{&EIxrV9xbkY^vtHEh*>E zcqMQ+2^PhG>1U-{$|C304ux@C*q|_S)NjZCzpc-)1#WEXvwo!O7O^2tEO7)=oFdrb zEP^pELa@el5zKK>f;}!qFv!IT7P$nmNsbWas2gEk!U7=JESE%B5|}de;5Q!MKv*Tb zn+4k(e#1BiNLc4M%u6U`VW8ub62T1_#t@ciE5ZtmBdp4AsTZa@ z)DGJnhtg(P??3^V@3tW<(RPGonm|~g9SEzm6JZT%Z8qYe7qH?19%ejXfE|xRm@pAa ze__hoh2MDQ2w_#yrCylxKnK|KILy;-gaxKHOnMxaBwc6)s~*D$tzg$fE)07dN?Dlp zFfOp|0S3lB{tde(!ZOzd`yPih$^5Xe45TBvC1N34Tlv;;BBC4Y>PsET5F~84mzY+D17fXmN>T->*L%6_6Jes zbK3FPPT;r39lfNJH`!QW4c=;fK^g$k?PoaiU}kF#lR8PjQOoytDV6GV^ujE)P{for zwFK4q)MZ}l3&2qHfI~2o6K)cqn0ao{K!zy&DSoU4p#ck3>r-OHcZ7GaQ@436Fl=C0 zsHSAUU-=F*k*i*(-c3#hyfWxeR5b0>zsH@l@)&Md1K{F50M$BrG`J-IV|tfrGdU=2 z#vv@DQz)NrFtv&+ec`u z&HKPx&6xO!;gNo6+`OmhhY_igw#mpO`h41D9+^|IQ4CokWir67L~+fTr|nX}s7(~C zR_2T|u@NpcXfkZu1?QcO4Rape#};!2Kf4X4)#R*mu?fx^GjlqiX=a%7c&ra>{IE0p z8^H!2k^wnuO?FT~&- zN~T%~wNCihNDEb%<9Ac+R8*Ic?Sq9TDK8rc#3rEG?n4tKAY(~V3_BYojyU8A0EzJk zTFE6myPn|}KhYNHLJ!3*>6HS}jO&GLCV%q4X5Ix3!!|d++Qjqgcy-x_u$N+GZb`0P zOQsuZ4;y&gSw6=074I`E7ZwZRUt=nxw*ZryIWIW&1>- z;&x}Mm|k-4;2Vd{i&Qeg*+vsz22om3SK0{Tnb~!G$%MU0D#DR-OeqzTO~+$NaQ|3T zY?s{bDd*UcuUdFe$O;}Q1dvXc*&*?u(UVRZEH!HoRqJ=TaYk5Kqf@ba1HuS#7-oKm z)3E%};tkHj64NXbw^t>mw-wxAm6+aEa4O~)j>YmvW5K~#Vj4@aXnhT}4|uQa(`ok` z0Xh@>K8Vbh8}M8Oi=7rR&U>!;(*^JMbM$2E2Xr(Q_=1iunvcccqSI$Hq)UNMc<6H2 zH$3#T^C1RZaldPzXJY5#y1$xEIQ~oTHJzXUkeH@ZDXS=&UaZ5w!cUn)d+nJagB07Q z_xw^0U<0hYU0#7DfN$wE-jG?8GUvJyHr6O#*7sOC8kt3WnIV8_ijCRG3IOcYh_HJt z&g%_($i-A-Owy?72CNW)W(`wpPeeKa6$SUDR0jMY-y-qa;iT3Pw+j^j4KPr!3!@a9 z)RF=e9D+~Nrp&bA?+n5_v<1au{z~Ix!EHqwk=yT{8x`|~O z-R4p=9B?be2C)jGJq&2uS$Qp9w7!mm>BN{%bn?K^)m~oyj&Y5yb+P@7p6&A)P3gH5 zmuY(KqV#;f-}Ff@giH;3aga-TNlh;W=LTIjEY{OBG0w1^lWv4g6nc5A#lB`+IO!GN zjGeLjOFz1A{&=>3Ci7WA4a>2`4X&62fj~d6S3g5@X zKp-n`8-?tDPg!{Us%xWt>t1Vy;G_E+?tu%=R+r$dE&^kzRKA^X%0oiR-TUy-&su#+ zvziHt4RCf+C@vOLDYk>!Z<)}3odjxuEYj36NI)@ct+7eLoLDh zz*~CN*(=L%1CQM*rp>g}H0fpQ`yx2&N5GG1jc8!&t;QQG%d2az*|!eZOndAOU$9H7 zk4;7bUYtsIr5$+YFxq~cj_#5~+kR~v6=o#ChKUV11w}HjQ{z#& z{FF|Na&GHor*!vl*bRzwvb7n7bWg`-6wIQ&JhS!nkozYOao4kiu zeGwWNbS{*YMq*las8p?YG39#p1=vS;L+A~&2e=Jz?ep|#YY>h3@{~R};#%@Nc6s{HxFflH zP}(+k`Yxk(@?-|=>GWZ9?(zU>OC($`*)*h&7#ZIK)nW&ykDBw22aLy8w8g(e8C9?+ zo3%3ZJC!-@da``hY5HAiBkkhTv7K7-fK7ylr;1T-RZd=URE4mX2$UXY*h?fB{T^iq-bT;&-KwoN@_Upyu;H}jRz2y}^?fgJxR+HuKw1+2y~+%i zABW#wP2Z=?33LNEJrRsan!aBJk3!E_*!o&*D*6EQ`;@bkt0fDEFQp|Vpu-($Q3=uS z=Rw5)4EB0m!dXKA_NCAdxVXx^M`*s`tTbE>rXN(Yiw)>w)Ebm`tFnvjB7BJEoUSC9 z{(y_DVr@lcS|+LOf=k=G=?|*d5ctYqzcF{qs4~mAYC%P5>pI@@e?eg^qDDCv!nwkvG^TAHt6Wf7{2GA3`ACy`? zBVwWlx%(m!>iPi~Mg2BOkSP2kB`LJuDYP9JEVH)+3JK@|2lOa|Zr1LYV435fg}o(q zh|3wSYN{~iMK*itPmiR~At_YkLXT^cl=6qAJeUSq;TB4PIwDYP_OQ(MX>@R2+cVa@ zkm0C92Jlz10tQTh$T$#uAh0|ZP05{fa?_maw_FOqF$drP0OFh24iiZLX3-CferyL9 z+IWK%*qjZ^6D8hxt4zR%KzY{Qv6dm;Zrc>l0)tKfG_j$6Tu5IO(jR0%BS2v(Z1f?I zlqpG>9G7`4-MADkZ?;0MDVH)8DRYD?+@#)IidCf;pJ)^21nO6O%UIW(vEI#)M%URw z1=bY{ZI3&{0DG(}y#&?b0(yc$d5GIt=xp`16gbHRc5wkCWQXap1@@E&mZeX8yk#2g zQEW>mPdlAt29Piez^t->xrxPjDR;&x#~Y-QQ@Kpvv!E?cb*5R&&`iXopnf=8egP#~UiAaLY`a+ZZKuf|a3TnOq=Ks#DNuMSawo);iJOb(Dy9ZC;haC)eT zwvjGT2IEB@4Br1qv}nAIyu?YoFOo+yCBWA?hvk@VTQ4Qm-EgX7G)Y!WNjqPbc3$HX z>)=F-a%#^l{;ELVRfGGC7VQWx8aXOy{~V4JZK?1TuJCJMEdF-C>ddPVGp{^{Y@TBB z9)$GdCd0DaF%qtE5TIKO#J9{w+Nd9-ukVw-vM?}WgaJ?80cC_Be~ppz#yVm)R!@nb zW%86JVStRvvhgSfWO>|kmIvE`(;-KGspme| z!<=#`?7S`@3l7L|3kWM6m{%+U#QHHDg>QKdKDb-@Cls!h;?>4H{V9bz*gvdruk=qV z+`;}c3U{#otim1aKc{d9`_C)f!Tt-1?_mE3!W{i5!aV&&ga!Ib2#fS%2ut*r5tiw% zAgs_|MOdZ3hOkCIuJ{i2Uq_guzkx7Me-mMW{uaU_{cVIL`a1~A^b-gx^mh?f>F*(| z(cf2m2m2o&%+WtYn5UmaSfGD|ut@(HVTt|;!ZQ6+gcbT{2&?qZ5!UFZ6dRj=8ext; zhA>YbM_8awAS}`+5tis@5SHm@5mx9^2&?pIgf;p(#qN_ngD^**MVP0bM_8cGAuQ78 z5tispgk^dQVTHbcuu5MJgn9Z3!UDaGut@J9EYVjHmgyG}R_K=y zR_W^qYxK*CT`K(xggN>K!aV&;ga!In2#fS92ut*@5tiv!5mxBmAgt1_A*|6i72m=B z7Q!6;TZDOf7h!>Z9bu9F9l{cQ8)2FLJ;Dn82Er=+2ZS~Hj|vX4D7_DxN`xXw{uVPM zw?N|&HD3{PXQW52Cu^N=e3x}ky+!H^a1NE!>CB{>QBe%MN%TdE)mhO!xIbiHu|-`e zH>nMq44ReQWCb6!-riiH#2|LS{{*v-oYnY}^Q2?$?cA zE;~Qlxe+0S5`AdIe^yx06#XrAJ$?w3c~dA8v76DOOJ(>8Etf)HX-6SnJ^CW^V>V6~ z5(@nnL!tkwUbaWr9kY0!atZbh#U9A8O@@qsuTe~~*#=*{;d?9GxN6(sYg1S#_}?@I ze_Op8->&?VDxn)YkGo=T@zIJa+t%7XZjnF=zW>hnSdnux-fgYCMQ4eAiDEBH=XSLg zo}F*bz~i9(5oMFBIMS{^0r&*0O!PlsE~M!HRPW;&-{Bg+-e!#b7-Wx^YTK@YutL(^ z|E0Mf)0XA_NPWX@-aK zFiJh{awJ8Adsvj_W?-cv3X{Ga<(n*=z#Zc1ogNPHf}3T(BfexIg56B-Z|J?zHCIqV z3sQEYeTn@}t3|(2=Y|TuG|`l9x95v|!1U@wy$lc^)bZH{JhspBr^iV1aMG@y80Qbl z`d|=>Tk3U*iUz!pdgS9Dx8f`6zFM{(MOQw0PeoO9 z*@`@TFxtD?fL~gC*jis$Z>TQnd%eCo4|BYo5Tj&cX?@X-J)#~F(CsLk-L0+TCWamD zq9nVUF)`c=k&i?)>L{Tq{{FLYe?6X4(F{08_3o!ubn+-5W>#I^i&ne7JsJRcm%+dU<&Pt}lBe zM>{f7O|lPCs+*GIiiW+kb(d2z-fOM&U=(3NOQM)O*h^ar13hN7M zFSV>^SK^A$zW7b`Ac_wpfDw))M5Mwv^*afghad%Cy=V~TW{3|uam`!iXBlQ@y}1S> zr*KiVpIU}R!`e*t00#JB3y9&g%y+@%ta6K+%s=a*v`3Z`qK|`$GK5Fb;4sj05~Mg|mQ9LhBY}lnxJYWPqvo z-Uuf8&(g}L$S{FVqo9Wia5TuJeS*a0c$tT&ONQvP)Z<7YOeyS9xVgBNxeLeEpJhfM z3J?A?q5hdxO6WE26G)zkUr?)2LEYRuX7fFrQ_~JbV_ur;nj9(TTD)Sdyh*EF-8>=m z0mxe!I^}89=Lo*N+1Xt4tyXTX5qrg@=i^h>$`@%hx&iX$M!0(o7F^c&5+$!j{5!I) zN>AaJDAm$EoRocAtINAFv-k6f`9?CFF2ZF2bWqOE?~wXx==u3=qF}6PdqvPrXa(*FuN-TSUK3J&^8)oiAIYq^%W!!A>pmIN!6!`P&$04Xr7u zwew<-!ETR#%QDE{lIrvze>-fDQSEQo)%ppLF2T`?Dz(lq-(;BI(oOcm*n<>P>S6S! z_#6C#&LRj~HA_xr%S;6QmP0dbnyhSQ4nNpnhOV}qlFiO@aBZX0-|d#e-Uq^uD0Qc4 z!ivqQBQov7Y|^ul8D9Z&w1~|5n4hHE=Zc0yKdC};T zkblot)Y+G{Y<}O@RnLlD@U=v*Y`xMKeK|&|g&@4-tH|Vtyu0knbL1Yamssg2VLfOW zK-r5{edFOE%|@Ee+;XYzND9lVk+lvY(YkNU9D3Pu%P^? zBi{h(qGm^a6#1ZUkaV{6|3e`=aiz6^GSu0~vmp(zx8LV|h1?plkyn@prCPLu(J`VM zt}|`R=S*Acoy?gso}J9IGwp$y`s$r!*NJuv>2TGUaL)Gjvm!LnZ;Fb1M7=#yzuvp4 QFAk+-6B1u`GCP_3KarlRVE_OC literal 0 HcmV?d00001 diff --git a/golem-templates/templates/ts/ts-agent-app-common/wit/common.wit b/golem-templates/templates/ts/ts-agent-app-common/wit/common.wit new file mode 100644 index 000000000..f74b22880 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-common/wit/common.wit @@ -0,0 +1,7 @@ +// This file is used to make the 'wit' directory compatible with tools such as wit-bindgen. +// +// Do NOT add anything to this file, rather create a 'deps' directory, and place common WIT dependency packages there. +// Such dependencies can be referenced in the component WIT definitions, and will automatically be included when needed +// in the generated component wit directories. + +package common:root; diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore new file mode 100644 index 000000000..a80c710b8 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore @@ -0,0 +1,3 @@ +/*/dist +/*/src/generated +/*/wit-generated diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml new file mode 100644 index 000000000..417288623 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml @@ -0,0 +1,7 @@ +# golem-app-manifest-header + +components: + componentname: + template: ts + +# golem-app-manifest-component-hints diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json new file mode 100644 index 000000000..00282c99c --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json @@ -0,0 +1,3 @@ +{ + "name": "component-name", +} diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs new file mode 100644 index 000000000..529063f4f --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs @@ -0,0 +1,3 @@ +import componentRollupConfig from "../../common-ts/rollup.config.component.mjs"; + +export default componentRollupConfig(); diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts new file mode 100644 index 000000000..3be98b5bb --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts @@ -0,0 +1,52 @@ +import { + BaseAgent, + Agent, + Prompt, + Description, +} from '@afsalthaj/golem-ts-sdk'; + +@Agent() +class AssistantAgent extends BaseAgent { + @Prompt("Ask your question") + @Description("This method allows the agent to answer your question") + async ask(name: string): Promise { + const customData = { data: "Sample data", value: 42 }; + + // Can be used after solving https://github.com/golemcloud/wasm-rquickjs/issues/2 + // const remoteWeatherClient = WeatherAgent.createRemote(""); + // const remoteWeather = await remoteWeatherClient.getWeather(name, customData); + + const localWeatherClient = WeatherAgent.createLocal("afsal"); + const localWeather = await localWeatherClient.getWeather(name, customData); + + return ( + `Hello! I'm the assistant agent (${this.getId()}) reporting on the weather in ${name}. ` + + `Here’s what the weather agent says: "\n${localWeather}\n". ` + + `Info retrieved using weather agent (${localWeatherClient.getId()}).` + ); + } +} + +@Agent() +class WeatherAgent extends BaseAgent { + private readonly userName: string; + + constructor(username: string) { + super() + this.userName = username; + } + + @Prompt("Get weather") + @Description("Weather forecast weather for you") + async getWeather(name: string, param2: CustomData): Promise { + return Promise.resolve( + `Hi ${this.userName} Weather in ${name} is sunny. Params passed: ${name} ${JSON.stringify(param2)}. ` + + `Computed by weather-agent ${this.getId()}. ` + ); + } +} + +interface CustomData { + data: String; + value: number; +} diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json new file mode 100644 index 000000000..17748c83d --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../common-ts/tsconfig.component.json", + "include": [ + "src/**/*.ts" + ] +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json b/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json new file mode 100644 index 000000000..fbe1bfce6 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json @@ -0,0 +1,4 @@ +{ + "description": "The default agent template for TypeScript", + "appComponentGroup": "agent" +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-default/metadata.json b/golem-templates/templates/ts/ts-app-component-default/metadata.json index 5e7525f69..cac7be565 100644 --- a/golem-templates/templates/ts/ts-app-component-default/metadata.json +++ b/golem-templates/templates/ts/ts-app-component-default/metadata.json @@ -1,4 +1,4 @@ { - "description": "The default component template for JavaScript", + "description": "The default component template for TypeScript", "appComponentGroup": "default" } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json b/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json index cc43b5706..de6c49770 100644 --- a/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json +++ b/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json @@ -1,4 +1,4 @@ { - "description": "A JavaScript worker making a remote request using 'fetch'", + "description": "A TypeScript worker making a remote request using 'fetch'", "appComponentGroup": "default" } \ No newline at end of file diff --git a/template-golem-agent-ts/.gitignore b/template-golem-agent-ts/.gitignore new file mode 100644 index 000000000..4dce98c95 --- /dev/null +++ b/template-golem-agent-ts/.gitignore @@ -0,0 +1,3 @@ +src/generated +node_modules +dist \ No newline at end of file diff --git a/template-golem-agent-ts/package-lock.json b/template-golem-agent-ts/package-lock.json new file mode 100644 index 000000000..e2997f84a --- /dev/null +++ b/template-golem-agent-ts/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "app", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "app", + "dependencies": { + "@afsalthaj/golem-ts-sdk": "0.0.1-dev.1" + } + }, + "node_modules/@afsalthaj/golem-ts-sdk": { + "version": "0.0.1-dev.1", + "resolved": "https://registry.npmjs.org/@afsalthaj/golem-ts-sdk/-/golem-ts-sdk-0.0.1-dev.1.tgz", + "integrity": "sha512-xdv66QAo+QZGj6lE2SzdIHH0rtAxLH+8oT/LgJdkr2hr/NbmwU15fRyUwD6myV03K2LSyOMLiyR20hZJ1t3riw==", + "license": "ISC" + } + } +} diff --git a/template-golem-agent-ts/package.json b/template-golem-agent-ts/package.json new file mode 100644 index 000000000..15673b377 --- /dev/null +++ b/template-golem-agent-ts/package.json @@ -0,0 +1,11 @@ +{ + "name": "app", + "dependencies": { + "@afsalthaj/golem-ts-sdk": "0.0.1-dev.1" + }, + "scripts": { + "update": "wit-deps update", + "generate": "wasm-rquickjs generate-wrapper-crate --wit wit --output dist/wrapper --world golem-agent --js-modules '@afsalthaj/golem-ts-sdk=node_modules/@afsalthaj/golem-ts-sdk/dist/index.mjs' --js-modules 'user=@composition'", + "build": "cargo component build --manifest-path=dist/wrapper/Cargo.toml --release" + } +} diff --git a/template-golem-agent-ts/wit/deps.lock b/template-golem-agent-ts/wit/deps.lock new file mode 100644 index 000000000..e906775ae --- /dev/null +++ b/template-golem-agent-ts/wit/deps.lock @@ -0,0 +1,69 @@ +[agent] +url = "https://github.com/golemcloud/golem-agentic/archive/main.tar.gz" +sha256 = "860bbac7d96cfcdfb2c31bbb8c8d8430e55f87300042ee94228228c37d554872" +sha512 = "cb3d758b6b8c834131479ebd17e63a83ac9f376e33183bb00947e269da0ffefbeb1c945be5a51fc30497d8f6e833e20124f3f1ff6a63e9b67afeed094cfa8961" +deps = ["all", "blobstore", "cli", "clocks", "config", "filesystem", "golem-1.x", "golem-agent", "golem-durability", "golem-rpc", "http", "io", "keyvalue", "logging", "random", "sockets"] + +[all] +sha256 = "6ac4f1553003474229bb40a885b48d1eaa4bea2f9d679a115da9afede30b5ad4" +sha512 = "ced8c18a35dc04123386465d98d2aeba54c486e4e22a30e7efac0548974e176528fcba36c64942d67fa35d9135806ff0fcde259eb4af051c4a29fcb397e9af1c" + +[blobstore] +sha256 = "f7857c92a8d540ebfe10c9ac3b8cfe160d2303ca638d59aec3c18406e084d367" +sha512 = "af647a1c40672c4b2b970b2f99de54d404e35b4aed430b00395d708dcec74eb6f03543b65605a90a1dbc3db5dbf1887b2b6ae9b6c6306475d119b312b4e91868" + +[cli] +sha256 = "4dadd13d55aaf626833d1f4b9c34a17b0f04e993babd09552b785cda3b95ea76" +sha512 = "898dcc4e8c15d18acc6b88dbe232336fa4d19019430a910dbc9e7aeaace3077a164af3be9f002de6e7e65ef693df340801ac0c7e421e9a746bf1b6d698a90835" + +[clocks] +sha256 = "93a701968a7dd3c5d69031bc0601681c468972fdf7e28a93bb6150a67d6ebe8b" +sha512 = "98fca567c7a01887b0fb38981f1772169b6ea8de475b546508f8b86738d84e44ba95cae81def40ac34e8809f5f60e85224077ab8cb6d6d5d6296acc1df73c159" + +[config] +sha256 = "31fe247a242af7abe32dfadcb4edbc7720f9c47c2bff34b7e5c75df915ab5eb9" +sha512 = "ce5367f3a104843852236799a3386a44da12ee5e287eb94075fd5252c1400b6ef84438f3b3e19f75fb3d842d82fe3a1bc999385fe59fc8e1696fed69bad69eac" + +[filesystem] +sha256 = "69d42fb10a04a33545b17e055f13db9b1e10e82ba0ed5bdb52334e40dc07c679" +sha512 = "612effbac6f4804fe0c29dae20b78bbba59e52cb754c15402f5fe229c3153a221e0fbdff1d9d00ceaa3fe049c6a95523a5b99f772f1c16d972eade2c88326a30" + +["golem-1.x"] +sha256 = "d707888500487684ea753aa86547665221803d64445fcb1ef23470ded04eaab7" +sha512 = "7558b6110b7f8b43b8b9858e9236eba2569babf9a23204d186785e6693172c94856e271406b7753ed75c8e1fefb2558e7038b10f3dead448a4ea23975f3d10df" + +[golem-agent] +sha256 = "7a7bab29059c195c95878c1ad3cacdb2e82ba7a89e309684eedfe02cbe2c5bcf" +sha512 = "71c638d2f5c75627423f31ce4e8b518831636ebb32b1948384df3a47595a408e8b3a4a415f20ec571135ca2a5e1fc5684bb9c91f0b7f00fcb79bef3f00e11d8f" + +[golem-durability] +sha256 = "c5f8b9b4bda5a8d5d1d008978abed617c18da7d9c24167bf20a81a379d10d688" +sha512 = "40e09d412fd6faee904ce6f8abdcf3f83a604eca3628bf5605b7667540874ea53f9e29392059dac327ca96a0f1298372cb0626abcf66a1df4f4180731c13646a" + +[golem-rpc] +sha256 = "a73f66a61e81b237057117b14aecc6c4c20eb004a4244ae10a51a876f71cf626" +sha512 = "396a1738320f7dc34a9a066755397b132b976e81c7cd28a8f45ff32aa5ea3226eb91d1e26d73995104b397fbd063ff83090550718f805773ceb78eb4f2155acf" + +[http] +sha256 = "72d3a00dbf39eed40a134e8b1dee85834961153f9d205ee4dd56657270c084ce" +sha512 = "636150c464c0eb3d60bd212fc5d4012638c8cd4f89b583b87a38154ef99de828aac4296ac13c5cface10ee61e164fcfc43a5c104f916229dfdf49c0d11047677" + +[io] +sha256 = "1cccbfe4122686ea57a25cd368e8cdfc408cbcad089f47fb6685b6f92e96f050" +sha512 = "7a95f964c13da52611141acd89bc8876226497f128e99dd176a4270c5b5efbd8cc847b5fbd1a91258d028c646db99e0424d72590cf1caf20f9f3a3343fad5017" + +[keyvalue] +sha256 = "0b37334713ee32ddbf6c064ddc3fe8e5b730ff63b6381b45c87aa07a6ec700ca" +sha512 = "1ec372a657a2a9f602e781846984febfdc7c34c3dc8a2c83d5b282f5580edd1d556478bbbb2a34e97c618a03b05fcc1059d6f4a01dc27176f5e5702e5173507e" + +[logging] +sha256 = "7fb7216c713fd329ec91bb596127a1b95eec26290290b6de0c1ef294fba858c2" +sha512 = "ceb68410bb46176051b0eee54e1a60831ca2fe820892c5f5f739e76efd4fe6ee6dc5e307947e7118b68a2a757ed3a3b471d16eb0900bb9040de47fef4bf1b56f" + +[random] +sha256 = "dd0c91e7125172eb8fd4568e15ad9fc7305643015e6ece4396c3cc5e8c2bf79a" +sha512 = "d1ca2e7b0616a94a3b39d1b9450bb3fb595b01fd94a8626ad75433038dde40988ecb41ab93a374d569ab72163af3b30038d7bfc3499b9c07193181f4f1d9292a" + +[sockets] +sha256 = "2bc0f65a8046207ee3330ad7d63f6fafeafd4cc0ea4084f081bd5e4f7b177e74" +sha512 = "3e5490e41547dffa78d52631825d93da8d60f4af0246cbaf97e1ecb879285953a86d5f1f390b10c32f91dd7eaec6f43e625a26b1c92c32a0c86fde428aedaaab" diff --git a/template-golem-agent-ts/wit/deps.toml b/template-golem-agent-ts/wit/deps.toml new file mode 100644 index 000000000..f1ad03aa3 --- /dev/null +++ b/template-golem-agent-ts/wit/deps.toml @@ -0,0 +1 @@ +agent = "https://github.com/golemcloud/golem-agentic/archive/main.tar.gz" diff --git a/template-golem-agent-ts/wit/deps/agent/main.wit b/template-golem-agent-ts/wit/deps/agent/main.wit new file mode 100644 index 000000000..1c300786e --- /dev/null +++ b/template-golem-agent-ts/wit/deps/agent/main.wit @@ -0,0 +1 @@ +package unused:agentic; diff --git a/template-golem-agent-ts/wit/deps/all/main.wit b/template-golem-agent-ts/wit/deps/all/main.wit new file mode 100644 index 000000000..0a1f74f41 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/all/main.wit @@ -0,0 +1 @@ +package unused:main; diff --git a/template-golem-agent-ts/wit/deps/blobstore/blobstore.wit b/template-golem-agent-ts/wit/deps/blobstore/blobstore.wit new file mode 100644 index 000000000..cc52516a5 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/blobstore/blobstore.wit @@ -0,0 +1,29 @@ +package wasi:blobstore; + +// wasi-cloud Blobstore service definition +interface blobstore { + use container.{container}; + use types.{error, container-name, object-id}; + + // creates a new empty container + create-container: func(name: container-name) -> result; + + // retrieves a container by name + get-container: func(name: container-name) -> result; + + // deletes a container and all objects within it + delete-container: func(name: container-name) -> result<_, error>; + + // returns true if the container exists + container-exists: func(name: container-name) -> result; + + // copies (duplicates) an object, to the same or a different container. + // returns an error if the target container does not exist. + // overwrites destination object if it already existed. + copy-object: func(src: object-id, dest: object-id) -> result<_, error>; + + // moves or renames an object, to the same or a different container + // returns an error if the destination container does not exist. + // overwrites destination object if it already existed. + move-object: func(src:object-id, dest: object-id) -> result<_, error>; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/blobstore/container.wit b/template-golem-agent-ts/wit/deps/blobstore/container.wit new file mode 100644 index 000000000..0652def81 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/blobstore/container.wit @@ -0,0 +1,68 @@ +package wasi:blobstore; + +// a Container is a collection of objects +interface container { + use wasi:io/streams@0.2.3.{ + input-stream, + output-stream, + }; + + use types.{ + container-metadata, + error, + incoming-value, + object-metadata, + object-name, + outgoing-value, + }; + + // this defines the `container` resource + resource container { + // returns container name + name: func() -> result; + + // returns container metadata + info: func() -> result; + + // retrieves an object or portion of an object, as a resource. + // Start and end offsets are inclusive. + // Once a data-blob resource has been created, the underlying bytes are held by the blobstore service for the lifetime + // of the data-blob resource, even if the object they came from is later deleted. + get-data: func(name: object-name, start: u64, end: u64) -> result; + + // creates or replaces an object with the data blob. + write-data: func(name: object-name, data: borrow) -> result<_, error>; + + // returns list of objects in the container. Order is undefined. + list-objects: func() -> result; + + // deletes object. + // does not return error if object did not exist. + delete-object: func(name: object-name) -> result<_, error>; + + // deletes multiple objects in the container + delete-objects: func(names: list) -> result<_, error>; + + // returns true if the object exists in this container + has-object: func(name: object-name) -> result; + + // returns metadata for the object + object-info: func(name: object-name) -> result; + + // removes all objects within the container, leaving the container empty. + clear: func() -> result<_, error>; + } + + // this defines the `stream-object-names` resource which is a representation of stream + resource stream-object-names { + // reads the next number of objects from the stream + // + // This function returns the list of objects read, and a boolean indicating if the end of the stream was reached. + read-stream-object-names: func(len: u64) -> result, bool>, error>; + + // skip the next number of objects in the stream + // + // This function returns the number of objects skipped, and a boolean indicating if the end of the stream was reached. + skip-stream-object-names: func(num: u64) -> result, error>; + } +} diff --git a/template-golem-agent-ts/wit/deps/blobstore/types.wit b/template-golem-agent-ts/wit/deps/blobstore/types.wit new file mode 100644 index 000000000..42cfc9527 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/blobstore/types.wit @@ -0,0 +1,77 @@ +package wasi:blobstore; + +// Types used by blobstore +interface types { + use wasi:io/streams@0.2.3.{input-stream, output-stream}; + + // name of a container, a collection of objects. + // The container name may be any valid UTF-8 string. + type container-name = string; + + // name of an object within a container + // The object name may be any valid UTF-8 string. + type object-name = string; + + // TODO: define timestamp to include seconds since + // Unix epoch and nanoseconds + // https://github.com/WebAssembly/wasi-blob-store/issues/7 + type timestamp = u64; + + // size of an object, in bytes + type object-size = u64; + + type error = string; + + // information about a container + record container-metadata { + // the container's name + name: container-name, + // date and time container was created + created-at: timestamp, + } + + // information about an object + record object-metadata { + // the object's name + name: object-name, + // the object's parent container + container: container-name, + // date and time the object was created + created-at: timestamp, + // size of the object, in bytes + size: object-size, + } + + // identifier for an object that includes its container name + record object-id { + container: container-name, + object: object-name + } + + /// A data is the data stored in a data blob. The value can be of any type + /// that can be represented in a byte array. It provides a way to write the value + /// to the output-stream defined in the `wasi-io` interface. + // Soon: switch to `resource value { ... }` + resource outgoing-value { + new-outgoing-value: static func() -> outgoing-value; + outgoing-value-write-body: func() -> result; + } + + /// A incoming-value is a wrapper around a value. It provides a way to read the value + /// from the input-stream defined in the `wasi-io` interface. + /// + /// The incoming-value provides two ways to consume the value: + /// 1. `incoming-value-consume-sync` consumes the value synchronously and returns the + /// value as a list of bytes. + /// 2. `incoming-value-consume-async` consumes the value asynchronously and returns the + /// value as an input-stream. + // Soon: switch to `resource incoming-value { ... }` + resource incoming-value { + incoming-value-consume-sync: func() -> result; + incoming-value-consume-async: func() -> result; + size: func() -> u64; + } + + type incoming-value-async-body = input-stream; + type incoming-value-sync-body = list; +} diff --git a/template-golem-agent-ts/wit/deps/blobstore/world.wit b/template-golem-agent-ts/wit/deps/blobstore/world.wit new file mode 100644 index 000000000..4391d68b8 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/blobstore/world.wit @@ -0,0 +1,5 @@ +package wasi:blobstore; + +world blob-store { + import blobstore; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/cli/command.wit b/template-golem-agent-ts/wit/deps/cli/command.wit new file mode 100644 index 000000000..3a81766d6 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/command.wit @@ -0,0 +1,10 @@ +package wasi:cli@0.2.3; + +@since(version = 0.2.0) +world command { + @since(version = 0.2.0) + include imports; + + @since(version = 0.2.0) + export run; +} diff --git a/template-golem-agent-ts/wit/deps/cli/environment.wit b/template-golem-agent-ts/wit/deps/cli/environment.wit new file mode 100644 index 000000000..2f449bd7c --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/environment.wit @@ -0,0 +1,22 @@ +@since(version = 0.2.0) +interface environment { + /// Get the POSIX-style environment variables. + /// + /// Each environment variable is provided as a pair of string variable names + /// and string value. + /// + /// Morally, these are a value import, but until value imports are available + /// in the component model, this import function should return the same + /// values each time it is called. + @since(version = 0.2.0) + get-environment: func() -> list>; + + /// Get the POSIX-style arguments to the program. + @since(version = 0.2.0) + get-arguments: func() -> list; + + /// Return a path that programs should use as their initial current working + /// directory, interpreting `.` as shorthand for this. + @since(version = 0.2.0) + initial-cwd: func() -> option; +} diff --git a/template-golem-agent-ts/wit/deps/cli/exit.wit b/template-golem-agent-ts/wit/deps/cli/exit.wit new file mode 100644 index 000000000..427935c8d --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/exit.wit @@ -0,0 +1,17 @@ +@since(version = 0.2.0) +interface exit { + /// Exit the current instance and any linked instances. + @since(version = 0.2.0) + exit: func(status: result); + + /// Exit the current instance and any linked instances, reporting the + /// specified status code to the host. + /// + /// The meaning of the code depends on the context, with 0 usually meaning + /// "success", and other values indicating various types of failure. + /// + /// This function does not return; the effect is analogous to a trap, but + /// without the connotation that something bad has happened. + @unstable(feature = cli-exit-with-code) + exit-with-code: func(status-code: u8); +} diff --git a/template-golem-agent-ts/wit/deps/cli/imports.wit b/template-golem-agent-ts/wit/deps/cli/imports.wit new file mode 100644 index 000000000..8b4e3975e --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/imports.wit @@ -0,0 +1,36 @@ +package wasi:cli@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + include wasi:clocks/imports@0.2.3; + @since(version = 0.2.0) + include wasi:filesystem/imports@0.2.3; + @since(version = 0.2.0) + include wasi:sockets/imports@0.2.3; + @since(version = 0.2.0) + include wasi:random/imports@0.2.3; + @since(version = 0.2.0) + include wasi:io/imports@0.2.3; + + @since(version = 0.2.0) + import environment; + @since(version = 0.2.0) + import exit; + @since(version = 0.2.0) + import stdin; + @since(version = 0.2.0) + import stdout; + @since(version = 0.2.0) + import stderr; + @since(version = 0.2.0) + import terminal-input; + @since(version = 0.2.0) + import terminal-output; + @since(version = 0.2.0) + import terminal-stdin; + @since(version = 0.2.0) + import terminal-stdout; + @since(version = 0.2.0) + import terminal-stderr; +} diff --git a/template-golem-agent-ts/wit/deps/cli/run.wit b/template-golem-agent-ts/wit/deps/cli/run.wit new file mode 100644 index 000000000..655346efb --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/run.wit @@ -0,0 +1,6 @@ +@since(version = 0.2.0) +interface run { + /// Run the program. + @since(version = 0.2.0) + run: func() -> result; +} diff --git a/template-golem-agent-ts/wit/deps/cli/stdio.wit b/template-golem-agent-ts/wit/deps/cli/stdio.wit new file mode 100644 index 000000000..1b54f5318 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/stdio.wit @@ -0,0 +1,26 @@ +@since(version = 0.2.0) +interface stdin { + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{input-stream}; + + @since(version = 0.2.0) + get-stdin: func() -> input-stream; +} + +@since(version = 0.2.0) +interface stdout { + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{output-stream}; + + @since(version = 0.2.0) + get-stdout: func() -> output-stream; +} + +@since(version = 0.2.0) +interface stderr { + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{output-stream}; + + @since(version = 0.2.0) + get-stderr: func() -> output-stream; +} diff --git a/template-golem-agent-ts/wit/deps/cli/terminal.wit b/template-golem-agent-ts/wit/deps/cli/terminal.wit new file mode 100644 index 000000000..d305498c6 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/cli/terminal.wit @@ -0,0 +1,62 @@ +/// Terminal input. +/// +/// In the future, this may include functions for disabling echoing, +/// disabling input buffering so that keyboard events are sent through +/// immediately, querying supported features, and so on. +@since(version = 0.2.0) +interface terminal-input { + /// The input side of a terminal. + @since(version = 0.2.0) + resource terminal-input; +} + +/// Terminal output. +/// +/// In the future, this may include functions for querying the terminal +/// size, being notified of terminal size changes, querying supported +/// features, and so on. +@since(version = 0.2.0) +interface terminal-output { + /// The output side of a terminal. + @since(version = 0.2.0) + resource terminal-output; +} + +/// An interface providing an optional `terminal-input` for stdin as a +/// link-time authority. +@since(version = 0.2.0) +interface terminal-stdin { + @since(version = 0.2.0) + use terminal-input.{terminal-input}; + + /// If stdin is connected to a terminal, return a `terminal-input` handle + /// allowing further interaction with it. + @since(version = 0.2.0) + get-terminal-stdin: func() -> option; +} + +/// An interface providing an optional `terminal-output` for stdout as a +/// link-time authority. +@since(version = 0.2.0) +interface terminal-stdout { + @since(version = 0.2.0) + use terminal-output.{terminal-output}; + + /// If stdout is connected to a terminal, return a `terminal-output` handle + /// allowing further interaction with it. + @since(version = 0.2.0) + get-terminal-stdout: func() -> option; +} + +/// An interface providing an optional `terminal-output` for stderr as a +/// link-time authority. +@since(version = 0.2.0) +interface terminal-stderr { + @since(version = 0.2.0) + use terminal-output.{terminal-output}; + + /// If stderr is connected to a terminal, return a `terminal-output` handle + /// allowing further interaction with it. + @since(version = 0.2.0) + get-terminal-stderr: func() -> option; +} diff --git a/template-golem-agent-ts/wit/deps/clocks/monotonic-clock.wit b/template-golem-agent-ts/wit/deps/clocks/monotonic-clock.wit new file mode 100644 index 000000000..c676fb84d --- /dev/null +++ b/template-golem-agent-ts/wit/deps/clocks/monotonic-clock.wit @@ -0,0 +1,50 @@ +package wasi:clocks@0.2.3; +/// WASI Monotonic Clock is a clock API intended to let users measure elapsed +/// time. +/// +/// It is intended to be portable at least between Unix-family platforms and +/// Windows. +/// +/// A monotonic clock is a clock which has an unspecified initial value, and +/// successive reads of the clock will produce non-decreasing values. +@since(version = 0.2.0) +interface monotonic-clock { + @since(version = 0.2.0) + use wasi:io/poll@0.2.3.{pollable}; + + /// An instant in time, in nanoseconds. An instant is relative to an + /// unspecified initial value, and can only be compared to instances from + /// the same monotonic-clock. + @since(version = 0.2.0) + type instant = u64; + + /// A duration of time, in nanoseconds. + @since(version = 0.2.0) + type duration = u64; + + /// Read the current value of the clock. + /// + /// The clock is monotonic, therefore calling this function repeatedly will + /// produce a sequence of non-decreasing values. + @since(version = 0.2.0) + now: func() -> instant; + + /// Query the resolution of the clock. Returns the duration of time + /// corresponding to a clock tick. + @since(version = 0.2.0) + resolution: func() -> duration; + + /// Create a `pollable` which will resolve once the specified instant + /// has occurred. + @since(version = 0.2.0) + subscribe-instant: func( + when: instant, + ) -> pollable; + + /// Create a `pollable` that will resolve after the specified duration has + /// elapsed from the time this function is invoked. + @since(version = 0.2.0) + subscribe-duration: func( + when: duration, + ) -> pollable; +} diff --git a/template-golem-agent-ts/wit/deps/clocks/timezone.wit b/template-golem-agent-ts/wit/deps/clocks/timezone.wit new file mode 100644 index 000000000..b43e93b23 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/clocks/timezone.wit @@ -0,0 +1,55 @@ +package wasi:clocks@0.2.3; + +@unstable(feature = clocks-timezone) +interface timezone { + @unstable(feature = clocks-timezone) + use wall-clock.{datetime}; + + /// Return information needed to display the given `datetime`. This includes + /// the UTC offset, the time zone name, and a flag indicating whether + /// daylight saving time is active. + /// + /// If the timezone cannot be determined for the given `datetime`, return a + /// `timezone-display` for `UTC` with a `utc-offset` of 0 and no daylight + /// saving time. + @unstable(feature = clocks-timezone) + display: func(when: datetime) -> timezone-display; + + /// The same as `display`, but only return the UTC offset. + @unstable(feature = clocks-timezone) + utc-offset: func(when: datetime) -> s32; + + /// Information useful for displaying the timezone of a specific `datetime`. + /// + /// This information may vary within a single `timezone` to reflect daylight + /// saving time adjustments. + @unstable(feature = clocks-timezone) + record timezone-display { + /// The number of seconds difference between UTC time and the local + /// time of the timezone. + /// + /// The returned value will always be less than 86400 which is the + /// number of seconds in a day (24*60*60). + /// + /// In implementations that do not expose an actual time zone, this + /// should return 0. + utc-offset: s32, + + /// The abbreviated name of the timezone to display to a user. The name + /// `UTC` indicates Coordinated Universal Time. Otherwise, this should + /// reference local standards for the name of the time zone. + /// + /// In implementations that do not expose an actual time zone, this + /// should be the string `UTC`. + /// + /// In time zones that do not have an applicable name, a formatted + /// representation of the UTC offset may be returned, such as `-04:00`. + name: string, + + /// Whether daylight saving time is active. + /// + /// In implementations that do not expose an actual time zone, this + /// should return false. + in-daylight-saving-time: bool, + } +} diff --git a/template-golem-agent-ts/wit/deps/clocks/wall-clock.wit b/template-golem-agent-ts/wit/deps/clocks/wall-clock.wit new file mode 100644 index 000000000..e00ce0893 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/clocks/wall-clock.wit @@ -0,0 +1,46 @@ +package wasi:clocks@0.2.3; +/// WASI Wall Clock is a clock API intended to let users query the current +/// time. The name "wall" makes an analogy to a "clock on the wall", which +/// is not necessarily monotonic as it may be reset. +/// +/// It is intended to be portable at least between Unix-family platforms and +/// Windows. +/// +/// A wall clock is a clock which measures the date and time according to +/// some external reference. +/// +/// External references may be reset, so this clock is not necessarily +/// monotonic, making it unsuitable for measuring elapsed time. +/// +/// It is intended for reporting the current date and time for humans. +@since(version = 0.2.0) +interface wall-clock { + /// A time and date in seconds plus nanoseconds. + @since(version = 0.2.0) + record datetime { + seconds: u64, + nanoseconds: u32, + } + + /// Read the current value of the clock. + /// + /// This clock is not monotonic, therefore calling this function repeatedly + /// will not necessarily produce a sequence of non-decreasing values. + /// + /// The returned timestamps represent the number of seconds since + /// 1970-01-01T00:00:00Z, also known as [POSIX's Seconds Since the Epoch], + /// also known as [Unix Time]. + /// + /// The nanoseconds field of the output is always less than 1000000000. + /// + /// [POSIX's Seconds Since the Epoch]: https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html#tag_21_04_16 + /// [Unix Time]: https://en.wikipedia.org/wiki/Unix_time + @since(version = 0.2.0) + now: func() -> datetime; + + /// Query the resolution of the clock. + /// + /// The nanoseconds field of the output is always less than 1000000000. + @since(version = 0.2.0) + resolution: func() -> datetime; +} diff --git a/template-golem-agent-ts/wit/deps/clocks/world.wit b/template-golem-agent-ts/wit/deps/clocks/world.wit new file mode 100644 index 000000000..05f04f797 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/clocks/world.wit @@ -0,0 +1,11 @@ +package wasi:clocks@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + import monotonic-clock; + @since(version = 0.2.0) + import wall-clock; + @unstable(feature = clocks-timezone) + import timezone; +} diff --git a/template-golem-agent-ts/wit/deps/config/store.wit b/template-golem-agent-ts/wit/deps/config/store.wit new file mode 100644 index 000000000..794379a75 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/config/store.wit @@ -0,0 +1,30 @@ +interface store { + /// An error type that encapsulates the different errors that can occur fetching configuration values. + variant error { + /// This indicates an error from an "upstream" config source. + /// As this could be almost _anything_ (such as Vault, Kubernetes ConfigMaps, KeyValue buckets, etc), + /// the error message is a string. + upstream(string), + /// This indicates an error from an I/O operation. + /// As this could be almost _anything_ (such as a file read, network connection, etc), + /// the error message is a string. + /// Depending on how this ends up being consumed, + /// we may consider moving this to use the `wasi:io/error` type instead. + /// For simplicity right now in supporting multiple implementations, it is being left as a string. + io(string), + } + + /// Gets a configuration value of type `string` associated with the `key`. + /// + /// The value is returned as an `option`. If the key is not found, + /// `Ok(none)` is returned. If an error occurs, an `Err(error)` is returned. + get: func( + /// A string key to fetch + key: string + ) -> result, error>; + + /// Gets a list of configuration key-value pairs of type `string`. + /// + /// If an error occurs, an `Err(error)` is returned. + get-all: func() -> result>, error>; +} diff --git a/template-golem-agent-ts/wit/deps/config/world.wit b/template-golem-agent-ts/wit/deps/config/world.wit new file mode 100644 index 000000000..f92f080a5 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/config/world.wit @@ -0,0 +1,6 @@ +package wasi:config@0.2.0-draft; + +world imports { + /// The interface for wasi:config/store + import store; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/filesystem/preopens.wit b/template-golem-agent-ts/wit/deps/filesystem/preopens.wit new file mode 100644 index 000000000..cea97495b --- /dev/null +++ b/template-golem-agent-ts/wit/deps/filesystem/preopens.wit @@ -0,0 +1,11 @@ +package wasi:filesystem@0.2.3; + +@since(version = 0.2.0) +interface preopens { + @since(version = 0.2.0) + use types.{descriptor}; + + /// Return the set of preopened directories, and their paths. + @since(version = 0.2.0) + get-directories: func() -> list>; +} diff --git a/template-golem-agent-ts/wit/deps/filesystem/types.wit b/template-golem-agent-ts/wit/deps/filesystem/types.wit new file mode 100644 index 000000000..d229a21f4 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/filesystem/types.wit @@ -0,0 +1,672 @@ +package wasi:filesystem@0.2.3; +/// WASI filesystem is a filesystem API primarily intended to let users run WASI +/// programs that access their files on their existing filesystems, without +/// significant overhead. +/// +/// It is intended to be roughly portable between Unix-family platforms and +/// Windows, though it does not hide many of the major differences. +/// +/// Paths are passed as interface-type `string`s, meaning they must consist of +/// a sequence of Unicode Scalar Values (USVs). Some filesystems may contain +/// paths which are not accessible by this API. +/// +/// The directory separator in WASI is always the forward-slash (`/`). +/// +/// All paths in WASI are relative paths, and are interpreted relative to a +/// `descriptor` referring to a base directory. If a `path` argument to any WASI +/// function starts with `/`, or if any step of resolving a `path`, including +/// `..` and symbolic link steps, reaches a directory outside of the base +/// directory, or reaches a symlink to an absolute or rooted path in the +/// underlying filesystem, the function fails with `error-code::not-permitted`. +/// +/// For more information about WASI path resolution and sandboxing, see +/// [WASI filesystem path resolution]. +/// +/// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md +@since(version = 0.2.0) +interface types { + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{input-stream, output-stream, error}; + @since(version = 0.2.0) + use wasi:clocks/wall-clock@0.2.3.{datetime}; + + /// File size or length of a region within a file. + @since(version = 0.2.0) + type filesize = u64; + + /// The type of a filesystem object referenced by a descriptor. + /// + /// Note: This was called `filetype` in earlier versions of WASI. + @since(version = 0.2.0) + enum descriptor-type { + /// The type of the descriptor or file is unknown or is different from + /// any of the other types specified. + unknown, + /// The descriptor refers to a block device inode. + block-device, + /// The descriptor refers to a character device inode. + character-device, + /// The descriptor refers to a directory inode. + directory, + /// The descriptor refers to a named pipe. + fifo, + /// The file refers to a symbolic link inode. + symbolic-link, + /// The descriptor refers to a regular file inode. + regular-file, + /// The descriptor refers to a socket. + socket, + } + + /// Descriptor flags. + /// + /// Note: This was called `fdflags` in earlier versions of WASI. + @since(version = 0.2.0) + flags descriptor-flags { + /// Read mode: Data can be read. + read, + /// Write mode: Data can be written to. + write, + /// Request that writes be performed according to synchronized I/O file + /// integrity completion. The data stored in the file and the file's + /// metadata are synchronized. This is similar to `O_SYNC` in POSIX. + /// + /// The precise semantics of this operation have not yet been defined for + /// WASI. At this time, it should be interpreted as a request, and not a + /// requirement. + file-integrity-sync, + /// Request that writes be performed according to synchronized I/O data + /// integrity completion. Only the data stored in the file is + /// synchronized. This is similar to `O_DSYNC` in POSIX. + /// + /// The precise semantics of this operation have not yet been defined for + /// WASI. At this time, it should be interpreted as a request, and not a + /// requirement. + data-integrity-sync, + /// Requests that reads be performed at the same level of integrity + /// requested for writes. This is similar to `O_RSYNC` in POSIX. + /// + /// The precise semantics of this operation have not yet been defined for + /// WASI. At this time, it should be interpreted as a request, and not a + /// requirement. + requested-write-sync, + /// Mutating directories mode: Directory contents may be mutated. + /// + /// When this flag is unset on a descriptor, operations using the + /// descriptor which would create, rename, delete, modify the data or + /// metadata of filesystem objects, or obtain another handle which + /// would permit any of those, shall fail with `error-code::read-only` if + /// they would otherwise succeed. + /// + /// This may only be set on directories. + mutate-directory, + } + + /// File attributes. + /// + /// Note: This was called `filestat` in earlier versions of WASI. + @since(version = 0.2.0) + record descriptor-stat { + /// File type. + %type: descriptor-type, + /// Number of hard links to the file. + link-count: link-count, + /// For regular files, the file size in bytes. For symbolic links, the + /// length in bytes of the pathname contained in the symbolic link. + size: filesize, + /// Last data access timestamp. + /// + /// If the `option` is none, the platform doesn't maintain an access + /// timestamp for this file. + data-access-timestamp: option, + /// Last data modification timestamp. + /// + /// If the `option` is none, the platform doesn't maintain a + /// modification timestamp for this file. + data-modification-timestamp: option, + /// Last file status-change timestamp. + /// + /// If the `option` is none, the platform doesn't maintain a + /// status-change timestamp for this file. + status-change-timestamp: option, + } + + /// Flags determining the method of how paths are resolved. + @since(version = 0.2.0) + flags path-flags { + /// As long as the resolved path corresponds to a symbolic link, it is + /// expanded. + symlink-follow, + } + + /// Open flags used by `open-at`. + @since(version = 0.2.0) + flags open-flags { + /// Create file if it does not exist, similar to `O_CREAT` in POSIX. + create, + /// Fail if not a directory, similar to `O_DIRECTORY` in POSIX. + directory, + /// Fail if file already exists, similar to `O_EXCL` in POSIX. + exclusive, + /// Truncate file to size 0, similar to `O_TRUNC` in POSIX. + truncate, + } + + /// Number of hard links to an inode. + @since(version = 0.2.0) + type link-count = u64; + + /// When setting a timestamp, this gives the value to set it to. + @since(version = 0.2.0) + variant new-timestamp { + /// Leave the timestamp set to its previous value. + no-change, + /// Set the timestamp to the current time of the system clock associated + /// with the filesystem. + now, + /// Set the timestamp to the given value. + timestamp(datetime), + } + + /// A directory entry. + record directory-entry { + /// The type of the file referred to by this directory entry. + %type: descriptor-type, + + /// The name of the object. + name: string, + } + + /// Error codes returned by functions, similar to `errno` in POSIX. + /// Not all of these error codes are returned by the functions provided by this + /// API; some are used in higher-level library layers, and others are provided + /// merely for alignment with POSIX. + enum error-code { + /// Permission denied, similar to `EACCES` in POSIX. + access, + /// Resource unavailable, or operation would block, similar to `EAGAIN` and `EWOULDBLOCK` in POSIX. + would-block, + /// Connection already in progress, similar to `EALREADY` in POSIX. + already, + /// Bad descriptor, similar to `EBADF` in POSIX. + bad-descriptor, + /// Device or resource busy, similar to `EBUSY` in POSIX. + busy, + /// Resource deadlock would occur, similar to `EDEADLK` in POSIX. + deadlock, + /// Storage quota exceeded, similar to `EDQUOT` in POSIX. + quota, + /// File exists, similar to `EEXIST` in POSIX. + exist, + /// File too large, similar to `EFBIG` in POSIX. + file-too-large, + /// Illegal byte sequence, similar to `EILSEQ` in POSIX. + illegal-byte-sequence, + /// Operation in progress, similar to `EINPROGRESS` in POSIX. + in-progress, + /// Interrupted function, similar to `EINTR` in POSIX. + interrupted, + /// Invalid argument, similar to `EINVAL` in POSIX. + invalid, + /// I/O error, similar to `EIO` in POSIX. + io, + /// Is a directory, similar to `EISDIR` in POSIX. + is-directory, + /// Too many levels of symbolic links, similar to `ELOOP` in POSIX. + loop, + /// Too many links, similar to `EMLINK` in POSIX. + too-many-links, + /// Message too large, similar to `EMSGSIZE` in POSIX. + message-size, + /// Filename too long, similar to `ENAMETOOLONG` in POSIX. + name-too-long, + /// No such device, similar to `ENODEV` in POSIX. + no-device, + /// No such file or directory, similar to `ENOENT` in POSIX. + no-entry, + /// No locks available, similar to `ENOLCK` in POSIX. + no-lock, + /// Not enough space, similar to `ENOMEM` in POSIX. + insufficient-memory, + /// No space left on device, similar to `ENOSPC` in POSIX. + insufficient-space, + /// Not a directory or a symbolic link to a directory, similar to `ENOTDIR` in POSIX. + not-directory, + /// Directory not empty, similar to `ENOTEMPTY` in POSIX. + not-empty, + /// State not recoverable, similar to `ENOTRECOVERABLE` in POSIX. + not-recoverable, + /// Not supported, similar to `ENOTSUP` and `ENOSYS` in POSIX. + unsupported, + /// Inappropriate I/O control operation, similar to `ENOTTY` in POSIX. + no-tty, + /// No such device or address, similar to `ENXIO` in POSIX. + no-such-device, + /// Value too large to be stored in data type, similar to `EOVERFLOW` in POSIX. + overflow, + /// Operation not permitted, similar to `EPERM` in POSIX. + not-permitted, + /// Broken pipe, similar to `EPIPE` in POSIX. + pipe, + /// Read-only file system, similar to `EROFS` in POSIX. + read-only, + /// Invalid seek, similar to `ESPIPE` in POSIX. + invalid-seek, + /// Text file busy, similar to `ETXTBSY` in POSIX. + text-file-busy, + /// Cross-device link, similar to `EXDEV` in POSIX. + cross-device, + } + + /// File or memory access pattern advisory information. + @since(version = 0.2.0) + enum advice { + /// The application has no advice to give on its behavior with respect + /// to the specified data. + normal, + /// The application expects to access the specified data sequentially + /// from lower offsets to higher offsets. + sequential, + /// The application expects to access the specified data in a random + /// order. + random, + /// The application expects to access the specified data in the near + /// future. + will-need, + /// The application expects that it will not access the specified data + /// in the near future. + dont-need, + /// The application expects to access the specified data once and then + /// not reuse it thereafter. + no-reuse, + } + + /// A 128-bit hash value, split into parts because wasm doesn't have a + /// 128-bit integer type. + @since(version = 0.2.0) + record metadata-hash-value { + /// 64 bits of a 128-bit hash value. + lower: u64, + /// Another 64 bits of a 128-bit hash value. + upper: u64, + } + + /// A descriptor is a reference to a filesystem object, which may be a file, + /// directory, named pipe, special file, or other object on which filesystem + /// calls may be made. + @since(version = 0.2.0) + resource descriptor { + /// Return a stream for reading from a file, if available. + /// + /// May fail with an error-code describing why the file cannot be read. + /// + /// Multiple read, write, and append streams may be active on the same open + /// file and they do not interfere with each other. + /// + /// Note: This allows using `read-stream`, which is similar to `read` in POSIX. + @since(version = 0.2.0) + read-via-stream: func( + /// The offset within the file at which to start reading. + offset: filesize, + ) -> result; + + /// Return a stream for writing to a file, if available. + /// + /// May fail with an error-code describing why the file cannot be written. + /// + /// Note: This allows using `write-stream`, which is similar to `write` in + /// POSIX. + @since(version = 0.2.0) + write-via-stream: func( + /// The offset within the file at which to start writing. + offset: filesize, + ) -> result; + + /// Return a stream for appending to a file, if available. + /// + /// May fail with an error-code describing why the file cannot be appended. + /// + /// Note: This allows using `write-stream`, which is similar to `write` with + /// `O_APPEND` in POSIX. + @since(version = 0.2.0) + append-via-stream: func() -> result; + + /// Provide file advisory information on a descriptor. + /// + /// This is similar to `posix_fadvise` in POSIX. + @since(version = 0.2.0) + advise: func( + /// The offset within the file to which the advisory applies. + offset: filesize, + /// The length of the region to which the advisory applies. + length: filesize, + /// The advice. + advice: advice + ) -> result<_, error-code>; + + /// Synchronize the data of a file to disk. + /// + /// This function succeeds with no effect if the file descriptor is not + /// opened for writing. + /// + /// Note: This is similar to `fdatasync` in POSIX. + @since(version = 0.2.0) + sync-data: func() -> result<_, error-code>; + + /// Get flags associated with a descriptor. + /// + /// Note: This returns similar flags to `fcntl(fd, F_GETFL)` in POSIX. + /// + /// Note: This returns the value that was the `fs_flags` value returned + /// from `fdstat_get` in earlier versions of WASI. + @since(version = 0.2.0) + get-flags: func() -> result; + + /// Get the dynamic type of a descriptor. + /// + /// Note: This returns the same value as the `type` field of the `fd-stat` + /// returned by `stat`, `stat-at` and similar. + /// + /// Note: This returns similar flags to the `st_mode & S_IFMT` value provided + /// by `fstat` in POSIX. + /// + /// Note: This returns the value that was the `fs_filetype` value returned + /// from `fdstat_get` in earlier versions of WASI. + @since(version = 0.2.0) + get-type: func() -> result; + + /// Adjust the size of an open file. If this increases the file's size, the + /// extra bytes are filled with zeros. + /// + /// Note: This was called `fd_filestat_set_size` in earlier versions of WASI. + @since(version = 0.2.0) + set-size: func(size: filesize) -> result<_, error-code>; + + /// Adjust the timestamps of an open file or directory. + /// + /// Note: This is similar to `futimens` in POSIX. + /// + /// Note: This was called `fd_filestat_set_times` in earlier versions of WASI. + @since(version = 0.2.0) + set-times: func( + /// The desired values of the data access timestamp. + data-access-timestamp: new-timestamp, + /// The desired values of the data modification timestamp. + data-modification-timestamp: new-timestamp, + ) -> result<_, error-code>; + + /// Read from a descriptor, without using and updating the descriptor's offset. + /// + /// This function returns a list of bytes containing the data that was + /// read, along with a bool which, when true, indicates that the end of the + /// file was reached. The returned list will contain up to `length` bytes; it + /// may return fewer than requested, if the end of the file is reached or + /// if the I/O operation is interrupted. + /// + /// In the future, this may change to return a `stream`. + /// + /// Note: This is similar to `pread` in POSIX. + @since(version = 0.2.0) + read: func( + /// The maximum number of bytes to read. + length: filesize, + /// The offset within the file at which to read. + offset: filesize, + ) -> result, bool>, error-code>; + + /// Write to a descriptor, without using and updating the descriptor's offset. + /// + /// It is valid to write past the end of a file; the file is extended to the + /// extent of the write, with bytes between the previous end and the start of + /// the write set to zero. + /// + /// In the future, this may change to take a `stream`. + /// + /// Note: This is similar to `pwrite` in POSIX. + @since(version = 0.2.0) + write: func( + /// Data to write + buffer: list, + /// The offset within the file at which to write. + offset: filesize, + ) -> result; + + /// Read directory entries from a directory. + /// + /// On filesystems where directories contain entries referring to themselves + /// and their parents, often named `.` and `..` respectively, these entries + /// are omitted. + /// + /// This always returns a new stream which starts at the beginning of the + /// directory. Multiple streams may be active on the same directory, and they + /// do not interfere with each other. + @since(version = 0.2.0) + read-directory: func() -> result; + + /// Synchronize the data and metadata of a file to disk. + /// + /// This function succeeds with no effect if the file descriptor is not + /// opened for writing. + /// + /// Note: This is similar to `fsync` in POSIX. + @since(version = 0.2.0) + sync: func() -> result<_, error-code>; + + /// Create a directory. + /// + /// Note: This is similar to `mkdirat` in POSIX. + @since(version = 0.2.0) + create-directory-at: func( + /// The relative path at which to create the directory. + path: string, + ) -> result<_, error-code>; + + /// Return the attributes of an open file or directory. + /// + /// Note: This is similar to `fstat` in POSIX, except that it does not return + /// device and inode information. For testing whether two descriptors refer to + /// the same underlying filesystem object, use `is-same-object`. To obtain + /// additional data that can be used do determine whether a file has been + /// modified, use `metadata-hash`. + /// + /// Note: This was called `fd_filestat_get` in earlier versions of WASI. + @since(version = 0.2.0) + stat: func() -> result; + + /// Return the attributes of a file or directory. + /// + /// Note: This is similar to `fstatat` in POSIX, except that it does not + /// return device and inode information. See the `stat` description for a + /// discussion of alternatives. + /// + /// Note: This was called `path_filestat_get` in earlier versions of WASI. + @since(version = 0.2.0) + stat-at: func( + /// Flags determining the method of how the path is resolved. + path-flags: path-flags, + /// The relative path of the file or directory to inspect. + path: string, + ) -> result; + + /// Adjust the timestamps of a file or directory. + /// + /// Note: This is similar to `utimensat` in POSIX. + /// + /// Note: This was called `path_filestat_set_times` in earlier versions of + /// WASI. + @since(version = 0.2.0) + set-times-at: func( + /// Flags determining the method of how the path is resolved. + path-flags: path-flags, + /// The relative path of the file or directory to operate on. + path: string, + /// The desired values of the data access timestamp. + data-access-timestamp: new-timestamp, + /// The desired values of the data modification timestamp. + data-modification-timestamp: new-timestamp, + ) -> result<_, error-code>; + + /// Create a hard link. + /// + /// Note: This is similar to `linkat` in POSIX. + @since(version = 0.2.0) + link-at: func( + /// Flags determining the method of how the path is resolved. + old-path-flags: path-flags, + /// The relative source path from which to link. + old-path: string, + /// The base directory for `new-path`. + new-descriptor: borrow, + /// The relative destination path at which to create the hard link. + new-path: string, + ) -> result<_, error-code>; + + /// Open a file or directory. + /// + /// If `flags` contains `descriptor-flags::mutate-directory`, and the base + /// descriptor doesn't have `descriptor-flags::mutate-directory` set, + /// `open-at` fails with `error-code::read-only`. + /// + /// If `flags` contains `write` or `mutate-directory`, or `open-flags` + /// contains `truncate` or `create`, and the base descriptor doesn't have + /// `descriptor-flags::mutate-directory` set, `open-at` fails with + /// `error-code::read-only`. + /// + /// Note: This is similar to `openat` in POSIX. + @since(version = 0.2.0) + open-at: func( + /// Flags determining the method of how the path is resolved. + path-flags: path-flags, + /// The relative path of the object to open. + path: string, + /// The method by which to open the file. + open-flags: open-flags, + /// Flags to use for the resulting descriptor. + %flags: descriptor-flags, + ) -> result; + + /// Read the contents of a symbolic link. + /// + /// If the contents contain an absolute or rooted path in the underlying + /// filesystem, this function fails with `error-code::not-permitted`. + /// + /// Note: This is similar to `readlinkat` in POSIX. + @since(version = 0.2.0) + readlink-at: func( + /// The relative path of the symbolic link from which to read. + path: string, + ) -> result; + + /// Remove a directory. + /// + /// Return `error-code::not-empty` if the directory is not empty. + /// + /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX. + @since(version = 0.2.0) + remove-directory-at: func( + /// The relative path to a directory to remove. + path: string, + ) -> result<_, error-code>; + + /// Rename a filesystem object. + /// + /// Note: This is similar to `renameat` in POSIX. + @since(version = 0.2.0) + rename-at: func( + /// The relative source path of the file or directory to rename. + old-path: string, + /// The base directory for `new-path`. + new-descriptor: borrow, + /// The relative destination path to which to rename the file or directory. + new-path: string, + ) -> result<_, error-code>; + + /// Create a symbolic link (also known as a "symlink"). + /// + /// If `old-path` starts with `/`, the function fails with + /// `error-code::not-permitted`. + /// + /// Note: This is similar to `symlinkat` in POSIX. + @since(version = 0.2.0) + symlink-at: func( + /// The contents of the symbolic link. + old-path: string, + /// The relative destination path at which to create the symbolic link. + new-path: string, + ) -> result<_, error-code>; + + /// Unlink a filesystem object that is not a directory. + /// + /// Return `error-code::is-directory` if the path refers to a directory. + /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX. + @since(version = 0.2.0) + unlink-file-at: func( + /// The relative path to a file to unlink. + path: string, + ) -> result<_, error-code>; + + /// Test whether two descriptors refer to the same filesystem object. + /// + /// In POSIX, this corresponds to testing whether the two descriptors have the + /// same device (`st_dev`) and inode (`st_ino` or `d_ino`) numbers. + /// wasi-filesystem does not expose device and inode numbers, so this function + /// may be used instead. + @since(version = 0.2.0) + is-same-object: func(other: borrow) -> bool; + + /// Return a hash of the metadata associated with a filesystem object referred + /// to by a descriptor. + /// + /// This returns a hash of the last-modification timestamp and file size, and + /// may also include the inode number, device number, birth timestamp, and + /// other metadata fields that may change when the file is modified or + /// replaced. It may also include a secret value chosen by the + /// implementation and not otherwise exposed. + /// + /// Implementations are encouraged to provide the following properties: + /// + /// - If the file is not modified or replaced, the computed hash value should + /// usually not change. + /// - If the object is modified or replaced, the computed hash value should + /// usually change. + /// - The inputs to the hash should not be easily computable from the + /// computed hash. + /// + /// However, none of these is required. + @since(version = 0.2.0) + metadata-hash: func() -> result; + + /// Return a hash of the metadata associated with a filesystem object referred + /// to by a directory descriptor and a relative path. + /// + /// This performs the same hash computation as `metadata-hash`. + @since(version = 0.2.0) + metadata-hash-at: func( + /// Flags determining the method of how the path is resolved. + path-flags: path-flags, + /// The relative path of the file or directory to inspect. + path: string, + ) -> result; + } + + /// A stream of directory entries. + @since(version = 0.2.0) + resource directory-entry-stream { + /// Read a single directory entry from a `directory-entry-stream`. + @since(version = 0.2.0) + read-directory-entry: func() -> result, error-code>; + } + + /// Attempts to extract a filesystem-related `error-code` from the stream + /// `error` provided. + /// + /// Stream operations which return `stream-error::last-operation-failed` + /// have a payload with more information about the operation that failed. + /// This payload can be passed through to this function to see if there's + /// filesystem-related information about the error to return. + /// + /// Note that this function is fallible because not all stream-related + /// errors are filesystem-related errors. + @since(version = 0.2.0) + filesystem-error-code: func(err: borrow) -> option; +} diff --git a/template-golem-agent-ts/wit/deps/filesystem/world.wit b/template-golem-agent-ts/wit/deps/filesystem/world.wit new file mode 100644 index 000000000..29405bc2c --- /dev/null +++ b/template-golem-agent-ts/wit/deps/filesystem/world.wit @@ -0,0 +1,9 @@ +package wasi:filesystem@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + import types; + @since(version = 0.2.0) + import preopens; +} diff --git a/template-golem-agent-ts/wit/deps/golem-1.x/golem-context.wit b/template-golem-agent-ts/wit/deps/golem-1.x/golem-context.wit new file mode 100644 index 000000000..54f1484c3 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-1.x/golem-context.wit @@ -0,0 +1,93 @@ +package golem:api@1.1.7; + +/// Invocation context support +interface context { + use wasi:clocks/wall-clock@0.2.3.{datetime}; + + /// Starts a new `span` with the given name, as a child of the current invocation context + start-span: func(name: string) -> span; + + /// Gets the current invocation context + /// + /// The function call captures the current context; if new spans are started, the returned `invocation-context` instance will not + /// reflect that. + current-context: func() -> invocation-context; + + /// Allows or disallows forwarding of trace context headers in outgoing HTTP requests + /// + /// Returns the previous value of the setting + allow-forwarding-trace-context-headers: func(allow: bool) -> bool; + + /// Represents a unit of work or operation + resource span { + /// Gets the starting time of the span + started-at: func() -> datetime; + + /// Set an attribute on the span + set-attribute: func(name: string, value: attribute-value); + + /// Set multiple attributes on the span + set-attributes: func(attributes: list); + + /// Early finishes the span; otherwise it will be finished when the resource is dropped + finish: func(); + } + + /// Represents an invocation context wich allows querying the stack of attributes + /// created by automatic and user-defined spans. + resource invocation-context { + /// Gets the current trace id + trace-id: func() -> trace-id; + + /// Gets the current span id + span-id: func() -> span-id; + + /// Gets the parent context, if any; allows recursive processing of the invocation context. + /// + /// Alternatively, the attribute query methods can return inherited values without having to + /// traverse the stack manually. + parent: func() -> option; + + /// Gets the value of an attribute `key`. If `inherited` is true, the value is searched in the stack of spans, + /// otherwise only in the current span. + get-attribute: func(key: string, inherited: bool) -> option; + + /// Gets all attributes of the current invocation context. If `inherited` is true, it returns the merged set of attributes, each + /// key associated with the latest value found in the stack of spans. + get-attributes: func(inherited: bool) -> list; + + /// Gets the chain of attribute values associated with the given `key`. If the key does not exist in any of the + /// spans in the invocation context, the list is empty. The chain's first element contains the most recent (innermost) value. + get-attribute-chain: func(key: string) -> list; + + /// Gets all values of all attributes of the current invocation context. + get-attribute-chains: func() -> list; + + /// Gets the W3C Trace Context headers associated with the current invocation context + trace-context-headers: func() -> list>; + } + + /// An attribute of a span + record attribute { + key: string, + value: attribute-value + } + + /// A chain of attribute values, the first element representing the most recent value + record attribute-chain { + key: string, + values: list + } + + /// Possible span attribute value types + variant attribute-value { + /// A string value + %string(string) + } + + /// The trace represented by a 16 bytes hexadecimal string + type trace-id = string; + + /// The span represented by a 8 bytes hexadecimal string + type span-id = string; +} diff --git a/template-golem-agent-ts/wit/deps/golem-1.x/golem-host.wit b/template-golem-agent-ts/wit/deps/golem-1.x/golem-host.wit new file mode 100644 index 000000000..bb932f767 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-1.x/golem-host.wit @@ -0,0 +1,298 @@ +package golem:api@1.1.7; + +/// The Golem host API provides low level access to Golem specific features such as promises and control over +/// the durability and transactional guarantees the executor provides. +interface host { + use wasi:clocks/monotonic-clock@0.2.3.{duration}; + use golem:rpc/types@0.2.2.{component-id, uuid, worker-id}; + + /// An index into the persistent log storing all performed operations of a worker + type oplog-index = u64; + + /// A promise ID is a value that can be passed to an external Golem API to complete that promise + /// from an arbitrary external source, while Golem workers can await for this completion. + record promise-id { + worker-id: worker-id, + oplog-idx: oplog-index, + } + + /// Represents a Golem component's version + type component-version = u64; + + /// Represents a Golem Cloud account + record account-id { + value: string + } + + /// Represents a Golem project + record project-id { + uuid: uuid, + } + + /// Configures how the executor retries failures + record retry-policy { + /// The maximum number of retries before the worker becomes permanently failed + max-attempts: u32, + /// The minimum delay between retries (applied to the first retry) + min-delay: duration, + /// The maximum delay between retries + max-delay: duration, + /// Multiplier applied to the delay on each retry to implement exponential backoff + multiplier: f64, + /// The maximum amount of jitter to add to the delay + max-jitter-factor: option + } + + /// Configurable persistence level for workers + variant persistence-level { + persist-nothing, + persist-remote-side-effects, + smart + } + + /// Describes how to update a worker to a different component version + enum update-mode { + /// Automatic update tries to recover the worker using the new component version + /// and may fail if there is a divergence. + automatic, + + /// Manual, snapshot-based update uses a user-defined implementation of the `save-snapshot` interface + /// to store the worker's state, and a user-defined implementation of the `load-snapshot` interface to + /// load it into the new version. + snapshot-based + } + + enum filter-comparator { + equal, + not-equal, + greater-equal, + greater, + less-equal, + less + } + + enum string-filter-comparator { + equal, + not-equal, + like, + not-like + } + + enum worker-status { + /// The worker is running an invoked function + running, + /// The worker is ready to run an invoked function + idle, + /// An invocation is active but waiting for something (sleeping, waiting for a promise) + suspended, + /// The last invocation was interrupted but will be resumed + interrupted, + /// The last invocation failed and a retry was scheduled + retrying, + /// The last invocation failed and the worker can no longer be used + failed, + /// The worker exited after a successful invocation and can no longer be invoked + exited, + } + + record worker-name-filter { + comparator: string-filter-comparator, + value: string + } + + record worker-status-filter { + comparator: filter-comparator, + value: worker-status + } + + record worker-version-filter { + comparator: filter-comparator, + value: u64 + } + + record worker-created-at-filter { + comparator: filter-comparator, + value: u64 + } + + record worker-env-filter { + name: string, + comparator: string-filter-comparator, + value: string + } + + variant worker-property-filter { + name(worker-name-filter), + status(worker-status-filter), + version(worker-version-filter), + created-at(worker-created-at-filter), + env(worker-env-filter) + } + + record worker-all-filter { + filters: list + } + + record worker-any-filter { + filters: list + } + + record worker-metadata { + worker-id: worker-id, + args: list, + env: list>, + status: worker-status, + component-version: u64, + retry-count: u64 + } + + resource get-workers { + constructor(component-id: component-id, filter: option, precise: bool); + + get-next: func() -> option>; + } + + /// Target parameter for the `revert-worker` operation + variant revert-worker-target { + /// Revert to a specific oplog index. The given index will be the last one to be kept. + revert-to-oplog-index(oplog-index), + /// Revert the last N invocations. + revert-last-invocations(u64) + } + + /// Indicates which worker the code is running on after `fork` + enum fork-result { + /// The original worker that called `fork` + original, + /// The new worker + forked + } + + /// Create a new promise + create-promise: func() -> promise-id; + + /// Suspends execution until the given promise gets completed, and returns the payload passed to + /// the promise completion. + await-promise: func(promise-id: promise-id) -> list; + + /// Checks whether the given promise is completed. If not, it returns None. If the promise is completed, + /// it returns the payload passed to the promise completion. + poll-promise: func(promise-id: promise-id) -> option>; + + /// Completes the given promise with the given payload. Returns true if the promise was completed, false + /// if the promise was already completed. The payload is passed to the worker that is awaiting the promise. + complete-promise: func(promise-id: promise-id, data: list) -> bool; + + /// Deletes the given promise + delete-promise: func(promise-id: promise-id); + + /// Returns the current position in the persistent op log + get-oplog-index: func() -> oplog-index; + + /// Makes the current worker travel back in time and continue execution from the given position in the persistent + /// op log. + set-oplog-index: func(oplog-idx: oplog-index); + + /// Blocks the execution until the oplog has been written to at least the specified number of replicas, + /// or the maximum number of replicas if the requested number is higher. + oplog-commit: func(replicas: u8); + + /// Marks the beginning of an atomic operation. + /// In case of a failure within the region selected by `mark-begin-operation` and `mark-end-operation` + /// the whole region will be reexecuted on retry. + /// The end of the region is when `mark-end-operation` is called with the returned oplog-index. + mark-begin-operation: func() -> oplog-index; + + /// Commits this atomic operation. After `mark-end-operation` is called for a given index, further calls + /// with the same parameter will do nothing. + mark-end-operation: func(begin: oplog-index); + + /// Gets the current retry policy associated with the worker + get-retry-policy: func() -> retry-policy; + + /// Overrides the current retry policy associated with the worker. Following this call, `get-retry-policy` will return the + /// new retry policy. + set-retry-policy: func(new-retry-policy: retry-policy); + + /// Gets the worker's current persistence level. + get-oplog-persistence-level: func() -> persistence-level; + + /// Sets the worker's current persistence level. This can increase the performance of execution in cases where durable + /// execution is not required. + set-oplog-persistence-level: func(new-persistence-level: persistence-level); + + /// Gets the current idempotence mode. See `set-idempotence-mode` for details. + get-idempotence-mode: func() -> bool; + + /// Sets the current idempotence mode. The default is true. + /// True means side-effects are treated idempotent and Golem guarantees at-least-once semantics. + /// In case of false the executor provides at-most-once semantics, failing the worker in case it is + /// not known if the side effect was already executed. + set-idempotence-mode: func(idempotent: bool); + + /// Generates an idempotency key. This operation will never be replayed — + /// i.e. not only is this key generated, but it is persisted and committed, such that the key can be used in third-party systems (e.g. payment processing) + /// to introduce idempotence. + generate-idempotency-key: func() -> uuid; + + /// Initiates an update attempt for the given worker. The function returns immediately once the request has been processed, + /// not waiting for the worker to get updated. + update-worker: func(worker-id: worker-id, target-version: component-version, mode: update-mode); + + /// Get current worker metadata + get-self-metadata: func() -> worker-metadata; + + /// Get worker metadata + get-worker-metadata: func(worker-id: worker-id) -> option; + + /// Fork a worker to another worker at a given oplog index + fork-worker: func(source-worker-id: worker-id, target-worker-id: worker-id, oplog-idx-cut-off: oplog-index); + + /// Revert a worker to a previous state + revert-worker: func(worker-id: worker-id, revert-target: revert-worker-target); + + /// Get the component-id for a given component reference. + /// Returns none when no component with the specified reference exists. + /// The syntax of the component reference is implementation dependent. + /// + /// Golem OSS: "{component_name}" + /// Golem Cloud: + /// 1: "{component_name}" -> will resolve in current account and project + /// 2: "{project_name}/{component_name}" -> will resolve in current account + /// 3: "{account_id}/{project_name}/{component_name}" + resolve-component-id: func(component-reference: string) -> option; + + /// Get the worker-id for a given component and worker name. + /// Returns none when no component for the specified reference exists. + resolve-worker-id: func(component-reference: string, worker-name: string) -> option; + + /// Get the worker-id for a given component and worker name. + /// Returns none when no component for the specified component-reference or no worker with the specified worker-name exists. + resolve-worker-id-strict: func(component-reference: string, worker-name: string) -> option; + + /// Forks the current worker at the current execution point. The new worker gets the `new-name` worker name, + /// and this worker continues running as well. The return value is going to be different in this worker and + /// the forked worker. + fork: func(new-name: string) -> fork-result; +} + +/// Interface providing user-defined snapshotting capability. This can be used to perform manual update of workers +/// when the new component incompatible with the old one. +interface save-snapshot { + /// Saves the component's state into a user-defined snapshot + save: func() -> list; +} + +/// Interface providing user-defined snapshotting capability. This can be used to perform manual update of workers +/// when the new component incompatible with the old one. +interface load-snapshot { + /// Tries to load a user-defined snapshot, setting up the worker's state based on it. + /// The function can return with a failure to indicate that the update is not possible. + load: func(bytes: list) -> result<_, string>; +} + +world golem-host { + import host; + import save-snapshot; + import load-snapshot; +} diff --git a/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog-processor.wit b/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog-processor.wit new file mode 100644 index 000000000..2c910fe30 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog-processor.wit @@ -0,0 +1,33 @@ +package golem:api@1.1.7; + +interface oplog-processor { + use wasi:clocks/wall-clock@0.2.3.{datetime}; + use golem:rpc/types@0.2.2.{wit-value}; + + use host.{account-id, oplog-index, worker-metadata}; + use oplog.{oplog-entry}; + use golem:rpc/types@0.2.2.{component-id, worker-id}; + + record account-info { + account-id: account-id + } + + /// A processor resource is instantiated for each account having activated this oplog processor plugin. + /// There are no guarantees for the number of processors running at the same time, and different entries from the same worker + /// may be sent to different processor instances. + resource processor { + /// Initializes an oplog processor for a given component where the plugin was installed to. + /// The `account-info` parameters contains details of the account the installation belongs to. + /// The `component-id` parameter contains the identifier of the component the plugin was installed to. + /// The `config` parameter contains the configuration parameters for the plugin, as specified in the plugin installation + /// for the component. + constructor(account-info: account-info, component-id: component-id, config: list>); + + /// Called when one of the workers the plugin is activated on has written new entries to its oplog. + /// The `worker-id` parameter identifies the worker. + /// The `metadata` parameter contains the latest metadata of the worker. + /// The `first-entry-index` parameter contains the index of the first entry in the list of `entries`. + /// The `entries` parameteter always contains at least one element. + process: func(worker-id: worker-id, metadata: worker-metadata, first-entry-index: oplog-index, entries: list) -> result<_, string>; + } +} diff --git a/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog.wit b/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog.wit new file mode 100644 index 000000000..fd06f8f00 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-1.x/golem-oplog.wit @@ -0,0 +1,341 @@ +package golem:api@1.1.7; + +/// Host interface for enumerating and searching for worker oplogs +interface oplog { + use wasi:clocks/wall-clock@0.2.3.{datetime}; + use golem:rpc/types@0.2.2.{wit-value}; + + use host.{account-id, component-version, oplog-index, persistence-level, project-id, retry-policy, uuid, worker-id}; + use context.{attribute, attribute-value, span-id, trace-id}; + + variant wrapped-function-type { + /// The side-effect reads from the worker's local state (for example local file system, + /// random generator, etc.) + read-local, + /// The side-effect writes to the worker's local state (for example local file system) + write-local, + /// The side-effect reads from external state (for example a key-value store) + read-remote, + /// The side-effect manipulates external state (for example an RPC call) + write-remote, + /// The side-effect manipulates external state through multiple invoked functions (for example + /// a HTTP request where reading the response involves multiple host function calls) + /// + /// On the first invocation of the batch, the parameter should be `None` - this triggers + /// writing a `BeginRemoteWrite` entry in the oplog. Followup invocations should contain + /// this entry's index as the parameter. In batched remote writes it is the caller's responsibility + /// to manually write an `EndRemoteWrite` entry (using `end_function`) when the operation is completed. + write-remote-batched(option) + } + + record plugin-installation-description { + installation-id: uuid, + name: string, + version: string, + parameters: list> + } + + record create-parameters { + timestamp: datetime, + worker-id: worker-id, + component-version: component-version, + args: list, + env: list>, + created-by: account-id, + project-id: project-id, + parent: option, + component-size: u64, + initial-total-linear-memory-size: u64, + initial-active-plugins: list + } + + record imported-function-invoked-parameters { + timestamp: datetime, + function-name: string, + request: wit-value, + response: wit-value, + wrapped-function-type: wrapped-function-type, + } + + record local-span-data { + span-id: span-id, + start: datetime, + parent: option, + /// Optionally an index of the exported-function-invoked-parameters's invocation-context field + linked-context: option, + attributes: list, + inherited: bool + } + + record external-span-data { + span-id: span-id + } + + variant span-data { + local-span(local-span-data), + external-span(external-span-data) + } + + record exported-function-invoked-parameters { + timestamp: datetime, + function-name: string, + request: list, + idempotency-key: string, + trace-id: trace-id, + trace-states: list, + /// The first one is the invocation context stack associated with the exported function invocation, + /// and further stacks can be added that are referenced by the `linked-context` field of `local-span-data` + invocation-context: list> + } + + record exported-function-completed-parameters { + timestamp: datetime, + response: option, + consumed-fuel: s64 + } + + record error-parameters { + timestamp: datetime, + error: string + } + + record jump-parameters { + timestamp: datetime, + start: oplog-index, + end: oplog-index + } + + record change-retry-policy-parameters { + timestamp: datetime, + retry-policy: retry-policy + } + + record end-atomic-region-parameters { + timestamp: datetime, + begin-index: oplog-index + } + + record end-remote-write-parameters { + timestamp: datetime, + begin-index: oplog-index + } + + record exported-function-invocation-parameters { + idempotency-key: string, + function-name: string, + input: option> + } + + variant worker-invocation { + exported-function(exported-function-invocation-parameters), + manual-update(component-version) + } + + record pending-worker-invocation-parameters { + timestamp: datetime, + invocation: worker-invocation + } + + variant update-description { + /// Automatic update by replaying the oplog on the new version + auto-update, + /// Custom update by loading a given snapshot on the new version + snapshot-based(list) + } + + record pending-update-parameters { + timestamp: datetime, + target-version: component-version, + update-description: update-description + } + + record successful-update-parameters { + timestamp: datetime, + target-version: component-version, + new-component-size: u64, + new-active-plugins: list + } + + record failed-update-parameters { + timestamp: datetime, + target-version: component-version, + details: option + } + + record grow-memory-parameters { + timestamp: datetime, + delta: u64 + } + + type worker-resource-id = u64; + + record create-resource-parameters { + timestamp: datetime, + resource-id: worker-resource-id + } + + record drop-resource-parameters { + timestamp: datetime, + resource-id: worker-resource-id + } + + record describe-resource-parameters { + timestamp: datetime, + resource-id: worker-resource-id, + resource-name: string, + resource-params: list + } + + enum log-level { + stdout, + stderr, + trace, + debug, + info, + warn, + error, + critical + } + + record log-parameters { + timestamp: datetime, + level: log-level, + context: string, + message: string + } + + record activate-plugin-parameters { + timestamp: datetime, + plugin: plugin-installation-description + } + + record deactivate-plugin-parameters { + timestamp: datetime, + plugin: plugin-installation-description + } + + record revert-parameters { + timestamp: datetime, + start: oplog-index, + end: oplog-index + } + + record cancel-invocation-parameters { + timestamp: datetime, + idempotency-key: string + } + + record start-span-parameters { + timestamp: datetime, + span-id: span-id, + parent: option, + linked-context: option, + attributes: list, + } + + record finish-span-parameters { + timestamp: datetime, + span-id: span-id + } + + record set-span-attribute-parameters { + timestamp: datetime, + span-id: span-id, + key: string, + value: attribute-value + } + + record change-persistence-level-parameters { + timestamp: datetime, + persistence-level: persistence-level + } + + variant oplog-entry { + /// The initial worker oplog entry + create(create-parameters), + /// The worker invoked a host function + imported-function-invoked(imported-function-invoked-parameters), + /// The worker has been invoked + exported-function-invoked(exported-function-invoked-parameters), + /// The worker has completed an invocation + exported-function-completed(exported-function-completed-parameters), + /// Worker suspended + suspend(datetime), + /// Worker failed + error(error-parameters), + /// Marker entry added when get-oplog-index is called from the worker, to make the jumping behavior + /// more predictable. + no-op(datetime), + /// The worker needs to recover up to the given target oplog index and continue running from + /// the source oplog index from there + /// `jump` is an oplog region representing that from the end of that region we want to go back to the start and + /// ignore all recorded operations in between. + jump(jump-parameters), + /// Indicates that the worker has been interrupted at this point. + /// Only used to recompute the worker's (cached) status, has no effect on execution. + interrupted(datetime), + /// Indicates that the worker has been exited using WASI's exit function. + exited(datetime), + /// Overrides the worker's retry policy + change-retry-policy(change-retry-policy-parameters), + /// Begins an atomic region. All oplog entries after `BeginAtomicRegion` are to be ignored during + /// recovery except if there is a corresponding `EndAtomicRegion` entry. + begin-atomic-region(datetime), + /// Ends an atomic region. All oplog entries between the corresponding `BeginAtomicRegion` and this + /// entry are to be considered during recovery, and the begin/end markers can be removed during oplog + /// compaction. + end-atomic-region(end-atomic-region-parameters), + /// Begins a remote write operation. Only used when idempotence mode is off. In this case each + /// remote write must be surrounded by a `BeginRemoteWrite` and `EndRemoteWrite` log pair and + /// unfinished remote writes cannot be recovered. + begin-remote-write(datetime), + /// Marks the end of a remote write operation. Only used when idempotence mode is off. + end-remote-write(end-remote-write-parameters), + /// An invocation request arrived while the worker was busy + pending-worker-invocation(pending-worker-invocation-parameters), + /// An update request arrived and will be applied as soon the worker restarts + pending-update(pending-update-parameters), + /// An update was successfully applied + successful-update(successful-update-parameters), + /// An update failed to be applied + failed-update(failed-update-parameters), + /// Increased total linear memory size + grow-memory(grow-memory-parameters), + /// Created a resource instance + create-resource(create-resource-parameters), + /// Dropped a resource instance + drop-resource(drop-resource-parameters), + /// Adds additional information for a created resource instance + describe-resource(describe-resource-parameters), + /// The worker emitted a log message + log(log-parameters), + /// The worker's has been restarted, forgetting all its history + restart(datetime), + /// Activates a plugin + activate-plugin(activate-plugin-parameters), + /// Deactivates a plugin + deactivate-plugin(deactivate-plugin-parameters), + /// Revert a worker to a previous state + revert(revert-parameters), + /// Cancel a pending invocation + cancel-invocation(cancel-invocation-parameters), + /// Start a new span in the invocation context + start-span(start-span-parameters), + /// Finish an open span in the invocation context + finish-span(finish-span-parameters), + /// Set an attribute on an open span in the invocation context + set-span-attribute(set-span-attribute-parameters), + /// Change the current persistence level + change-persistence-level(change-persistence-level-parameters) + } + + resource get-oplog { + constructor(worker-id: worker-id, start: oplog-index); + get-next: func() -> option>; + } + + resource search-oplog { + constructor(worker-id: worker-id, text: string); + get-next: func() -> option>>; + } +} diff --git a/template-golem-agent-ts/wit/deps/golem-agent/common.wit b/template-golem-agent-ts/wit/deps/golem-agent/common.wit new file mode 100644 index 000000000..c725c768d --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-agent/common.wit @@ -0,0 +1,108 @@ +package golem:agent; + +interface common { + use golem:rpc/types@0.2.2.{wit-type, wit-value}; + + type url = string; + + record agent-type { + type-name: string, + description: string, + %constructor: agent-constructor, + methods: list, + dependencies: list, + } + + record agent-dependency { + type-name: string, + description: option, + %constructor: agent-constructor, + methods: list, + } + + record agent-method { + name: string, + description: string, + prompt-hint: option, + input-schema: data-schema, + output-schema: data-schema, + } + + record agent-constructor { + name: option, + description: string, + prompt-hint: option, + input-schema: data-schema, + } + + variant data-schema { + /// List of named elements + %tuple(list>), + /// List of named variants that can be used 0 or more times in a multimodal `data-value` + multimodal(list>), + } + + variant data-value { + /// List of element values, each corresponding to an element of the tuple `data-schema` + %tuple(list), + /// List of element values and their schema names; each name points to one named element of the corresponding + /// multimodal `data-schema`. + multimodal(list>), + } + + variant element-schema { + component-model(wit-type), + unstructured-text(text-descriptor), + unstructured-binary(binary-descriptor), + } + + variant element-value { + component-model(wit-value), + unstructured-text(text-reference), + unstructured-binary(binary-reference), + } + + record text-type { + language-code: string, + } + + variant text-reference { + url(string), + inline(text-source), + } + + record text-source { + data: string, + text-type: option, + } + + record text-descriptor { + restrictions: option>, + } + + record binary-descriptor { + restrictions: option>, + } + + record binary-type { + mime-type: string, + } + + variant binary-reference { + url(url), + inline(binary-source), + } + + record binary-source { + data: list, + binary-type: binary-type, + } + + variant agent-error { + invalid-input(string), + invalid-method(string), + invalid-type(string), + invalid-agent-id(string), + custom-error(data-value), + } +} diff --git a/template-golem-agent-ts/wit/deps/golem-agent/guest.wit b/template-golem-agent-ts/wit/deps/golem-agent/guest.wit new file mode 100644 index 000000000..e71b8c8e7 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-agent/guest.wit @@ -0,0 +1,27 @@ +package golem:agent; + +interface guest { + use common.{agent-error, agent-type, data-value}; + + resource agent { + create: static func(agent-type: string, input: data-value) -> result; + + get-id: func() -> string; + + invoke: func(method-name: string, input: data-value) -> result; + + get-definition: func() -> agent-type; + } + + get-agent: func(agent-type: string, agent-id: string) -> agent; + + discover-agents: func() -> list; + + discover-agent-types: func() -> list; +} + +world agent-guest { + import golem:api/host@1.1.7; + import golem:rpc/types@0.2.2; + export guest; +} diff --git a/template-golem-agent-ts/wit/deps/golem-durability/golem-durability-1.2.wit b/template-golem-agent-ts/wit/deps/golem-durability/golem-durability-1.2.wit new file mode 100644 index 000000000..b4f661d9f --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-durability/golem-durability-1.2.wit @@ -0,0 +1,98 @@ +package golem:durability@1.2.1; + +interface durability { + use golem:api/host@1.1.7.{persistence-level}; + use golem:api/oplog@1.1.7.{oplog-index, wrapped-function-type}; + use wasi:clocks/wall-clock@0.2.3.{datetime}; + use wasi:io/poll@0.2.3.{pollable}; + use golem:rpc/types@0.2.2.{value-and-type}; + + type durable-function-type = wrapped-function-type; + + record durable-execution-state { + is-live: bool, + persistence-level: persistence-level, + } + + enum oplog-entry-version { + v1, + v2 + } + + record persisted-durable-function-invocation { + timestamp: datetime, + function-name: string, + response: list, + function-type: durable-function-type, + entry-version: oplog-entry-version + } + + record persisted-typed-durable-function-invocation { + timestamp: datetime, + function-name: string, + response: value-and-type, + function-type: durable-function-type, + entry-version: oplog-entry-version + } + + /// Observes a function call (produces logs and metrics) + observe-function-call: func(iface: string, function: string); + + /// Marks the beginning of a durable function. + /// + /// There must be a corresponding call to `end-durable-function` after the function has + /// performed its work (it can be ended in a different context, for example after an async + /// pollable operation has been completed) + begin-durable-function: func(function-type: durable-function-type) -> oplog-index; + + /// Marks the end of a durable function + /// + /// This is a pair of `begin-durable-function` and should be called after the durable function + /// has performed and persisted or replayed its work. The `begin-index` should be the index + /// returned by `begin-durable-function`. + /// + /// Normally commit behavior is decided by the executor based on the `function-type`. However, in special + /// cases the `forced-commit` parameter can be used to force commit the oplog in an efficient way. + end-durable-function: func(function-type: durable-function-type, begin-index: oplog-index, forced-commit: bool); + + /// Gets the current durable execution state + current-durable-execution-state: func() -> durable-execution-state; + + /// Writes a record to the worker's oplog representing a durable function invocation + persist-durable-function-invocation: func( + function-name: string, + request: list, + response: list, + function-type: durable-function-type, + ); + + /// Writes a record to the worker's oplog representing a durable function invocation + /// + /// The request and response are defined as pairs of value and type, which makes it + /// self-describing for observers of oplogs. This is the recommended way to persist + /// third-party function invocations. + persist-typed-durable-function-invocation: func( + function-name: string, + request: value-and-type, + response: value-and-type, + function-type: durable-function-type, + ); + + /// Reads the next persisted durable function invocation from the oplog during replay + read-persisted-durable-function-invocation: func() -> persisted-durable-function-invocation; + + /// Reads the next persisted durable function invocation from the oplog during replay, assuming it + /// was created with `persist-typed-durable-function-invocation` + read-persisted-typed-durable-function-invocation: func() -> persisted-typed-durable-function-invocation; + + resource lazy-initialized-pollable { + /// Creates a `pollable` that is never ready until it gets attached to a real `pollable` implementation + /// using `set-lazy-initialized-pollable`. + constructor(); + + /// Sets the underlying `pollable` for a pollable created with `create-lazy-initialized-pollable`. + set: func(pollable: pollable); + + subscribe: func() -> pollable; + } +} diff --git a/template-golem-agent-ts/wit/deps/golem-rpc/wasm-rpc.wit b/template-golem-agent-ts/wit/deps/golem-rpc/wasm-rpc.wit new file mode 100644 index 000000000..c4ed84cc3 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/golem-rpc/wasm-rpc.wit @@ -0,0 +1,148 @@ +package golem:rpc@0.2.2; + +interface types { + use wasi:clocks/wall-clock@0.2.3.{datetime}; + use wasi:io/poll@0.2.3.{pollable}; + + /// Represents a Golem worker + record worker-id { + component-id: component-id, + worker-name: string + } + + /// Represents a Golem component + record component-id { + uuid: uuid, + } + + /// UUID + record uuid { + high-bits: u64, + low-bits: u64 + } + + /// Parses a UUID from a string + parse-uuid: func(uuid: string) -> result; + + /// Converts a UUID to a string + uuid-to-string: func(uuid: uuid) -> string; + + type node-index = s32; + + record wit-value { + nodes: list, + } + + variant wit-node { + record-value(list), + variant-value(tuple>), + enum-value(u32), + flags-value(list), + tuple-value(list), + list-value(list), + option-value(option), + result-value(result, option>), + prim-u8(u8), + prim-u16(u16), + prim-u32(u32), + prim-u64(u64), + prim-s8(s8), + prim-s16(s16), + prim-s32(s32), + prim-s64(s64), + prim-float32(f32), + prim-float64(f64), + prim-char(char), + prim-bool(bool), + prim-string(string), + handle(tuple) + } + + record wit-type { + nodes: list, + } + + type resource-id = u64; + + enum resource-mode { + owned, + borrowed + } + + record named-wit-type-node { + name: option, + %type: wit-type-node + } + + variant wit-type-node { + record-type(list>), + variant-type(list>>), + enum-type(list), + flags-type(list), + tuple-type(list), + list-type(node-index), + option-type(node-index), + result-type(tuple, option>), + prim-u8-type, + prim-u16-type, + prim-u32-type, + prim-u64-type, + prim-s8-type, + prim-s16-type, + prim-s32-type, + prim-s64-type, + prim-f32-type, + prim-f64-type, + prim-char-type, + prim-bool-type, + prim-string-type, + handle-type(tuple) + } + + record value-and-type { + value: wit-value, + typ: wit-type + } + + record uri { + value: string, + } + + variant rpc-error { + protocol-error(string), + denied(string), + not-found(string), + remote-internal-error(string) + } + + resource wasm-rpc { + constructor(worker-id: worker-id); + ephemeral: static func(component-id: component-id) -> wasm-rpc; + + invoke-and-await: func(function-name: string, function-params: list) -> result; + invoke: func(function-name: string, function-params: list) -> result<_, rpc-error>; + + async-invoke-and-await: func(function-name: string, function-params: list) -> future-invoke-result; + + /// Schedule invocation for later + schedule-invocation: func(scheduled-time: datetime, function-name: string, function-params: list); + /// Schedule invocation for later. Call cancel on the returned resource to cancel the invocation before the scheduled time. + schedule-cancelable-invocation: func(scheduled-time: datetime, function-name: string, function-params: list) -> cancellation-token; + } + + resource future-invoke-result { + subscribe: func() -> pollable; + get: func() -> option>; + } + + resource cancellation-token { + cancel: func(); + } + + extract-value: func(vnt: value-and-type) -> wit-value; + extract-type: func(vnt: value-and-type) -> wit-type; +} + +world wit-value { + import types; +} diff --git a/template-golem-agent-ts/wit/deps/http/handler.wit b/template-golem-agent-ts/wit/deps/http/handler.wit new file mode 100644 index 000000000..6a6c62966 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/http/handler.wit @@ -0,0 +1,49 @@ +/// This interface defines a handler of incoming HTTP Requests. It should +/// be exported by components which can respond to HTTP Requests. +@since(version = 0.2.0) +interface incoming-handler { + @since(version = 0.2.0) + use types.{incoming-request, response-outparam}; + + /// This function is invoked with an incoming HTTP Request, and a resource + /// `response-outparam` which provides the capability to reply with an HTTP + /// Response. The response is sent by calling the `response-outparam.set` + /// method, which allows execution to continue after the response has been + /// sent. This enables both streaming to the response body, and performing other + /// work. + /// + /// The implementor of this function must write a response to the + /// `response-outparam` before returning, or else the caller will respond + /// with an error on its behalf. + @since(version = 0.2.0) + handle: func( + request: incoming-request, + response-out: response-outparam + ); +} + +/// This interface defines a handler of outgoing HTTP Requests. It should be +/// imported by components which wish to make HTTP Requests. +@since(version = 0.2.0) +interface outgoing-handler { + @since(version = 0.2.0) + use types.{ + outgoing-request, request-options, future-incoming-response, error-code + }; + + /// This function is invoked with an outgoing HTTP Request, and it returns + /// a resource `future-incoming-response` which represents an HTTP Response + /// which may arrive in the future. + /// + /// The `options` argument accepts optional parameters for the HTTP + /// protocol's transport layer. + /// + /// This function may return an error if the `outgoing-request` is invalid + /// or not allowed to be made. Otherwise, protocol errors are reported + /// through the `future-incoming-response`. + @since(version = 0.2.0) + handle: func( + request: outgoing-request, + options: option + ) -> result; +} diff --git a/template-golem-agent-ts/wit/deps/http/proxy.wit b/template-golem-agent-ts/wit/deps/http/proxy.wit new file mode 100644 index 000000000..de3bbe8ae --- /dev/null +++ b/template-golem-agent-ts/wit/deps/http/proxy.wit @@ -0,0 +1,50 @@ +package wasi:http@0.2.3; + +/// The `wasi:http/imports` world imports all the APIs for HTTP proxies. +/// It is intended to be `include`d in other worlds. +@since(version = 0.2.0) +world imports { + /// HTTP proxies have access to time and randomness. + @since(version = 0.2.0) + import wasi:clocks/monotonic-clock@0.2.3; + @since(version = 0.2.0) + import wasi:clocks/wall-clock@0.2.3; + @since(version = 0.2.0) + import wasi:random/random@0.2.3; + + /// Proxies have standard output and error streams which are expected to + /// terminate in a developer-facing console provided by the host. + @since(version = 0.2.0) + import wasi:cli/stdout@0.2.3; + @since(version = 0.2.0) + import wasi:cli/stderr@0.2.3; + + /// TODO: this is a temporary workaround until component tooling is able to + /// gracefully handle the absence of stdin. Hosts must return an eof stream + /// for this import, which is what wasi-libc + tooling will do automatically + /// when this import is properly removed. + @since(version = 0.2.0) + import wasi:cli/stdin@0.2.3; + + /// This is the default handler to use when user code simply wants to make an + /// HTTP request (e.g., via `fetch()`). + @since(version = 0.2.0) + import outgoing-handler; +} + +/// The `wasi:http/proxy` world captures a widely-implementable intersection of +/// hosts that includes HTTP forward and reverse proxies. Components targeting +/// this world may concurrently stream in and out any number of incoming and +/// outgoing HTTP requests. +@since(version = 0.2.0) +world proxy { + @since(version = 0.2.0) + include imports; + + /// The host delivers incoming HTTP requests to a component by calling the + /// `handle` function of this exported interface. A host may arbitrarily reuse + /// or not reuse component instance when delivering incoming HTTP requests and + /// thus a component must be able to handle 0..N calls to `handle`. + @since(version = 0.2.0) + export incoming-handler; +} diff --git a/template-golem-agent-ts/wit/deps/http/types.wit b/template-golem-agent-ts/wit/deps/http/types.wit new file mode 100644 index 000000000..2498f180a --- /dev/null +++ b/template-golem-agent-ts/wit/deps/http/types.wit @@ -0,0 +1,673 @@ +/// This interface defines all of the types and methods for implementing +/// HTTP Requests and Responses, both incoming and outgoing, as well as +/// their headers, trailers, and bodies. +@since(version = 0.2.0) +interface types { + @since(version = 0.2.0) + use wasi:clocks/monotonic-clock@0.2.3.{duration}; + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{input-stream, output-stream}; + @since(version = 0.2.0) + use wasi:io/error@0.2.3.{error as io-error}; + @since(version = 0.2.0) + use wasi:io/poll@0.2.3.{pollable}; + + /// This type corresponds to HTTP standard Methods. + @since(version = 0.2.0) + variant method { + get, + head, + post, + put, + delete, + connect, + options, + trace, + patch, + other(string) + } + + /// This type corresponds to HTTP standard Related Schemes. + @since(version = 0.2.0) + variant scheme { + HTTP, + HTTPS, + other(string) + } + + /// These cases are inspired by the IANA HTTP Proxy Error Types: + /// + @since(version = 0.2.0) + variant error-code { + DNS-timeout, + DNS-error(DNS-error-payload), + destination-not-found, + destination-unavailable, + destination-IP-prohibited, + destination-IP-unroutable, + connection-refused, + connection-terminated, + connection-timeout, + connection-read-timeout, + connection-write-timeout, + connection-limit-reached, + TLS-protocol-error, + TLS-certificate-error, + TLS-alert-received(TLS-alert-received-payload), + HTTP-request-denied, + HTTP-request-length-required, + HTTP-request-body-size(option), + HTTP-request-method-invalid, + HTTP-request-URI-invalid, + HTTP-request-URI-too-long, + HTTP-request-header-section-size(option), + HTTP-request-header-size(option), + HTTP-request-trailer-section-size(option), + HTTP-request-trailer-size(field-size-payload), + HTTP-response-incomplete, + HTTP-response-header-section-size(option), + HTTP-response-header-size(field-size-payload), + HTTP-response-body-size(option), + HTTP-response-trailer-section-size(option), + HTTP-response-trailer-size(field-size-payload), + HTTP-response-transfer-coding(option), + HTTP-response-content-coding(option), + HTTP-response-timeout, + HTTP-upgrade-failed, + HTTP-protocol-error, + loop-detected, + configuration-error, + /// This is a catch-all error for anything that doesn't fit cleanly into a + /// more specific case. It also includes an optional string for an + /// unstructured description of the error. Users should not depend on the + /// string for diagnosing errors, as it's not required to be consistent + /// between implementations. + internal-error(option) + } + + /// Defines the case payload type for `DNS-error` above: + @since(version = 0.2.0) + record DNS-error-payload { + rcode: option, + info-code: option + } + + /// Defines the case payload type for `TLS-alert-received` above: + @since(version = 0.2.0) + record TLS-alert-received-payload { + alert-id: option, + alert-message: option + } + + /// Defines the case payload type for `HTTP-response-{header,trailer}-size` above: + @since(version = 0.2.0) + record field-size-payload { + field-name: option, + field-size: option + } + + /// Attempts to extract a http-related `error` from the wasi:io `error` + /// provided. + /// + /// Stream operations which return + /// `wasi:io/stream/stream-error::last-operation-failed` have a payload of + /// type `wasi:io/error/error` with more information about the operation + /// that failed. This payload can be passed through to this function to see + /// if there's http-related information about the error to return. + /// + /// Note that this function is fallible because not all io-errors are + /// http-related errors. + @since(version = 0.2.0) + http-error-code: func(err: borrow) -> option; + + /// This type enumerates the different kinds of errors that may occur when + /// setting or appending to a `fields` resource. + @since(version = 0.2.0) + variant header-error { + /// This error indicates that a `field-name` or `field-value` was + /// syntactically invalid when used with an operation that sets headers in a + /// `fields`. + invalid-syntax, + + /// This error indicates that a forbidden `field-name` was used when trying + /// to set a header in a `fields`. + forbidden, + + /// This error indicates that the operation on the `fields` was not + /// permitted because the fields are immutable. + immutable, + } + + /// Field names are always strings. + /// + /// Field names should always be treated as case insensitive by the `fields` + /// resource for the purposes of equality checking. + @since(version = 0.2.1) + type field-name = field-key; + + /// Field keys are always strings. + /// + /// Field keys should always be treated as case insensitive by the `fields` + /// resource for the purposes of equality checking. + /// + /// # Deprecation + /// + /// This type has been deprecated in favor of the `field-name` type. + @since(version = 0.2.0) + @deprecated(version = 0.2.2) + type field-key = string; + + /// Field values should always be ASCII strings. However, in + /// reality, HTTP implementations often have to interpret malformed values, + /// so they are provided as a list of bytes. + @since(version = 0.2.0) + type field-value = list; + + /// This following block defines the `fields` resource which corresponds to + /// HTTP standard Fields. Fields are a common representation used for both + /// Headers and Trailers. + /// + /// A `fields` may be mutable or immutable. A `fields` created using the + /// constructor, `from-list`, or `clone` will be mutable, but a `fields` + /// resource given by other means (including, but not limited to, + /// `incoming-request.headers`, `outgoing-request.headers`) might be be + /// immutable. In an immutable fields, the `set`, `append`, and `delete` + /// operations will fail with `header-error.immutable`. + @since(version = 0.2.0) + resource fields { + + /// Construct an empty HTTP Fields. + /// + /// The resulting `fields` is mutable. + @since(version = 0.2.0) + constructor(); + + /// Construct an HTTP Fields. + /// + /// The resulting `fields` is mutable. + /// + /// The list represents each name-value pair in the Fields. Names + /// which have multiple values are represented by multiple entries in this + /// list with the same name. + /// + /// The tuple is a pair of the field name, represented as a string, and + /// Value, represented as a list of bytes. + /// + /// An error result will be returned if any `field-name` or `field-value` is + /// syntactically invalid, or if a field is forbidden. + @since(version = 0.2.0) + from-list: static func( + entries: list> + ) -> result; + + /// Get all of the values corresponding to a name. If the name is not present + /// in this `fields` or is syntactically invalid, an empty list is returned. + /// However, if the name is present but empty, this is represented by a list + /// with one or more empty field-values present. + @since(version = 0.2.0) + get: func(name: field-name) -> list; + + /// Returns `true` when the name is present in this `fields`. If the name is + /// syntactically invalid, `false` is returned. + @since(version = 0.2.0) + has: func(name: field-name) -> bool; + + /// Set all of the values for a name. Clears any existing values for that + /// name, if they have been set. + /// + /// Fails with `header-error.immutable` if the `fields` are immutable. + /// + /// Fails with `header-error.invalid-syntax` if the `field-name` or any of + /// the `field-value`s are syntactically invalid. + @since(version = 0.2.0) + set: func(name: field-name, value: list) -> result<_, header-error>; + + /// Delete all values for a name. Does nothing if no values for the name + /// exist. + /// + /// Fails with `header-error.immutable` if the `fields` are immutable. + /// + /// Fails with `header-error.invalid-syntax` if the `field-name` is + /// syntactically invalid. + @since(version = 0.2.0) + delete: func(name: field-name) -> result<_, header-error>; + + /// Append a value for a name. Does not change or delete any existing + /// values for that name. + /// + /// Fails with `header-error.immutable` if the `fields` are immutable. + /// + /// Fails with `header-error.invalid-syntax` if the `field-name` or + /// `field-value` are syntactically invalid. + @since(version = 0.2.0) + append: func(name: field-name, value: field-value) -> result<_, header-error>; + + /// Retrieve the full set of names and values in the Fields. Like the + /// constructor, the list represents each name-value pair. + /// + /// The outer list represents each name-value pair in the Fields. Names + /// which have multiple values are represented by multiple entries in this + /// list with the same name. + /// + /// The names and values are always returned in the original casing and in + /// the order in which they will be serialized for transport. + @since(version = 0.2.0) + entries: func() -> list>; + + /// Make a deep copy of the Fields. Equivalent in behavior to calling the + /// `fields` constructor on the return value of `entries`. The resulting + /// `fields` is mutable. + @since(version = 0.2.0) + clone: func() -> fields; + } + + /// Headers is an alias for Fields. + @since(version = 0.2.0) + type headers = fields; + + /// Trailers is an alias for Fields. + @since(version = 0.2.0) + type trailers = fields; + + /// Represents an incoming HTTP Request. + @since(version = 0.2.0) + resource incoming-request { + + /// Returns the method of the incoming request. + @since(version = 0.2.0) + method: func() -> method; + + /// Returns the path with query parameters from the request, as a string. + @since(version = 0.2.0) + path-with-query: func() -> option; + + /// Returns the protocol scheme from the request. + @since(version = 0.2.0) + scheme: func() -> option; + + /// Returns the authority of the Request's target URI, if present. + @since(version = 0.2.0) + authority: func() -> option; + + /// Get the `headers` associated with the request. + /// + /// The returned `headers` resource is immutable: `set`, `append`, and + /// `delete` operations will fail with `header-error.immutable`. + /// + /// The `headers` returned are a child resource: it must be dropped before + /// the parent `incoming-request` is dropped. Dropping this + /// `incoming-request` before all children are dropped will trap. + @since(version = 0.2.0) + headers: func() -> headers; + + /// Gives the `incoming-body` associated with this request. Will only + /// return success at most once, and subsequent calls will return error. + @since(version = 0.2.0) + consume: func() -> result; + } + + /// Represents an outgoing HTTP Request. + @since(version = 0.2.0) + resource outgoing-request { + + /// Construct a new `outgoing-request` with a default `method` of `GET`, and + /// `none` values for `path-with-query`, `scheme`, and `authority`. + /// + /// * `headers` is the HTTP Headers for the Request. + /// + /// It is possible to construct, or manipulate with the accessor functions + /// below, an `outgoing-request` with an invalid combination of `scheme` + /// and `authority`, or `headers` which are not permitted to be sent. + /// It is the obligation of the `outgoing-handler.handle` implementation + /// to reject invalid constructions of `outgoing-request`. + @since(version = 0.2.0) + constructor( + headers: headers + ); + + /// Returns the resource corresponding to the outgoing Body for this + /// Request. + /// + /// Returns success on the first call: the `outgoing-body` resource for + /// this `outgoing-request` can be retrieved at most once. Subsequent + /// calls will return error. + @since(version = 0.2.0) + body: func() -> result; + + /// Get the Method for the Request. + @since(version = 0.2.0) + method: func() -> method; + /// Set the Method for the Request. Fails if the string present in a + /// `method.other` argument is not a syntactically valid method. + @since(version = 0.2.0) + set-method: func(method: method) -> result; + + /// Get the combination of the HTTP Path and Query for the Request. + /// When `none`, this represents an empty Path and empty Query. + @since(version = 0.2.0) + path-with-query: func() -> option; + /// Set the combination of the HTTP Path and Query for the Request. + /// When `none`, this represents an empty Path and empty Query. Fails is the + /// string given is not a syntactically valid path and query uri component. + @since(version = 0.2.0) + set-path-with-query: func(path-with-query: option) -> result; + + /// Get the HTTP Related Scheme for the Request. When `none`, the + /// implementation may choose an appropriate default scheme. + @since(version = 0.2.0) + scheme: func() -> option; + /// Set the HTTP Related Scheme for the Request. When `none`, the + /// implementation may choose an appropriate default scheme. Fails if the + /// string given is not a syntactically valid uri scheme. + @since(version = 0.2.0) + set-scheme: func(scheme: option) -> result; + + /// Get the authority of the Request's target URI. A value of `none` may be used + /// with Related Schemes which do not require an authority. The HTTP and + /// HTTPS schemes always require an authority. + @since(version = 0.2.0) + authority: func() -> option; + /// Set the authority of the Request's target URI. A value of `none` may be used + /// with Related Schemes which do not require an authority. The HTTP and + /// HTTPS schemes always require an authority. Fails if the string given is + /// not a syntactically valid URI authority. + @since(version = 0.2.0) + set-authority: func(authority: option) -> result; + + /// Get the headers associated with the Request. + /// + /// The returned `headers` resource is immutable: `set`, `append`, and + /// `delete` operations will fail with `header-error.immutable`. + /// + /// This headers resource is a child: it must be dropped before the parent + /// `outgoing-request` is dropped, or its ownership is transferred to + /// another component by e.g. `outgoing-handler.handle`. + @since(version = 0.2.0) + headers: func() -> headers; + } + + /// Parameters for making an HTTP Request. Each of these parameters is + /// currently an optional timeout applicable to the transport layer of the + /// HTTP protocol. + /// + /// These timeouts are separate from any the user may use to bound a + /// blocking call to `wasi:io/poll.poll`. + @since(version = 0.2.0) + resource request-options { + /// Construct a default `request-options` value. + @since(version = 0.2.0) + constructor(); + + /// The timeout for the initial connect to the HTTP Server. + @since(version = 0.2.0) + connect-timeout: func() -> option; + + /// Set the timeout for the initial connect to the HTTP Server. An error + /// return value indicates that this timeout is not supported. + @since(version = 0.2.0) + set-connect-timeout: func(duration: option) -> result; + + /// The timeout for receiving the first byte of the Response body. + @since(version = 0.2.0) + first-byte-timeout: func() -> option; + + /// Set the timeout for receiving the first byte of the Response body. An + /// error return value indicates that this timeout is not supported. + @since(version = 0.2.0) + set-first-byte-timeout: func(duration: option) -> result; + + /// The timeout for receiving subsequent chunks of bytes in the Response + /// body stream. + @since(version = 0.2.0) + between-bytes-timeout: func() -> option; + + /// Set the timeout for receiving subsequent chunks of bytes in the Response + /// body stream. An error return value indicates that this timeout is not + /// supported. + @since(version = 0.2.0) + set-between-bytes-timeout: func(duration: option) -> result; + } + + /// Represents the ability to send an HTTP Response. + /// + /// This resource is used by the `wasi:http/incoming-handler` interface to + /// allow a Response to be sent corresponding to the Request provided as the + /// other argument to `incoming-handler.handle`. + @since(version = 0.2.0) + resource response-outparam { + + /// Set the value of the `response-outparam` to either send a response, + /// or indicate an error. + /// + /// This method consumes the `response-outparam` to ensure that it is + /// called at most once. If it is never called, the implementation + /// will respond with an error. + /// + /// The user may provide an `error` to `response` to allow the + /// implementation determine how to respond with an HTTP error response. + @since(version = 0.2.0) + set: static func( + param: response-outparam, + response: result, + ); + } + + /// This type corresponds to the HTTP standard Status Code. + @since(version = 0.2.0) + type status-code = u16; + + /// Represents an incoming HTTP Response. + @since(version = 0.2.0) + resource incoming-response { + + /// Returns the status code from the incoming response. + @since(version = 0.2.0) + status: func() -> status-code; + + /// Returns the headers from the incoming response. + /// + /// The returned `headers` resource is immutable: `set`, `append`, and + /// `delete` operations will fail with `header-error.immutable`. + /// + /// This headers resource is a child: it must be dropped before the parent + /// `incoming-response` is dropped. + @since(version = 0.2.0) + headers: func() -> headers; + + /// Returns the incoming body. May be called at most once. Returns error + /// if called additional times. + @since(version = 0.2.0) + consume: func() -> result; + } + + /// Represents an incoming HTTP Request or Response's Body. + /// + /// A body has both its contents - a stream of bytes - and a (possibly + /// empty) set of trailers, indicating that the full contents of the + /// body have been received. This resource represents the contents as + /// an `input-stream` and the delivery of trailers as a `future-trailers`, + /// and ensures that the user of this interface may only be consuming either + /// the body contents or waiting on trailers at any given time. + @since(version = 0.2.0) + resource incoming-body { + + /// Returns the contents of the body, as a stream of bytes. + /// + /// Returns success on first call: the stream representing the contents + /// can be retrieved at most once. Subsequent calls will return error. + /// + /// The returned `input-stream` resource is a child: it must be dropped + /// before the parent `incoming-body` is dropped, or consumed by + /// `incoming-body.finish`. + /// + /// This invariant ensures that the implementation can determine whether + /// the user is consuming the contents of the body, waiting on the + /// `future-trailers` to be ready, or neither. This allows for network + /// backpressure is to be applied when the user is consuming the body, + /// and for that backpressure to not inhibit delivery of the trailers if + /// the user does not read the entire body. + @since(version = 0.2.0) + %stream: func() -> result; + + /// Takes ownership of `incoming-body`, and returns a `future-trailers`. + /// This function will trap if the `input-stream` child is still alive. + @since(version = 0.2.0) + finish: static func(this: incoming-body) -> future-trailers; + } + + /// Represents a future which may eventually return trailers, or an error. + /// + /// In the case that the incoming HTTP Request or Response did not have any + /// trailers, this future will resolve to the empty set of trailers once the + /// complete Request or Response body has been received. + @since(version = 0.2.0) + resource future-trailers { + + /// Returns a pollable which becomes ready when either the trailers have + /// been received, or an error has occurred. When this pollable is ready, + /// the `get` method will return `some`. + @since(version = 0.2.0) + subscribe: func() -> pollable; + + /// Returns the contents of the trailers, or an error which occurred, + /// once the future is ready. + /// + /// The outer `option` represents future readiness. Users can wait on this + /// `option` to become `some` using the `subscribe` method. + /// + /// The outer `result` is used to retrieve the trailers or error at most + /// once. It will be success on the first call in which the outer option + /// is `some`, and error on subsequent calls. + /// + /// The inner `result` represents that either the HTTP Request or Response + /// body, as well as any trailers, were received successfully, or that an + /// error occurred receiving them. The optional `trailers` indicates whether + /// or not trailers were present in the body. + /// + /// When some `trailers` are returned by this method, the `trailers` + /// resource is immutable, and a child. Use of the `set`, `append`, or + /// `delete` methods will return an error, and the resource must be + /// dropped before the parent `future-trailers` is dropped. + @since(version = 0.2.0) + get: func() -> option, error-code>>>; + } + + /// Represents an outgoing HTTP Response. + @since(version = 0.2.0) + resource outgoing-response { + + /// Construct an `outgoing-response`, with a default `status-code` of `200`. + /// If a different `status-code` is needed, it must be set via the + /// `set-status-code` method. + /// + /// * `headers` is the HTTP Headers for the Response. + @since(version = 0.2.0) + constructor(headers: headers); + + /// Get the HTTP Status Code for the Response. + @since(version = 0.2.0) + status-code: func() -> status-code; + + /// Set the HTTP Status Code for the Response. Fails if the status-code + /// given is not a valid http status code. + @since(version = 0.2.0) + set-status-code: func(status-code: status-code) -> result; + + /// Get the headers associated with the Request. + /// + /// The returned `headers` resource is immutable: `set`, `append`, and + /// `delete` operations will fail with `header-error.immutable`. + /// + /// This headers resource is a child: it must be dropped before the parent + /// `outgoing-request` is dropped, or its ownership is transferred to + /// another component by e.g. `outgoing-handler.handle`. + @since(version = 0.2.0) + headers: func() -> headers; + + /// Returns the resource corresponding to the outgoing Body for this Response. + /// + /// Returns success on the first call: the `outgoing-body` resource for + /// this `outgoing-response` can be retrieved at most once. Subsequent + /// calls will return error. + @since(version = 0.2.0) + body: func() -> result; + } + + /// Represents an outgoing HTTP Request or Response's Body. + /// + /// A body has both its contents - a stream of bytes - and a (possibly + /// empty) set of trailers, inducating the full contents of the body + /// have been sent. This resource represents the contents as an + /// `output-stream` child resource, and the completion of the body (with + /// optional trailers) with a static function that consumes the + /// `outgoing-body` resource, and ensures that the user of this interface + /// may not write to the body contents after the body has been finished. + /// + /// If the user code drops this resource, as opposed to calling the static + /// method `finish`, the implementation should treat the body as incomplete, + /// and that an error has occurred. The implementation should propagate this + /// error to the HTTP protocol by whatever means it has available, + /// including: corrupting the body on the wire, aborting the associated + /// Request, or sending a late status code for the Response. + @since(version = 0.2.0) + resource outgoing-body { + + /// Returns a stream for writing the body contents. + /// + /// The returned `output-stream` is a child resource: it must be dropped + /// before the parent `outgoing-body` resource is dropped (or finished), + /// otherwise the `outgoing-body` drop or `finish` will trap. + /// + /// Returns success on the first call: the `output-stream` resource for + /// this `outgoing-body` may be retrieved at most once. Subsequent calls + /// will return error. + @since(version = 0.2.0) + write: func() -> result; + + /// Finalize an outgoing body, optionally providing trailers. This must be + /// called to signal that the response is complete. If the `outgoing-body` + /// is dropped without calling `outgoing-body.finalize`, the implementation + /// should treat the body as corrupted. + /// + /// Fails if the body's `outgoing-request` or `outgoing-response` was + /// constructed with a Content-Length header, and the contents written + /// to the body (via `write`) does not match the value given in the + /// Content-Length. + @since(version = 0.2.0) + finish: static func( + this: outgoing-body, + trailers: option + ) -> result<_, error-code>; + } + + /// Represents a future which may eventually return an incoming HTTP + /// Response, or an error. + /// + /// This resource is returned by the `wasi:http/outgoing-handler` interface to + /// provide the HTTP Response corresponding to the sent Request. + @since(version = 0.2.0) + resource future-incoming-response { + /// Returns a pollable which becomes ready when either the Response has + /// been received, or an error has occurred. When this pollable is ready, + /// the `get` method will return `some`. + @since(version = 0.2.0) + subscribe: func() -> pollable; + + /// Returns the incoming HTTP Response, or an error, once one is ready. + /// + /// The outer `option` represents future readiness. Users can wait on this + /// `option` to become `some` using the `subscribe` method. + /// + /// The outer `result` is used to retrieve the response or error at most + /// once. It will be success on the first call in which the outer option + /// is `some`, and error on subsequent calls. + /// + /// The inner `result` represents that either the incoming HTTP Response + /// status and headers have received successfully, or that an error + /// occurred. Errors may also occur while consuming the response body, + /// but those will be reported by the `incoming-body` and its + /// `output-stream` child. + @since(version = 0.2.0) + get: func() -> option>>; + } +} diff --git a/template-golem-agent-ts/wit/deps/io/error.wit b/template-golem-agent-ts/wit/deps/io/error.wit new file mode 100644 index 000000000..97c606877 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/io/error.wit @@ -0,0 +1,34 @@ +package wasi:io@0.2.3; + +@since(version = 0.2.0) +interface error { + /// A resource which represents some error information. + /// + /// The only method provided by this resource is `to-debug-string`, + /// which provides some human-readable information about the error. + /// + /// In the `wasi:io` package, this resource is returned through the + /// `wasi:io/streams/stream-error` type. + /// + /// To provide more specific error information, other interfaces may + /// offer functions to "downcast" this error into more specific types. For example, + /// errors returned from streams derived from filesystem types can be described using + /// the filesystem's own error-code type. This is done using the function + /// `wasi:filesystem/types/filesystem-error-code`, which takes a `borrow` + /// parameter and returns an `option`. + /// + /// The set of functions which can "downcast" an `error` into a more + /// concrete type is open. + @since(version = 0.2.0) + resource error { + /// Returns a string that is suitable to assist humans in debugging + /// this error. + /// + /// WARNING: The returned string should not be consumed mechanically! + /// It may change across platforms, hosts, or other implementation + /// details. Parsing this string is a major platform-compatibility + /// hazard. + @since(version = 0.2.0) + to-debug-string: func() -> string; + } +} diff --git a/template-golem-agent-ts/wit/deps/io/poll.wit b/template-golem-agent-ts/wit/deps/io/poll.wit new file mode 100644 index 000000000..9bcbe8e03 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/io/poll.wit @@ -0,0 +1,47 @@ +package wasi:io@0.2.3; + +/// A poll API intended to let users wait for I/O events on multiple handles +/// at once. +@since(version = 0.2.0) +interface poll { + /// `pollable` represents a single I/O event which may be ready, or not. + @since(version = 0.2.0) + resource pollable { + + /// Return the readiness of a pollable. This function never blocks. + /// + /// Returns `true` when the pollable is ready, and `false` otherwise. + @since(version = 0.2.0) + ready: func() -> bool; + + /// `block` returns immediately if the pollable is ready, and otherwise + /// blocks until ready. + /// + /// This function is equivalent to calling `poll.poll` on a list + /// containing only this pollable. + @since(version = 0.2.0) + block: func(); + } + + /// Poll for completion on a set of pollables. + /// + /// This function takes a list of pollables, which identify I/O sources of + /// interest, and waits until one or more of the events is ready for I/O. + /// + /// The result `list` contains one or more indices of handles in the + /// argument list that is ready for I/O. + /// + /// This function traps if either: + /// - the list is empty, or: + /// - the list contains more elements than can be indexed with a `u32` value. + /// + /// A timeout can be implemented by adding a pollable from the + /// wasi-clocks API to the list. + /// + /// This function does not return a `result`; polling in itself does not + /// do any I/O so it doesn't fail. If any of the I/O sources identified by + /// the pollables has an error, it is indicated by marking the source as + /// being ready for I/O. + @since(version = 0.2.0) + poll: func(in: list>) -> list; +} diff --git a/template-golem-agent-ts/wit/deps/io/streams.wit b/template-golem-agent-ts/wit/deps/io/streams.wit new file mode 100644 index 000000000..0de084629 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/io/streams.wit @@ -0,0 +1,290 @@ +package wasi:io@0.2.3; + +/// WASI I/O is an I/O abstraction API which is currently focused on providing +/// stream types. +/// +/// In the future, the component model is expected to add built-in stream types; +/// when it does, they are expected to subsume this API. +@since(version = 0.2.0) +interface streams { + @since(version = 0.2.0) + use error.{error}; + @since(version = 0.2.0) + use poll.{pollable}; + + /// An error for input-stream and output-stream operations. + @since(version = 0.2.0) + variant stream-error { + /// The last operation (a write or flush) failed before completion. + /// + /// More information is available in the `error` payload. + /// + /// After this, the stream will be closed. All future operations return + /// `stream-error::closed`. + last-operation-failed(error), + /// The stream is closed: no more input will be accepted by the + /// stream. A closed output-stream will return this error on all + /// future operations. + closed + } + + /// An input bytestream. + /// + /// `input-stream`s are *non-blocking* to the extent practical on underlying + /// platforms. I/O operations always return promptly; if fewer bytes are + /// promptly available than requested, they return the number of bytes promptly + /// available, which could even be zero. To wait for data to be available, + /// use the `subscribe` function to obtain a `pollable` which can be polled + /// for using `wasi:io/poll`. + @since(version = 0.2.0) + resource input-stream { + /// Perform a non-blocking read from the stream. + /// + /// When the source of a `read` is binary data, the bytes from the source + /// are returned verbatim. When the source of a `read` is known to the + /// implementation to be text, bytes containing the UTF-8 encoding of the + /// text are returned. + /// + /// This function returns a list of bytes containing the read data, + /// when successful. The returned list will contain up to `len` bytes; + /// it may return fewer than requested, but not more. The list is + /// empty when no bytes are available for reading at this time. The + /// pollable given by `subscribe` will be ready when more bytes are + /// available. + /// + /// This function fails with a `stream-error` when the operation + /// encounters an error, giving `last-operation-failed`, or when the + /// stream is closed, giving `closed`. + /// + /// When the caller gives a `len` of 0, it represents a request to + /// read 0 bytes. If the stream is still open, this call should + /// succeed and return an empty list, or otherwise fail with `closed`. + /// + /// The `len` parameter is a `u64`, which could represent a list of u8 which + /// is not possible to allocate in wasm32, or not desirable to allocate as + /// as a return value by the callee. The callee may return a list of bytes + /// less than `len` in size while more bytes are available for reading. + @since(version = 0.2.0) + read: func( + /// The maximum number of bytes to read + len: u64 + ) -> result, stream-error>; + + /// Read bytes from a stream, after blocking until at least one byte can + /// be read. Except for blocking, behavior is identical to `read`. + @since(version = 0.2.0) + blocking-read: func( + /// The maximum number of bytes to read + len: u64 + ) -> result, stream-error>; + + /// Skip bytes from a stream. Returns number of bytes skipped. + /// + /// Behaves identical to `read`, except instead of returning a list + /// of bytes, returns the number of bytes consumed from the stream. + @since(version = 0.2.0) + skip: func( + /// The maximum number of bytes to skip. + len: u64, + ) -> result; + + /// Skip bytes from a stream, after blocking until at least one byte + /// can be skipped. Except for blocking behavior, identical to `skip`. + @since(version = 0.2.0) + blocking-skip: func( + /// The maximum number of bytes to skip. + len: u64, + ) -> result; + + /// Create a `pollable` which will resolve once either the specified stream + /// has bytes available to read or the other end of the stream has been + /// closed. + /// The created `pollable` is a child resource of the `input-stream`. + /// Implementations may trap if the `input-stream` is dropped before + /// all derived `pollable`s created with this function are dropped. + @since(version = 0.2.0) + subscribe: func() -> pollable; + } + + + /// An output bytestream. + /// + /// `output-stream`s are *non-blocking* to the extent practical on + /// underlying platforms. Except where specified otherwise, I/O operations also + /// always return promptly, after the number of bytes that can be written + /// promptly, which could even be zero. To wait for the stream to be ready to + /// accept data, the `subscribe` function to obtain a `pollable` which can be + /// polled for using `wasi:io/poll`. + /// + /// Dropping an `output-stream` while there's still an active write in + /// progress may result in the data being lost. Before dropping the stream, + /// be sure to fully flush your writes. + @since(version = 0.2.0) + resource output-stream { + /// Check readiness for writing. This function never blocks. + /// + /// Returns the number of bytes permitted for the next call to `write`, + /// or an error. Calling `write` with more bytes than this function has + /// permitted will trap. + /// + /// When this function returns 0 bytes, the `subscribe` pollable will + /// become ready when this function will report at least 1 byte, or an + /// error. + @since(version = 0.2.0) + check-write: func() -> result; + + /// Perform a write. This function never blocks. + /// + /// When the destination of a `write` is binary data, the bytes from + /// `contents` are written verbatim. When the destination of a `write` is + /// known to the implementation to be text, the bytes of `contents` are + /// transcoded from UTF-8 into the encoding of the destination and then + /// written. + /// + /// Precondition: check-write gave permit of Ok(n) and contents has a + /// length of less than or equal to n. Otherwise, this function will trap. + /// + /// returns Err(closed) without writing if the stream has closed since + /// the last call to check-write provided a permit. + @since(version = 0.2.0) + write: func( + contents: list + ) -> result<_, stream-error>; + + /// Perform a write of up to 4096 bytes, and then flush the stream. Block + /// until all of these operations are complete, or an error occurs. + /// + /// This is a convenience wrapper around the use of `check-write`, + /// `subscribe`, `write`, and `flush`, and is implemented with the + /// following pseudo-code: + /// + /// ```text + /// let pollable = this.subscribe(); + /// while !contents.is_empty() { + /// // Wait for the stream to become writable + /// pollable.block(); + /// let Ok(n) = this.check-write(); // eliding error handling + /// let len = min(n, contents.len()); + /// let (chunk, rest) = contents.split_at(len); + /// this.write(chunk ); // eliding error handling + /// contents = rest; + /// } + /// this.flush(); + /// // Wait for completion of `flush` + /// pollable.block(); + /// // Check for any errors that arose during `flush` + /// let _ = this.check-write(); // eliding error handling + /// ``` + @since(version = 0.2.0) + blocking-write-and-flush: func( + contents: list + ) -> result<_, stream-error>; + + /// Request to flush buffered output. This function never blocks. + /// + /// This tells the output-stream that the caller intends any buffered + /// output to be flushed. the output which is expected to be flushed + /// is all that has been passed to `write` prior to this call. + /// + /// Upon calling this function, the `output-stream` will not accept any + /// writes (`check-write` will return `ok(0)`) until the flush has + /// completed. The `subscribe` pollable will become ready when the + /// flush has completed and the stream can accept more writes. + @since(version = 0.2.0) + flush: func() -> result<_, stream-error>; + + /// Request to flush buffered output, and block until flush completes + /// and stream is ready for writing again. + @since(version = 0.2.0) + blocking-flush: func() -> result<_, stream-error>; + + /// Create a `pollable` which will resolve once the output-stream + /// is ready for more writing, or an error has occurred. When this + /// pollable is ready, `check-write` will return `ok(n)` with n>0, or an + /// error. + /// + /// If the stream is closed, this pollable is always ready immediately. + /// + /// The created `pollable` is a child resource of the `output-stream`. + /// Implementations may trap if the `output-stream` is dropped before + /// all derived `pollable`s created with this function are dropped. + @since(version = 0.2.0) + subscribe: func() -> pollable; + + /// Write zeroes to a stream. + /// + /// This should be used precisely like `write` with the exact same + /// preconditions (must use check-write first), but instead of + /// passing a list of bytes, you simply pass the number of zero-bytes + /// that should be written. + @since(version = 0.2.0) + write-zeroes: func( + /// The number of zero-bytes to write + len: u64 + ) -> result<_, stream-error>; + + /// Perform a write of up to 4096 zeroes, and then flush the stream. + /// Block until all of these operations are complete, or an error + /// occurs. + /// + /// This is a convenience wrapper around the use of `check-write`, + /// `subscribe`, `write-zeroes`, and `flush`, and is implemented with + /// the following pseudo-code: + /// + /// ```text + /// let pollable = this.subscribe(); + /// while num_zeroes != 0 { + /// // Wait for the stream to become writable + /// pollable.block(); + /// let Ok(n) = this.check-write(); // eliding error handling + /// let len = min(n, num_zeroes); + /// this.write-zeroes(len); // eliding error handling + /// num_zeroes -= len; + /// } + /// this.flush(); + /// // Wait for completion of `flush` + /// pollable.block(); + /// // Check for any errors that arose during `flush` + /// let _ = this.check-write(); // eliding error handling + /// ``` + @since(version = 0.2.0) + blocking-write-zeroes-and-flush: func( + /// The number of zero-bytes to write + len: u64 + ) -> result<_, stream-error>; + + /// Read from one stream and write to another. + /// + /// The behavior of splice is equivalent to: + /// 1. calling `check-write` on the `output-stream` + /// 2. calling `read` on the `input-stream` with the smaller of the + /// `check-write` permitted length and the `len` provided to `splice` + /// 3. calling `write` on the `output-stream` with that read data. + /// + /// Any error reported by the call to `check-write`, `read`, or + /// `write` ends the splice and reports that error. + /// + /// This function returns the number of bytes transferred; it may be less + /// than `len`. + @since(version = 0.2.0) + splice: func( + /// The stream to read from + src: borrow, + /// The number of bytes to splice + len: u64, + ) -> result; + + /// Read from one stream and write to another, with blocking. + /// + /// This is similar to `splice`, except that it blocks until the + /// `output-stream` is ready for writing, and the `input-stream` + /// is ready for reading, before performing the `splice`. + @since(version = 0.2.0) + blocking-splice: func( + /// The stream to read from + src: borrow, + /// The number of bytes to splice + len: u64, + ) -> result; + } +} diff --git a/template-golem-agent-ts/wit/deps/io/world.wit b/template-golem-agent-ts/wit/deps/io/world.wit new file mode 100644 index 000000000..f1d2102dc --- /dev/null +++ b/template-golem-agent-ts/wit/deps/io/world.wit @@ -0,0 +1,10 @@ +package wasi:io@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + import streams; + + @since(version = 0.2.0) + import poll; +} diff --git a/template-golem-agent-ts/wit/deps/keyvalue/atomic.wit b/template-golem-agent-ts/wit/deps/keyvalue/atomic.wit new file mode 100644 index 000000000..1d32b7e32 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/atomic.wit @@ -0,0 +1,31 @@ +/// A keyvalue interface that provides atomic operations. +/// +/// Atomic operations are single, indivisible operations. When a fault causes +/// an atomic operation to fail, it will appear to the invoker of the atomic +/// operation that the action either completed successfully or did nothing +/// at all. +interface atomic { + /// A keyvalue interface that provides atomic operations. + use types.{bucket, error, key}; + + /// Atomically increment the value associated with the key in the bucket by the + /// given delta. It returns the new value. + /// + /// If the key does not exist in the bucket, it creates a new key-value pair + /// with the value set to the given delta. + /// + /// If any other error occurs, it returns an `Err(error)`. + increment: func(bucket: borrow, key: key, delta: u64) -> result; + + /// Compare-and-swap (CAS) atomically updates the value associated with the key + /// in the bucket if the value matches the old value. This operation returns + /// `Ok(true)` if the swap was successful, `Ok(false)` if the value did not match, + /// + /// A successful CAS operation means the current value matched the `old` value + /// and was replaced with the `new` value. + /// + /// If the key does not exist in the bucket, it returns `Ok(false)`. + /// + /// If any other error occurs, it returns an `Err(error)`. + compare-and-swap: func(bucket: borrow, key: key, old: u64, new: u64) -> result; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/keyvalue/caching.wit b/template-golem-agent-ts/wit/deps/keyvalue/caching.wit new file mode 100644 index 000000000..5880362a8 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/caching.wit @@ -0,0 +1,98 @@ +// The `wasi:keyvalue/cache` interface defines the operations of a single +// instance of a "cache", which is a non-durable, weakly-consistent key-value +// store. "Non-durable" means that caches are allowed and expected to +// arbitrarily discard key-value entries. "Weakly-consistent" means that there +// are essentially no guarantees that operations will agree on their results: a +// get following a set may not observe the set value; multiple gets may observe +// different previous set values; etc. The only guarantee is that values are +// not materialized "out of thin air": if a `get` returns a value, that value +// was passed to a `set` operation at some point in time in the past. +// Additionally, caches MUST make a best effort to respect the supplied +// Time-to-Live values (within the usual limitations around time in a +// distributed setting). +interface cache { + use wasi:io/poll@0.2.3.{pollable}; + use types.{key, incoming-value, outgoing-value, error}; + + // The `get` operation returns the value passed by a previous `set` for the + // same key within the given TTL or none if there is no such value. + get: func(k: key) -> future-get-result; + + // This block defines a special resource type used by `get` to emulate + // `future,error>>`. In the return value + // of the `get` method, the outer `option` returns `none` when the pollable + // is not yet ready and the inner `option` returns `none` when the + // requested key wasn't present. + resource future-get-result { + future-get-result-get: func() -> option, error>>; + listen-to-future-get-result: func() -> pollable; + } + + // The `exists` operation returns whether a value was previously `set` for + // the given key within the TTL. + exists: func(k: key) -> future-exists-result; + + // This block defines a special resource type used by `exists` to emulate + // `future>`. + resource future-exists-result { + future-exists-result-get: func() -> option>; + listen-to-future-exists-result: func() -> pollable; + } + + // The `set` operation sets the given value for the given key for the given + // time-to-live (TTL) duration, if supplied, specified in milliseconds. If + // a TTL is not supplied, the key may be kept indefinitely (as-if a very + // large TTL were used). If the key is already present in the cache, the + // value is updated in-place. In the common case of computing and caching a + // value if the given key is not already in the cache, consider using + // `get-or-set` (below) intead of separate `get` and `set` operations. + set: func(k: key, v: borrow, TTL-ms: option) -> future-result; + + // This block defines a special resource type used by `set` and `delete` to + // emulate `future>`. + resource future-result { + future-result-get: func() -> option>; + listen-to-future-result: func() -> pollable; + } + + // The `get-or-set` operation asynchronously returns one of two cases + // enumerated by `get-or-set-entry`: in the `occupied` case, the given key + // already has a value present in the cache; in the `vacant` case, there + // was no value and the caller should write a value into the returned + // `vacancy`. This operation allows multiple concurrent `get-or-set` + // invocations to rendezvous such that only one invocation receives the + // `vacant` result while all other invocations wait until the vacancy is + // filled before receiving an `occupied` result. Implementations are not + // required to implement this rendezvous or to rendezvous in all possible + // cases. + variant get-or-set-entry { + occupied(incoming-value), + vacant(vacancy) + } + get-or-set: func(k: key) -> future-get-or-set-result; + + // This block defines a special resource type used by `get-or-set` to + // emulate `future>`. + resource future-get-or-set-result { + future-get-or-set-result-get: func() -> option>; + listen-to-future-get-or-set-result: func() -> pollable; + } + + // The following block defines the `vacancy` resource type. (When resource + // types are added, the `u32` type aliases can be replaced by proper + // `resource` types.) When the caller of `get-or-set` receives a `vacancy`, + // they must either call the `fill` method or drop the `vacancy` to + // indicate an error that prevents calling `fill`. An implementation MAY + // have a timeout that drops a vacancy that hasn't been filled in order + // to unblock other waiting `get-or-set` callers. + resource vacancy { + vacancy-fill: func(TTL-ms: option) -> outgoing-value; + } + + // The `delete` operation removes any value with the given key from the + // cache. Like all cache operations, `delete` is weakly ordered and thus + // concurrent `get` calls may still see deleted keys for a period of time. + // Additionally, due to weak ordering, concurrent `set` calls for the same + // key may or may not get deleted. + delete: func(k: key) -> future-result; +} diff --git a/template-golem-agent-ts/wit/deps/keyvalue/error.wit b/template-golem-agent-ts/wit/deps/keyvalue/error.wit new file mode 100644 index 000000000..cd244f6ff --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/error.wit @@ -0,0 +1,20 @@ +interface wasi-keyvalue-error { + /// An error resource type for keyvalue operations. + /// + /// Common errors: + /// - Connectivity errors (e.g. network errors): when the client cannot establish + /// a connection to the keyvalue service. + /// - Authentication and Authorization errors: when the client fails to authenticate + /// or does not have the required permissions to perform the operation. + /// - Data errors: when the client sends incompatible or corrupted data. + /// - Resource errors: when the system runs out of resources (e.g. memory). + /// - Internal errors: unexpected errors on the server side. + /// + /// Currently, this provides only one function to return a string representation + /// of the error. In the future, this will be extended to provide more information + /// about the error. + // Soon: switch to `resource error { ... }` + resource error { + trace: func() -> string; + } +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/keyvalue/eventual-batch.wit b/template-golem-agent-ts/wit/deps/keyvalue/eventual-batch.wit new file mode 100644 index 000000000..080999eea --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/eventual-batch.wit @@ -0,0 +1,81 @@ +/// A keyvalue interface that provides eventually consistent batch operations. +/// +/// A batch operation is an operation that operates on multiple keys at once. +/// +/// Batch operations are useful for reducing network round-trip time. For example, +/// if you want to get the values associated with 100 keys, you can either do 100 get +/// operations or you can do 1 batch get operation. The batch operation is +/// faster because it only needs to make 1 network call instead of 100. +/// +/// A batch operation does not guarantee atomicity, meaning that if the batch +/// operation fails, some of the keys may have been modified and some may not. +/// Transactional operations are being worked on and will be added in the future to +/// provide atomicity. +/// +/// Data consistency in a key value store refers to the gaurantee that once a +/// write operation completes, all subsequent read operations will return the +/// value that was written. +/// +/// The level of consistency in batch operations is **eventual consistency**, the same +/// with the readwrite interface. This interface does not guarantee strong consistency, +/// meaning that if a write operation completes, subsequent read operations may not return +/// the value that was written. +interface eventual-batch { + /// A keyvalue interface that provides batch get operations. + use types.{bucket, error, key, incoming-value, outgoing-value}; + + /// Get the values associated with the keys in the bucket. It returns a list of + /// incoming-value that can be consumed to get the value associated with the key. + /// + /// If any of the keys do not exist in the bucket, it returns a `none` value for + /// that key in the list. + /// + /// Note that the key-value pairs are guaranteed to be returned in the same order + /// + /// MAY show an out-of-date value if there are concurrent writes to the bucket. + /// + /// If any other error occurs, it returns an `Err(error)`. + get-many: func(bucket: borrow, keys: list) -> result>, error>; + + /// Get all the keys in the bucket. It returns a list of keys. + /// + /// Note that the keys are not guaranteed to be returned in any particular order. + /// + /// If the bucket is empty, it returns an empty list. + /// + /// MAY show an out-of-date list of keys if there are concurrent writes to the bucket. + /// + /// If any error occurs, it returns an `Err(error)`. + keys: func(bucket: borrow) -> result, error>; + + /// Set the values associated with the keys in the bucket. If the key already + /// exists in the bucket, it overwrites the value. + /// + /// Note that the key-value pairs are not guaranteed to be set in the order + /// they are provided. + /// + /// If any of the keys do not exist in the bucket, it creates a new key-value pair. + /// + /// If any other error occurs, it returns an `Err(error)`. When an error occurs, it + /// does not rollback the key-value pairs that were already set. Thus, this batch operation + /// does not guarantee atomicity, implying that some key-value pairs could be + /// set while others might fail. + /// + /// Other concurrent operations may also be able to see the partial results. + set-many: func(bucket: borrow, key-values: list>>) -> result<_, error>; + + /// Delete the key-value pairs associated with the keys in the bucket. + /// + /// Note that the key-value pairs are not guaranteed to be deleted in the order + /// they are provided. + /// + /// If any of the keys do not exist in the bucket, it skips the key. + /// + /// If any other error occurs, it returns an `Err(error)`. When an error occurs, it + /// does not rollback the key-value pairs that were already deleted. Thus, this batch operation + /// does not guarantee atomicity, implying that some key-value pairs could be + /// deleted while others might fail. + /// + /// Other concurrent operations may also be able to see the partial results. + delete-many: func(bucket: borrow, keys: list) -> result<_, error>; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/keyvalue/eventual.wit b/template-golem-agent-ts/wit/deps/keyvalue/eventual.wit new file mode 100644 index 000000000..e6e33cfe7 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/eventual.wit @@ -0,0 +1,56 @@ +/// A keyvalue interface that provides eventually consistent CRUD operations. +/// +/// A CRUD operation is an operation that acts on a single key-value pair. +/// +/// The value in the key-value pair is defined as a `u8` byte array and the intention +/// is that it is the common denominator for all data types defined by different +/// key-value stores to handle data, ensuring compatibility between different +/// key-value stores. Note: the clients will be expecting serialization/deserialization overhead +/// to be handled by the key-value store. The value could be a serialized object from +/// JSON, HTML or vendor-specific data types like AWS S3 objects. +/// +/// Data consistency in a key value store refers to the gaurantee that once a +/// write operation completes, all subsequent read operations will return the +/// value that was written. +/// +/// The level of consistency in readwrite interfaces is **eventual consistency**, +/// which means that if a write operation completes successfully, all subsequent +/// read operations will eventually return the value that was written. In other words, +/// if we pause the updates to the system, the system eventually will return +/// the last updated value for read. +interface eventual { + /// A keyvalue interface that provides simple read and write operations. + use types.{bucket, error, incoming-value, key, outgoing-value}; + + /// Get the value associated with the key in the bucket. + /// + /// The value is returned as an option. If the key-value pair exists in the + /// bucket, it returns `Ok(value)`. If the key does not exist in the + /// bucket, it returns `Ok(none)`. + /// + /// If any other error occurs, it returns an `Err(error)`. + get: func(bucket: borrow, key: key) -> result, error>; + + /// Set the value associated with the key in the bucket. If the key already + /// exists in the bucket, it overwrites the value. + /// + /// If the key does not exist in the bucket, it creates a new key-value pair. + /// + /// If any other error occurs, it returns an `Err(error)`. + set: func(bucket: borrow, key: key, outgoing-value: borrow) -> result<_, error>; + + /// Delete the key-value pair associated with the key in the bucket. + /// + /// If the key does not exist in the bucket, it does nothing. + /// + /// If any other error occurs, it returns an `Err(error)`. + delete: func(bucket: borrow, key: key) -> result<_, error>; + + /// Check if the key exists in the bucket. + /// + /// If the key exists in the bucket, it returns `Ok(true)`. If the key does + /// not exist in the bucket, it returns `Ok(false)`. + /// + /// If any other error occurs, it returns an `Err(error)`. + exists: func(bucket: borrow, key: key) -> result; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/keyvalue/handle-watch.wit b/template-golem-agent-ts/wit/deps/keyvalue/handle-watch.wit new file mode 100644 index 000000000..0ca7b3772 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/handle-watch.wit @@ -0,0 +1,17 @@ +/// A keyvalue interface that provides handle-watch operations. +/// +/// This interface is used to provide event-driven mechanisms to handle +/// keyvalue changes. +interface handle-watch { + /// A keyvalue interface that provides handle-watch operations. + use types.{bucket, key, incoming-value}; + + /// Handle the `set` event for the given bucket and key. + /// It returns a `incoming-value` that represents the new value being set. + /// The new value can be consumed by the handler. + on-set: func(bucket: bucket, key: key, incoming-value: borrow); + + /// Handle the `delete` event for the given bucket and key. + /// It returns a `key` that represents the key being deleted. + on-delete: func(bucket: bucket, key: key); +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/keyvalue/types.wit b/template-golem-agent-ts/wit/deps/keyvalue/types.wit new file mode 100644 index 000000000..81ee803c0 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/types.wit @@ -0,0 +1,72 @@ +// A generic keyvalue interface for WASI. +interface types { + /// A bucket is a collection of key-value pairs. Each key-value pair is stored + /// as a entry in the bucket, and the bucket itself acts as a collection of all + /// these entries. + /// + /// It is worth noting that the exact terminology for bucket in key-value stores + /// can very depending on the specific implementation. For example, + /// 1. Amazon DynamoDB calls a collection of key-value pairs a table + /// 2. Redis has hashes, sets, and sorted sets as different types of collections + /// 3. Cassandra calls a collection of key-value pairs a column family + /// 4. MongoDB calls a collection of key-value pairs a collection + /// 5. Riak calls a collection of key-value pairs a bucket + /// 6. Memcached calls a collection of key-value pairs a slab + /// 7. Azure Cosmos DB calls a collection of key-value pairs a container + /// + /// In this interface, we use the term `bucket` to refer to a collection of key-value + // Soon: switch to `resource bucket { ... }` + resource bucket { + /// Opens a bucket with the given name. + /// + /// If any error occurs, including if the bucket does not exist, it returns an `Err(error)`. + open-bucket: static func(name: string) -> result; + } + /// A key is a unique identifier for a value in a bucket. The key is used to + /// retrieve the value from the bucket. + type key = string; + + use wasi:io/streams@0.2.3.{input-stream, output-stream}; + use wasi-keyvalue-error.{ error }; + /// A value is the data stored in a key-value pair. The value can be of any type + /// that can be represented in a byte array. It provides a way to write the value + /// to the output-stream defined in the `wasi-io` interface. + // Soon: switch to `resource value { ... }` + resource outgoing-value { + new-outgoing-value: static func() -> outgoing-value; + /// Writes the value to the output-stream asynchronously. + /// If any other error occurs, it returns an `Err(error)`. + outgoing-value-write-body-async: func() -> result; + /// Writes the value to the output-stream synchronously. + /// If any other error occurs, it returns an `Err(error)`. + outgoing-value-write-body-sync: func(value: outgoing-value-body-sync) -> result<_, error>; + } + type outgoing-value-body-async = output-stream; + type outgoing-value-body-sync = list; + + /// A incoming-value is a wrapper around a value. It provides a way to read the value + /// from the `input-stream` defined in the `wasi-io` interface. + /// + /// The incoming-value provides two ways to consume the value: + /// 1. `incoming-value-consume-sync` consumes the value synchronously and returns the + /// value as a `list`. + /// 2. `incoming-value-consume-async` consumes the value asynchronously and returns the + /// value as an `input-stream`. + /// In addition, it provides a `incoming-value-size` function to get the size of the value. + /// This is useful when the value is large and the caller wants to allocate a buffer of + /// the right size to consume the value. + // Soon: switch to `resource incoming-value { ... }` + resource incoming-value { + /// Consumes the value synchronously and returns the value as a list of bytes. + /// If any other error occurs, it returns an `Err(error)`. + incoming-value-consume-sync: func() -> result; + /// Consumes the value asynchronously and returns the value as an `input-stream`. + /// If any other error occurs, it returns an `Err(error)`. + incoming-value-consume-async: func() -> result; + /// The size of the value in bytes. + /// If the size is unknown or unavailable, this function returns an `Err(error)`. + incoming-value-size: func() -> result; + } + type incoming-value-async-body = input-stream; + type incoming-value-sync-body = list; +} diff --git a/template-golem-agent-ts/wit/deps/keyvalue/world.wit b/template-golem-agent-ts/wit/deps/keyvalue/world.wit new file mode 100644 index 000000000..ea64fe5ee --- /dev/null +++ b/template-golem-agent-ts/wit/deps/keyvalue/world.wit @@ -0,0 +1,26 @@ +package wasi:keyvalue@0.1.0; + +/// The `wasi:keyvalue/imports` world provides common APIs for interacting +/// with key-value stores. Components targeting this world will be able to +/// do +/// 1. CRUD (create, read, update, delete) operations on key-value stores. +/// 2. Atomic `increment` and CAS (compare-and-swap) operations. +/// 3. Batch operations that can reduce the number of round trips to the network. +world imports { + /// The `eventual` capability allows the component to perform + /// eventually consistent CRUD operations on the key-value store. + import eventual; + + /// The `atomic` capability allows the component to perform atomic + /// `increment` and CAS (compare-and-swap) operations. + import atomic; + + /// The `eventual-batch` capability allows the component to perform eventually + /// consistent batch operations that can reduce the number of round trips to the network. + import eventual-batch; +} + +world keyvalue-handle-watch { + include imports; + export handle-watch; +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/logging/logging.wit b/template-golem-agent-ts/wit/deps/logging/logging.wit new file mode 100644 index 000000000..adb5ee5fb --- /dev/null +++ b/template-golem-agent-ts/wit/deps/logging/logging.wit @@ -0,0 +1,37 @@ +package wasi:logging; + +/// WASI Logging is a logging API intended to let users emit log messages with +/// simple priority levels and context values. +interface logging { + /// A log level, describing a kind of message. + enum level { + /// Describes messages about the values of variables and the flow of + /// control within a program. + trace, + + /// Describes messages likely to be of interest to someone debugging a + /// program. + debug, + + /// Describes messages likely to be of interest to someone monitoring a + /// program. + info, + + /// Describes messages indicating hazardous situations. + warn, + + /// Describes messages indicating serious errors. + error, + + /// Describes messages indicating fatal errors. + critical, + } + + /// Emit a log message. + /// + /// A log message has a `level` describing what kind of message is being + /// sent, a context, which is an uninterpreted string meant to help + /// consumers group similar messages, and a string containing the message + /// text. + log: func(level: level, context: string, message: string); +} \ No newline at end of file diff --git a/template-golem-agent-ts/wit/deps/random/insecure-seed.wit b/template-golem-agent-ts/wit/deps/random/insecure-seed.wit new file mode 100644 index 000000000..67d024d5b --- /dev/null +++ b/template-golem-agent-ts/wit/deps/random/insecure-seed.wit @@ -0,0 +1,27 @@ +package wasi:random@0.2.3; +/// The insecure-seed interface for seeding hash-map DoS resistance. +/// +/// It is intended to be portable at least between Unix-family platforms and +/// Windows. +@since(version = 0.2.0) +interface insecure-seed { + /// Return a 128-bit value that may contain a pseudo-random value. + /// + /// The returned value is not required to be computed from a CSPRNG, and may + /// even be entirely deterministic. Host implementations are encouraged to + /// provide pseudo-random values to any program exposed to + /// attacker-controlled content, to enable DoS protection built into many + /// languages' hash-map implementations. + /// + /// This function is intended to only be called once, by a source language + /// to initialize Denial Of Service (DoS) protection in its hash-map + /// implementation. + /// + /// # Expected future evolution + /// + /// This will likely be changed to a value import, to prevent it from being + /// called multiple times and potentially used for purposes other than DoS + /// protection. + @since(version = 0.2.0) + insecure-seed: func() -> tuple; +} diff --git a/template-golem-agent-ts/wit/deps/random/insecure.wit b/template-golem-agent-ts/wit/deps/random/insecure.wit new file mode 100644 index 000000000..a07dfab32 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/random/insecure.wit @@ -0,0 +1,25 @@ +package wasi:random@0.2.3; +/// The insecure interface for insecure pseudo-random numbers. +/// +/// It is intended to be portable at least between Unix-family platforms and +/// Windows. +@since(version = 0.2.0) +interface insecure { + /// Return `len` insecure pseudo-random bytes. + /// + /// This function is not cryptographically secure. Do not use it for + /// anything related to security. + /// + /// There are no requirements on the values of the returned bytes, however + /// implementations are encouraged to return evenly distributed values with + /// a long period. + @since(version = 0.2.0) + get-insecure-random-bytes: func(len: u64) -> list; + + /// Return an insecure pseudo-random `u64` value. + /// + /// This function returns the same type of pseudo-random data as + /// `get-insecure-random-bytes`, represented as a `u64`. + @since(version = 0.2.0) + get-insecure-random-u64: func() -> u64; +} diff --git a/template-golem-agent-ts/wit/deps/random/random.wit b/template-golem-agent-ts/wit/deps/random/random.wit new file mode 100644 index 000000000..91957e633 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/random/random.wit @@ -0,0 +1,29 @@ +package wasi:random@0.2.3; +/// WASI Random is a random data API. +/// +/// It is intended to be portable at least between Unix-family platforms and +/// Windows. +@since(version = 0.2.0) +interface random { + /// Return `len` cryptographically-secure random or pseudo-random bytes. + /// + /// This function must produce data at least as cryptographically secure and + /// fast as an adequately seeded cryptographically-secure pseudo-random + /// number generator (CSPRNG). It must not block, from the perspective of + /// the calling program, under any circumstances, including on the first + /// request and on requests for numbers of bytes. The returned data must + /// always be unpredictable. + /// + /// This function must always return fresh data. Deterministic environments + /// must omit this function, rather than implementing it with deterministic + /// data. + @since(version = 0.2.0) + get-random-bytes: func(len: u64) -> list; + + /// Return a cryptographically-secure random or pseudo-random `u64` value. + /// + /// This function returns the same type of data as `get-random-bytes`, + /// represented as a `u64`. + @since(version = 0.2.0) + get-random-u64: func() -> u64; +} diff --git a/template-golem-agent-ts/wit/deps/random/world.wit b/template-golem-agent-ts/wit/deps/random/world.wit new file mode 100644 index 000000000..0c1218f36 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/random/world.wit @@ -0,0 +1,13 @@ +package wasi:random@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + import random; + + @since(version = 0.2.0) + import insecure; + + @since(version = 0.2.0) + import insecure-seed; +} diff --git a/template-golem-agent-ts/wit/deps/sockets/instance-network.wit b/template-golem-agent-ts/wit/deps/sockets/instance-network.wit new file mode 100644 index 000000000..5f6e6c1cc --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/instance-network.wit @@ -0,0 +1,11 @@ + +/// This interface provides a value-export of the default network handle.. +@since(version = 0.2.0) +interface instance-network { + @since(version = 0.2.0) + use network.{network}; + + /// Get a handle to the default network. + @since(version = 0.2.0) + instance-network: func() -> network; +} diff --git a/template-golem-agent-ts/wit/deps/sockets/ip-name-lookup.wit b/template-golem-agent-ts/wit/deps/sockets/ip-name-lookup.wit new file mode 100644 index 000000000..c1d8a47c1 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/ip-name-lookup.wit @@ -0,0 +1,56 @@ +@since(version = 0.2.0) +interface ip-name-lookup { + @since(version = 0.2.0) + use wasi:io/poll@0.2.3.{pollable}; + @since(version = 0.2.0) + use network.{network, error-code, ip-address}; + + /// Resolve an internet host name to a list of IP addresses. + /// + /// Unicode domain names are automatically converted to ASCII using IDNA encoding. + /// If the input is an IP address string, the address is parsed and returned + /// as-is without making any external requests. + /// + /// See the wasi-socket proposal README.md for a comparison with getaddrinfo. + /// + /// This function never blocks. It either immediately fails or immediately + /// returns successfully with a `resolve-address-stream` that can be used + /// to (asynchronously) fetch the results. + /// + /// # Typical errors + /// - `invalid-argument`: `name` is a syntactically invalid domain name or IP address. + /// + /// # References: + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + resolve-addresses: func(network: borrow, name: string) -> result; + + @since(version = 0.2.0) + resource resolve-address-stream { + /// Returns the next address from the resolver. + /// + /// This function should be called multiple times. On each call, it will + /// return the next address in connection order preference. If all + /// addresses have been exhausted, this function returns `none`. + /// + /// This function never returns IPv4-mapped IPv6 addresses. + /// + /// # Typical errors + /// - `name-unresolvable`: Name does not exist or has no suitable associated IP addresses. (EAI_NONAME, EAI_NODATA, EAI_ADDRFAMILY) + /// - `temporary-resolver-failure`: A temporary failure in name resolution occurred. (EAI_AGAIN) + /// - `permanent-resolver-failure`: A permanent failure in name resolution occurred. (EAI_FAIL) + /// - `would-block`: A result is not available yet. (EWOULDBLOCK, EAGAIN) + @since(version = 0.2.0) + resolve-next-address: func() -> result, error-code>; + + /// Create a `pollable` which will resolve once the stream is ready for I/O. + /// + /// Note: this function is here for WASI 0.2 only. + /// It's planned to be removed when `future` is natively supported in Preview3. + @since(version = 0.2.0) + subscribe: func() -> pollable; + } +} diff --git a/template-golem-agent-ts/wit/deps/sockets/network.wit b/template-golem-agent-ts/wit/deps/sockets/network.wit new file mode 100644 index 000000000..f3f60a370 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/network.wit @@ -0,0 +1,169 @@ +@since(version = 0.2.0) +interface network { + @unstable(feature = network-error-code) + use wasi:io/error@0.2.3.{error}; + + /// An opaque resource that represents access to (a subset of) the network. + /// This enables context-based security for networking. + /// There is no need for this to map 1:1 to a physical network interface. + @since(version = 0.2.0) + resource network; + + /// Error codes. + /// + /// In theory, every API can return any error code. + /// In practice, API's typically only return the errors documented per API + /// combined with a couple of errors that are always possible: + /// - `unknown` + /// - `access-denied` + /// - `not-supported` + /// - `out-of-memory` + /// - `concurrency-conflict` + /// + /// See each individual API for what the POSIX equivalents are. They sometimes differ per API. + @since(version = 0.2.0) + enum error-code { + /// Unknown error + unknown, + + /// Access denied. + /// + /// POSIX equivalent: EACCES, EPERM + access-denied, + + /// The operation is not supported. + /// + /// POSIX equivalent: EOPNOTSUPP + not-supported, + + /// One of the arguments is invalid. + /// + /// POSIX equivalent: EINVAL + invalid-argument, + + /// Not enough memory to complete the operation. + /// + /// POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY + out-of-memory, + + /// The operation timed out before it could finish completely. + timeout, + + /// This operation is incompatible with another asynchronous operation that is already in progress. + /// + /// POSIX equivalent: EALREADY + concurrency-conflict, + + /// Trying to finish an asynchronous operation that: + /// - has not been started yet, or: + /// - was already finished by a previous `finish-*` call. + /// + /// Note: this is scheduled to be removed when `future`s are natively supported. + not-in-progress, + + /// The operation has been aborted because it could not be completed immediately. + /// + /// Note: this is scheduled to be removed when `future`s are natively supported. + would-block, + + + /// The operation is not valid in the socket's current state. + invalid-state, + + /// A new socket resource could not be created because of a system limit. + new-socket-limit, + + /// A bind operation failed because the provided address is not an address that the `network` can bind to. + address-not-bindable, + + /// A bind operation failed because the provided address is already in use or because there are no ephemeral ports available. + address-in-use, + + /// The remote address is not reachable + remote-unreachable, + + + /// The TCP connection was forcefully rejected + connection-refused, + + /// The TCP connection was reset. + connection-reset, + + /// A TCP connection was aborted. + connection-aborted, + + + /// The size of a datagram sent to a UDP socket exceeded the maximum + /// supported size. + datagram-too-large, + + + /// Name does not exist or has no suitable associated IP addresses. + name-unresolvable, + + /// A temporary failure in name resolution occurred. + temporary-resolver-failure, + + /// A permanent failure in name resolution occurred. + permanent-resolver-failure, + } + + /// Attempts to extract a network-related `error-code` from the stream + /// `error` provided. + /// + /// Stream operations which return `stream-error::last-operation-failed` + /// have a payload with more information about the operation that failed. + /// This payload can be passed through to this function to see if there's + /// network-related information about the error to return. + /// + /// Note that this function is fallible because not all stream-related + /// errors are network-related errors. + @unstable(feature = network-error-code) + network-error-code: func(err: borrow) -> option; + + @since(version = 0.2.0) + enum ip-address-family { + /// Similar to `AF_INET` in POSIX. + ipv4, + + /// Similar to `AF_INET6` in POSIX. + ipv6, + } + + @since(version = 0.2.0) + type ipv4-address = tuple; + @since(version = 0.2.0) + type ipv6-address = tuple; + + @since(version = 0.2.0) + variant ip-address { + ipv4(ipv4-address), + ipv6(ipv6-address), + } + + @since(version = 0.2.0) + record ipv4-socket-address { + /// sin_port + port: u16, + /// sin_addr + address: ipv4-address, + } + + @since(version = 0.2.0) + record ipv6-socket-address { + /// sin6_port + port: u16, + /// sin6_flowinfo + flow-info: u32, + /// sin6_addr + address: ipv6-address, + /// sin6_scope_id + scope-id: u32, + } + + @since(version = 0.2.0) + variant ip-socket-address { + ipv4(ipv4-socket-address), + ipv6(ipv6-socket-address), + } +} diff --git a/template-golem-agent-ts/wit/deps/sockets/tcp-create-socket.wit b/template-golem-agent-ts/wit/deps/sockets/tcp-create-socket.wit new file mode 100644 index 000000000..eedbd3076 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/tcp-create-socket.wit @@ -0,0 +1,30 @@ +@since(version = 0.2.0) +interface tcp-create-socket { + @since(version = 0.2.0) + use network.{network, error-code, ip-address-family}; + @since(version = 0.2.0) + use tcp.{tcp-socket}; + + /// Create a new TCP socket. + /// + /// Similar to `socket(AF_INET or AF_INET6, SOCK_STREAM, IPPROTO_TCP)` in POSIX. + /// On IPv6 sockets, IPV6_V6ONLY is enabled by default and can't be configured otherwise. + /// + /// This function does not require a network capability handle. This is considered to be safe because + /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind`/`connect` + /// is called, the socket is effectively an in-memory configuration object, unable to communicate with the outside world. + /// + /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. + /// + /// # Typical errors + /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) + /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + create-tcp-socket: func(address-family: ip-address-family) -> result; +} diff --git a/template-golem-agent-ts/wit/deps/sockets/tcp.wit b/template-golem-agent-ts/wit/deps/sockets/tcp.wit new file mode 100644 index 000000000..b4cd87fce --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/tcp.wit @@ -0,0 +1,387 @@ +@since(version = 0.2.0) +interface tcp { + @since(version = 0.2.0) + use wasi:io/streams@0.2.3.{input-stream, output-stream}; + @since(version = 0.2.0) + use wasi:io/poll@0.2.3.{pollable}; + @since(version = 0.2.0) + use wasi:clocks/monotonic-clock@0.2.3.{duration}; + @since(version = 0.2.0) + use network.{network, error-code, ip-socket-address, ip-address-family}; + + @since(version = 0.2.0) + enum shutdown-type { + /// Similar to `SHUT_RD` in POSIX. + receive, + + /// Similar to `SHUT_WR` in POSIX. + send, + + /// Similar to `SHUT_RDWR` in POSIX. + both, + } + + /// A TCP socket resource. + /// + /// The socket can be in one of the following states: + /// - `unbound` + /// - `bind-in-progress` + /// - `bound` (See note below) + /// - `listen-in-progress` + /// - `listening` + /// - `connect-in-progress` + /// - `connected` + /// - `closed` + /// See + /// for more information. + /// + /// Note: Except where explicitly mentioned, whenever this documentation uses + /// the term "bound" without backticks it actually means: in the `bound` state *or higher*. + /// (i.e. `bound`, `listen-in-progress`, `listening`, `connect-in-progress` or `connected`) + /// + /// In addition to the general error codes documented on the + /// `network::error-code` type, TCP socket methods may always return + /// `error(invalid-state)` when in the `closed` state. + @since(version = 0.2.0) + resource tcp-socket { + /// Bind the socket to a specific network on the provided IP address and port. + /// + /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which + /// network interface(s) to bind to. + /// If the TCP/UDP port is zero, the socket will be bound to a random free port. + /// + /// Bind can be attempted multiple times on the same socket, even with + /// different arguments on each iteration. But never concurrently and + /// only as long as the previous bind failed. Once a bind succeeds, the + /// binding can't be changed anymore. + /// + /// # Typical errors + /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) + /// - `invalid-argument`: `local-address` is not a unicast address. (EINVAL) + /// - `invalid-argument`: `local-address` is an IPv4-mapped IPv6 address. (EINVAL) + /// - `invalid-state`: The socket is already bound. (EINVAL) + /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) + /// - `address-in-use`: Address is already in use. (EADDRINUSE) + /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) + /// - `not-in-progress`: A `bind` operation is not in progress. + /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) + /// + /// # Implementors note + /// When binding to a non-zero port, this bind operation shouldn't be affected by the TIME_WAIT + /// state of a recently closed socket on the same local address. In practice this means that the SO_REUSEADDR + /// socket option should be set implicitly on all platforms, except on Windows where this is the default behavior + /// and SO_REUSEADDR performs something different entirely. + /// + /// Unlike in POSIX, in WASI the bind operation is async. This enables + /// interactive WASI hosts to inject permission prompts. Runtimes that + /// don't want to make use of this ability can simply call the native + /// `bind` as part of either `start-bind` or `finish-bind`. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; + @since(version = 0.2.0) + finish-bind: func() -> result<_, error-code>; + + /// Connect to a remote endpoint. + /// + /// On success: + /// - the socket is transitioned into the `connected` state. + /// - a pair of streams is returned that can be used to read & write to the connection + /// + /// After a failed connection attempt, the socket will be in the `closed` + /// state and the only valid action left is to `drop` the socket. A single + /// socket can not be used to connect more than once. + /// + /// # Typical errors + /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) + /// - `invalid-argument`: `remote-address` is not a unicast address. (EINVAL, ENETUNREACH on Linux, EAFNOSUPPORT on MacOS) + /// - `invalid-argument`: `remote-address` is an IPv4-mapped IPv6 address. (EINVAL, EADDRNOTAVAIL on Illumos) + /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EADDRNOTAVAIL on Windows) + /// - `invalid-argument`: The port in `remote-address` is set to 0. (EADDRNOTAVAIL on Windows) + /// - `invalid-argument`: The socket is already attached to a different network. The `network` passed to `connect` must be identical to the one passed to `bind`. + /// - `invalid-state`: The socket is already in the `connected` state. (EISCONN) + /// - `invalid-state`: The socket is already in the `listening` state. (EOPNOTSUPP, EINVAL on Windows) + /// - `timeout`: Connection timed out. (ETIMEDOUT) + /// - `connection-refused`: The connection was forcefully rejected. (ECONNREFUSED) + /// - `connection-reset`: The connection was reset. (ECONNRESET) + /// - `connection-aborted`: The connection was aborted. (ECONNABORTED) + /// - `remote-unreachable`: The remote address is not reachable. (EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) + /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) + /// - `not-in-progress`: A connect operation is not in progress. + /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) + /// + /// # Implementors note + /// The POSIX equivalent of `start-connect` is the regular `connect` syscall. + /// Because all WASI sockets are non-blocking this is expected to return + /// EINPROGRESS, which should be translated to `ok()` in WASI. + /// + /// The POSIX equivalent of `finish-connect` is a `poll` for event `POLLOUT` + /// with a timeout of 0 on the socket descriptor. Followed by a check for + /// the `SO_ERROR` socket option, in case the poll signaled readiness. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + start-connect: func(network: borrow, remote-address: ip-socket-address) -> result<_, error-code>; + @since(version = 0.2.0) + finish-connect: func() -> result, error-code>; + + /// Start listening for new connections. + /// + /// Transitions the socket into the `listening` state. + /// + /// Unlike POSIX, the socket must already be explicitly bound. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not bound to any local address. (EDESTADDRREQ) + /// - `invalid-state`: The socket is already in the `connected` state. (EISCONN, EINVAL on BSD) + /// - `invalid-state`: The socket is already in the `listening` state. + /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE) + /// - `not-in-progress`: A listen operation is not in progress. + /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) + /// + /// # Implementors note + /// Unlike in POSIX, in WASI the listen operation is async. This enables + /// interactive WASI hosts to inject permission prompts. Runtimes that + /// don't want to make use of this ability can simply call the native + /// `listen` as part of either `start-listen` or `finish-listen`. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + start-listen: func() -> result<_, error-code>; + @since(version = 0.2.0) + finish-listen: func() -> result<_, error-code>; + + /// Accept a new client socket. + /// + /// The returned socket is bound and in the `connected` state. The following properties are inherited from the listener socket: + /// - `address-family` + /// - `keep-alive-enabled` + /// - `keep-alive-idle-time` + /// - `keep-alive-interval` + /// - `keep-alive-count` + /// - `hop-limit` + /// - `receive-buffer-size` + /// - `send-buffer-size` + /// + /// On success, this function returns the newly accepted client socket along with + /// a pair of streams that can be used to read & write to the connection. + /// + /// # Typical errors + /// - `invalid-state`: Socket is not in the `listening` state. (EINVAL) + /// - `would-block`: No pending connections at the moment. (EWOULDBLOCK, EAGAIN) + /// - `connection-aborted`: An incoming connection was pending, but was terminated by the client before this listener could accept it. (ECONNABORTED) + /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + accept: func() -> result, error-code>; + + /// Get the bound local address. + /// + /// POSIX mentions: + /// > If the socket has not been bound to a local name, the value + /// > stored in the object pointed to by `address` is unspecified. + /// + /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not bound to any local address. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + local-address: func() -> result; + + /// Get the remote address. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not connected to a remote address. (ENOTCONN) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + remote-address: func() -> result; + + /// Whether the socket is in the `listening` state. + /// + /// Equivalent to the SO_ACCEPTCONN socket option. + @since(version = 0.2.0) + is-listening: func() -> bool; + + /// Whether this is a IPv4 or IPv6 socket. + /// + /// Equivalent to the SO_DOMAIN socket option. + @since(version = 0.2.0) + address-family: func() -> ip-address-family; + + /// Hints the desired listen queue size. Implementations are free to ignore this. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// + /// # Typical errors + /// - `not-supported`: (set) The platform does not support changing the backlog size after the initial listen. + /// - `invalid-argument`: (set) The provided value was 0. + /// - `invalid-state`: (set) The socket is in the `connect-in-progress` or `connected` state. + @since(version = 0.2.0) + set-listen-backlog-size: func(value: u64) -> result<_, error-code>; + + /// Enables or disables keepalive. + /// + /// The keepalive behavior can be adjusted using: + /// - `keep-alive-idle-time` + /// - `keep-alive-interval` + /// - `keep-alive-count` + /// These properties can be configured while `keep-alive-enabled` is false, but only come into effect when `keep-alive-enabled` is true. + /// + /// Equivalent to the SO_KEEPALIVE socket option. + @since(version = 0.2.0) + keep-alive-enabled: func() -> result; + @since(version = 0.2.0) + set-keep-alive-enabled: func(value: bool) -> result<_, error-code>; + + /// Amount of time the connection has to be idle before TCP starts sending keepalive packets. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// I.e. after setting a value, reading the same setting back may return a different value. + /// + /// Equivalent to the TCP_KEEPIDLE socket option. (TCP_KEEPALIVE on MacOS) + /// + /// # Typical errors + /// - `invalid-argument`: (set) The provided value was 0. + @since(version = 0.2.0) + keep-alive-idle-time: func() -> result; + @since(version = 0.2.0) + set-keep-alive-idle-time: func(value: duration) -> result<_, error-code>; + + /// The time between keepalive packets. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// I.e. after setting a value, reading the same setting back may return a different value. + /// + /// Equivalent to the TCP_KEEPINTVL socket option. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The provided value was 0. + @since(version = 0.2.0) + keep-alive-interval: func() -> result; + @since(version = 0.2.0) + set-keep-alive-interval: func(value: duration) -> result<_, error-code>; + + /// The maximum amount of keepalive packets TCP should send before aborting the connection. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// I.e. after setting a value, reading the same setting back may return a different value. + /// + /// Equivalent to the TCP_KEEPCNT socket option. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The provided value was 0. + @since(version = 0.2.0) + keep-alive-count: func() -> result; + @since(version = 0.2.0) + set-keep-alive-count: func(value: u32) -> result<_, error-code>; + + /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The TTL value must be 1 or higher. + @since(version = 0.2.0) + hop-limit: func() -> result; + @since(version = 0.2.0) + set-hop-limit: func(value: u8) -> result<_, error-code>; + + /// The kernel buffer space reserved for sends/receives on this socket. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// I.e. after setting a value, reading the same setting back may return a different value. + /// + /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The provided value was 0. + @since(version = 0.2.0) + receive-buffer-size: func() -> result; + @since(version = 0.2.0) + set-receive-buffer-size: func(value: u64) -> result<_, error-code>; + @since(version = 0.2.0) + send-buffer-size: func() -> result; + @since(version = 0.2.0) + set-send-buffer-size: func(value: u64) -> result<_, error-code>; + + /// Create a `pollable` which can be used to poll for, or block on, + /// completion of any of the asynchronous operations of this socket. + /// + /// When `finish-bind`, `finish-listen`, `finish-connect` or `accept` + /// return `error(would-block)`, this pollable can be used to wait for + /// their success or failure, after which the method can be retried. + /// + /// The pollable is not limited to the async operation that happens to be + /// in progress at the time of calling `subscribe` (if any). Theoretically, + /// `subscribe` only has to be called once per socket and can then be + /// (re)used for the remainder of the socket's lifetime. + /// + /// See + /// for more information. + /// + /// Note: this function is here for WASI 0.2 only. + /// It's planned to be removed when `future` is natively supported in Preview3. + @since(version = 0.2.0) + subscribe: func() -> pollable; + + /// Initiate a graceful shutdown. + /// + /// - `receive`: The socket is not expecting to receive any data from + /// the peer. The `input-stream` associated with this socket will be + /// closed. Any data still in the receive queue at time of calling + /// this method will be discarded. + /// - `send`: The socket has no more data to send to the peer. The `output-stream` + /// associated with this socket will be closed and a FIN packet will be sent. + /// - `both`: Same effect as `receive` & `send` combined. + /// + /// This function is idempotent; shutting down a direction more than once + /// has no effect and returns `ok`. + /// + /// The shutdown function does not close (drop) the socket. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not in the `connected` state. (ENOTCONN) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + shutdown: func(shutdown-type: shutdown-type) -> result<_, error-code>; + } +} diff --git a/template-golem-agent-ts/wit/deps/sockets/udp-create-socket.wit b/template-golem-agent-ts/wit/deps/sockets/udp-create-socket.wit new file mode 100644 index 000000000..e8eeacbfe --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/udp-create-socket.wit @@ -0,0 +1,30 @@ +@since(version = 0.2.0) +interface udp-create-socket { + @since(version = 0.2.0) + use network.{network, error-code, ip-address-family}; + @since(version = 0.2.0) + use udp.{udp-socket}; + + /// Create a new UDP socket. + /// + /// Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. + /// On IPv6 sockets, IPV6_V6ONLY is enabled by default and can't be configured otherwise. + /// + /// This function does not require a network capability handle. This is considered to be safe because + /// at time of creation, the socket is not bound to any `network` yet. Up to the moment `bind` is called, + /// the socket is effectively an in-memory configuration object, unable to communicate with the outside world. + /// + /// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous operations. + /// + /// # Typical errors + /// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) + /// - `new-socket-limit`: The new socket resource could not be created because of a system limit. (EMFILE, ENFILE) + /// + /// # References: + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + create-udp-socket: func(address-family: ip-address-family) -> result; +} diff --git a/template-golem-agent-ts/wit/deps/sockets/udp.wit b/template-golem-agent-ts/wit/deps/sockets/udp.wit new file mode 100644 index 000000000..01901ca27 --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/udp.wit @@ -0,0 +1,288 @@ +@since(version = 0.2.0) +interface udp { + @since(version = 0.2.0) + use wasi:io/poll@0.2.3.{pollable}; + @since(version = 0.2.0) + use network.{network, error-code, ip-socket-address, ip-address-family}; + + /// A received datagram. + @since(version = 0.2.0) + record incoming-datagram { + /// The payload. + /// + /// Theoretical max size: ~64 KiB. In practice, typically less than 1500 bytes. + data: list, + + /// The source address. + /// + /// This field is guaranteed to match the remote address the stream was initialized with, if any. + /// + /// Equivalent to the `src_addr` out parameter of `recvfrom`. + remote-address: ip-socket-address, + } + + /// A datagram to be sent out. + @since(version = 0.2.0) + record outgoing-datagram { + /// The payload. + data: list, + + /// The destination address. + /// + /// The requirements on this field depend on how the stream was initialized: + /// - with a remote address: this field must be None or match the stream's remote address exactly. + /// - without a remote address: this field is required. + /// + /// If this value is None, the send operation is equivalent to `send` in POSIX. Otherwise it is equivalent to `sendto`. + remote-address: option, + } + + /// A UDP socket handle. + @since(version = 0.2.0) + resource udp-socket { + /// Bind the socket to a specific network on the provided IP address and port. + /// + /// If the IP address is zero (`0.0.0.0` in IPv4, `::` in IPv6), it is left to the implementation to decide which + /// network interface(s) to bind to. + /// If the port is zero, the socket will be bound to a random free port. + /// + /// # Typical errors + /// - `invalid-argument`: The `local-address` has the wrong address family. (EAFNOSUPPORT, EFAULT on Windows) + /// - `invalid-state`: The socket is already bound. (EINVAL) + /// - `address-in-use`: No ephemeral ports available. (EADDRINUSE, ENOBUFS on Windows) + /// - `address-in-use`: Address is already in use. (EADDRINUSE) + /// - `address-not-bindable`: `local-address` is not an address that the `network` can bind to. (EADDRNOTAVAIL) + /// - `not-in-progress`: A `bind` operation is not in progress. + /// - `would-block`: Can't finish the operation, it is still in progress. (EWOULDBLOCK, EAGAIN) + /// + /// # Implementors note + /// Unlike in POSIX, in WASI the bind operation is async. This enables + /// interactive WASI hosts to inject permission prompts. Runtimes that + /// don't want to make use of this ability can simply call the native + /// `bind` as part of either `start-bind` or `finish-bind`. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + start-bind: func(network: borrow, local-address: ip-socket-address) -> result<_, error-code>; + @since(version = 0.2.0) + finish-bind: func() -> result<_, error-code>; + + /// Set up inbound & outbound communication channels, optionally to a specific peer. + /// + /// This function only changes the local socket configuration and does not generate any network traffic. + /// On success, the `remote-address` of the socket is updated. The `local-address` may be updated as well, + /// based on the best network path to `remote-address`. + /// + /// When a `remote-address` is provided, the returned streams are limited to communicating with that specific peer: + /// - `send` can only be used to send to this destination. + /// - `receive` will only return datagrams sent from the provided `remote-address`. + /// + /// This method may be called multiple times on the same socket to change its association, but + /// only the most recently returned pair of streams will be operational. Implementations may trap if + /// the streams returned by a previous invocation haven't been dropped yet before calling `stream` again. + /// + /// The POSIX equivalent in pseudo-code is: + /// ```text + /// if (was previously connected) { + /// connect(s, AF_UNSPEC) + /// } + /// if (remote_address is Some) { + /// connect(s, remote_address) + /// } + /// ``` + /// + /// Unlike in POSIX, the socket must already be explicitly bound. + /// + /// # Typical errors + /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) + /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) + /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) + /// - `invalid-state`: The socket is not bound. + /// - `address-in-use`: Tried to perform an implicit bind, but there were no ephemeral ports available. (EADDRINUSE, EADDRNOTAVAIL on Linux, EAGAIN on BSD) + /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) + /// - `connection-refused`: The connection was refused. (ECONNREFUSED) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + %stream: func(remote-address: option) -> result, error-code>; + + /// Get the current bound address. + /// + /// POSIX mentions: + /// > If the socket has not been bound to a local name, the value + /// > stored in the object pointed to by `address` is unspecified. + /// + /// WASI is stricter and requires `local-address` to return `invalid-state` when the socket hasn't been bound yet. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not bound to any local address. + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + local-address: func() -> result; + + /// Get the address the socket is currently streaming to. + /// + /// # Typical errors + /// - `invalid-state`: The socket is not streaming to a specific remote address. (ENOTCONN) + /// + /// # References + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + remote-address: func() -> result; + + /// Whether this is a IPv4 or IPv6 socket. + /// + /// Equivalent to the SO_DOMAIN socket option. + @since(version = 0.2.0) + address-family: func() -> ip-address-family; + + /// Equivalent to the IP_TTL & IPV6_UNICAST_HOPS socket options. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The TTL value must be 1 or higher. + @since(version = 0.2.0) + unicast-hop-limit: func() -> result; + @since(version = 0.2.0) + set-unicast-hop-limit: func(value: u8) -> result<_, error-code>; + + /// The kernel buffer space reserved for sends/receives on this socket. + /// + /// If the provided value is 0, an `invalid-argument` error is returned. + /// Any other value will never cause an error, but it might be silently clamped and/or rounded. + /// I.e. after setting a value, reading the same setting back may return a different value. + /// + /// Equivalent to the SO_RCVBUF and SO_SNDBUF socket options. + /// + /// # Typical errors + /// - `invalid-argument`: (set) The provided value was 0. + @since(version = 0.2.0) + receive-buffer-size: func() -> result; + @since(version = 0.2.0) + set-receive-buffer-size: func(value: u64) -> result<_, error-code>; + @since(version = 0.2.0) + send-buffer-size: func() -> result; + @since(version = 0.2.0) + set-send-buffer-size: func(value: u64) -> result<_, error-code>; + + /// Create a `pollable` which will resolve once the socket is ready for I/O. + /// + /// Note: this function is here for WASI 0.2 only. + /// It's planned to be removed when `future` is natively supported in Preview3. + @since(version = 0.2.0) + subscribe: func() -> pollable; + } + + @since(version = 0.2.0) + resource incoming-datagram-stream { + /// Receive messages on the socket. + /// + /// This function attempts to receive up to `max-results` datagrams on the socket without blocking. + /// The returned list may contain fewer elements than requested, but never more. + /// + /// This function returns successfully with an empty list when either: + /// - `max-results` is 0, or: + /// - `max-results` is greater than 0, but no results are immediately available. + /// This function never returns `error(would-block)`. + /// + /// # Typical errors + /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) + /// - `connection-refused`: The connection was refused. (ECONNREFUSED) + /// + /// # References + /// - + /// - + /// - + /// - + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + receive: func(max-results: u64) -> result, error-code>; + + /// Create a `pollable` which will resolve once the stream is ready to receive again. + /// + /// Note: this function is here for WASI 0.2 only. + /// It's planned to be removed when `future` is natively supported in Preview3. + @since(version = 0.2.0) + subscribe: func() -> pollable; + } + + @since(version = 0.2.0) + resource outgoing-datagram-stream { + /// Check readiness for sending. This function never blocks. + /// + /// Returns the number of datagrams permitted for the next call to `send`, + /// or an error. Calling `send` with more datagrams than this function has + /// permitted will trap. + /// + /// When this function returns ok(0), the `subscribe` pollable will + /// become ready when this function will report at least ok(1), or an + /// error. + /// + /// Never returns `would-block`. + check-send: func() -> result; + + /// Send messages on the socket. + /// + /// This function attempts to send all provided `datagrams` on the socket without blocking and + /// returns how many messages were actually sent (or queued for sending). This function never + /// returns `error(would-block)`. If none of the datagrams were able to be sent, `ok(0)` is returned. + /// + /// This function semantically behaves the same as iterating the `datagrams` list and sequentially + /// sending each individual datagram until either the end of the list has been reached or the first error occurred. + /// If at least one datagram has been sent successfully, this function never returns an error. + /// + /// If the input list is empty, the function returns `ok(0)`. + /// + /// Each call to `send` must be permitted by a preceding `check-send`. Implementations must trap if + /// either `check-send` was not called or `datagrams` contains more items than `check-send` permitted. + /// + /// # Typical errors + /// - `invalid-argument`: The `remote-address` has the wrong address family. (EAFNOSUPPORT) + /// - `invalid-argument`: The IP address in `remote-address` is set to INADDR_ANY (`0.0.0.0` / `::`). (EDESTADDRREQ, EADDRNOTAVAIL) + /// - `invalid-argument`: The port in `remote-address` is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL) + /// - `invalid-argument`: The socket is in "connected" mode and `remote-address` is `some` value that does not match the address passed to `stream`. (EISCONN) + /// - `invalid-argument`: The socket is not "connected" and no value for `remote-address` was provided. (EDESTADDRREQ) + /// - `remote-unreachable`: The remote address is not reachable. (ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN, ENONET) + /// - `connection-refused`: The connection was refused. (ECONNREFUSED) + /// - `datagram-too-large`: The datagram is too large. (EMSGSIZE) + /// + /// # References + /// - + /// - + /// - + /// - + /// - + /// - + /// - + /// - + @since(version = 0.2.0) + send: func(datagrams: list) -> result; + + /// Create a `pollable` which will resolve once the stream is ready to send again. + /// + /// Note: this function is here for WASI 0.2 only. + /// It's planned to be removed when `future` is natively supported in Preview3. + @since(version = 0.2.0) + subscribe: func() -> pollable; + } +} diff --git a/template-golem-agent-ts/wit/deps/sockets/world.wit b/template-golem-agent-ts/wit/deps/sockets/world.wit new file mode 100644 index 000000000..2f0ad0d7c --- /dev/null +++ b/template-golem-agent-ts/wit/deps/sockets/world.wit @@ -0,0 +1,19 @@ +package wasi:sockets@0.2.3; + +@since(version = 0.2.0) +world imports { + @since(version = 0.2.0) + import instance-network; + @since(version = 0.2.0) + import network; + @since(version = 0.2.0) + import udp; + @since(version = 0.2.0) + import udp-create-socket; + @since(version = 0.2.0) + import tcp; + @since(version = 0.2.0) + import tcp-create-socket; + @since(version = 0.2.0) + import ip-name-lookup; +} diff --git a/template-golem-agent-ts/wit/main.wit b/template-golem-agent-ts/wit/main.wit new file mode 100644 index 000000000..2ebb71344 --- /dev/null +++ b/template-golem-agent-ts/wit/main.wit @@ -0,0 +1,7 @@ +package golem:agent-ts; + +world golem-agent { + import golem:api/host@1.1.7; + import golem:rpc/types@0.2.2; + export golem:agent/guest; +} From 07feffc22b205ed132b9565ee9959de991e08afb Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Fri, 1 Aug 2025 17:30:50 +0200 Subject: [PATCH 04/12] Make the agent template work --- golem-cli/src/app/build/command.rs | 40 ++ golem-cli/src/app/build/componentize.rs | 66 +-- golem-cli/src/app/build/gen_rpc.rs | 382 ++++++++++-------- golem-cli/src/model/agent/extraction.rs | 55 +-- golem-cli/src/model/app_raw.rs | 16 + golem-cli/src/model/template.rs | 18 + golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs | 254 ++++++++---- .../js/componentizejs-app-common/.gitignore | 3 - .../common-js/golem.yaml | 36 -- .../common-js/rollup.config.component.mjs | 53 --- .../common-js/scripts/jco-wrapper.mjs | 53 --- .../common-js/src/lib.ts | 3 - .../js/componentizejs-app-common/golem.yaml | 7 - .../componentizejs-app-common/metadata.json | 11 - .../js/componentizejs-app-common/package.json | 21 - .../componentizejs-app-common/wit/common.wit | 7 - .../components-js/.gitignore | 3 - .../components-js/component-name/golem.yaml | 7 - .../components-js/component-name/package.json | 3 - .../component-name/rollup.config.mjs | 3 - .../components-js/component-name/src/main.js | 11 - .../components-js/component-name/wit/main.wit | 12 - .../metadata.json | 4 - .../components-js/.gitignore | 3 - .../components-js/component-name/golem.yaml | 7 - .../components-js/component-name/package.json | 3 - .../component-name/rollup.config.mjs | 3 - .../components-js/component-name/src/main.js | 12 - .../components-js/component-name/wit/main.wit | 13 - .../metadata.json | 4 - .../components-js/.gitignore | 3 - .../components-js/component-name/golem.yaml | 7 - .../components-js/component-name/package.json | 3 - .../component-name/rollup.config.mjs | 3 - .../components-js/component-name/src/main.js | 40 -- .../components-js/component-name/wit/main.wit | 8 - .../metadata.json | 4 - .../ts/componentizets-app-common/.gitignore | 3 - .../common-ts/golem.yaml | 36 -- .../common-ts/rollup.config.component.mjs | 58 --- .../common-ts/scripts/jco-wrapper.mjs | 53 --- .../common-ts/src/lib.ts | 3 - .../common-ts/tsconfig.component.json | 24 -- .../ts/componentizets-app-common/golem.yaml | 7 - .../componentizets-app-common/metadata.json | 11 - .../ts/componentizets-app-common/package.json | 21 - .../componentizets-app-common/wit/common.wit | 7 - .../components-ts/.gitignore | 3 - .../components-ts/component-name/golem.yaml | 7 - .../components-ts/component-name/package.json | 3 - .../component-name/rollup.config.mjs | 3 - .../components-ts/component-name/src/main.ts | 19 - .../component-name/tsconfig.json | 7 - .../components-ts/component-name/wit/main.wit | 12 - .../metadata.json | 4 - .../components-ts/.gitignore | 3 - .../components-ts/component-name/golem.yaml | 7 - .../components-ts/component-name/package.json | 3 - .../component-name/rollup.config.mjs | 3 - .../components-ts/component-name/src/main.ts | 16 - .../component-name/tsconfig.json | 7 - .../components-ts/component-name/wit/main.wit | 14 - .../metadata.json | 4 - .../ts/ts-agent-app-common/.gitignore | 1 + .../ts-agent-app-common/common-ts/golem.yaml | 43 +- .../common-ts/rollup.config.component.mjs | 65 ++- .../common-ts/tsconfig.component.json | 19 +- .../ts/ts-agent-app-common/metadata.json | 2 +- .../ts/ts-agent-app-common/package.json | 4 +- .../component-name/.agent/main.ts | 15 + .../components-ts/component-name/package.json | 2 +- .../component-name/reflect.config.json | 11 + .../component-name/tsconfig.json | 4 +- .../metadata.json | 2 +- .../ts/ts-app-common/common-ts/golem.yaml | 2 +- .../templates/ts/ts-app-common/metadata.json | 2 +- .../ts/ts-app-component-default/metadata.json | 2 +- .../metadata.json | 2 +- 78 files changed, 582 insertions(+), 1113 deletions(-) delete mode 100644 golem-templates/templates/js/componentizejs-app-common/.gitignore delete mode 100644 golem-templates/templates/js/componentizejs-app-common/common-js/golem.yaml delete mode 100644 golem-templates/templates/js/componentizejs-app-common/common-js/rollup.config.component.mjs delete mode 100644 golem-templates/templates/js/componentizejs-app-common/common-js/scripts/jco-wrapper.mjs delete mode 100644 golem-templates/templates/js/componentizejs-app-common/common-js/src/lib.ts delete mode 100644 golem-templates/templates/js/componentizejs-app-common/golem.yaml delete mode 100644 golem-templates/templates/js/componentizejs-app-common/metadata.json delete mode 100644 golem-templates/templates/js/componentizejs-app-common/package.json delete mode 100644 golem-templates/templates/js/componentizejs-app-common/wit/common.wit delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/.gitignore delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/golem.yaml delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/package.json delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/rollup.config.mjs delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/src/main.js delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/wit/main.wit delete mode 100644 golem-templates/templates/js/componentizejs-app-component-default/metadata.json delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/.gitignore delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/golem.yaml delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/package.json delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/rollup.config.mjs delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/src/main.js delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/wit/main.wit delete mode 100644 golem-templates/templates/js/componentizejs-app-component-example-fetch/metadata.json delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/.gitignore delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/golem.yaml delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/package.json delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/rollup.config.mjs delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/src/main.js delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/wit/main.wit delete mode 100644 golem-templates/templates/js/componentizejs-app-component-wasi-http/metadata.json delete mode 100644 golem-templates/templates/ts/componentizets-app-common/.gitignore delete mode 100644 golem-templates/templates/ts/componentizets-app-common/common-ts/golem.yaml delete mode 100644 golem-templates/templates/ts/componentizets-app-common/common-ts/rollup.config.component.mjs delete mode 100644 golem-templates/templates/ts/componentizets-app-common/common-ts/scripts/jco-wrapper.mjs delete mode 100644 golem-templates/templates/ts/componentizets-app-common/common-ts/src/lib.ts delete mode 100644 golem-templates/templates/ts/componentizets-app-common/common-ts/tsconfig.component.json delete mode 100644 golem-templates/templates/ts/componentizets-app-common/golem.yaml delete mode 100644 golem-templates/templates/ts/componentizets-app-common/metadata.json delete mode 100644 golem-templates/templates/ts/componentizets-app-common/package.json delete mode 100644 golem-templates/templates/ts/componentizets-app-common/wit/common.wit delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/.gitignore delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/golem.yaml delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/package.json delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/rollup.config.mjs delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/src/main.ts delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/tsconfig.json delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/wit/main.wit delete mode 100644 golem-templates/templates/ts/componentizets-app-component-default/metadata.json delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/.gitignore delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/golem.yaml delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/package.json delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/rollup.config.mjs delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/src/main.ts delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/tsconfig.json delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/wit/main.wit delete mode 100644 golem-templates/templates/ts/componentizets-app-component-example-fetch/metadata.json create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts create mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json diff --git a/golem-cli/src/app/build/command.rs b/golem-cli/src/app/build/command.rs index 231ab0e25..9b8e1afc7 100644 --- a/golem-cli/src/app/build/command.rs +++ b/golem-cli/src/app/build/command.rs @@ -25,6 +25,7 @@ use crate::model::app::AppComponentName; use crate::model::app_raw; use crate::model::app_raw::{ ComposeAgentWrapper, GenerateAgentWrapper, GenerateQuickJSCrate, GenerateQuickJSDTS, + InjectToPrebuiltQuickJs, }; use crate::wasm_rpc_stubgen::commands; use anyhow::{anyhow, Context}; @@ -61,6 +62,9 @@ pub async fn execute_build_command( app_raw::BuildCommand::ComposeAgentWrapper(command) => { execute_compose_agent_wrapper(&base_build_dir, command).await } + app_raw::BuildCommand::InjectToPrebuiltQuickJs(command) => { + execute_inject_to_prebuilt_quick_js(&base_build_dir, command).await + } } } @@ -134,6 +138,42 @@ async fn execute_compose_agent_wrapper( Ok(()) } +async fn execute_inject_to_prebuilt_quick_js( + base_build_dir: &Path, + command: &InjectToPrebuiltQuickJs, +) -> anyhow::Result<()> { + let base_build_dir = Utf8Path::from_path(base_build_dir).unwrap(); + let base_wasm = base_build_dir.join(&command.inject_to_prebuilt_quickjs); + let js_module = base_build_dir.join(&command.module); + let js_module_contents = std::fs::read_to_string(&js_module) + .with_context(|| format!("Failed to read JS module from {js_module}"))?; + let js_module_wasm = base_build_dir.join(&command.module_wasm); + let target = base_build_dir.join(&command.into); + + log_action( + "Injecting", + format!( + "JS module {} into QuickJS WASM {}", + js_module.log_color_highlight(), + base_wasm.log_color_highlight() + ), + ); + + moonbit_component_generator::get_script::generate_get_script_component( + &js_module_contents, + &js_module_wasm, + )?; + + commands::composition::compose( + base_wasm.as_std_path(), + &[js_module_wasm.as_std_path().to_path_buf()], + target.as_std_path(), + ) + .await?; + + Ok(()) +} + pub fn execute_custom_command( ctx: &ApplicationContext, command_name: &str, diff --git a/golem-cli/src/app/build/componentize.rs b/golem-cli/src/app/build/componentize.rs index 199c95d9f..3558442b5 100644 --- a/golem-cli/src/app/build/componentize.rs +++ b/golem-cli/src/app/build/componentize.rs @@ -16,9 +16,6 @@ use crate::app::build::command::execute_build_command; use crate::app::context::ApplicationContext; use crate::log::{log_action, log_warn_action, LogColorize, LogIndent}; use crate::model::app::{AppComponentName, DependencyType}; -use crate::wasm_rpc_stubgen::wit_resolve::ExportedFunction; -use anyhow::{anyhow, Context}; -use heck::ToLowerCamelCase; use std::collections::{BTreeSet, HashMap}; pub async fn componentize(ctx: &mut ApplicationContext) -> anyhow::Result<()> { @@ -48,9 +45,7 @@ pub async fn componentize(ctx: &mut ApplicationContext) -> anyhow::Result<()> { ); let _indent = LogIndent::new(); - let env_vars = build_step_env_vars(ctx, &component_name) - .context("Failed to get env vars for build step")?; - + let env_vars = HashMap::new(); for build_step in component_properties.build.clone() { execute_build_command(ctx, &component_name, &build_step, env_vars.clone()).await?; } @@ -79,62 +74,3 @@ fn components_to_build(ctx: &ApplicationContext) -> BTreeSet { } components_to_build } - -fn build_step_env_vars( - ctx: &ApplicationContext, - component_name: &AppComponentName, -) -> anyhow::Result> { - let result = HashMap::from_iter(vec![( - "JCO_ASYNC_EXPORT_ARGS".to_string(), - jco_async_export_args(ctx, component_name)?.join(" "), - )]); - - Ok(result) -} - -fn jco_async_export_args( - ctx: &ApplicationContext, - component_name: &AppComponentName, -) -> anyhow::Result> { - let resolved = ctx - .wit - .component(component_name)? - .generated_wit_dir() - .ok_or(anyhow!("Failed to get generated wit dir"))?; - - let exported_functions = resolved.exported_functions().context(format!( - "Failed to look up exported_functions for component {component_name}" - ))?; - - let mut result = Vec::new(); - - for function in exported_functions { - match function { - ExportedFunction::Interface { - interface_name, - function_name, - } => { - // This is not a typo, it's a workaround for https://github.com/bytecodealliance/jco/issues/622 - result.push("--async-imports".to_string()); - result.push(format!("{interface_name}#{function_name}")); - } - ExportedFunction::InlineInterface { - export_name, - function_name, - } => { - // This is not a typo, it's a workaround for https://github.com/bytecodealliance/jco/issues/622 - result.push("--async-imports".to_string()); - let transformed = export_name.to_lower_camel_case(); - result.push(format!("{transformed}#{function_name}")); - } - ExportedFunction::InlineFunction { - world_name, - function_name, - } => { - result.push("--async-exports".to_string()); - result.push(format!("{world_name}#{function_name}")); - } - } - } - Ok(result) -} diff --git a/golem-cli/src/app/build/gen_rpc.rs b/golem-cli/src/app/build/gen_rpc.rs index 215b9ed9f..2c2ee2640 100644 --- a/golem-cli/src/app/build/gen_rpc.rs +++ b/golem-cli/src/app/build/gen_rpc.rs @@ -17,7 +17,7 @@ use crate::app::build::{delete_path_logged, env_var_flag, is_up_to_date}; use crate::app::context::ApplicationContext; use crate::fs; use crate::fs::PathExtra; -use crate::log::{log_action, log_skipping_up_to_date, LogColorize, LogIndent}; +use crate::log::{log_action, log_skipping_up_to_date, log_warn_action, LogColorize, LogIndent}; use crate::model::app::{ AppComponentName, BinaryComponentSource, DependencyType, DependentAppComponent, }; @@ -81,167 +81,181 @@ async fn create_generated_base_wit( let component_source_wit = ctx .application .component_source_wit(component_name, ctx.build_profile()); - let inputs = { - let mut inputs = ctx.application.wit_deps(); - inputs.push(component_source_wit.clone()); - inputs - }; - let component_generated_base_wit = ctx.application.component_generated_base_wit(component_name); - let task_result_marker = TaskResultMarker::new( - &ctx.application.task_result_marker_dir(), - ComponentGeneratorMarkerHash { - component_name, - generator_kind: "base_wit", - }, - )?; - if is_up_to_date( - ctx.config.skip_up_to_date_checks - || !task_result_marker.is_up_to_date() - || !ctx.wit.is_dep_graph_up_to_date(component_name)?, - || inputs, - || [component_generated_base_wit.clone()], - ) { - log_skipping_up_to_date(format!( - "creating generated base wit directory for {}", - component_name.as_str().log_color_highlight() - )); - Ok(false) - } else { - log_action( - "Creating", - format!( - "generated base wit directory for {}", - component_name.as_str().log_color_highlight(), - ), - ); + if component_source_wit.is_dir() { + let inputs = { + let mut inputs = ctx.application.wit_deps(); + inputs.push(component_source_wit.clone()); + inputs + }; + let component_generated_base_wit = + ctx.application.component_generated_base_wit(component_name); + let task_result_marker = TaskResultMarker::new( + &ctx.application.task_result_marker_dir(), + ComponentGeneratorMarkerHash { + component_name, + generator_kind: "base_wit", + }, + )?; - task_result_marker.result( - (async { - let _indent = LogIndent::new(); + if is_up_to_date( + ctx.config.skip_up_to_date_checks + || !task_result_marker.is_up_to_date() + || !ctx.wit.is_dep_graph_up_to_date(component_name)?, + || inputs, + || [component_generated_base_wit.clone()], + ) { + log_skipping_up_to_date(format!( + "creating generated base wit directory for {}", + component_name.as_str().log_color_highlight() + )); + Ok(false) + } else { + log_action( + "Creating", + format!( + "generated base wit directory for {}", + component_name.as_str().log_color_highlight(), + ), + ); + + task_result_marker.result( + (async { + let _indent = LogIndent::new(); - delete_path_logged( - "generated base wit directory", - &component_generated_base_wit, - )?; - copy_wit_sources(&component_source_wit, &component_generated_base_wit)?; - - let mut missing_package_deps = ctx - .wit - .missing_generic_source_package_deps(component_name)?; - let mut packages_from_lib_deps = BTreeSet::new(); - - { - let library_dependencies = ctx - .application - .component_dependencies(component_name) - .iter() - .filter(|dep| dep.dep_type == DependencyType::Wasm) - .collect::>(); - - if !library_dependencies.is_empty() { - log_action( - "Extracting", - format!( - "WIT interface of library dependencies to {}", - component_generated_base_wit.log_color_highlight() - ), - ); - let _indent = LogIndent::new(); - for library_dep in &library_dependencies { - // TODO: adding WIT packages from AppComponent wasm dependencies is not supported yet (we don't have a compiled WASM for them at this point) - if !matches!( - library_dep.source, - BinaryComponentSource::AppComponent { .. } - ) { - let path = ctx.resolve_binary_component_source(library_dep).await?; - let result = extract_wasm_interface_as_wit_dep( - ctx.common_wit_deps()?, - &library_dep.source.to_string(), - &path, - &component_generated_base_wit, - ) - .with_context(|| { - format!( - "Failed to extract WIT interface of library dependency {}", - library_dep.source.to_string().log_color_highlight() + delete_path_logged( + "generated base wit directory", + &component_generated_base_wit, + )?; + copy_wit_sources(&component_source_wit, &component_generated_base_wit)?; + + let mut missing_package_deps = ctx + .wit + .missing_generic_source_package_deps(component_name)?; + let mut packages_from_lib_deps = BTreeSet::new(); + + { + let library_dependencies = ctx + .application + .component_dependencies(component_name) + .iter() + .filter(|dep| dep.dep_type == DependencyType::Wasm) + .collect::>(); + + if !library_dependencies.is_empty() { + log_action( + "Extracting", + format!( + "WIT interface of library dependencies to {}", + component_generated_base_wit.log_color_highlight() + ), + ); + let _indent = LogIndent::new(); + for library_dep in &library_dependencies { + // TODO: adding WIT packages from AppComponent wasm dependencies is not supported yet (we don't have a compiled WASM for them at this point) + if !matches!( + library_dep.source, + BinaryComponentSource::AppComponent { .. } + ) { + let path = ctx.resolve_binary_component_source(library_dep).await?; + let result = extract_wasm_interface_as_wit_dep( + ctx.common_wit_deps()?, + &library_dep.source.to_string(), + &path, + &component_generated_base_wit, ) - })?; - packages_from_lib_deps.extend(result.new_packages); - missing_package_deps.extend(result.required_common_packages); + .with_context(|| { + format!( + "Failed to extract WIT interface of library dependency {}", + library_dep.source.to_string().log_color_highlight() + ) + })?; + packages_from_lib_deps.extend(result.new_packages); + missing_package_deps.extend(result.required_common_packages); + } } } } - } - { - missing_package_deps.retain(|name| !packages_from_lib_deps.contains(name)); + { + missing_package_deps.retain(|name| !packages_from_lib_deps.contains(name)); - if !missing_package_deps.is_empty() { - log_action("Adding", "package deps"); - let _indent = LogIndent::new(); + if !missing_package_deps.is_empty() { + log_action("Adding", "package deps"); + let _indent = LogIndent::new(); - ctx.common_wit_deps() - .with_context(|| { - format!( - "Failed to add package dependencies for {}, missing packages: {}", - component_name.as_str().log_color_highlight(), - missing_package_deps - .iter() - .map(|s| s.to_string().log_color_highlight()) - .join(", ") - ) - })? - .add_packages_with_transitive_deps_to_wit_dir( - &missing_package_deps, - &component_generated_base_wit, - ) - .with_context(|| { - format!( - "Failed to add package dependencies for {} ({})", - component_name.as_str().log_color_highlight(), - component_source_wit.log_color_highlight() + ctx.common_wit_deps() + .with_context(|| { + format!( + "Failed to add package dependencies for {}, missing packages: {}", + component_name.as_str().log_color_highlight(), + missing_package_deps + .iter() + .map(|s| s.to_string().log_color_highlight()) + .join(", ") + ) + })? + .add_packages_with_transitive_deps_to_wit_dir( + &missing_package_deps, + &component_generated_base_wit, ) - })?; + .with_context(|| { + format!( + "Failed to add package dependencies for {} ({})", + component_name.as_str().log_color_highlight(), + component_source_wit.log_color_highlight() + ) + })?; + } } - } - - { - let component_exports_package_deps = - ctx.wit.component_exports_package_deps(component_name)?; - if !component_exports_package_deps.is_empty() { - log_action("Adding", "component exports package dependencies"); - let _indent = LogIndent::new(); - for (dep_exports_package_name, dep_component_name) in - &component_exports_package_deps - { - ctx.component_base_output_wit_deps(dep_component_name)? - .add_packages_with_transitive_deps_to_wit_dir( - &[dep_exports_package_name.clone()], - &component_generated_base_wit, - )?; + { + let component_exports_package_deps = + ctx.wit.component_exports_package_deps(component_name)?; + if !component_exports_package_deps.is_empty() { + log_action("Adding", "component exports package dependencies"); + let _indent = LogIndent::new(); + + for (dep_exports_package_name, dep_component_name) in + &component_exports_package_deps + { + ctx.component_base_output_wit_deps(dep_component_name)? + .add_packages_with_transitive_deps_to_wit_dir( + &[dep_exports_package_name.clone()], + &component_generated_base_wit, + )?; + } } } - } - { - log_action( - "Extracting", - format!( - "exports package from {} to {}", - component_source_wit.log_color_highlight(), - component_generated_base_wit.log_color_highlight() - ), - ); - let _indent = LogIndent::new(); - extract_exports_as_wit_dep(&component_generated_base_wit)? - } + { + log_action( + "Extracting", + format!( + "exports package from {} to {}", + component_source_wit.log_color_highlight(), + component_generated_base_wit.log_color_highlight() + ), + ); + let _indent = LogIndent::new(); + extract_exports_as_wit_dep(&component_generated_base_wit)? + } - Ok(true) - }) - .await, - ) + Ok(true) + }) + .await, + ) + } + } else { + log_warn_action( + "Skipping", + format!( + "creating generated base wit directory for {}, {}", + component_name.as_str().log_color_highlight(), + "source WIT points to a WASM component".log_color_ok_highlight() + ), + ); + Ok(false) } } @@ -250,45 +264,57 @@ fn create_generated_wit( component_name: &AppComponentName, ) -> Result { let component_generated_base_wit = ctx.application.component_generated_base_wit(component_name); - let component_generated_wit = ctx - .application - .component_generated_wit(component_name, ctx.build_profile()); - let task_result_marker = TaskResultMarker::new( - &ctx.application.task_result_marker_dir(), - ComponentGeneratorMarkerHash { - component_name, - generator_kind: "wit", - }, - )?; + if component_generated_base_wit.exists() { + let component_generated_wit = ctx + .application + .component_generated_wit(component_name, ctx.build_profile()); + let task_result_marker = TaskResultMarker::new( + &ctx.application.task_result_marker_dir(), + ComponentGeneratorMarkerHash { + component_name, + generator_kind: "wit", + }, + )?; - if is_up_to_date( - ctx.config.skip_up_to_date_checks - || !task_result_marker.is_up_to_date() - || !ctx.wit.is_dep_graph_up_to_date(component_name)?, - || [component_generated_base_wit.clone()], - || [component_generated_wit.clone()], - ) { - log_skipping_up_to_date(format!( - "creating generated wit directory for {}", - component_name.as_str().log_color_highlight() - )); - Ok(false) + if is_up_to_date( + ctx.config.skip_up_to_date_checks + || !task_result_marker.is_up_to_date() + || !ctx.wit.is_dep_graph_up_to_date(component_name)?, + || [component_generated_base_wit.clone()], + || [component_generated_wit.clone()], + ) { + log_skipping_up_to_date(format!( + "creating generated wit directory for {}", + component_name.as_str().log_color_highlight() + )); + Ok(false) + } else { + log_action( + "Creating", + format!( + "generated wit directory for {}", + component_name.as_str().log_color_highlight(), + ), + ); + + task_result_marker.result((|| { + let _indent = LogIndent::new(); + delete_path_logged("generated wit directory", &component_generated_wit)?; + copy_wit_sources(&component_generated_base_wit, &component_generated_wit)?; + add_client_deps(ctx, component_name)?; + Ok(true) + })()) + } } else { - log_action( - "Creating", + log_warn_action( + "Skipping", format!( - "generated wit directory for {}", + "creating generated wit directory for {}, {}", component_name.as_str().log_color_highlight(), + "no base WIT directory".log_color_ok_highlight() ), ); - - task_result_marker.result((|| { - let _indent = LogIndent::new(); - delete_path_logged("generated wit directory", &component_generated_wit)?; - copy_wit_sources(&component_generated_base_wit, &component_generated_wit)?; - add_client_deps(ctx, component_name)?; - Ok(true) - })()) + Ok(false) } } diff --git a/golem-cli/src/model/agent/extraction.rs b/golem-cli/src/model/agent/extraction.rs index 549c36131..ea1f0e99e 100644 --- a/golem-cli/src/model/agent/extraction.rs +++ b/golem-cli/src/model/agent/extraction.rs @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. +use crate::log::{log_action, LogColorize}; use anyhow::anyhow; use golem_common::model::agent::AgentType; use rib::ParsedFunctionName; -use std::collections::HashMap; use std::path::Path; use std::sync::{Arc, Mutex}; -use tracing::debug; +use tracing::{debug, error}; use wasmtime::component::types::{ComponentInstance, ComponentItem}; use wasmtime::component::{ Component, Func, Instance, Linker, LinkerInstance, ResourceTable, ResourceType, Type, @@ -34,18 +34,31 @@ const FUNCTION_NAME: &str = "discover-agent-types"; /// Extracts the implemented agent types from the given WASM component, assuming it implements the `golem:agent/guest` interface. /// If it does not, it fails. pub async fn extract_agent_types(wasm_path: &Path) -> anyhow::Result> { + log_action( + "Extracting", + format!( + "agent types from {}", + wasm_path + .to_string_lossy() + .to_string() + .log_color_highlight() + ), + ); + let mut config = wasmtime::Config::default(); config.async_support(true); config.wasm_component_model(true); + let engine = Engine::new(&config)?; let mut linker: Linker = Linker::new(&engine); + linker.allow_shadowing(true); wasmtime_wasi::p2::add_to_linker_with_options_async( &mut linker, &wasmtime_wasi::p2::bindings::LinkOptions::default(), )?; - let (wasi, io) = WasiCtx::builder().build(); + let (wasi, io) = WasiCtx::builder().inherit_stdout().inherit_stderr().build(); let host = Host { table: Arc::new(Mutex::new(ResourceTable::new())), wasi: Arc::new(Mutex::new(wasi)), @@ -72,6 +85,7 @@ pub async fn extract_agent_types(wasm_path: &Path) -> anyhow::Result> = HashMap::new(); let mut functions = Vec::new(); for (inner_name, inner_item) in inst.exports(engine) { @@ -216,17 +229,6 @@ fn dynamic_import( )) .map_err(|err| anyhow!(format!("Unexpected linking error: {name}.{{{inner_name}}} is not a valid function name: {err}")))?; - if let Some(resource_name) = function_name.function.resource_name() { - let methods = resources - .entry((name.clone(), resource_name.clone())) - .or_default(); - methods.push(MethodInfo { - method_name: inner_name.clone(), - params: param_types.clone(), - results: result_types.clone(), - }); - } - functions.push(FunctionInfo { name: function_name, params: param_types, @@ -239,25 +241,30 @@ fn dynamic_import( ComponentItem::ComponentInstance(_) => {} ComponentItem::Type(_) => {} ComponentItem::Resource(_resource) => { - resources.entry((name, inner_name)).or_default(); + if &inner_name != "pollable" + && &inner_name != "input-stream" + && &inner_name != "output-stream" + { + // TODO: figure out how to do this properly + instance.resource( + &inner_name, + ResourceType::host::(), + |_store, _rep| Ok(()), + )?; + } } } } - for ((_interface_name, resource_name), _methods) in resources { - instance.resource( - &resource_name, - ResourceType::host::(), - |_store, _rep| Ok(()), - )?; - } - for function in functions { instance.func_new_async( &function.name.function.function_name(), move |_store, _params, _results| { let function_name = function.name.clone(); Box::new(async move { + error!( + "External function called in get-agent-definitions: {function_name}", + ); Err(anyhow!( "External function called in get-agent-definitions: {function_name}" )) diff --git a/golem-cli/src/model/app_raw.rs b/golem-cli/src/model/app_raw.rs index 2fa49e7b2..cbe18458b 100644 --- a/golem-cli/src/model/app_raw.rs +++ b/golem-cli/src/model/app_raw.rs @@ -324,6 +324,7 @@ pub enum BuildCommand { QuickJSDTS(GenerateQuickJSDTS), AgentWrapper(GenerateAgentWrapper), ComposeAgentWrapper(ComposeAgentWrapper), + InjectToPrebuiltQuickJs(InjectToPrebuiltQuickJs), } impl BuildCommand { @@ -334,6 +335,7 @@ impl BuildCommand { BuildCommand::QuickJSDTS(_) => None, BuildCommand::AgentWrapper(_) => None, BuildCommand::ComposeAgentWrapper(_) => None, + BuildCommand::InjectToPrebuiltQuickJs(_) => None, } } @@ -344,6 +346,7 @@ impl BuildCommand { BuildCommand::QuickJSDTS(cmd) => vec![cmd.generate_quickjs_dts.clone()], BuildCommand::AgentWrapper(cmd) => vec![cmd.generate_agent_wrapper.clone()], BuildCommand::ComposeAgentWrapper(cmd) => vec![cmd.to.clone()], + BuildCommand::InjectToPrebuiltQuickJs(cmd) => vec![cmd.into.clone()], } } } @@ -403,6 +406,19 @@ pub struct ComposeAgentWrapper { pub to: String, } +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct InjectToPrebuiltQuickJs { + /// The path to the prebuilt QuickJS WASM file that loads a JS module through a get-script import + pub inject_to_prebuilt_quickjs: String, + /// The path to the JS module + pub module: String, + /// The path to the intermediate WASM containing the JS module + pub module_wasm: String, + /// The path to the output WASM component containing the injected JS module + pub into: String, +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase", deny_unknown_fields)] pub struct Dependency { diff --git a/golem-cli/src/model/template.rs b/golem-cli/src/model/template.rs index 1dadbb067..60a5aa759 100644 --- a/golem-cli/src/model/template.rs +++ b/golem-cli/src/model/template.rs @@ -88,6 +88,11 @@ impl Template for app_raw::BuildCommand { app_raw::BuildCommand::ComposeAgentWrapper(compose_agent_wrapper) => Ok( app_raw::BuildCommand::ComposeAgentWrapper(compose_agent_wrapper.render(env, ctx)?), ), + app_raw::BuildCommand::InjectToPrebuiltQuickJs(inject_to_prebuilt_quickjs) => { + Ok(app_raw::BuildCommand::InjectToPrebuiltQuickJs( + inject_to_prebuilt_quickjs.render(env, ctx)?, + )) + } } } } @@ -167,6 +172,19 @@ impl Template for app_raw::ComposeAgentWrapper { } } +impl Template for app_raw::InjectToPrebuiltQuickJs { + type Rendered = app_raw::InjectToPrebuiltQuickJs; + + fn render(&self, env: &Environment, ctx: &C) -> Result { + Ok(app_raw::InjectToPrebuiltQuickJs { + inject_to_prebuilt_quickjs: self.inject_to_prebuilt_quickjs.render(env, ctx)?, + module: self.module.render(env, ctx)?, + module_wasm: self.module_wasm.render(env, ctx)?, + into: self.into.render(env, ctx)?, + }) + } +} + impl Template for serde_json::Value { type Rendered = serde_json::Value; diff --git a/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs b/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs index 1e3d17d0a..6eccecdcc 100644 --- a/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs +++ b/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs @@ -11,6 +11,7 @@ use indoc::formatdoc; use itertools::Itertools; use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; use std::path::{Path, PathBuf}; +use wit_parser::decoding::DecodedWasm; use wit_parser::{ InterfaceId, Package, PackageId, PackageName, PackageSourceMap, Resolve, UnresolvedPackageGroup, WorldItem, @@ -29,10 +30,19 @@ pub struct ResolvedWitDir { } impl ResolvedWitDir { - pub fn new(path: &Path) -> anyhow::Result { + pub fn new(path: &Path) -> anyhow::Result { resolve_wit_dir(path) } + pub fn from_wasm(path: &Path, wasm: &DecodedWasm) -> Self { + Self { + path: path.to_path_buf(), + resolve: wasm.resolve().clone(), + package_id: wasm.package(), + package_sources: IndexMap::new(), + } + } + pub fn package(&self, package_id: PackageId) -> anyhow::Result<&Package> { self.resolve.packages.get(package_id).with_context(|| { anyhow!( @@ -268,7 +278,7 @@ fn collect_package_sources( pub struct ResolvedWitComponent { main_package_name: PackageName, - resolved_generated_wit_dir: Option, + resolved_wit_dir: Option, app_component_deps: HashSet, source_referenced_package_deps: HashSet, source_contained_package_deps: HashSet, @@ -276,12 +286,6 @@ pub struct ResolvedWitComponent { generated_component_deps: Option>, } -impl ResolvedWitComponent { - pub fn generated_wit_dir(&self) -> Option<&ResolvedWitDir> { - self.resolved_generated_wit_dir.as_ref() - } -} - #[derive(Default)] enum ExtractedAgentTypes { #[default] @@ -427,76 +431,169 @@ impl ResolvedWitApplication { let source_wit_dir = app.component_source_wit(component_name, profile); let generated_wit_dir = app.component_generated_wit(component_name, profile); - log_action( - "Resolving", - format!( - "component wit dirs for {} ({}, {})", - component_name.as_str().log_color_highlight(), - source_wit_dir.log_color_highlight(), - generated_wit_dir.log_color_highlight(), - ), - ); + let app_component_deps = app + .component_dependencies(component_name) + .iter() + .filter(|&dep| dep.dep_type.is_wasm_rpc()) + .filter_map(|dep| dep.as_dependent_app_component()) + .map(|dep| dep.name) + .collect(); + + let resolved_component = if source_wit_dir.is_dir() { + log_action( + "Resolving", + format!( + "component wit dirs for {} ({}, {})", + component_name.as_str().log_color_highlight(), + source_wit_dir.log_color_highlight(), + generated_wit_dir.log_color_highlight(), + ), + ); + + (|| -> anyhow::Result { + let unresolved_source_package_group = + UnresolvedPackageGroup::parse_dir(&source_wit_dir).with_context(|| { + anyhow!( + "Failed to parse component {} main package in source wit dir {}", + component_name.as_str().log_color_error_highlight(), + source_wit_dir.log_color_highlight(), + ) + })?; - let resolved_component = (|| -> anyhow::Result { - let unresolved_source_package_group = - UnresolvedPackageGroup::parse_dir(&source_wit_dir).with_context(|| { + let source_referenced_package_deps = unresolved_source_package_group + .main + .foreign_deps + .keys() + .cloned() + .collect(); + + let source_contained_package_deps = { + let deps_path = source_wit_dir.join("deps"); + if !deps_path.exists() { + HashSet::new() + } else { + parse_wit_deps_dir(&deps_path)? + .into_iter() + .map(|package_group| package_group.main.name) + .collect::>() + } + }; + + let main_package_name = unresolved_source_package_group.main.name.clone(); + + let resolved_generated_wit_dir = ResolvedWitDir::new(&generated_wit_dir).ok(); + let generated_has_same_main_package_name = resolved_generated_wit_dir + .as_ref() + .map(|wit| wit.main_package()) + .transpose()? + .map(|generated_main_package| { + main_package_name == generated_main_package.name + }) + .unwrap_or_default(); + let resolved_generated_wit_dir = generated_has_same_main_package_name + .then_some(resolved_generated_wit_dir) + .flatten(); + + Ok(ResolvedWitComponent { + main_package_name, + resolved_wit_dir: resolved_generated_wit_dir, + app_component_deps, + source_referenced_package_deps, + source_contained_package_deps, + source_component_deps: Default::default(), + generated_component_deps: Default::default(), + }) + })() + } else { + log_action( + "Resolving", + format!( + "component interface using base WASM for {} ({}, {})", + component_name.as_str().log_color_highlight(), + source_wit_dir.log_color_highlight(), + generated_wit_dir.log_color_highlight(), + ), + ); + + (|| -> anyhow::Result { + let source_wasm = std::fs::read(&source_wit_dir) + .with_context(|| anyhow!("Failed to read the source WIT path as a file"))?; + let wasm = wit_parser::decoding::decode(&source_wasm).with_context(|| { anyhow!( - "Failed to parse component {} main package in source wit dir {}", - component_name.as_str().log_color_error_highlight(), - source_wit_dir.log_color_highlight(), + "Failed to decode the source WIT path as a WASM component: {}", + source_wit_dir.log_color_highlight() ) })?; - let source_referenced_package_deps = unresolved_source_package_group - .main - .foreign_deps - .keys() - .cloned() - .collect(); + // The WASM has no root package name (always root:component with world root) so + // we use the app component name as a main package name + let component_name_str = component_name.as_str(); + let package_name_re = regex::Regex::new( + r"^(?P[^:]+):(?P[^@]+)(?:@(?P.+))?$", + )?; + let captures = package_name_re.captures(component_name_str).ok_or_else(|| { + anyhow!("Invalid component name format: {}", component_name_str) + })?; + let namespace = captures.name("namespace").unwrap().as_str().to_string(); + let name = captures.name("name").unwrap().as_str().to_string(); + let version = captures + .name("version") + .map(|m| m.as_str().to_string()) + .map(|v| semver::Version::parse(&v)) + .transpose()?; + + let main_package_name = PackageName { + namespace, + name, + version, + }; + + // When using a WASM as a "source WIT", we are currently not supporting transforming + // that into a generated WIT dir, just treat it as a static interface definition for + // the given component. So resolved_wit_dir in this case is the resolved _source_ WIT + // parsed from the WASM. + let resolved_wit_dir = ResolvedWitDir::from_wasm(&source_wit_dir, &wasm); + + let resolve = wasm.resolve(); + let root_package_id = wasm.package(); + let root_world_id = resolve.select_world(root_package_id, None)?; + let root_world = resolve.worlds.get(root_world_id).ok_or_else(|| { + anyhow!( + "Failed to get root world from the resolved component interface: {}", + source_wit_dir.log_color_highlight() + ) + })?; - let source_contained_package_deps = { - let deps_path = source_wit_dir.join("deps"); - if !deps_path.exists() { - HashSet::new() - } else { - parse_wit_deps_dir(&deps_path)? - .into_iter() - .map(|package_group| package_group.main.name) - .collect::>() + let mut source_referenced_package_deps = HashSet::new(); + for import in root_world.imports.values() { + if let WorldItem::Interface { id, .. } = import { + let iface = resolve.interfaces.get(*id).ok_or_else(|| { + anyhow!( + "Failed to get interface from the resolved component interface" + ) + })?; + if let Some(package) = iface.package { + let pkg = resolve.packages.get(package).ok_or_else(|| { + anyhow!( + "Failed to get package from the resolved component interface" + ) + })?; + source_referenced_package_deps.insert(pkg.name.clone()); + } + } } - }; - - let main_package_name = unresolved_source_package_group.main.name.clone(); - - let resolved_generated_wit_dir = ResolvedWitDir::new(&generated_wit_dir).ok(); - let generated_has_same_main_package_name = resolved_generated_wit_dir - .as_ref() - .map(|wit| wit.main_package()) - .transpose()? - .map(|generated_main_package| main_package_name == generated_main_package.name) - .unwrap_or_default(); - let resolved_generated_wit_dir = generated_has_same_main_package_name - .then_some(resolved_generated_wit_dir) - .flatten(); - - let app_component_deps = app - .component_dependencies(component_name) - .iter() - .filter(|&dep| dep.dep_type.is_wasm_rpc()) - .filter_map(|dep| dep.as_dependent_app_component()) - .map(|dep| dep.name) - .collect(); - Ok(ResolvedWitComponent { - main_package_name, - resolved_generated_wit_dir, - app_component_deps, - source_referenced_package_deps, - source_contained_package_deps, - source_component_deps: Default::default(), - generated_component_deps: Default::default(), - }) - })(); + Ok(ResolvedWitComponent { + main_package_name, + resolved_wit_dir: Some(resolved_wit_dir), + app_component_deps, + source_referenced_package_deps, + source_contained_package_deps: Default::default(), + source_component_deps: Default::default(), + generated_component_deps: Default::default(), + }) + })() + }; match resolved_component { Ok(resolved_component) => { @@ -539,15 +636,12 @@ impl ResolvedWitApplication { &self.interface_package_to_component, &component.source_referenced_package_deps, ), - component - .resolved_generated_wit_dir - .as_ref() - .map(|wit_dir| { - component_deps( - &self.stub_package_to_component, - wit_dir.resolve.package_names.keys(), - ) - }), + component.resolved_wit_dir.as_ref().map(|wit_dir| { + component_deps( + &self.stub_package_to_component, + wit_dir.resolve.package_names.keys(), + ) + }), ), ); } @@ -721,7 +815,7 @@ impl ResolvedWitApplication { fn extract_agent_types(&mut self, validation: &mut ValidationBuilder) { for (name, component) in &self.components { - if let Some(resolved_wit_dir) = &component.resolved_generated_wit_dir { + if let Some(resolved_wit_dir) = &component.resolved_wit_dir { match resolved_wit_dir.is_agent() { Ok(true) => { log_action( diff --git a/golem-templates/templates/js/componentizejs-app-common/.gitignore b/golem-templates/templates/js/componentizejs-app-common/.gitignore deleted file mode 100644 index 779a47485..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/dist -/golem-temp -/node_modules diff --git a/golem-templates/templates/js/componentizejs-app-common/common-js/golem.yaml b/golem-templates/templates/js/componentizejs-app-common/common-js/golem.yaml deleted file mode 100644 index f006def09..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/common-js/golem.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# golem-app-manifest-header - -templates: - js: - build: - - command: node ../../common-js/scripts/jco-wrapper.mjs guest-types wit-generated --async-mode jspi --async-wasi-exports ${JCO_ASYNC_EXPORT_ARGS} -o src/generated - sources: - - wit-generated - targets: - - src/generated - rmdirs: - - src/generated - mkdirs: - - src/generated - - command: npx rollup -c - sources: - - src - - ../../common-ts - - rollup.config.mjs - - tsconfig.js - targets: - - dist/main.js - - command: npx jco componentize -w wit-generated -o dist/{{ component_name | to_snake_case }}.wasm dist/main.js - sources: - - dist/main.js - targets: - - dist/{{ component_name | to_snake_case }}.wasm - sourceWit: wit - generatedWit: wit-generated - componentWasm: dist/{{ component_name | to_snake_case }}.wasm - linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm - clean: - - dist -customCommands: - js-npm-install: - - command: npm install diff --git a/golem-templates/templates/js/componentizejs-app-common/common-js/rollup.config.component.mjs b/golem-templates/templates/js/componentizejs-app-common/common-js/rollup.config.component.mjs deleted file mode 100644 index 8bbe4a38b..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/common-js/rollup.config.component.mjs +++ /dev/null @@ -1,53 +0,0 @@ -import * as fs from "node:fs"; -import alias from '@rollup/plugin-alias'; -import nodeResolve from "@rollup/plugin-node-resolve"; -import path from "node:path"; -import url from "node:url"; - -export default function componentRollupConfig() { - const dir = path.dirname(url.fileURLToPath(import.meta.url)); - const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; - const generated_interfaces_dir = "src/generated/interfaces"; - - const externalPackages = (() => { - if (!fs.existsSync(generated_interfaces_dir)) { - return []; - } - return fs - .readdirSync(generated_interfaces_dir, {withFileTypes: true}) - .filter(dirent => dirent.isFile() && dirent.name.endsWith(".d.ts")) - .flatMap(dirent => - [...fs.readFileSync(path.join(generated_interfaces_dir, dirent.name)) - .toString() - .matchAll(moduleRegex)] - .map((match) => { - const moduleName = match[1]; - if (moduleName === undefined) { - throw new Error(`Missing match for module name`); - } - return moduleName; - }), - ); - })(); - - console.log("External packages:", externalPackages); - - return { - input: "src/main.js", - output: { - file: "dist/main.js", - format: "esm", - }, - external: externalPackages, - plugins: [ - alias({ - entries: [ - {find: 'common', replacement: path.resolve(dir, "../common-js/src")} - ] - }), - nodeResolve({ - extensions: [".mjs", ".js", ".json", ".node", ".ts"] - }) - ], - }; -} diff --git a/golem-templates/templates/js/componentizejs-app-common/common-js/scripts/jco-wrapper.mjs b/golem-templates/templates/js/componentizejs-app-common/common-js/scripts/jco-wrapper.mjs deleted file mode 100644 index b85756090..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/common-js/scripts/jco-wrapper.mjs +++ /dev/null @@ -1,53 +0,0 @@ -// Thin wrapper around jco, exposing additional options for type generation - -import { program, Option } from 'commander'; - -import { guestTypes } from '../../node_modules/@bytecodealliance/jco/src/cmd/transpile.js'; - -program - .name('typegen') - .usage(' [options]') - -program.command('guest-types') - .description('(experimental) Generate guest types for the given WIT') - .usage(' -o ') - .argument('', 'path to a WIT file or directory') - .option('--name ', 'custom output name') - .option('-n, --world-name ', 'WIT world to generate types for') - .requiredOption('-o, --out-dir ', 'output directory') - .option('-q, --quiet', 'disable output summary') - .option('--feature ', 'enable one specific WIT feature (repeatable)', collectOptions, []) - .option('--all-features', 'enable all features') - .addOption(new Option('--async-mode [mode]', 'EXPERIMENTAL: use async imports and exports').choices(['sync', 'jspi']).preset('sync')) - .option('--async-wasi-exports', 'EXPERIMENTAL: async component exports from WASI interfaces') - .option('--async-exports ', 'EXPERIMENTAL: async component exports (examples: "wasi:cli/run@#run", "handle")') - .option('--async-imports ', 'EXPERIMENTAL: async component imports (examples: "wasi:io/poll@0.2.0#poll", "wasi:io/poll#[method]pollable.block")') - .action(asyncAction(guestTypes)); - -program.showHelpAfterError(); - -program.parse(); - -function collectOptions(value, previous) { - return previous.concat([value]); -} - -function asyncAction (cmd) { - return function () { - const args = [...arguments]; - (async () => { - try { - await cmd.apply(null, args); - } - catch (e) { - process.stdout.write(`(jco ${cmd.name}) `); - if (typeof e === 'string') { - console.error(`{red.bold Error}: ${e}\n`); - } else { - console.error(e); - } - process.exit(1); - } - })(); - }; -} diff --git a/golem-templates/templates/js/componentizejs-app-common/common-js/src/lib.ts b/golem-templates/templates/js/componentizejs-app-common/common-js/src/lib.ts deleted file mode 100644 index b518d31c3..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/common-js/src/lib.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function example_common_function() { - return "hello common"; -} \ No newline at end of file diff --git a/golem-templates/templates/js/componentizejs-app-common/golem.yaml b/golem-templates/templates/js/componentizejs-app-common/golem.yaml deleted file mode 100644 index 752a7ead7..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -includes: -- common-*/golem.yaml -- components-*/*/golem.yaml -witDeps: -- wit/deps diff --git a/golem-templates/templates/js/componentizejs-app-common/metadata.json b/golem-templates/templates/js/componentizejs-app-common/metadata.json deleted file mode 100644 index 532f9070d..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "description": "Composable App Common template for JavaScript", - "appCommonGroup": "componentizejs", - "appCommonSkipIfExists": "common-js/golem.yaml", - "requiresGolemHostWIT": true, - "requiresWASI": true, - "witDepsPaths": [ - "wit/deps" - ], - "transform": false -} \ No newline at end of file diff --git a/golem-templates/templates/js/componentizejs-app-common/package.json b/golem-templates/templates/js/componentizejs-app-common/package.json deleted file mode 100644 index 9c1851d7f..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*" - ], - "dependencies": { - "@golemcloud/golem-ts": "1.5.0" - }, - "devDependencies": { - "@bytecodealliance/jco": "1.10.2", - "@bytecodealliance/componentize-js": "0.18.0", - "@rollup/plugin-alias": "^5.1.1", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-typescript": "^12.1.2", - "@types/node": "^22.10.5", - "rollup": "^4.29.1", - "tslib": "^2.8.1", - "typescript": "^5.7.2" - } -} diff --git a/golem-templates/templates/js/componentizejs-app-common/wit/common.wit b/golem-templates/templates/js/componentizejs-app-common/wit/common.wit deleted file mode 100644 index f74b22880..000000000 --- a/golem-templates/templates/js/componentizejs-app-common/wit/common.wit +++ /dev/null @@ -1,7 +0,0 @@ -// This file is used to make the 'wit' directory compatible with tools such as wit-bindgen. -// -// Do NOT add anything to this file, rather create a 'deps' directory, and place common WIT dependency packages there. -// Such dependencies can be referenced in the component WIT definitions, and will automatically be included when needed -// in the generated component wit directories. - -package common:root; diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/.gitignore b/golem-templates/templates/js/componentizejs-app-component-default/components-js/.gitignore deleted file mode 100644 index a80c710b8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/golem.yaml b/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/golem.yaml deleted file mode 100644 index b8d74db78..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -components: - componentname: - template: js - -# golem-app-manifest-component-hints diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/package.json b/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/package.json deleted file mode 100644 index 514b91ea8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/rollup.config.mjs b/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/rollup.config.mjs deleted file mode 100644 index ae7630523..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../common-js/rollup.config.component.mjs"; - -export default componentRollupConfig(); diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/src/main.js b/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/src/main.js deleted file mode 100644 index cffc29078..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/src/main.js +++ /dev/null @@ -1,11 +0,0 @@ -let state = BigInt(0); - -export const componentNameApi = { - add(value) { - console.log(`Adding ${value} to the counter`); - state += value; - }, - get() { - return state; - } -} diff --git a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/wit/main.wit b/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/wit/main.wit deleted file mode 100644 index 7a10d254e..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/components-js/component-name/wit/main.wit +++ /dev/null @@ -1,12 +0,0 @@ -package pack:name; - -// See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax - -interface component-name-api { - add: func(value: u64); - get: func() -> u64; -} - -world component-name { - export component-name-api; -} diff --git a/golem-templates/templates/js/componentizejs-app-component-default/metadata.json b/golem-templates/templates/js/componentizejs-app-component-default/metadata.json deleted file mode 100644 index bba29b251..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-default/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "The default component template for JavaScript", - "appComponentGroup": "componentizejs" -} \ No newline at end of file diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/.gitignore b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/.gitignore deleted file mode 100644 index a80c710b8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/golem.yaml b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/golem.yaml deleted file mode 100644 index b8d74db78..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -components: - componentname: - template: js - -# golem-app-manifest-component-hints diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/package.json b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/package.json deleted file mode 100644 index 514b91ea8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/rollup.config.mjs b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/rollup.config.mjs deleted file mode 100644 index ae7630523..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../common-js/rollup.config.component.mjs"; - -export default componentRollupConfig(); diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/src/main.js b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/src/main.js deleted file mode 100644 index a55683b27..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/src/main.js +++ /dev/null @@ -1,12 +0,0 @@ - -export const componentNameApi = { - async getLastResult() { - return JSON.stringify(result); - }, - async fetchJson(url) { - const response = await fetch(url); - const responseBody = response.json(); - console.log(responseBody); - return JSON.stringify(responseBody); - }, -} diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/wit/main.wit b/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/wit/main.wit deleted file mode 100644 index 933df63eb..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/components-js/component-name/wit/main.wit +++ /dev/null @@ -1,13 +0,0 @@ -package pack:name; - -// See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax - -interface component-name-api { - get-last-result: func() -> string; - fetch-json: func(url: string) -> string; -} - -world component-name { - import golem:api/host@1.1.7; - export component-name-api; -} diff --git a/golem-templates/templates/js/componentizejs-app-component-example-fetch/metadata.json b/golem-templates/templates/js/componentizejs-app-component-example-fetch/metadata.json deleted file mode 100644 index 663116b48..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-example-fetch/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "A JavaScript worker making a remote request using 'fetch'", - "appComponentGroup": "componentizejs" -} \ No newline at end of file diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/.gitignore b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/.gitignore deleted file mode 100644 index a80c710b8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/golem.yaml b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/golem.yaml deleted file mode 100644 index b8d74db78..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -components: - componentname: - template: js - -# golem-app-manifest-component-hints diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/package.json b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/package.json deleted file mode 100644 index 514b91ea8..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/rollup.config.mjs b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/rollup.config.mjs deleted file mode 100644 index ae7630523..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../common-js/rollup.config.component.mjs"; - -export default componentRollupConfig(); diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/src/main.js b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/src/main.js deleted file mode 100644 index 31a5b6f7a..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/src/main.js +++ /dev/null @@ -1,40 +0,0 @@ -import { ResponseOutparam, OutgoingBody, OutgoingResponse, Fields } from "wasi:http/types@0.2.3"; - -// For a detailed guide see https://github.com/bytecodealliance/jco/tree/main/examples/components/http-hello-world - -/** - * This export represents the `wasi:http/incoming-handler` interface, - * which describes implementing a HTTP handler in WebAssembly using WASI types. - */ -export const incomingHandler = { - /** - * This Javascript will be turned into a WebAssembly component by `jco` and turned into a - * WebAssembly binary with a single export (this `handler` function). - * - * The exported `handle` method is part of the `wasi:http/incoming-handler` interface, - * which defines how to hadle incoming web requests, turning this component into one that can - * serve web requests. - */ - handle: function (incomingRequest, responseOutparam) { - // Start building an outgoing response - const outgoingResponse = new OutgoingResponse(new Fields()); - - // Access the outgoing response body - let outgoingBody = outgoingResponse.body(); - { - // Create a stream for the response body - let outputStream = outgoingBody.write(); - // Write hello world to the response stream - outputStream.blockingWriteAndFlush(new Uint8Array(new TextEncoder().encode("Hello from Javascript!\n"))); - // @ts-ignore: This is required in order to dispose the stream before we return - outputStream[Symbol.dispose](); - } - - // Set the status code for the response - outgoingResponse.setStatusCode(200); - // Finish the response body - OutgoingBody.finish(outgoingBody, undefined); - // Set the created response to an "OK" Result value - ResponseOutparam.set(outgoingResponse, { tag: "ok", val: outgoingResponse }); - }, -}; diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/wit/main.wit b/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/wit/main.wit deleted file mode 100644 index 3e3a8104d..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/components-js/component-name/wit/main.wit +++ /dev/null @@ -1,8 +0,0 @@ -package pack:name; - -// See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax -// See https://github.com/WebAssembly/wasi-http for an introduction to wasi-http - -world component-name { - export wasi:http/incoming-handler@0.2.3; - } diff --git a/golem-templates/templates/js/componentizejs-app-component-wasi-http/metadata.json b/golem-templates/templates/js/componentizejs-app-component-wasi-http/metadata.json deleted file mode 100644 index 1bea9b0a1..000000000 --- a/golem-templates/templates/js/componentizejs-app-component-wasi-http/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "A JavaScript worker implementing wasi:http/incoming-handler. For use with the http-handler api gateway binding type", - "appComponentGroup": "componentizejs" -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-common/.gitignore b/golem-templates/templates/ts/componentizets-app-common/.gitignore deleted file mode 100644 index 779a47485..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/dist -/golem-temp -/node_modules diff --git a/golem-templates/templates/ts/componentizets-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/componentizets-app-common/common-ts/golem.yaml deleted file mode 100644 index 093172b4a..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/common-ts/golem.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# golem-app-manifest-header - -templates: - ts: - build: - - command: node ../../common-ts/scripts/jco-wrapper.mjs guest-types wit-generated --async-mode jspi --async-wasi-exports ${JCO_ASYNC_EXPORT_ARGS} -o src/generated - sources: - - wit-generated - targets: - - src/generated - rmdirs: - - src/generated - mkdirs: - - src/generated - - command: npx rollup -c - sources: - - src - - ../../common-ts - - rollup.config.mjs - - tsconfig.js - targets: - - dist/main.js - - command: npx jco componentize -w wit-generated -o dist/{{ component_name | to_snake_case }}.wasm dist/main.js - sources: - - dist/main.js - targets: - - dist/{{ component_name | to_snake_case }}.wasm - sourceWit: wit - generatedWit: wit-generated - componentWasm: dist/{{ component_name | to_snake_case }}.wasm - linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm - clean: - - dist -customCommands: - ts-npm-install: - - command: npm install diff --git a/golem-templates/templates/ts/componentizets-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/componentizets-app-common/common-ts/rollup.config.component.mjs deleted file mode 100644 index 791da16d3..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/common-ts/rollup.config.component.mjs +++ /dev/null @@ -1,58 +0,0 @@ -import * as fs from "node:fs"; -import alias from '@rollup/plugin-alias'; -import nodeResolve from "@rollup/plugin-node-resolve"; -import path from "node:path"; -import typescript from "@rollup/plugin-typescript"; -import url from "node:url"; - -export default function componentRollupConfig() { - const dir = path.dirname(url.fileURLToPath(import.meta.url)); - const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; - const generated_interfaces_dir = "src/generated/interfaces"; - - const externalPackages = (() => { - if (!fs.existsSync(generated_interfaces_dir)) { - return []; - } - return fs - .readdirSync(generated_interfaces_dir, {withFileTypes: true}) - .filter(dirent => dirent.isFile() && dirent.name.endsWith(".d.ts")) - .flatMap(dirent => - [...fs.readFileSync(path.join(dirent.parentPath, dirent.name)) - .toString() - .matchAll(moduleRegex)] - .map((match) => { - const moduleName = match[1]; - if (moduleName === undefined) { - throw new Error(`Missing match for module name`); - } - return moduleName; - }), - ); - })(); - - console.log("External packages:", externalPackages); - - return { - input: "src/main.ts", - output: { - file: "dist/main.js", - format: "esm", - }, - external: externalPackages, - plugins: [ - alias({ - entries: [ - {find: 'common', replacement: path.resolve(dir, "../common-ts/src")} - ] - }), - nodeResolve({ - extensions: [".mjs", ".js", ".json", ".node", ".ts"] - }), - typescript({ - noEmitOnError: true, - include: ["./src/**/*.ts", "../../common-ts/src/**/*.ts"] - }) - ], - }; -} diff --git a/golem-templates/templates/ts/componentizets-app-common/common-ts/scripts/jco-wrapper.mjs b/golem-templates/templates/ts/componentizets-app-common/common-ts/scripts/jco-wrapper.mjs deleted file mode 100644 index b85756090..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/common-ts/scripts/jco-wrapper.mjs +++ /dev/null @@ -1,53 +0,0 @@ -// Thin wrapper around jco, exposing additional options for type generation - -import { program, Option } from 'commander'; - -import { guestTypes } from '../../node_modules/@bytecodealliance/jco/src/cmd/transpile.js'; - -program - .name('typegen') - .usage(' [options]') - -program.command('guest-types') - .description('(experimental) Generate guest types for the given WIT') - .usage(' -o ') - .argument('', 'path to a WIT file or directory') - .option('--name ', 'custom output name') - .option('-n, --world-name ', 'WIT world to generate types for') - .requiredOption('-o, --out-dir ', 'output directory') - .option('-q, --quiet', 'disable output summary') - .option('--feature ', 'enable one specific WIT feature (repeatable)', collectOptions, []) - .option('--all-features', 'enable all features') - .addOption(new Option('--async-mode [mode]', 'EXPERIMENTAL: use async imports and exports').choices(['sync', 'jspi']).preset('sync')) - .option('--async-wasi-exports', 'EXPERIMENTAL: async component exports from WASI interfaces') - .option('--async-exports ', 'EXPERIMENTAL: async component exports (examples: "wasi:cli/run@#run", "handle")') - .option('--async-imports ', 'EXPERIMENTAL: async component imports (examples: "wasi:io/poll@0.2.0#poll", "wasi:io/poll#[method]pollable.block")') - .action(asyncAction(guestTypes)); - -program.showHelpAfterError(); - -program.parse(); - -function collectOptions(value, previous) { - return previous.concat([value]); -} - -function asyncAction (cmd) { - return function () { - const args = [...arguments]; - (async () => { - try { - await cmd.apply(null, args); - } - catch (e) { - process.stdout.write(`(jco ${cmd.name}) `); - if (typeof e === 'string') { - console.error(`{red.bold Error}: ${e}\n`); - } else { - console.error(e); - } - process.exit(1); - } - })(); - }; -} diff --git a/golem-templates/templates/ts/componentizets-app-common/common-ts/src/lib.ts b/golem-templates/templates/ts/componentizets-app-common/common-ts/src/lib.ts deleted file mode 100644 index b518d31c3..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/common-ts/src/lib.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function example_common_function() { - return "hello common"; -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-common/common-ts/tsconfig.component.json b/golem-templates/templates/ts/componentizets-app-common/common-ts/tsconfig.component.json deleted file mode 100644 index e5fbabbec..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/common-ts/tsconfig.component.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "skipLibCheck": true, - "target": "ES2020", - "noEmit": true, - "lib": [ - "ES2020" - ], - "types": [ - "node" - ], - "moduleResolution": "bundler", - "checkJs": false, - "strict": true, - "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, - "paths": { - "common/*": [ - "../common-ts/src/*" - ] - } - } -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-common/golem.yaml b/golem-templates/templates/ts/componentizets-app-common/golem.yaml deleted file mode 100644 index 752a7ead7..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -includes: -- common-*/golem.yaml -- components-*/*/golem.yaml -witDeps: -- wit/deps diff --git a/golem-templates/templates/ts/componentizets-app-common/metadata.json b/golem-templates/templates/ts/componentizets-app-common/metadata.json deleted file mode 100644 index 236135b1e..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "description": "Composable App Common template for TypeScript", - "appCommonGroup": "componentizejs", - "appCommonSkipIfExists": "common-ts/golem.yaml", - "requiresGolemHostWIT": true, - "requiresWASI": true, - "witDepsPaths": [ - "wit/deps" - ], - "transform": false -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-common/package.json b/golem-templates/templates/ts/componentizets-app-common/package.json deleted file mode 100644 index 361a4da76..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "app", - "workspaces": [ - "common-ts/*/*", - "components-ts/*/*" - ], - "dependencies": { - "@golemcloud/golem-ts": "1.5.0" - }, - "devDependencies": { - "@bytecodealliance/jco": "1.10.2", - "@bytecodealliance/componentize-js": "0.18.0", - "@rollup/plugin-alias": "^5.1.1", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-typescript": "^12.1.2", - "@types/node": "^22.10.5", - "rollup": "^4.29.1", - "tslib": "^2.8.1", - "typescript": "^5.7.2" - } -} diff --git a/golem-templates/templates/ts/componentizets-app-common/wit/common.wit b/golem-templates/templates/ts/componentizets-app-common/wit/common.wit deleted file mode 100644 index f74b22880..000000000 --- a/golem-templates/templates/ts/componentizets-app-common/wit/common.wit +++ /dev/null @@ -1,7 +0,0 @@ -// This file is used to make the 'wit' directory compatible with tools such as wit-bindgen. -// -// Do NOT add anything to this file, rather create a 'deps' directory, and place common WIT dependency packages there. -// Such dependencies can be referenced in the component WIT definitions, and will automatically be included when needed -// in the generated component wit directories. - -package common:root; diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/.gitignore b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/.gitignore deleted file mode 100644 index a80c710b8..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/golem.yaml b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/golem.yaml deleted file mode 100644 index 417288623..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -components: - componentname: - template: ts - -# golem-app-manifest-component-hints diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/package.json b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea8..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/rollup.config.mjs b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index 529063f4f..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../common-ts/rollup.config.component.mjs"; - -export default componentRollupConfig(); diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/src/main.ts deleted file mode 100644 index bf8adc65b..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/src/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -/// -import type * as bindings from "pack:name/component-name" - -// Use this import for using the common lib: -// import {example_common_function} from "common/lib"; - -let state = BigInt(0); - -export const componentNameApi: typeof bindings.componentNameApi = { - async add(value: bigint) { - // Example common lib use: - // console.log(example_common_function()); - console.log(`Adding ${value} to the counter`); - state += value; - }, - async get() { - return state; - } -}; diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/tsconfig.json deleted file mode 100644 index 17748c83d..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../common-ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/wit/main.wit b/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/wit/main.wit deleted file mode 100644 index 7a10d254e..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/components-ts/component-name/wit/main.wit +++ /dev/null @@ -1,12 +0,0 @@ -package pack:name; - -// See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax - -interface component-name-api { - add: func(value: u64); - get: func() -> u64; -} - -world component-name { - export component-name-api; -} diff --git a/golem-templates/templates/ts/componentizets-app-component-default/metadata.json b/golem-templates/templates/ts/componentizets-app-component-default/metadata.json deleted file mode 100644 index 33159fbf8..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-default/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "The default component template for TypeScript", - "appComponentGroup": "componentizejs" -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/.gitignore b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/.gitignore deleted file mode 100644 index a80c710b8..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/golem.yaml b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/golem.yaml deleted file mode 100644 index 417288623..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# golem-app-manifest-header - -components: - componentname: - template: ts - -# golem-app-manifest-component-hints diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/package.json b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea8..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/rollup.config.mjs b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index 529063f4f..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../common-ts/rollup.config.component.mjs"; - -export default componentRollupConfig(); diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/src/main.ts deleted file mode 100644 index 688c6c194..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/src/main.ts +++ /dev/null @@ -1,16 +0,0 @@ -/// -import type * as bindings from "pack:name/component-name" - -let result: any; - -export const componentNameApi: typeof bindings.componentNameApi = { - async getLastResult(): Promise { - return JSON.stringify(result); - }, - async fetchJson(url: string): Promise { - const response = await fetch(url); - const responseBody = await response.json(); - console.log(responseBody); - return JSON.stringify(responseBody); - }, -} diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/tsconfig.json deleted file mode 100644 index 17748c83d..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../common-ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/wit/main.wit b/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/wit/main.wit deleted file mode 100644 index 847f71383..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/components-ts/component-name/wit/main.wit +++ /dev/null @@ -1,14 +0,0 @@ -package pack:name; - -// See https://component-model.bytecodealliance.org/design/wit.html for more details about the WIT syntax - -interface component-name-api { - get-last-result: func() -> string; - fetch-json: func(url: string) -> string; -} - -world component-name { - import golem:api/host@1.1.7; - - export component-name-api; -} diff --git a/golem-templates/templates/ts/componentizets-app-component-example-fetch/metadata.json b/golem-templates/templates/ts/componentizets-app-component-example-fetch/metadata.json deleted file mode 100644 index 5942c6f3f..000000000 --- a/golem-templates/templates/ts/componentizets-app-component-example-fetch/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "Example: using fetch with the golem-ts library in TypeScript", - "appComponentGroup": "componentizejs" -} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/.gitignore b/golem-templates/templates/ts/ts-agent-app-common/.gitignore index 779a47485..58e78b858 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/.gitignore +++ b/golem-templates/templates/ts/ts-agent-app-common/.gitignore @@ -1,3 +1,4 @@ /dist /golem-temp /node_modules +.generated diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml index b83893885..b9c7ebb68 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml @@ -3,34 +3,37 @@ templates: ts: build: - - generateQuickjsDts: src/generated/interfaces - wit: wit-generated - - command: npx rollup -c + - command: npx --no @rttist/typegen@0.2.0 generate + sources: + - src + - ../../common-ts + targets: + - .metadata + - command: npx --no rollup -c sources: - src - - ../../common-js + - ../../common-ts - rollup.config.mjs - tsconfig.js targets: - dist/main.js - - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} - wit: wit-generated - jsModules: - main: dist/main.js - - command: cargo component build --release - dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} - sources: - - src - - wit - - Cargo.toml - targets: - - target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm - sourceWit: wit - generatedWit: wit-generated - componentWasm: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }}/target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm - linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm + - injectToPrebuiltQuickjs: ../../wasm/golem_agent.wasm + module: dist/main.js + moduleWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.module.wasm + into: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + - generateAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm + basedOnCompiledWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + - composeAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm + withAgent: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + to: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm + + sourceWit: ../../wasm/golem_agent.wasm + generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated + componentWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm + linkedWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wasm clean: - dist + - .metadata customCommands: ts-npm-install: - command: npm install diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs index 0cb6ab917..15029b960 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs @@ -1,65 +1,52 @@ -import * as fs from "node:fs"; import alias from "@rollup/plugin-alias"; +import json from "@rollup/plugin-json"; import nodeResolve from "@rollup/plugin-node-resolve"; import path from "node:path"; -import url from "node:url"; import typescript from "@rollup/plugin-typescript"; +import url from "node:url"; export default function componentRollupConfig() { const dir = path.dirname(url.fileURLToPath(import.meta.url)); - const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; - const generated_interfaces_dir = "src/generated/interfaces"; - - const externalPackages = (() => { - if (!fs.existsSync(generated_interfaces_dir)) { - return []; - } - return fs - .readdirSync(generated_interfaces_dir, { withFileTypes: true }) - .filter( - (dirent) => - dirent.isFile() && - dirent.name.endsWith(".d.ts") && - dirent.name !== "exports.d.ts", - ) - .flatMap((dirent) => - [ - ...fs - .readFileSync(path.join(generated_interfaces_dir, dirent.name)) - .toString() - .matchAll(moduleRegex), - ].map((match) => { - const moduleName = match[1]; - if (moduleName === undefined) { - throw new Error(`Missing match for module name`); - } - return moduleName; - }), - ); - })(); - console.log("External packages:", externalPackages); + const externalPackages = (id) => { + return ( + id === "@afsalthaj/golem-ts-sdk" || + id.startsWith("golem:api") || + id.startsWith("golem:rpc") + ); + }; return { - input: "src/main.ts", + input: ".agent/main.ts", output: { file: "dist/main.js", format: "esm", + inlineDynamicImports: true, + sourcemap: false, }, external: externalPackages, plugins: [ alias({ entries: [ - {find: 'common', replacement: path.resolve(dir, "../common-ts/src")} - ] + { + find: "common", + replacement: path.resolve(dir, "../common-ts/src"), + }, + ], }), nodeResolve({ - extensions: [".mjs", ".js", ".json", ".node", ".ts"] + extensions: [".mjs", ".js", ".json", ".node", ".ts"], }), typescript({ noEmitOnError: true, - include: ["./src/**/*.ts", "../../common-ts/src/**/*.ts"] - }) + include: [ + "./src/**/*.ts", + ".agent/**/*.ts", + ".metadata/**/*.ts", + "../../common-ts/src/**/*.ts", + ], + }), + json(), ], }; } diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json b/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json index e5fbabbec..216e8107a 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json @@ -4,21 +4,20 @@ "skipLibCheck": true, "target": "ES2020", "noEmit": true, - "lib": [ - "ES2020" - ], - "types": [ - "node" - ], + "lib": ["ES2020"], + "types": ["node"], "moduleResolution": "bundler", "checkJs": false, "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false, "paths": { - "common/*": [ - "../common-ts/src/*" - ] + "common/*": ["../common-ts/src/*"] } } -} \ No newline at end of file +} diff --git a/golem-templates/templates/ts/ts-agent-app-common/metadata.json b/golem-templates/templates/ts/ts-agent-app-common/metadata.json index 0579b8d0d..4a87eb4e5 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/metadata.json +++ b/golem-templates/templates/ts/ts-agent-app-common/metadata.json @@ -1,6 +1,6 @@ { "description": "Composable App Common template for TypeScript Agents", - "appCommonGroup": "agent", + "appCommonGroup": "default", "appCommonSkipIfExists": "common-ts/golem.yaml", "requiresGolemHostWIT": true, "requiresWASI": true, diff --git a/golem-templates/templates/ts/ts-agent-app-common/package.json b/golem-templates/templates/ts/ts-agent-app-common/package.json index 91ff7d9a0..57b856571 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/package.json +++ b/golem-templates/templates/ts/ts-agent-app-common/package.json @@ -12,11 +12,13 @@ }, "devDependencies": { "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@types/node": "^22.10.5", "rollup": "^4.29.1", "tslib": "^2.8.1", - "typescript": "^5.7.2" + "typescript": "^5.8.3", + "@rttist/typegen": "^0.2.0" } } diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts new file mode 100644 index 000000000..579b42ad9 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts @@ -0,0 +1,15 @@ +import '../.metadata/metadata.index'; +import { Metadata } from '@afsalthaj/golem-ts-sdk'; +import { metadataCollection } from '../.metadata/metadata.index'; + +// Clear preloaded metadata +Metadata.clearMetadata("@afsalthaj/golem-ts-sdk"); +// Load generated metadata +metadataCollection.forEach(mod => mod.add(Metadata, false)); + +// Import the user module after metadata is ready +// This needs to be done this way otherwise rollup ends up generating the module, +// where loading the metadata comes after the user module is loaded - resulting in errors. +export default (async () => { + return await import("../src/main"); +})(); diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json index 00282c99c..514b91ea8 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json @@ -1,3 +1,3 @@ { - "name": "component-name", + "name": "component-name" } diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json new file mode 100644 index 000000000..b148bcb17 --- /dev/null +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json @@ -0,0 +1,11 @@ +{ + "$schema": "../../node_modules/@rttist/typegen/config-schema.json", + "metadata": { + "include": [ + "src/**/*.ts" + ], + "encode": false, + "exclude": [] + }, + "logLevel": "Info" +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json index 17748c83d..c827e32c5 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json @@ -2,6 +2,8 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "../../common-ts/tsconfig.component.json", "include": [ - "src/**/*.ts" + "src/**/*.ts", + ".agent/**/*", + ".metadata/**/*" ] } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json b/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json index fbe1bfce6..5021ab306 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json +++ b/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json @@ -1,4 +1,4 @@ { "description": "The default agent template for TypeScript", - "appComponentGroup": "agent" + "appComponentGroup": "default" } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml index b83893885..d7e2cf843 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml @@ -8,7 +8,7 @@ templates: - command: npx rollup -c sources: - src - - ../../common-js + - ../../common-ts - rollup.config.mjs - tsconfig.js targets: diff --git a/golem-templates/templates/ts/ts-app-common/metadata.json b/golem-templates/templates/ts/ts-app-common/metadata.json index d268eb69a..93ccf9f9e 100644 --- a/golem-templates/templates/ts/ts-app-common/metadata.json +++ b/golem-templates/templates/ts/ts-app-common/metadata.json @@ -1,6 +1,6 @@ { "description": "Composable App Common template for TypeScript", - "appCommonGroup": "default", + "appCommonGroup": "generic", "appCommonSkipIfExists": "common-ts/golem.yaml", "requiresGolemHostWIT": true, "requiresWASI": true, diff --git a/golem-templates/templates/ts/ts-app-component-default/metadata.json b/golem-templates/templates/ts/ts-app-component-default/metadata.json index cac7be565..ffc0c5943 100644 --- a/golem-templates/templates/ts/ts-app-component-default/metadata.json +++ b/golem-templates/templates/ts/ts-app-component-default/metadata.json @@ -1,4 +1,4 @@ { "description": "The default component template for TypeScript", - "appComponentGroup": "default" + "appComponentGroup": "generic" } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json b/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json index de6c49770..1db53ddff 100644 --- a/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json +++ b/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json @@ -1,4 +1,4 @@ { "description": "A TypeScript worker making a remote request using 'fetch'", - "appComponentGroup": "default" + "appComponentGroup": "generic" } \ No newline at end of file From 71f48738730cea937e6e9300f8f8c8e57c320bff Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Sun, 3 Aug 2025 07:23:38 -0700 Subject: [PATCH 05/12] Updated golem_agent.wasm --- .../ts-agent-app-common/wasm/golem_agent.wasm | Bin 2399800 -> 2399800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm b/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm index 78413d7686b70e53ccf928712733863fa6e04299..77550779861d7491c5151cea222ce4b36f532ff8 100644 GIT binary patch delta 722 zcmYk&Ur19?90%}@Yx^Bj^KYB8vbG|ke<}s`5-K%%Y)IvcVQagy;dZCH_ma^|<6>7X zM4IFeN+ej(OGXfM3<8G;Vj_{G2|YM<%@jlkdW-0{iQ&WNa?auWe!uUzqaPo$QSw$z zFjLnOhL&I?k6473*!?=gOv7zjiA}gocy@tVvG^&taB&iv*)sNzfPxRFKxLWS+On=E zv2O~xU{g=t-_-=-%@UL_teggKwsZwLSX#s<;0D9ZG}tW5bia54YOs10F5%oX{KSTJ zXu;=$a8fMHLW)^3JFZ+5kuTJOtqbR8SY+E%aO^9D#mEdaGSM*)seESJ5px!kDNtbH z(G(>rMb`#IU@f;P$i}bu>T#{(TmWCSAJ)I(h!uRHBDXUO`CBrzkj0ywt=Rxihd~6Hz zGMww-4y+CF?)MR1Xvb!SpT!29mt$9$I|hfW9!$phWzqeB>kLccycG0YFTlPY?h(y8 zKbD6zcljQ}+RI5k$*v1XAt@qzNiiuQrKF6MlM1qr*oC#%@xty@V?MtWl7rDZzL*@4 zZfWhEv5>5WWn+BUK`O=guyfvXJRtd_0ZEdxUq$QejK)-@Ew>HH?OVrfR2MapX(y>7 z`$aN+py#DSQGKeWT$Q@j+mbIJ#gwfBqt!e}s>va8ShSk1(<>FhfG>D17_9dP>g$63 f`tzO-wrg1T$yJ4ayWA&?rHGpx5lfMyEw%pus8u3p delta 711 zcmYk%Ur5tY6bJC`<~-N@Gu_l}R+_ViP)ZHOe8@kA^j0E;FOtmdr-}RHw%>BlLzAID z+CyTI2TDX3zEuQ4*C1+$WNHzKDIwyPOJ^}6(6@-rvZ#m8y_d_m_k7Rv^V@8iJeI>O z5cGu=UziaUQ43!R2#>R|de%5_oGKyex^M z55bF5uR(_I!ARghvqn6MK`uk%BDA7z7EWT-U1(74zQN`lxQ6|E;KtT5xDNCcl>;`u z1*fR^08I=h$Do2G#K$GrVCp2b(#}F97H`8j;dl>yOc>uml>KdlFPFiN%Zsoh8oz*+ ziLzBVp20Hz#bv7)iBih--i-xYh6n(ZcP;`D%`wC@kHiODUBpECg!7~KV< zuxzJ>>|23pap5aO1FGRQtnA^YJJGpp{9)x8*lFiFYzuM&R`qiKQwPr~6eC02uEN|w zo~H_|VZ#kxhmAq5N4K3D#>O=*7#ZZ}75^|N8RQ_zBv~Yz6}tA1HVG%= zrUE4rH<2Q8NJQd?ho%fyC5uh+c)hYk_WfBeNq$-B2pu8Cq=Xz59ih?_oB3UJHK)6) mt+h4vwt8#VsoIuj>6fv3p|l8py3OTE%wZ;FBIY>OUiAw!)+Lbu From c426e31588980fcfa169cff02c075606f9234280 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Mon, 4 Aug 2025 08:09:22 -0700 Subject: [PATCH 06/12] Fixes --- golem-cli/src/app/build/command.rs | 4 +-- golem-cli/src/model/agent/moonbit.rs | 4 +-- golem-cli/src/model/agent/wit.rs | 15 ++++++---- golem-cli/src/model/app.rs | 28 ++++++++++++++++-- golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs | 21 +------------ .../ts-agent-app-common/common-ts/golem.yaml | 2 +- .../common-ts/rollup.config.component.mjs | 2 +- .../ts/ts-agent-app-common/package.json | 2 +- .../ts-agent-app-common/wasm/golem_agent.wasm | Bin 2399800 -> 2404600 bytes .../component-name/.agent/main.ts | 4 +-- .../components-ts/component-name/src/main.ts | 7 ++--- template-golem-agent-ts/package-lock.json | 10 +++---- template-golem-agent-ts/package.json | 4 +-- 13 files changed, 55 insertions(+), 48 deletions(-) diff --git a/golem-cli/src/app/build/command.rs b/golem-cli/src/app/build/command.rs index 9b8e1afc7..f951ac17c 100644 --- a/golem-cli/src/app/build/command.rs +++ b/golem-cli/src/app/build/command.rs @@ -129,8 +129,8 @@ async fn execute_compose_agent_wrapper( let target_component = base_build_dir.join(&command.to); commands::composition::compose( - user_component.as_std_path(), - &[wrapper_wasm_path.as_std_path().to_path_buf()], + wrapper_wasm_path.as_std_path(), + &[user_component.as_std_path().to_path_buf()], target_component.as_std_path(), ) .await?; diff --git a/golem-cli/src/model/agent/moonbit.rs b/golem-cli/src/model/agent/moonbit.rs index 38964da7d..12304c787 100644 --- a/golem-cli/src/model/agent/moonbit.rs +++ b/golem-cli/src/model/agent/moonbit.rs @@ -17,7 +17,7 @@ use anyhow::{anyhow, Context}; use camino::Utf8Path; use golem_client::model::AnalysedType; use golem_common::model::agent::{DataSchema, ElementSchema, NamedElementSchemas}; -use heck::{ToKebabCase, ToLowerCamelCase, ToShoutySnakeCase, ToSnakeCase, ToUpperCamelCase}; +use heck::{ToKebabCase, ToShoutySnakeCase, ToSnakeCase, ToUpperCamelCase}; use moonbit_component_generator::{MoonBitComponent, MoonBitPackage, Warning, WarningControl}; use std::fmt::Write; use std::path::Path; @@ -465,7 +465,7 @@ fn generate_agent_stub(ctx: AgentWrapperGeneratorContext) -> anyhow::Result anyhow::Result { let mut ctx = AgentWrapperGeneratorContextState::new(agent_types.to_vec()); - ctx.generate_wit_source(component_name)?; - ctx.generate_single_file_wrapper_wit()?; + ctx.generate_wit_source(component_name) + .context("Generating WIT source")?; + ctx.generate_single_file_wrapper_wit() + .context("Generating single file wrapper")?; ctx.finalize() } @@ -165,14 +167,13 @@ impl AgentWrapperGeneratorContextState { agent: &AgentType, ) -> anyhow::Result<()> { let resource_name = agent.type_name.to_kebab_case(); - let constructor_name = agent.constructor.name.as_deref().unwrap_or("create"); writeln!(result, " /// {}", agent.description)?; writeln!(result, " resource {resource_name} {{")?; writeln!(result, " constructor(agent-id: string);")?; writeln!(result, " /// {}", agent.constructor.description)?; - write!(result, " {constructor_name}: static func(")?; + write!(result, " create: static func(")?; self.write_parameter_list(result, &agent.constructor.input_schema, "constructor")?; writeln!(result, ") -> result<{resource_name}, agent-error>;")?; @@ -533,7 +534,9 @@ impl ResolvedWrapper { let golem_host_package_id = add_golem_host(&mut resolve)?; let golem_agent_package_id = add_golem_agent(&mut resolve)?; - let package_id = resolve.push_str("wrapper.wit", &package_source)?; + let package_id = resolve + .push_str("wrapper.wit", &package_source) + .context(format!("Resolving generated WIT: {package_source}"))?; Ok(Self { resolve, diff --git a/golem-cli/src/model/app.rs b/golem-cli/src/model/app.rs index 0a94791a6..11eb67ddb 100644 --- a/golem-cli/src/model/app.rs +++ b/golem-cli/src/model/app.rs @@ -9,6 +9,7 @@ use crate::validation::{ValidatedResult, ValidationBuilder}; use crate::wasm_rpc_stubgen::naming; use crate::wasm_rpc_stubgen::naming::wit::package_dep_dir_name_from_parser; use crate::wasm_rpc_stubgen::stub::RustDependencyOverride; +use anyhow::anyhow; use golem_common::model::{ComponentFilePathWithPermissions, ComponentFilePermissions}; use serde::{Deserialize, Serialize}; use std::cmp::Ordering; @@ -21,7 +22,6 @@ use std::str::FromStr; use strum::IntoEnumIterator; use strum_macros::EnumIter; use url::Url; -use wit_parser::PackageName; pub const DEFAULT_CONFIG_FILE_NAME: &str = "golem.yaml"; @@ -195,6 +195,30 @@ impl AppComponentName { } } +impl AppComponentName { + pub fn to_package_name(&self) -> anyhow::Result { + let component_name_str = self.as_str(); + let package_name_re = + regex::Regex::new(r"^(?P[^:]+):(?P[^@]+)(?:@(?P.+))?$")?; + let captures = package_name_re + .captures(component_name_str) + .ok_or_else(|| anyhow!("Invalid component name format: {}", component_name_str))?; + let namespace = captures.name("namespace").unwrap().as_str().to_string(); + let name = captures.name("name").unwrap().as_str().to_string(); + let version = captures + .name("version") + .map(|m| m.as_str().to_string()) + .map(|v| semver::Version::parse(&v)) + .transpose()?; + + Ok(wit_parser::PackageName { + namespace, + name, + version, + }) + } +} + impl Display for AppComponentName { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.write_str(&self.0) @@ -781,7 +805,7 @@ impl Application { pub fn component_generated_base_wit_exports_package_dir( &self, component_name: &AppComponentName, - exports_package_name: &PackageName, + exports_package_name: &wit_parser::PackageName, ) -> PathBuf { self.component_generated_base_wit(component_name) .join(naming::wit::DEPS_DIR) diff --git a/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs b/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs index 6eccecdcc..ea81d7a4e 100644 --- a/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs +++ b/golem-cli/src/wasm_rpc_stubgen/wit_resolve.rs @@ -527,26 +527,7 @@ impl ResolvedWitApplication { // The WASM has no root package name (always root:component with world root) so // we use the app component name as a main package name - let component_name_str = component_name.as_str(); - let package_name_re = regex::Regex::new( - r"^(?P[^:]+):(?P[^@]+)(?:@(?P.+))?$", - )?; - let captures = package_name_re.captures(component_name_str).ok_or_else(|| { - anyhow!("Invalid component name format: {}", component_name_str) - })?; - let namespace = captures.name("namespace").unwrap().as_str().to_string(); - let name = captures.name("name").unwrap().as_str().to_string(); - let version = captures - .name("version") - .map(|m| m.as_str().to_string()) - .map(|v| semver::Version::parse(&v)) - .transpose()?; - - let main_package_name = PackageName { - namespace, - name, - version, - }; + let main_package_name = component_name.to_package_name()?; // When using a WASM as a "source WIT", we are currently not supporting transforming // that into a generated WIT dir, just treat it as a static interface definition for diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml index b9c7ebb68..df7e87a91 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml @@ -9,7 +9,7 @@ templates: - ../../common-ts targets: - .metadata - - command: npx --no rollup -c + - command: npx --no rollup -- -c sources: - src - ../../common-ts diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs index 15029b960..e0320bb0d 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs +++ b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs @@ -10,7 +10,7 @@ export default function componentRollupConfig() { const externalPackages = (id) => { return ( - id === "@afsalthaj/golem-ts-sdk" || + id === "@golemcloud/golem-ts-sdk" || id.startsWith("golem:api") || id.startsWith("golem:rpc") ); diff --git a/golem-templates/templates/ts/ts-agent-app-common/package.json b/golem-templates/templates/ts/ts-agent-app-common/package.json index 57b856571..f030a3c27 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/package.json +++ b/golem-templates/templates/ts/ts-agent-app-common/package.json @@ -7,7 +7,7 @@ "components-ts/*/*" ], "dependencies": { - "@afsalthaj/golem-ts-sdk": "0.0.1-dev.2", + "@golemcloud/golem-ts-sdk": "0.0.1-dev.3", "rttist": "^1.0.0-rc.4" }, "devDependencies": { diff --git a/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm b/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm index 77550779861d7491c5151cea222ce4b36f532ff8..0fc900dc57b7eae9f4cca172ffef4fa7628ee63f 100644 GIT binary patch delta 114277 zcmce933yFc*Kp20_nvdla5Kmtk%SxbJe5%Mp<46MSxZYNV@v01wF!bChzdIhLPKe_ zq6u4DCEBR8rXb}aG-*R)4h>@d*V^aYn`>y__xqmb`|Ek%oVACw*Is+=wf3;~x|=qC zDpVAIDr63QNX(r!C+p>hEy_kTyqO(~l6n51CH)AwadqCBWv<}O#{uQ2`ou4mguDD)q7nalR^hT# zQM?}S&U*i|KkOuNTh{Yy4mpYYNLDLGbZBVavR|{a&i=GSM4D&rs3KzH%YGebL-^93 zodn^n`&_)S;sZLu^Dg|BBIe92&YF5~EFr6|W?gk}3liN|i)jAKjwm{Aq}`Tv^mI=F zo2z?v6Yoz^SvQWN&fhidh_Yuz9f`Pevc}!EJD@4{z9hWofDCrQUpOdW%8o$cs6^&o zWf@h4Yz?yLbG3xX@Wq_rt!}D*ewxeAu*H%n__Oy4omESC*T3j?p}r6$lGLjdK2qq|I>L4KRb$~b>=zAfCOk@tKBq&P37KT+ zRTj`(Xvs6WwG`TsA1Y{EOW_SDz%H~D{uVGH^JmAav}bEbz3FD(wicR5&}mlMUZ^gS ziYv^~Rmf2g^RK;yQCKmyk1$fggyoM5Q!t_a6T(Z#D4O)7@S!+;qMIpC32$K?_VEkC zQ^+&g_*LOU)^C`wM!@82F9|I$nL+YoC#I}_OBlveLf#b~78|9n2Wc}()}x^M)h9(L zd6CW!=*&_`if1~0N}J^SDT;T1yGuAxBz{*korb0mN|J`!HIJLS`lgh@zq*aYD< zv2?|87B@j~t8!5pwxH7WGlVcTL~{usdB*87`uj&xM3ATlTPfFhF()rZw@ecP$h3>J z`2?vdJvmJXA}JT?wP`{oh7L9ual5cQ@ZGtS%N?L{1P2LNop>MKs}82l1WlEM+K*1n;%M7 zu-4rv=pt$bX!6)3sXARW8)T!xO(P~t4J#YFIU5>VcZn{0!5Kjte8n5L2BYjWRqshJ4vU`6M9xFyo0b}oZx?vR&$KY?$A^7gqOw3(~D_(3sRN7 zmLf!xgl%+6iqKfR3aQyCLPG+BRg@waQG>GY4Fecy7*wA*~40g^K?QL080=L=5% z#!`iq7x5MCmG9-?3W zB!tsGZ#f-w;Q}F)x4wRX5QeS)vOs83{myh88_58&;I9oDaf~u%p#&IHV2*}Rp}l{m z#~49w#&IMel6^phwS?ql(WF_<=8_+mBHC;`%=0%F!9W3VL&r-YRGIAzqS=dtuAHaW zFe^8U_m?$aEWCjBgeET&UdO+8mI)&*xEf7J7aps7mkBTgBfz*T#ihCwNTC4oJ&aL7N^X-5aF09#;EP>n)`!J1E5x@UzD&gy(743M$R`(FsR#q^cM z?1L{+X+z4FUxE3-lwZFRl6X&^{l-dp{~I(aP-aZF@I5cnaDz}w0ISdXZxp@(qxb_A zHwnG5$nr4%CipiW{(io86Ug(QhZqdo4UXW;?LwZIzoeMH_p{J}x4K<;hH5*6E&#B; zJA|!*m^!PN2K)kpntX%S`$g#LEVu=d2}1&kq2LyK?-wDL!x=yAOMwns6j+T;-zOYKI$qf?jNnE0 z91td;+3iyx#F0&h=Jgz8R`X={!^FBrg(t;bDPTN~3SF(- zS(q`PP>8qSSn4F*&^ORcORYRkGE|6Uc`Zp5 z8>Yf4q8hsrOZKX~|9J*k5$a8!`V46zSkQyG@#r8j)Ki!Ol0dqD5b-WW7%Wb@$RuYy zoimJtlAKJsY8V+ClCvIqF{+85pG$`2HT*SlGFgL{h$Q%A`MD%dR=1alW=Dw~FoN`Z z80S{{a$@kY_myr0Y8%lHV9@B8TR@A>kcI^C=x0f1l>WYF$xlMP z6_>C}(N>o-%`Rb@*(EVtR@Zt=odPO1g_@FGX48IHW5?aE1HTsrT681~=K1#HMufMZp=3KQTHn}t*?tw5)J zxwQ!sR*R!7USv$!84s()z>~0m1j#@?r19mp_^1<57|9645?%|%A>}4AWB;`HhA7;U7+EmmGI60MT6>wCi7lzXA*fuoItBOSRMxpZk+&TF z*d)YS&)Z(9ci?h(j?2s;T?ik#f1X!y75B*!pI3Bk1*we_W`6~#`*gUmnae}kuTtRe zu+;k>NyI$@Ayx`RziXyIoVmsYf;q3l1o{^x@UO%^?U8PzAA}iYe-p?)PGCOUs#voP zBobEmxHjJkj0LpOyx|6ZpJM{H6KyrTtTF)_1`&Vt7I_7y z%g$S*T1-x5u1V+jl?hNh>l&4Ao5jc6hT?9_HJdYw=igNvrpM=2apxT;o*mDk;xW&-C^kQajRTWZbYP#F5Eym?Ja4qZmzc@6Zc^SZDr3 zv73j}buA{kx;veuiz^x!?J{6S(lSA8N`nOPVPs7oL5$>+aFiepe?Zj$Z&jF5Samqo z8bqMh!b$t-`$Qc5zwH#xjeer&YI>S0k{U)4pLpvObAq@$nk*go5BdUTYYk&g(tesI zis7226pY(*_S3DR7!hdc0;B9VESVcjmy2R>oTXKa>{FO}z0(6wgF@h_zg~R+{_dD> zv&sayI01&G4vfn`zz7=~Bh74|S)o_XiXfk40?F({o4A>;M%zkaf8^YBNo)vz*#=2; z2yu6C%RvedVT^PSM39fqeM}nudTX2RoWg$2!FtRZ?(K7szn+0jreyBqy7uL;AxxJpE=O zPv=zwuOndA&cj@8lU+jKo&-q8x;&K@PYn!y+*Md)Yk2O(s7w`st@iv^n zQNld6npn%>T38fNr)Se4{^G&7bWDXQEWR_^_+V7vWnA|F-Ch0Kh{>1*Yn13%l4N~G z#S%_Br1~`=Nscxo&B}o_D<=S|;$cl-8?vi1hf{69c@7>>n@DTK0%uOf_rnIjFl@4t zVFi?Fefk+Gj!_K=@SXPrn>5lK<^eSC3m}A*PO4cPKi%020>yVEQ{B_doz7@R1I0c< zz4R=TN62efq9W9F+aGCbPR-wXY--%&=DIdBi>g(`CtN%miEZb{>p_pQu6{jd#&;L@ zHUa9g=*LyWj-iEUyPST3m-)E_FI~8S?yVy74Rlnn_&LtU?ZM)+I8j-RQ1KF;Ow-^< zaRVm&8foR!juxMXW8G{vv6k3|;F9~hI^wrN-}u?E_l!|olEJ@XNx5v0m{5RW$y+8H z?pc^01Tg=KC1+(rgQFJ7&|*ocY-IBM>HxzR&8a8u@aIDpOVS*Wn3zrH*B846l_mii z?_xP|wwsmK7khB!(z2oW%e^b&(C$vr6>5|pW5JEYg+$Cta?^E9#1>)&eEiu&d=`2_ zJ2n+-VvmM36}J$wDT~Im5bHG9glvbp!kgWlU}TWLn=#4oiwOgB;LimU7X@r=3lR<` zfLS@c#M*3AOK~jT8?Xkk;vUj4ryLY!;2GT6pr9Hy3k{$!aRWlcodeB2EQTN&z*m*^ zdsy`MBBg-zFE+Bh_%Z4V#9UQicRGnVf-}#g$rT2&nnibY5yJ_fI@v|6A)A8bqQ=8w zE84{nXJTETQ4^TEtC+~u4xl>Dx;!e@A(3}sf{yAk(kmjpbXZTZI$hdBj1J7f_H+re zNM+Wk$}Br(ab}sdTJ`kSvSF5=r&fC;bZJj9yh?6mA58Rw?&~536KMEYPciZzJ2DUX zOtA|Ty6`X?(_cI*IPbznUmYmMkj!$LI8dw}S&;zJ16xPUC3Us6A*JxwDAGn5-`inUu7@x5wOD3%VJlN`RWOXefW_o^_W$(ZIH-~7K>tH;Is z2Q5AYoXcSBqn{Kb`uXg-0&5CB8&F3KZhu|Gcb{d1Si4VCt5;fA7jP3dsx0A2u@mP- z?lb1nq{*{l6SAwE4SrUvB|6iv+kq!d8Kgmj#b~?(blzX1pS{xOa-$yF2YJyODc>9e72Y%ddl88!a|R zSxp@+60VNY#)xkca`PY!7%R4XJn0ZHBJh@FZgUPIWKA%a%_SNszhR1X?F9$2qLFb= zis~`eP+l?O3+TMDVzclE>PV1wT2@nZ(d%Qyrl=(vjuRVkz4y#pVmqO4D%X3FuAmUzTY9fR1HD%RV9ewwSP|x6uBDg zH{Mc%-?veF(Ou(3e{8sLJlBOAKNKg~P!%S8BG!rGlM?rUxMqR>K7hTuImzMldiy70 z>%d)HD+t#7hEz39>=jjjsk~m)J@pE+=(sqsb?2hH>J=iSxvCrCV`A`n4plEP8!E*t zP`$W_uU@HoOX9>xE+N815pG{W#G1|#lPO66We>o(HDU;TJz1PXyG#+k!IaFo;#B(K zRIUp-z-CPodvV59p8;7fP8WYb(F35jKyu3I=$T@)%cphTok|LTs%oxC`sM{Of{O8C z9eQ%6_!~9^1Z`uV%o4xmTCU6xq{!N*i~INc)X;@7~MFISiZaiHuoaR>4VT8Q9HaqRO~nb;{{Po}@E=A*!% z&rk6(h?MsI(qukwVdz@l7FvF7G9Ox4$1Bv^4D_GL9&=T)BgI4&IVbDOOaN=}nM*;a$bj?w-+q{843r*Gnz*)<2=l#xc<2Q2_Tgn(_)l1-cqQ-q6IOprdHlDG@k;~k( z=ge{Bz>@QP94R!?ldiiU=40PL2)$aMvW)?B(%(MZgNEkNoO0eb-q`iayfOS{&a1ux z`FllWi>&r_lTEDu4Xa;VbQ;_ezvSILcw4NGAKA7id9U~BwyCsGu+6|OBEZfQTThPzQJ$ zWF!1-=5m;$Z5wFYjF=E$6M~?5XS}sv35+E-v*`XRwzjxD(t~Z)+gi(`n?WuCmq!Uz zz$)Dg;>)8-gX@Y2%*Rce;j>nHDcDxIRuYUH|NnBWv?_q5ud?lWv(HOZI*YnGTQF1S#|FPLPip~VCP42HE#wG3+rz-U;%>}qR{ z_U%|#TSJdwP13-y8rfLev!igqG2bSQn^}QCrW>{it-9GNkcUklvAuAwVGTjU8e*g# zVi}LvrkRGdX%CyZzj%F!+Lx~DVbieT%{^>PJbMIXOln?t8OVdI7@=S7gNtxwu;QBM(I`=7FzhHUQF zkd^U_DP0^m^{gpf&{R))V~~wc7HH0#|Im^-|FIQtw6U4S36Pq`iDMr$%ols3mn*Te zaj)3;GL1%L+G?}ZS8bo6II@nzt$rPQ8~Rmsq}8u}??Jzw8ST@rS?@!?=8rM^mHz<{ zzxQ>sUkI>2-mqF;z5}wd$C)j2;M$vJzo4m}RD0X(7c^(~3tIB&7qnvb3y_-q;@C%i z=!?Dmgi7oz{$s0t^BI7?{1Y2DqrGQBZ>Gdsz1chqdb52J?+qI|*=8ELfpdYlXyUE5)Vi}qci51+~J6GlR07rfNAA8&NcH) z(h*?iQ*0giAT(KETgeT~pbY3k^g`YTc5b27$_r_gEc%Q#UdmfxMN2IX!N*iKKHYcZ zd#^B?;c}Jy8RtI(w%Oy6B?G6#gqWDX*w=e{tRgTThMz76dE%H$0; zz`Foa^$XW;BY%J{H2KEt!mV$tF1)e9>VoS>U{nWYcA<<}U4W0NZ2GspgZ%vWW*4{! zrEfO70LaZQaB1zn)#?IZPo`70nO%Su%q}2Odg~{%3%rHE?Y=Gi@w3?nXu({_>@5J& z7yn|CKKfVN7(Vk4@3L`=L1BzT=$yka4OZ>3t;ZQ%d=y&veXnUe5MUScE#tvQ`^Wue z3lk66`fx5m3+9bKm(MQ_T1Eq!m_tk4w)uz@n_fc9$INL$ zxg34?yKR!-w9Y+TaGVBP0;SkiJ?`#f4FU8p9JToA4h=4NGx-MDy3hpu3%a?~34h@@ ztq}iOX2uQQXl9Bq&F#F`%mm(NX7C_ox3!5~Rcwp!?#}&;RPfXIuXg7bi*0x6S1r5_ zyVO|Xa1kUR5M0sV;I!mAlQsMI9b|V7>>mw@c5G}P%gr-N%z-`91FAo=+ul=KA^4{ zxfUowE)3=l3$z2MYQ`=LlmJvTgF65NX3TYfxwLXM0O9oLPZNwY900?S(HSdS2GFh< zmn;y;0$Y2-0ui;S851i^q7fvTG0g(8F6=XBTc92zq1%`gOI+}0Kce71ur5eJw_orM z2w^XdwkO!-G(I$vIW*;``Or`pwMW_HH|-MzpP{+v&FjHdy={L+um)ramSHd!r#bg$ zzHeVp1>K2R?HTr^vYK!V$DxLibe!#)Yfs{bfX~ghYee2O5v9VPex2m#K(fyv`sZk; zMfOYd_DshbnV*<~!13&aOFWxF_6R}#nb!<9voikj$r2BPC}l1I2`u4#;RxHX8R_;G zf_#Qoi!!SfnANaBE1&mu%W|k&&WRb!2CuL`&AYj1wqr02%&>Qsp|3FE?$Bkk9Z#_@ zGwk+obmIMHv)wdV!WR2rJ~3YW5uBDoQ@+0I(8Wj>4DiaGkZb=|LxF6QZy&&Q-t_(U z*E#np4%nM=%T)iMovXZ~2klFsDE;t|9oIZ8)NKdfXGl1A*nSNYN{`sP@~Vvs?c?~z z(qr~6{G;f&y@O1^*|_>idwY?44i7$MPi~6U&sUXtVfBG^rDr(_U)Gnh1o~K%^b{s9 zjgnxe4^EwoA5?P~m61UszR(t7NXXs88Wuq#bF@h3G<3PbRy0fR$kgUGWuJ)AP zvysfd*w}v3YVeIdO(O_=%b2s$Dw{A}OrO-34Ney)~A&zIUS+7a2aaq1RQW{7|MiJ{V zMw&v5q#|f0mh^DhP>BuzXSqD^-A}<(4`Hx>uo?NkW6E|@aYHFE1AX96{1xgyR)R(O z720L26xBTQG90Adhi((5dePZjwg#jRXlw%<;*!Qn`vmWaZTZN06o1{PfKhaf{qdf3mb;AQe<0P9x0tTNbnYx?GxQ?`kIZJ4 zGv>TXuUY4ZQa{Wc@}b22tfzh``M6{^`bYxDxiZ>ek`#H5Gk7i8;{t9>lEP?>3E&84 zx_|@wFVg2GNIu@*=@TT6_cw3l)CAvFW`8Vs9KYKmEyq7LX^}tiEw%O&$>Z}~AKkrA zeX@P(KQ5Yl3Jv!;A z=^lMNL5l701zJ53a<_Rm?AyvnN#7q3~L0FA7=g&B;QRpP6bj;N9_oDW2)4Kl<`ED zZoj8^1RXyO_+RLzYotaI5jve5nD6$ernXd_auE8l#LbqhO|+UZ7H4aV>m=r%HXrBGAGk zQl$&xd`Nk2q10Y1101OfrGp~b^cx+wL<%FB2WjFGX)sARWWq^@=W*9{{U}x-l62`kv~a7^VGzJa zAunATAtold*+a{vNunG-9hWJww8ctroj;f%Jt=OS?q*F^O3{M28d~kUN~%@c@=g-q zE*G3k1CvoCYChr=Tyo4Knk&fl2sl5mlvUDUQG|s)9ruM48V>hsK3W`HZ^4r@z*u{O zF8KloDZS3Nej%L%*XbMV^RJ{yq;`24md}N$2+G4;ohP7gbKp;yWL|*LzM0ZUvTQHi zlqt0!1-s##Sc-C{?JYtpG88J6?4}{>rED=}iJR_RFFlPNul0>of`7q>x*thAKnG<> zb#P4|pCvsfgm21$%2u;B&`@BdTwqRf=%s9ldyY5XAkBq$TJ)z4(y#|OYk)BEE542! zrHCq?D?VETv3^YjulVSQjUX|38`!*!(hw;mnYZS#i@FOeQx3EJAk7itDz+gZR+f?Y zBSIdF76@!lbGnhXiuTzlwI@ld==7b^*h;HdXQS%^H{so2tnci2EYgQ%$!(EDU?9Sr&*JGT2jn zYJ#|*TIiEQG*^|buEfucI|8hV=)=3ETB3WYo4&YP8cs@&(7fH!VB^`YnsFSt|w+eTx1tBmDbglaJ!M&E52M57dz=G-zsXM$+sVky!e?sd)d`UV;bs8)lLKcp_)T6F(I zI>xOq`ISxv684z8Hlg>!m z%ZmS&MhLYtx8gu~uGbInqQO?t3SP8y4}1NxG=}edj#j{&fd-t{qzl;c?Q4?2TNZ9e z58XQ!1m3KH!slZ_jQrc|i5pT)eBsO9x62dxL)hz*+<|Y`+B)QS$TR7uk+yn)6H%Jr z9U*w{3&swf*wLF9iirtlu;jzuM0}%Z{J<0Inu*<={(2QmU2&F*np~5tJxl9pazpad zS^5P2J$9DHX>wI^<19_pys7dXsISQhvz4>nhx-1=jbCk|H_J#sv@_9PODZ9w7^K`Zo z2sn72e(r<@&Y!2don`}9on`|K`~kjlo<4zpq2Z7H&GdEta_!a|E?`5Ay$w0Ax5Yg1 zA#b7#iTHTc_cdXdj7u{krHs}Ikl!GGo}u#t9 z+4V^oB7q%s96n~iy>yHn&#IDVLrJ5qQHXy7b0$JxJydZLkU}_^;EiOM zPwNNEb;OkTVmcsLt{&XbU=o`x$xJ4=7T%EvkhUg<_NmW%o(uAWc#Yi z@7Tn7@ow6qmON0Oya9wO22bNAZ(u8H$t9!XM}QByy`DS-RYdLj@`=z>*?^_J-}*qnlZC$ZP5jPe)9MZ67s=!eG_HXhMs8*^ z+Cc6kzz03lP@aJaFE^6mc{nJF@0!Sq`7!M?&1CRTgtc9A3;8_}+i|p(*I>h0t>wqK z3b`38Hy6lixY}zg*CV+b=re8Q_mPtPw(?Apx`7ROSZ=|URdPFd65522_HtV+(67Bb zG$bE8?6qUCw7`|`kL_hRCI-ryc9c7kvJLe0j`GIv_>I0r;oKS42&z%Efwu1?cL2{) zHolYW0N=yk=;SW)lh}{LUF1PxxaW>FfBrAfly&$GH?OSMBQl%@!AE&_c^vQfYdz$3 zBGOp3kBl!H>7YLHNPMlzw)c^H@o{2R2Fkw)r0^y^^|(9$b~Cj76Y@sBk0^ga9)os- zz5Jy7s^HxTba_G!qbHt{pW!=!&QHsI>`DsxK6j6 zvmgnkQd^Y3Skf5&SXJtqRhmNzOf0Cvl(F)8>;}E|rra#tDt5R1!eU+Ck|XV8b_E^s zzWf%+yGr-LUvX{4J~sE993rsi#>=0>G3GgHoRULnz{m1m^v*}}HBw&6Qy8Xz8M)|% zUKi+x@$!cx_mVehxIo{UBu9~=lU^(;T{lU74%%hfWO<$-PJ_e$mRAs{U#w`lwvInt9`-^^_exh7-igqDuJ z83{|DM`ZC8x_f~_wnMY?UFCE!pesaN5cvmuP-i%hEfFmDM;YE8Wb=}o-ZzmI@6zMj|f-!#VMd$lYf!l6i#tiI8Wz(CBH3Snw$g3ZC2mHcgh2> zGBPUn3{q3s#z%4qFKefrcZ1C=;2hxDc{F{2+(?EN0F{-U%>~dm`_x^vD?4D;7SB)4 zp#iyaGg|#Gxf?0Dx4H;~Vty0qzf^8Si^}D2QeYNhFlzAvt#wE~E-&Z2(!AYDg5 z^E};0yp|u9N0R)LR6ioWNtRczxFho00({W&qw?z{=Olf(5EwDPg5?*=$%5=baP6qv zlVu(U#Vk~|^tf<{<`e-(kIezy1}oy2bMou*c@9X(-k}2BUn)1GH7>|qNj4Xc+gyz0 zLuMg*Ctn^b@VP#nUOpjT6^_w!Ct+2X!RNOxFD#eRD@XB*MWvohdpJ zNKz3EvN?i7?mlU^@soDe*5-JHg#300%#9ff#=HkJZd_%Vl4FF!qiFu8YN-9gj!5=N zfa9(IH3n2;P=lVE*}2_%nSXty2D2m^W5f;YpLS1)g8R`uo{lm_3ow%?in1T;6Vzkn*-fb z;^X~dWUEte)o}cZ4R>-m2IJo}mm>=Qe&=#T*5EHiZ~=;VaScXB!Ir$8AFNP$OXV&{ zcjQd_7)OlCxi&hMtj=by#W=?NZ!HRoZr}(}DtW-K!2erw#9$QPk^Z-pL5N=EuS!;Q za?He~O0&+6kz`s0UDVleoy@*U7j$tfY&@GEJ3~|zSW(~Nu~Qs@dANoSz_q1s?v$(S zdBZUfQL?Webu8iWfq1y0Oz_hdf@^i0!Oz2EL^$Lqjt#6%hprY>+If^cgzkFQ z;cs2Ci*U(qtGr}~8wCKpm+U6!y<`^+5punk>>^yF+whW|Ut>c<5`f-Ib~D#|$u5Gk zo2~MaUBpXvTjeFYXvhG1FWF79yqD}IYVRex33@Nt&AQ%8c39TMz(IxglAXH%n3wDj zZ;Hp(!b^7dAV;JquepQo0|Vw6TkF%CFFUG`?6dqboi!inXeh9EUvNBYCrj_py)QdD zlM=A0=sIEM^?%iITp&B{&}PFSFWd5ufV?LJc>zc3;AjUAcLWRO^*z>v+)Z~k8Z4ag z!AtF991ZZ6p0*g{=t5HXg?A{0njdU@-O-lF1-CiLGEk+ z{%<>CY3Ip~V3K``B9-iesgB744V>r*690w*NmCp>N%>#iys9>N1$U2-O_za`)0lON z{xH*Vy3$#oq|BRY(B_}nU#F92o8BtmHL&<@hk?0s9BUmo<2t80%4Pg$o$mM{0v8Lh zKRP#Zns_YRffnuZe{I2f!A9pFbvz$88#CZQwZCQrfVNJv zzV55faff*yIFeX&nB)%G*BycW3>f#(?G4*jV~>*s|K3EZe&`ZVG_+O zu!{-iT3}}l=Dt17*k{3=G$RNqAG5%YnxO)C-U2&lMlgUC7T8`h0s)-4!z8Pn2`;w4 zhc&|=a=)~|wr1|P7TCt5;};IbNqVeiRE5$9t?bsCQ47Fx7TAiDX(Z>FEj^?eY1U^; zlNT#2u!RQt*lw(}z~&~n#sZsZ##h#7QWBs7FgHh;bjY~gN5VlM&d7K*J_(B&9}f>X61zz zSkvUgatn-s{#c)Ik&Ow zOg7E3zzDN)iUo$7xu02JRebnlH@>jIFwF=7aDxSgYDPGKzgS?1$+ThwA;W`O~k5dj6ivOw^DBLMzvfnb<%GUQnx7-kgjy%q?D z8O6IO&Vs=*W9ict2$mU9U$j85%qUwkc9|r>O%2Y%*%k;lHCT791%hG5xshstV3=`! zueLxi%m{9=z;Lk4sCNo17%VeZ{&N?ND{@RE6?-Ttc64%iFJ|Ew)O#^2IN`1b6JWJ9 zwAisIw9-`w7ObmRD;VgyO-lC%Dope>&C^aV5B+ zH7y0>RKnfNEJsN33r}*!DbpB(r``QdkoP)B{`XFh6r3O%v#sYHO}X;FaKVuQ=HNUl z4pasRv`e5;or-@0cQVfSCY6^%Qo$JtrN*dJ?kQe?LV?S4$92SV z&bQE}n~;=p$*0ho+mKRz(WlV-Mao2yV76o;nn^IF%%=>UV1uNRi(W*BXn#prLQ>9R z${Vy(uu_G+AuCe^Qc&tGbeX=aLbYt(u`vRDTn8xkd}S31RZb$NDEf>)==DV7GdHV#+XkxYIrR-JxaD0iekg)1R= z@^Uy_c}ej)W2OH^yVq3mF!*0UEv2DP+&|W>mXg8``VQAop7D3{19Vtw!2z`!Hc53A zeBHth)m3H-gZNW<{?ahc`)(di|L@umx*XPiODFt9el_O81;fm#@$fPaPOz<=6-27~ zU{nlT(Bn>%ZK>8_0-;%FDX>XdhEjvuR>Oo7}gqs-&n zZ_-YwMRL!v$J;66M3R1t4(_DHlFVat-OEZS4eF%yBsoWTVqpFepvrTiYory@6`hnv zNT!>Xc2dTYlB0A`XT=CiD)cQ?c$hAEO{qr*993-ex6aC=#9c_EyFe4Ah3u&=$^fG7 z`WqCb(b_m$PSYPe5f z6hQw_g+2O+0*8mt!jA3=O!+^rGT0R=A}KgVd-YPflbmC8ZZBm7Nxw{Q^ipOxHt~RQ z5NB>yZ4un})!@ZBo2cG^4Z2&PbGC@qB zZ?C{-Mn1jtgwlwV!o~KJ%15;?U||D~h)Y3A++0f1_apbGns-x1*?zj^N#*6ROiVSJ z-c_<_KWp=pvRr^@%=F09O6$;+<5&D9hUuPN#6BOa zsQf-S>qQW}5^IBY?nPyqNY4IAV_pHQGhT+Qgc20Nab#05CbkL8FUFpE9(%9-la6>r z$tO7_Jh!&Hs|Nd_& z3y{?p^8x7nuF@9y4LN=3jD1QsWcA*CN*GIf8@%q2;alD@8Ghv*Wft-piq6Juk5Hh5 zvWD*|@AH{H{~&O+;3EC*pt6>|GhTrQghRpXQw zM06{Ef0ATxGWA<1$RQjZmT?wyaXUrsZ(_tV_nb(4puq1O)mXgHr!tVjuSH zr%J4VO7-HryOb)H_A1qmDat`qs-g42gP^$F91p7b^_kMWW%5biX^_q#k0W8_QgN4$Ah2#3N_WoQkF)M# zZ>3~|&H5!vIg0FEm2I-O^9B%SFjr$4u=nQ;AkM&EZKLuvvX@K$-i;uqV7GwB(QAjCE8E==>_9KAj@)&fY0Q=>E&El_$2*C+iq8q;*x(us=>-~s!hwe3Ddk(Z^FdITSyd2H*0N^Cyz}&?^|D2fTdD5N3P}9TQ5rxOA>kcz84+ zT&=_VRpwG_vpx~(D|{m`rM7yUB}c2*ga)3-W1$$s3~-?9+1(F}K|S%XVVwN@8frAg z4!ckT1_u5rF0}^otD#HH#UX@tcw{gJO^9Obz1YFC-H2C5)rK7w$R7{$2B(Aq#ID1b zZk{L1bW1(8I)B0Ndp$MOb@vN~+V{OprXls!$`BZER%ajeUp+{s@E|#aeNtb&X#dag zry^)hQxFLVigB>1dI_}Q0rqQiwVmKB)T^@f_-M3D7mh|MFK7sLfu}wv52<`WZLQS%LQRFCJ9U_m zaGZVJN|SVFQ*0k@3u4>J47Vp3@zT8`bGIa*V{BEQ zaYCaxXEL1|tA=~xmz2Zd3aY=Gc*s%?zuR&5;0515cptV`Yk6OjgPSYt9{;P?HM;WKytVh)5|Dc2RKcbGpvFp@by~@X~&132~p-B!8Acj98!oOn4W&-*| z0vPnkCRoq#u_XZGs1@{3Q#|^l025&Z-|KmwKFNo`h~M@E(ZG3extBWg-oPc`X)VI+ zO+3U>d#gRoVJhisX_xSR<_Nvj&m5rz{nQ1p#4e{z2ddRDT1>BjsyA9pn%#T=ngM@} zG!Xl{xgCB#x6=puaNB0A{cpK_d7#>X`~!0#T1;dAP4E*kF7PyjJ89qxi+@r*ij4L~ zj=9;Sj5E6m^82aVbJjOq;atCP)K9#TW5Q_vA=W&B@G*Rz>=!kHmzI=6?jhN{{1 zJTVzUFeU@&Odz?)cK_6&BZjGUame78vP^Zhe%O8L?EX*-^yDy~G4eAugJa5nGb2!) zMX)DdQvbkdLEFBfJ^@i->8w}OMq&9F7Q(>DcX0DyA}cFDM2icAU{?H!8pho?u8mZC z5!rf7PCLAVPuR9j`6Ml;|yf`&s8(T(xt_0!(8<>fqzw>r@jnI zXlXG`n6C~YrK{PW^Ho8Ja4!WUUKeZ41%X)MK{q@VVz(BkYXlL#=$cgZL;eFXbr-75 zZGg^A2Q5+8iWN)U%&`=tKg@j#B`*x@ehSEO8IR&wc8flet`2>`D?ZQ9Bm9uAR(sm> ziqGCa9BTeL0*(nl&&EXHLITf}JVOGc;;$vxT@h`>5kP2!PY_Q#{#e2|s9=szljZ6~ zk)++Gu9fOTaT(|_;yvS>cpa&Yw5T;-)MWD#o;~PVULwjWQTh|C|BYPV5-ul%we$lI z^Sd5ZVJbMPDeyMUm#cQVf2A50md%+I3`lnYlZrT#@@}!)D^>8chjH%oxtd}_p(^*HhyWy84j%L);<$z)jM@4MB||#%T)#Hv|G;xdnn7 zf(+ml3j{X=2Y|OM5Zn-=0i3b`@WV6(Hv~kr!UDky!3p463j{BO006%=!8o0}ArK?a z$_6)tK*%nzz?LYzf57jewBQ7kSjpg$fThk@Ah;w10eHg#!6m^CU=lUy0k;G=Wj5wo zAb2I{050MncqxEe0%otWvcWB(3V`b@5Zn?F+-8B`mY@N6zyiT70dXC-KyXVyvQAqd zxFsOw>lO%Z2?$P3HOZ=tnB#y<3kJ7@rPe37Bp^fAS|GS2Aj^KSKyXVy?z=4zToY^n z7Fi&;CSc(b3k27MU;zKNKyXb!PEB2C(hwPEc7R$i-2H_?_GcCdt_h(4erti?nt;66 zV}anBfSoV0KyXdKmd;urxF&=Ec*g?4H31?h81ojH4TEO_(y=hkg26QbdGmz@f@=aY zGRp$NJpt+X$pT^HftB4B2<{0r06b-Z;GTfYOI&QW1nvn~ccle_djhiOI}3~h_XHf! zUo05h6R;Bn76|SMSo$vugneH%0Iyge?DeVwn2hhPLGEFbhdut>0%5^}a{s*rf_nmT zE6)PKI{}G~F0f#5PryOlYfdTHF5)hb-Z%=YUzq;G3)NBfFgLe#ww~~8ioXrPmmoLY z^Oxx@Sok062i&lKdP0S522@#kQUyPQWC*?U_$jpxUjmIk0~QKYM$}m~hU!bnh_$>xpHlwLnP8}zw{NJ0B7{Pr1MjF+ zHS=*4o{44Cx9_O;L<3lUN9}BjbE6s#JZoLLm2#!r!brP;sr=EG2G~UxT+*b9@Yo%- zdKC0C71q1yrh4T?Ev*hE#rh;&gplZ z?G5his`_gto00#wJk!HLaECMrU z(wuUO4y>(J$45kO*4DyE#w|9zw)PTSNZq05KrfJj3*6rWBP)$yU)9w{3G#IAt*Fv` zhaN$-x>{|avdlsDSOYDe4^~7Y?He&<({EtT;LV_mzg>kVKt|4Q^!KJ(bV$X0Iq?T+ zU^6Z10XfP4n3H~xjccZz6T~Utp)wTIFUc^eVVhcLZXp)lvq7ip8k_O2_winK0Z`?A zgHHm#o&~~FjllCoSVh7Ql_I7#^wvXKFiEh&M*+GqY+fr(=F*(jM!U>^(sf=JEr8s| z@E^Nsk2_JK!v?@l!`+u%JW%_E8^X0iw5|7MS7k{rYGZ{~roRMu(;NTdFF`DS3CVPY zpv{J9b-?+YJv~ed7If|s!CfC#XVZ6I(p3~in8N5@P-T+Qgm#9-5IF5u?V3ogT&9gCXe+VO{t23?F^+$%ZQxv=KT+G}i-v)8cM~vb#L5Ki zRFz5rH;FE|L(`{d^Fu81d}OfX4(mBptId}uV`pmc(hgLHYmOGon`!;2#(bMGCy}0_ zy~P7c#iwc2f)X&C7P$7q0}uEepLh_NFVnPC-S=FRZu`|ymA$q^;~N_0Sf-gVvz}Y7 zjpj3C#|o_(S7#L&8vhlr)hjg~GwZQc+5+Uj@2j+3yyRD_HFF7deT|l)w)Lzj;aw=q zWOGfK#?{xoYf7_(xu(p!PJhnUrihz9b+djOv?cAK33xHC^}!U{;iAURQcqmeVC|kT z*G+quYmNC22!2?uEfY6GO4Ma-fVdi}kG-r#X(3$g!{Lo72&U5CuuOjzmgw9dkOyh8 zPNM#YN6m>3Dlpux#|fUF(YV+Pey!6c>phVj{be2A$uHdpeh8Wlq54dJb5k|VRP@P$ zm=5E>^U6&(HOxE6I_bKpk^=qpVgauW{tnP5H?S_C9p-^YAe?uAxclBem%SNUfGmjeL)pWh_0)T$Ar|n`Vj?Q z4Vs4RaC5zwki=_r^Fw+EH5Ef!8L>wGHA-6P^&p)!YNa<7z$J@4-&*eo7d7z1aBcKQ zqvLOax-uFXDfly%o_C`<>@Mq*O&i#)Hu@%eaN0501ynwHfZselM)NxA@KcZn=$=sj zsilkF|2+U{U*VX{}e+0 zw`PO8>CNpV`8J*1LvPjMfgzOOvA>alL>k2N2w%XRq77plK~SwHW&D|7C_?-7)N3i` z&osjC>{8c9QWRUzQ@;+eNsh2jd+Sw+avFDw#zojge$!X)FP6iHt)KpIWjcGbAFy3a zSXNBe570kTQkG$bv}MI?$UuFCxt%0W=q-IRIzFMFHZ!0`HTK9;`Wym5FW7I-=;Lsv z(Z>eC(89IH$U*vfgagHb|j6hv>D`TwbTKQMQ&<4AI|* zD-=NY){A;OI9dWetb0lCAZ~_!pMObjDz1ed*LYdKB8mw>X!vkFo>Z)6i-zm4$%4K2 z_apS7@N)}p8a-Nnhs;<*=Z)5zRQ1p-8C&7b*Q9wDAUZT!e^qD%aaVw5ySd$W+VF%! zHsCM-60I`;oc9of1`Ys*zpg(n76LJwU)Os!c@W+b92l?lkRdz>?5mA(XszWN`bWG= zEb~o0Rj8hmjwL<8MBuR6WspbVXFAb23;MS8ZQT`!0tI#+AL+|RnU$)TBo>+ANHHFM zqO{RFdZy4}#d4%tGP{DmP7z?NzCY>f`;)TaCqb*er#~O|JBJP&jlAkyz8>C;iP zg<1N_kc@Rmi)UIPmW*}uyIK0fl}^=xFoqts2BA|mCcqjXc($GclMROO;2ix{TW|N$ z9@xFj*n95?o1IpT6d+lft53t@EH;0x4#7wm~SbVE#B z=BBCh^fqGRayQ*SPp=(NfDd_4uS2o5@K8MlfA6|Rie3YiQI`}Q9@>CuJhVVxZPO3>#xW~7=_5FLWPme8g$PRy)Jz-O@CBgirYGP0#})= zrslGtUp^KS55DmgrG(F8Yu|@KaBXli2*mrFtz*Pt7=PHeb5(I6JXM ze;-#<^o6hVSH;p5$Jx(c>4W$QQB0QJ19yU>vvl}HP3w{yeijOEc>-ZU1!fpu%zn60 ze~9oGvzeRp?`>-Qazr0w|Jtg*t0iE0!(k+)AE(1}U~yZ%47?^kf+$Fb zHU9wmO^#kWdKI^DlChTmwYlI1)$?=qnYY;AIeHgSbgwv0V{`Ry)gn$tlyP$_y_Ty_ zRg-d%tY~9x4x7GRho3C0Sah5&`B{$;Gt-XKH{+Zk;-<9YEdOU+m&C-S$Jy_@^mwJ- z>Lu8ZbJOGF{cxL7`OgJ`VHz8__ck^yIZme@1e){UW6eSRvglrNoGm}33uq*dvz3SS zWkR$k2t@_Q=$UKLE|-x4WriKqKNiJOs8@VkUy6%&I`O35D8`4`Ku3h{nCCiYRFa&gZDU2oH+ES{w|1WS=JEgZVX@2sIzEKd7GUqvchAO54M;2Yx zSIFWO81~M0bcgKk`#Z_-+sRK!&U*Kxu^E!HnfOn{?NywgAaVUwXPf_mxX)E*2DwZ6 zo_0E4gD8SP(AFSl8-7+_5$SAnmvl9aa?bM-U`D9+a))1& zpA9V_Cg3!xQ_mSF{`0Kq+tAsV&l(D|rafbgossIlmJTNLR$FHTPBd?o-6D(W===;k z&^OSZyErkjE{!&v7($m0G@M&V_68Qz)j3Nbe{ZDe-JG>O-YD=q+nmL`hvl2;(QeK& zu%x5#lhloA`6JF$T;I*^?i_C;$y=Dx%lR!VptrEx-p-){iQh`=_H|CV%cySb>x9L7 z+2=H|zw>rz>NZ>f=i)Trp#KJ5*}&j!cpC+01DES(122ZxQ=AU8iqnCL zJRNAwog*A>;&h-j_dMZ46Q={MxwGkXpdwEPT652(fdDh&ibS_Dervt6I zQ-p*0ei=Jic*n)*Kx=MLFfC38T5~6f;0qF&P6sAHOPmh0=JL~liaZ@?&E=;96?r<) zN^W`bM~c&d)?9u%P?4ttt+{Z^lbckW4z%X-(}9XS9cazvrvu@={k;$XKOG29CxQtQ z2tOUD$kTz=Tz)zb0+86!EiX<7T62xlf!17pIuP!Ce%Q{M3tteqpT+4wYc4+>s0797 zKx-~s@#1u#H5YDpT0@}Ifjocs;mPGIP6t}a4Nr8$=|HPE9SE1N%mr?Ea*vABf!18O z;qws`rvt6IaKn?URh$mA=E4n6$l`RMH5YDplA$;qXw8MYEkW4gbf7gCet61QoDQ_2 zgXM|E=|F2PT=C?#6{iEOxh4APKr3B6DNYAkbNT5&Ncs;#()@Iw5)`Kct-1VkAQlN^ zEL`vjQcQ6=(3;Cn2Z9}bNY9!J7d(kcoDQ_+^3#EEwaQq2IuH(e8RVw};Wn2+emYQ* zrvt6I{B$5{T*mU#fl3gk0~5SO@Y8`xP@E35;u1IRC>N&#t+{Z)i_?MDTz)zbnesDx z)?B#Xi@~8d9cZOv`?ORfP6t})*go+uP6t})(pz3rGA%zHh+6@U$S~aRge^`7TIt+A zkrt-|t#pqgRgE|uXw8NDom!zd9cZOv`;=Ck4z!Z{of?BU9cZQf2DFqRP6t})E=LNA z(}9|mE*vAzzBnCd#jJ)W#_7Oe7ppURUimwWID;D7y%Zyv8!uMNl-qvCes{4tQ`yab z18mwQ>a7Z{t2}xMY%ONC>ldj56=myNY+H>wigwnqH*3@ioZx2Jm#Jqd_r1kNUZyrG z552|iyi6UWJkEbz?C@o3ubxl81--%5JG-y5^o2VS*9KrqMo@wG5NDr)FTTYJ7sIr^ z`qmM)TeTJC@~J*QQ~1VPtY$H&y~C+#Y};b>fu2u1O1u{m@8k1_5G{`TItOEjxl|pA z7Xj5C?7$LrfO7Ovc47(2^~0kqzd;?#HZD=K(FXKXaE-hkQYWGr=#b|)WTx^l?iFiR zC+542n2nE9#shiAtbM7Pqulv8$6=o%(DNxC?dH*F6FR*=Kc32%T~Uiv-QZo}^7)&4;9B1XwV2X7F+MAR#LeTCXf`RK{hkjga@{`@H-bz#q4Pl;Lu%Og)Iln0eppJLk^Pr)F2 zy$RL&?Ng*mV@dZ0_q=&8Q9a9~jm=S1)Khz@S}s-&@8y+>Hm#TAKYK+L^2Why>z1bp zGE;f%Y4&xFt%!|Wst(D=6jSQ^{--I2{z6?au9M);o@ORQp#=d@t#rPukk7Bwg5Bkpp-j)i@!qXoT&xKq17JJF)fG)GR3ssFTYzV9dtUDLzK zE{Lo1tgrt4UDjT%6tidJs)x2Dvrppc3)X9Oq=%Z&2487af34i}E?cr%9jxqlmu+wB z(VyKv6Mi|cv3IpvPC0(HT3tprawjidqr$O@ha%5j2VU@UZHHdx*WiUL8YjDSpuMi$C#$mc0)C8S&UW!RDQlttIO>s9$i` zmH99xjw>avNx+z4G@5+sr|P>FYdhRA{;Sjh?2%3CYCSZaHnPXBQt39r0KV!rrBG#??V0jznA+Bzc`K60FWbF*5l9QcflX6hqUhT}{PIgdPnZ7;!*(^cAJ#LqtBQB`aLTC!EWijY3t zsz$8)t~|;X+#+U1IFEf6J9&$`mT&xy-Kzdm+5bbb={8JO@sezE(;ez%mVy@!8+>+i zXQ6}Ge1!e|PBq}aO~VD)j!x}?dss6AO902qFx5YgswyPZvJM2Bl-fvg`pE#wDZC9%-)))TgDD&K{t}fn2D;u63!NfVL1wKqH zfQ`Y=MmWiK->sf!J^8Dn%(6qhT-o**Yulk#=k4JuA(nILNXGE2t&g$&JJbRB&;1ml zsNOg`!Jn zWe}H3-GWON?@>#wJJ5~?-K$Qv9>mA;d)3RWyEYzW$L>|9x#X>*8}TqNP0lvc1HBuu zwG$VQCa3LG!xl=DeBeHHfMwWDI%L9WV|9xM+!k{6g3$_P5`JWfw;`8R_p4(uJ>lyR zTrNRcSQK9X5^tnu{BtjTf`GLPTG#)Y(+YBxd+dJIJyPDd~^mZ;bg)eyWZ{(*0vt~l}7An&4EY1a0g&W-QfZ$%%61d;<7+bSToveKK z1AA(hdXM!52(j(~)wsG9-W8IeydIMzxZ?qJ6}-Ni;CX*YooMaAfryJAQhn5XH$9}@ zNbRX_hq_2P@&sGep?+=cz|o2DZgsHr*p0=bkE=t8a5DP1x(mt(o(Aku7Z&XxHKO*x?>3`5R;ii%^l0+BJ?d)~W&aU&@slbY z!Drt*sa|T`c*{|C{!?mU^=8`kr|(ch8&iDBre2lSt-Xwu3=CI6YUftq1rO1`y7xXv zX5lwasZ2Zc1DaznJ9v!$(v4Cdkl_iQ_<{XouX-t2!AJL|_XZx@z7Ii5dNa2kO}d{} z=feXAj$41HT14^JJ)@2&?D!tU^InxJBeZRRivRR8YPluv;9n$-5)0rP|C;=MA8h*o zejl-|TUM6UIIYA%a>vT-=hUJLB!G4mZxp&YnXKi;jd-;Cq_~M-GIss(D}06CZq`+} zLfNE$R*CC|34yNtWlub(jwr&(r_Ob;@y4S!Kd)}m{V!N!B;_f>LJwBKUijHjw(WWK zaVkH%;05(Xt_S^JR0na95NIr0`w~Xj`_UzAdkH=oQm#EOsUD@{`{bdQ)IJvaIPrV6 zP2qP8H@~9pvOWqkasI353j?pJ`PQu>bS^2u9j~f^qRqeJe0FogLStV>@4n<%1~B=z zSJmq+)(2f(YhwQuHMCCj=Zi;B}lUL4Hd6}6LQZt)nV4XTaG5j zzNwaV%l(2J<-zCCN$ohwqVK5u?WdeSs_&tb{tZSN?_vN#-th4U)pEEQkFv&t>dNc` zJ1Er=BsqFeZLsd!aWpyaJ=I~czKxDO@+b9Eu#=qsXZ3AM-lnHbnnAsD#rx`@83%WQ zfbNM8QjM-H$)-)V2M)mnNhj~E!7V!v)8`U=Zrcqa70RXf+&cx>nH^FgRp-c^Cm2_jzypBWJC*D`z>7KpuHga-qy6uDH>mRBA zQi>lXw_e_j=!)r@=oh$?&lY?eZsen%sGpD{mc8<+`jcW)4Dh8NHn;=P{ZTS|1={@hVj&If9D%ak} zF8w>^q8lGb{`&9g#%{{4-!jL))R&d(f6I>iOV#>rqh+DI7o`lc;g;X_+obK^>N}P+ z7vY!Rsh3!W?V-h(%rV1`2LTjg2JvYL?z;PEGWNYXL>XsVheI~HCmaVK+}INk+(h(r zl>(&adANtNcktWoM{j!5R$%>j`_acfwKZD!dhCUYZISf^wDvK@R%0pZ;PTX$y)4L| zo;}%jUvg+S8%{Ux=wP4su)V5$cOPGwPrlyMcAe65|0BpRXcr4BSLE38l|MhiewkzI zs~mZR-J4^ZseJYbO(@2?Hu4!WtUe8eK7y`i<$X;uqSGV6-nNU$^ls~IOAW;FbWk4d zw6~3<7%ew5rao81qzzg>CNwcTC0i z-1#LEiGek4%*0^g&aoPMVYwT+q?0Vtv1`=(7y8c-NgSgEflL&U; zW(yv+=xYmQpLh#kvajqwAonabw~z|-j@XGYbb-~z`Y%v%{R@E~axv{zax|HxNOhZ`)xdlYfoXthQ{~Bi-Ouz2& zw*K^6J>GU1{oXm=<{Y@?!w*sYBP>}S?9%KN#O0mn6MF`&tAhhp1%dR=cw3Z^r&rk) zAk*Y+Rkk%)i8#sno^6|vePk0-2Rp9*Fj;ptDl7ZI)f7H({fEh0C)&1Iv)gZ=@RpmA z>110`wGjkxaNeft(OfYS&I)d1gtl)R{p%3$5;z4cy^APz%k2ce=k^biH&3=bq&PbM z_>pAU9_+E&qXw0DaLY%@Mbm84v5fLj^6u%jd6wdi*MSx6pLZ4ILh6ALFf?_`8_C?6 zHVeiK|77-Aw*J==!BY6AofL&ic4uM62BkzR->=Clb}L&SN?sVUd-9cAA5N}sv0vN6edIG>Vl&0x zsGiVTaQXz(lqDru)=5a*u{$|`&PR~kerg2>3AN_Tzx|k zN-A^CR9>+C8@B6Odvo5Fe^7ik5syMK|8@4elmq`@2d=aCRZjeaeR7?Bl7fl6_viL= zl`a2ftv|Oq?$_TfGE9p-Xoz3;M@WWOx5;>2NQxzTo2&Ll)d-5*(c4fm=acTbz-(1_MX-gTaU4#9rlp&^22QX4*O{97HHS*9rnwu zN46eImi@-QHJh5i%MaRj^isCHooq_l3%vxn>ae~0KSxgsP}QxyVhgfms`ZxHixENd6onBA$v!u6-o` zv$464K2J%|A$syxFf28fC2#vIzojQwP1?WCpOH@=7b$%X4^}#!XX8uz45dPZOZ!Yv z9($hMRoZ8*^7!+~e%?NHHY(;%EBeF~`uNAVK37=iV@*|`<#^TtkA457&r(YtBfFBG z$|QIrlg}qFxTsGKWy3;|J_8j1ej4d>!a{)f%08b{wo4lNbRgoIK8<~neHsh$U;#f( z4vrVxokv)I*i^8Cl0~m7c+Ek8iQ5V`5Mb}Ng5PxmAh}_C!MEM52O;9vy#@c9P1f>` z-39&G=G_Ho+dGp8_|awVOzwZUV5frUusw&m|HQ(= z;q?39!osWQckBg)x6p9lzy&x8Pk?WJQg{IYW?fk5oq);mF&6(-;n~(rn~o(P`Bfnv zq=ZzSdZ6&a+?-oUD_4|fWnIl~{6BqM$;u}S|IUS0wzqI$H^SSrukbA{&x@ZgTwx{1 zi!T+v&OdH?rSK9S_4WS36PALHZ-sRbqr{>hc^rWI?dydnFy+4OSn|_13$N^t*g67L>iFp+}h!1rd219}zZM|xaB`=K`(Av}y1+=x;H);R7YvdP119LFq0Z{J4f zW6}RvAMo_N0`JnH%RO-0F?ML3qsV&V_G8I^taCh^TZN<&&-MUe-RsF)NwY4U{%Us~ zz1V2vz8V|!1cS+su67)SuLx!O{bt85i-}ZkNviisZ2B{i>b(MC6RB=GsRyoeU<(#; z|Lo5lPxTm@;;Ne@rL07in@A}u5C*B_J->2XI$(NAU_Ahbz_L>Ll=O7NF`yR+mx^Gx zrI{m*aO1r)AXU$KgWtC~B56iAMY{lM~+q ze`+vma-vdsoBQ;$;LqBG8R5RHN@f2OZ1FRWq69}2&ZaI|JEk5bM$`<*#abv>BU?mN- z9~G$yeMjoEojx(_!TkZ0kZQi2e^3(8MtG|TE;ysTuw$Cwa#zEo%cODXsUfSSVQR@M=K3SxoM3D}ysv zcyNLKcep<1S%;gRiW>H;BjA@@cY|_>0%1MZgOg#sJXtfiBf3ZM3U~K4tKdj{jQ#pq z$8_c7W9-ngjuEO%Nri2HoE1Ii!26buvGLD2=GsIQE)9knY1~sMy zFFVf8OHm^3LFdkw9cxhvR{RIY>Rd^qg_;+;?GKJQ)45{1dvM+0-{_ptmT+$^u>_YA zN(QyzAxKXAkK#pZ$8(mPhY_zhFwT6OgGhUeqY*@m;-1p(^yYX=;I>#RZ;f zo=}awl)IH!`LXr}WKu!d-Y67AFtfpNEN%k``4sIE*F4TfmCxYmoo5#;NZ*a zv7&^Fb=H1IIb_B*>~~z1$jHLP53X(zS>Pfty0AgnL*lE1VCaotA@oYP5GYJ9q4Vfd z)(v>);s^3zv>09sJu4Kp@ioUeePq+_Mv6cMK(jvdn!`oE|9s8S(6@aLat8M)ML`2z z_d1LNes6u<@oXP17izFvxk!;%;~S3tsxB{N4-k6;HUmpiPrl*6OFDbl4{tcmA`(Lm zIDR*xGZV-ZLjfB7SXakA)>T}hFtE^ca8~f9qlJiE^QL1k5qaQE$Gei~fS%c8+yK1) z|2Uq?v|RDGgymvyImW8GHG#}{19Q55Fvs>gn92f3faqlbkyX@8n%e~ zhv3G(%WF6JlXo4tmVsP{(N)7sozerSJNj;JoUc6S@EI(3OR>E7pkpV=wf;TFWMcid z@0nQV9T2km<9m*4%|gctQCC9OTc4Xs!-cMAk3!B+dkCv6dk7kAaM5$0pjEKR@lcbr z29;4SIlNwx2+SV;lVfIAg_-n9=5aS_w%_^91 zTU<0iVpo6Qz(Xcau>OY~^QjA2b=VQLrBt5xp`f6pg=8 zl`1!BIh%XLajns?AZvh*9dXPvWD2*ZuG2G)I-V#Kh4XaBC1jERW2HIulmjE6sVTy9oI)MF=Q zv_PP`JZOj@l#%l)C2=}sR5FxN*Hlqh(qAZ}$O3}<@L1Q%c=jibKmNC6oAjw;b!Doq zNX)#sa2>Ts9mOU0hK_P|BX(hK|N5!u5OR(?R_W#f9fqhN_VeSyTsOA3-aG~21MtOHj@@~J z1dYWc^nnwO4=DQ^zIH_E_xrCM0~9z42Yln0seJncTmFq>4TX<>gJCLuhyTs7McK1E z`OM!O^}U=2b{s>8ILwMBjoWa#x8H?UaRPJUv%hnk#0jiptnxpOhj60nSn{*~IMyr5 zf#2Lz@0_R{|IJPJI3H7v{3cmraW3vjAHVD6bXxoEc}l0Jq9gG1M28OIM7857_H}RP zSf%5sq&L@@rzTDisypkhVAe3}N&5D5YxiLJa62pkK%4ghbQgw0_}(bKv)bD|lmgvz zx4U3u5VMoV&{sQsfq$4A3T`zbw#bO?PkSu)2D`lL7H>ZA_e-rcweIfl_@F^g8(1dirKzcbHX`cyc zkAc)-Ac2+bZYxU24tSiq=AC$-Gm$-cI6YFIwF+hM^a^f1EZJ}O^u%awqaH-Bl8tFB z|8MQj+Mc1fuO#Yr1U7%g_78Hp1MNn}TY1J(pj!;^X2B2D9SXLQ!$l!azMu3Bc8=_( z9NEtnd7Wj6ov#sxgw{@9?RR;45LehKb(g0X28`WBog6pNjtDdXK4^dsa4=*k6TEE1 z>@z3WV}Lt2xPZhDQ@Gu&$Wk2N&s;v|LxWCIJg?)N$z!g;^{dqQP-*)C_TV;>;EC7R zUwux^e&QX8xE;Wg?=Z(uXW98%jeNH7dz<{3Wl5#!1 zKY7zo=hb-V>j&0S?!)|ch+`zU_eGT zKK{LNFMGYrSvupaYuUO=~um?rG8*=*KUVS2|gq{D3OLBL!e=T#~LV%l=JD0%^jb3Dx za~%QJwK$W6%0{hr-blaCt#*!~-;=AI-_x??$u;N>_H?juYn?YBoc#S-=kOks@_(;z z&V_||B01w{&ViPG+*g1rRNOu8&D%@00&!*qU%;3FC_mlg>|LmA+@1WzEl$m%T(vuS z|EOb)@AXQP;EHUR3BXv zYGKdb;XK@Z;}&ODKC`qt3zJXY>1?qmh0|EscIPL9_V;pREy~Kudfl3pH5k8ocxLyk ztWhG&D(`ao1`P({VgP=tWMviNR}W_)VW|iwe|DF%TqV+vKji$p@X2{aSr){k{jxV7 zarRCAp~H#A?_W10CqL{Q(5=s7pxq6amlx+{<1c-*fOcb!bu60{niBKPsaheljEcY)1Ic8R5qfJ{x~} z`oD^J_UBKF^G6->6=hurKpvPN$?M_6_^vR8_uzXf53>Qsi-#sIy}WOh1L1S=XTzT! zo`G-Ffe~Ja?>_h&*Ta!z$M3z!hicXw9%~B!2Jv2mzx=K+s{p?p_)|^cd+|LnD~tX9 zcyY;69cdSUl!+cDW{D|1OcFDPpUDV6itu<7{ww&V!hiW4JLj|F=^mZV$AD=jywC70 zm}3urR$MVk$NLm;Ge7SljB*+LR3jkxVcO@#LlxvR{qy39^Y!#o5kJI)f1!adgt8D} zzbXEbjQCy%$zMeHj=vOF^wINcNa25icmw_-;8e*-SM^14 znIVTi0B)A&12X-kmnX0LqWFVuL*fgHvQ{GDPDBjE@6Yg8F}f&g1%7{zKT2FNI(g&Q z#eZ7fM^~M*0PK&yOD|`aU!r*wP`l$2ZHQILDo?&tqup;Axh&ccZmeyHw$_c{pTpy^ z;jy}vk;dj|OWeKQePJlpIKR2p-R7=ui8i`R|7ZKS!oj5zatwrJ;rN1ZL;ZQ-c&IKE z52X;xC-+SNF=xckp*ilM?)l;7mT)ZG6py(>?qvWk)~KY)KnWT1BDSewGE+I%pIhdS#|F9Id1&Nsnf?$_mq}!C>|#A zP2n}}CBS2o)@cQ7inCuI7Fwr;*$eBma`v}%+7veCaxKVWmunN*Lziopu^rBSeOdqY z+BkOpdaZ)}Y`r$P8xdtC8?-{UcfIE9;dZwnLx#t}3)pun`uApEt=G;QAfRqH*o;SN zxr`RXVW^jRV?OtKmgnu~EQpoGnj0c0ngXSt|TOuPU zQ_2T9y}bd1331I2FN?(DE$iF? zcGu^w5$wA|S~gpkm`rPH}AyC=*pSubYB%$*{&0b`ySJ328EX-x=j>O#Y7tpoHk2Sv z+^w!PhKZnUi!RiMWwF{XxNwJnk61OdICg;X0tR8+F)8d34!3T+P}4K>BqphO9=x7Xw)x$& zN*j5lp%z3rrD}NxuP1#elag)ol`KK?A!2AEL&ZN38@_ehkR}q~nXJQnp1CMsYeJYE zvJqrUmT;@XbyJkxWOs;hXf*$EbAdr-q1Je`ky!Y z&5abzP1k#Bd(_e-CGpdU7S*MAjlxnJh(PtwmU&sjx@C*GVPV|OEz#z13;L>*Q1l!O ziE}+78M5-4eg$mx8f~mfr9mxvOX37~x4TN%8*8-jtnVLOg$aU*u0U9OQ{|+(u@-JX zU<4x69(A2`N9#=$;wDNuKe`Bct)!=3L#kC9ZEQr3TN_Hm$$Y`ccIs(KN6EVDq+laM z?pU}vM3xx@VCN%E;T8zGz8NPIb|y(|Y3!*&s~ zY_hXoK_b+$Eao2Wo? z4X+K6+110f3Ep!G=B5Z42i)ha<8@hV~K zk0FG(yd(-g)!ry{)ghQC^!QD&R*d*`^61-%K+14&dx12(vzav&sbZ03O;q`rt(eVn z_RIah(-tlyFfSSrEGMr5%3AWLvpFeKOSqCCc_P$s3MH9M72y4Uqa!I5$s-*RCWHDr zD9JTzwZTG3_O8`N4AjSie2_dp9E&!<1aoEPLuK}Cn-*aIYST29cZF8Qs;%-cuI3|StE%@40?g@V;_TMz?geQOh}3p$h*5hEhpUW}@9vdOG= zO5_77A73DYidY;(vOD1**K)wU26bDN-P zIoZZ+S1-1%Ub9QcFqW*>R0{k#tPNpb>M_f-u>{;6*7^=0lGF>#fvT^@5Xn+dao|iN(WLZNHIHGGF?VJ&Mb^_AzdQacez$U z$g`JggXnkFa?MpJG6*)U1Mxwjrgehu_T^f!Q$+nF8mXhW)%X>WZ!XsgW#pXJh6ajk z!mo(@&vLCl5$_k#`i~J57Vx1Tp@}b!$P3=uxHQ~C5p(#LpwJl6oc%@0$x%!{LrsJs zKLyJ6h*of!K$#wDh>`3D)zgPTdMa8lLFv~3PHSn2^6dDB0ba1KacPtnLwt!m`mE3f zxkMhAI89sIOytCuK$y2elr*|R8%QPIvO>ebjcoRe3?Escl?)ODW;Mk}j|#T5gt(Mb zAwg*HO09$v&R8kxr9uAwa;2!;Ju9_Ria)wi8(1m`E^I|lm1a2JeLxO0FNWQUAJ4=s#cCpLFnj5uV?Da;?Mnpeo)JD*+y-EB|YSOAHd}Wgm z%#J2)xYURs2G)_<7!_E4iVVJN(uxzJ0l0Ir+uUAZMtqpSW~bUcZ}z&~31jvI7GXqA zWo@RKP`a===4i4!3(?9lOph7GFhH2d8aabKlNBaQ2d6akAS zi^ke}xQdESVM1rH?LA!1zFm|@#5lV)qCB#wmu^IP7WQ=RMf#p*#yJ}MD5`lZ+2VWj zDs4>pV6w8jhNQV)T#i&}rkq?4*@hkFX>$gbd+VFHDQ0_DX;VPb(xQzR2{#1wG2uF- zAhV*^HwGfHNIV?GFcL9sh9Yoc2}4?D`J*rDLNHUQi$Vpj?_9r#N!2S)omQWeupHO?;FbaC>>TIAjR#9?LS~eeMk#+}^oMS75*-N22a(x6x~Pqkeaz z-@Ow5A0;|2k_u_&%2Dn>AONpgT{xdh%m)-OxDxWoW}9Q$$X-Z9lFw$(#V~yMG$#71 z0dZ|qe_gPRi&oZ5fFqChHAEVsMPrR?0~3DC#A3CaK%389^YmSnGz4pW4%PQ8G}G~BU{(1O=tUB zwf=crn9ZV0Tr$QeAd#KDcyTHdZ-xS=a-n2hVVc{!*Z1T2Gs5vHQmd(NXAkvoWhc@S z3gbu0V>W#hHuRkW)5Nd_LX$jC1(19DNCb_6^>R8;MIF081|M!MX1U%bpYXWI*g(^S zHh-cndLgEY62Tw#t#1g!I}{+NK$%3Gzyl^S6X1qi58u~>Hq<#eNd#R3BaWE1wh6?{ zf^dMCn4s65`$EnKfswkkDPN2OS9pEvBlX^r1z{ii;C9Wy4*yguoFq-bf^Zv=nw?4N zVor*{oRpxn3Vd-=v(2OulGN-lWy&#!&L>PLj+aW@6c{<7>Fn~6_;=Va-?~V+p^i6R zDQbN%Rwl=CrVLku3xC)j7m^DFniiR=sBB7b_Ur|-7P8MVWX!FZfHKN>b||cQhSdaU zVCEj_50?bwr*DGfHMC&^vB=9lH5_1HT&)#%^RL8L-Zfgk;d(jTGpJ%^nx-K`$YlU0 zLQ^2%iE;7w|a39sH{kpSt*J`Rz_0H^(95b0Cn86waIAi_Tz@KZ~*}t#V`be%R zO7gbwG`xjO0?QCmEC7|FHrNnuS{7d(2+I#4I-(!zin&-Ccd-C_?>cReH5`~o0_1%5 zhIbrf7jqJl$JT(iB{0$3vZzJZ@4(2KfJf@O$4?O#G_7oku4xLCBSLj>v z<8ToY_;Q937>6ihwn3@*6eBPmVE*Mv@Zv0NX$=R;sg(4kXGs&9KsgmrpVAP8$&qEq zEKp9R6yE}0%!dNyR8)O#MEGJJ5-6wQ>T?o;&xtn8Yl*Nu7rJs2fpRLdfHcC{yE-fe z1cI{oUPua7PBKV^Mf`MW!vqFN!weBPG%!>k} zNF4eciQp*pI6m(Qj3SvBL6N})kyJE^CKdMhS^kY$VfVl&h=y6d)e3~rL7==s5+vcI z!YPUd0@n#-AprsdDdbcvFp30|3a2O-2qYI`3V;O7-UP~YI5Sg3NIqtW38!L=WR>d< zrIHYVBQ!xr8cniG0~uJvLc+i!K?09}Y2 zf(5pmUj;^!po4S7#7jg$A3{Hggx3T{lZ^F{Oh&n;W|4u>BxRmw3W(~RyG3*L2#h8P z(_Gb=5UDdJwt>+k-VC6?Oq2t-F6Yvz=gum46JqV29){yYi;Hae=f29pTo>U18^LDK}r@;=7cM&Tjb9Q9B%PGN6 zpCk^)l7QLoPHIjC6wd!2ZBX~XSV)q+`4xs`d0%P0MO!|P_uhdDLKokH!8usUk=Xt`QWerjXY&P(d=qXCf98;0u~C`wvubLqVSc z%G1VZ^@1X$kqEa)h$I-rOpOpi4cvrQkO-%w19fV3;k9UWe6=o6L845|!UW8K2{fWI z5B>;v*wKC~NVI7nffa0sgkph85*hy#(DV3ecA%2PCB6k*H|c>&l9nFw_!DHBXN0j% zLmnC(9;hV2bpi`gqBon3>2yn|Ay7$zOalolVZID3l4}}BU@a)&4nYHrBrJMA2_ox% zGfaMgMMfm=hniX&4FV+7X(@onMRY?34hb|3B(Nx1U>wPlz61k{M^42&bG>L7y1gbQRRJ&t5MO@>6AY}$cwrgko34Cw~OkqC{Thz-)3xd96##*qNi zfdWx)^MP^ZmTrneI}VI9x9aq`RC*E}4H+6tqqJP$>Bo~;>~D0NsPWyuqjZ{z<81t!6}3|pU>O6VZ-`1 zAD<#l33x*oeTEi=XoM8zLr?nf_z8qbGc_ryM*f)q0fNI+6P%b3p8$jIloZ_sDZ2Ao zmo{M7NW~MMf(AxotNAF2;Nn}4z}}8ptRivxPzVvCED}ENf>a)BF!{u08*t!VR9WG# z9OEw^=^yW}9P6*dzm+vU|1=Xu`Dp(*e|fpTe3ZX@jDK9YzrsJZMhIbEIN*h_np zvS|xAr_&aA{1g=0D+k_@1e6=8DZFFd|eTbDM9!I750si1-r8|6EY01OIi4>Jphs3fQU2L{U0HDH)NK$4^nRxYRhr zrvRrFS1&E$^Wr7AT4olPqGe0rgGcc#vk@(Ycb|Gwse^dtO8w!!6){V7&(56Ki^*an zrW=Gn557_}flv60O!HSh;V%=jckaXS%ZVoDec`f5otVuoUI`y5!t^5{v`q*Q`jHUf zlSAVRm+7AyHt=jEg2-ilxSlt@3$aH_=Bty$lrgl_4vPl5{JQ~VC6)`>@9)rx`=yhs zGuAkXB(vP9IW5)9b*DCd!7?9B!xtHe@wp%}U^(|_ zF6)pXUUualG|d6Y&o0ZDC!)zwTsMkiTd<;;O9c3IP$!@a8NzWAJblJY5y&*GJ4I>6 zQE5zL_EVr$R02&*HD+UPSq7FK1vk7=WLX(T*qDs)@(WTKWQ19R8jPX>$`S7=a4Lx* zeblbwu)o&!>!qtiB~j7Gq&kM!&041CG>&l0=`U-)N0}F`Zkxp?fIqKynP4 zc|%fkM#4P>`fTG)EYkughWn?;v3#_YoX%=xMJ9kGFo*9MI2DcZ%p}wZ_+%u3g^qO7 zDjQNc46v{_5>QD^PPzh5k!D;*lJb!m0BY87Y?_iMxc5|ML6yLroF)WwJhe*le4Zj& zwrt_XJOvKP>H>X<6gcOmnLNn{m6ZIXr=U^M7LOWrMynlR;q+#fU0R`K0vmt7c2)T> zbfdxyRxim}QswdZhH-Jm_;fE)zYfEXX4q+exo_B#oVF!xJoQC-T`a0;>x5~niFjx! z&{NhDZpJ2lFATRV1UhbPQ>T$3HyuzuVP2xXYW9m=nqykIuPW-JbPZ(tMqD;xStAWB z%T`1qOZP@T>u&}L z>NdmpX98weZ360@2m)r+Ng;=8s>{5->T1+4ZS97%`R+2W?1$Uh{4>z+KK-Dkm3n=F zi8SB2AS`ArGrK4c^5KKSWv0QQXqUzc(CHU9#8|FVCnmwh0*4HzFLC(fpi@T5^^ID| z<}#>$=f;TPLdI&AU^ji>D&&RXh4=s)B#aq)7>y@_LA4z8(m;&Hp7;?%(&i9f!=WEJ zMy*{QX{f`VO$<3>d>A_uBy=DjN=igh?N~t8eSJ$fe0kUlR1W5NybbZWBZk34X-$o| ztn*_{RcXgWn^OU29qs0fE-)&26PwBM}(XcRI*r* zzR08tXh~Fbl11(#TEARAlBIGJB=`t*c3o*kW~mlSI{JiU9jXT)pQ!@PQIvs_H)HAd~c}pV6GTW|^_*Gn%^$>%X2!o?*fu z$VxTr>v~Z!+U)e+=tzP)t+ik6?)=Akod zDsr~?Nd5KL8%9xO0b1`=VB-{&S1*D=l8JQ@>vAHd#pu#++(n6fN zKJXD;iaFh4rsJ~5pU?)4Fw0&hU!os$TAU)GS0*cdQky_Vm3%OlnB+@(mdOFZxP{VH zD-%J7b0l%T=)7nhKX{pmYL1;9ZaK5MD_+G3x8$EZu*s1oU8&Py^o!dt~iD!YqF(kvT+^ab!nXAq; zMqZpMoL*~klSevV)$FgJGIto-Rch?Kn51N~J+i?q)>-C_jE}TUNT$*41m2>@>lsrc zjtj}BM!>`LohFx?^ha7WcHn8vF~7^&J!NH5Qa&KbFldW2tId1bYBP0`?C3MJ9F$pc zLVj2tfKOUlLRqD{crt5LC`9K@Q`pbW_R!pb*}2bXy*t~+;E&iwoyqDci+EqBhiiMr6^3Nq#KI?c^bB-!YDPT(A;F=oZ zER1$AxiFGpXqZaZ%#XIkBVjRo;z}gbU7nHd+*G;|WvDqiUE3+MOEMB+%|p*DQHJ>w z);=HH0ZYj21K`O3ru>+4 zi&u(Zby+M51B*ekXik`T>O&B0pyMq}415Cm(1$xq(aq{^qQ#O8L21VSFH&4#G3!F9 zsg}qRZG2vH=8=JtV6;I2?O&2&mN#8^I(>vVO9-A4zxlk@*G91OL=6IV^9yMpqDCOC z3>!D=OiZUp3ZKAwcJ&LI`!cAD*?jr@7$op!pch|Psx+(`*`ck@sPOaFgEzhUiQ!+q zqB)DCLztp4wGv0TxhxjFh@(bS9Cv6bhLNG#PM#kfo@wAR6p79rVmwSga@xkrAm)g2 zK8LvyPK`HlkyMvqBuo;i!D^pW#uRJ%@PURKDJX9(5?3DKCPZ4npri3IjJU;ox?22H z=|e^tujgZ$Z_o&dJ@gW~)9UJs0pMx7(?loq^zKv&6TIp2tF9J{IwWjbqD9@9P3K~g z9GssNn>x+eX~L+pUI^?MA$RV3x%04fX)W#Nmn=G7wwW9*B~fFl9Y zOLv{bH4`z@pythUEtT1JN|v@J0H5@uFKd4CO@I8dHd=unJO3Woc3bJW|LQpMNvB#xAW(-4 zc&om-|_Rg5WF)6PF@}FC=qg=Uo){hic&ZN%zPIsF+01qJ`L;!|m9U`?dasWJwo|tl^F5 zC!q%1+&~79q8vP`TtrP1*-_m0`?Y=-$pTINFUyk}G6c>=ZSan!^N{yqNxkL271x=O z_e%2E(ve;pUG)R~60sk#;u$JL=2wEa?Irg^dIL$bVO?2^)EEG5ZN9z(4X)5LZfq+v zN+#MGji7n;-tmT3wB$#M#gVx#>+@IL+m&)z=p|Vq-5WfO-u1F^2Q;5Phg_4v(8{zi z7X0y|UBUy;jS&q!$ax?JKLL+>h})w#qF@H8(+<}Xu`---#g=ML78BiAm}@yIiNm3S zu)*eyW9gR2Sl6ngpXCTP+nQ~gIoK8nvyN(~N03D-A}XWv*$@~yAM1wQV|iYjS_ z!^1qD2?90-umnFFE!Wi0;CamWD*jVG(ny3+h=&ZVXTt_sX{S#~WUP)Ok~Mj%!(}n-q6&LQ`iEm(M$e^kJd&33{JC#{pSFe3(bwj~=7}{M_O|BLl{M7a zFr12g^drV*aaxCMawN(yE9aRbnVz4X zMuznSdf}#JwCn%YL~KZzh*+X)LBai+q37fx=RyjsAc0ciUnw&rO3)Th zVZ3zbwOQL_Tk%XHzlmr|U_*=%;N(c}m4xm7?^uV~Tl`=0&P&i~P%EkEvrSq|6pnTn zPMmN(w@ZPR1QK#mAoVbdCDb=l<^p;qgExU`jJHIP4=R{-msWsXJPq$@Ll;RV z>bhnk%Fm*8HI_`p7=uY_ZG1{E@mb!VFk1c*{Yax@aGQeagGht0c{FMOQ7)k%SVl`% zki?G|o6~oILTSSo8k)1EFmgPjz7ZR$|BKG?|FT0#?@zcbFTw3zy03A0hHOORF>M07 z`jFPAAicuqh-94Yds%b1u^wm)M93^qHJcaq_+G8?vLfbXP7Os6hc}SHtKT*We?wL@`<%hthiKDtK_<>d;IjTRi^ycISN7%nP z)!3~l`N62`O!)EE<)n@dv*N>sgchD@`c!g*pR~g{lAq;gO3%#CUsC)mJ=64E@RPBF zOmM_kSC(Z`jbNVzxh3HNmf}kYR}E&1BBmB+{`|9K^!gazk?a;n{jm)O(?DZnN?q=1 z?|K^TRaK1frq7Ty69#N4N5i&)LHm7JZ zMbKQq;A*uuVUS8=H=0UOX-ppYurd`A+2dAbh>!6qduV8qg|ClZ35Vt6QO_%-)S}rW%7o^Lzv=%ugM4m@&Rn4E8`e zFQ<@Kl?;=969M1w?vmXrxq)bpekkRz^syH{)$03m>j#rZi=NRyle~~K1Umla0DJbh z)^|Kl*(~TT3&6Gs|9IPaI3#$p!{LZJZr$|V1%3}owqycNUKzlqwnfWos?xiu@cOnk zKzY9P0lK$A->ww(Q||nXL1Dj89WSl79_*CC6vm@uK*c2s?1p-+w6G>n-$m5$dJGv6 zg$8cy6K}>IMLJ^QhEQ;wE0>jQ5WG;>C1ex{r(htfy7U6c+KR^m-0SF{685*m{Wu)H zzRll2^1U$`o)Ox#80Uq*)mX@@&|B+fslcRgtrRggvz31m~#=0mCY z2zsjIwsMr@cDg)l#2IE+{zdDXkUiFEIZAm9s}`+K?Snvo_lzE#BIEm?sz&kdv1$tK zU~8-Ki^?J1s?79tX6Yh=ak!PBjaY{KGX`u`G2E6bO5W)Vv(L{j*(v~vendw{l_#2g z{*2KCk>enbztf>+pFeFVM5q7&F%9hT`8%CmCR7Oox)Ghg3LQV9iZp4XKEek8xM^TX zIt`|i7U-Q1IQ#qZza9}ZA$Ci1_neH0))3N5hcHnWlL+(Q$^0UrXipAmP z;=YK@JozY&J#!RXF;-v$3O`gN)6e@#E3D8@8Kv{1Ly?XCnL?l}=}t0-PA}~!q=%n- z=9%K8a}m{c#wkc~1e#;eq36CNfD{UdQQ;_tqm*yODHj}q&aqUnH@?Dci~6bP+(a8U z1NvQm#EpK{U+T-O!>Lv)5q3f)L-wPT(fGzk{;lzlgxbat_BYf$4|xs1w(AiCpRuBE&P2 zF~Gvv39-AKu;4fo0U#L>KoWjo!Vq7GmLHTkzhn?`;)^rDw+;II!c|G>@P$*^)FuQB zMCHbR9xJ@W6f3{bwBh>XYp_A@dPu`uF}iUf6h9x*<4mV8Q`~pjwFypS*kJArsG7Zk9q(g2UFVmX9d0m1iFgWRNG?t)I{l*D{0C=I`3;Hy%ez11FKR&C zp@>Y!yE>l9^}WZA$Q>}r@X}%P~->K263MVMWen%02rxn6 z$WssT66jY!iXzC6D1#mlBoih~qN&FUntBMzVY-ln7&V7MH!Uc!<;@`mwsDh)z!t&8 zI%)K|~TW05&LfRSB^qg9*CJ1n8z%Fx2T56H3tuh-95% z$VlEFNtx(3niyYP>-ohdL~?4VLfmo!Qc!;mNA{eVRPRyMka=iL3=1p`{J>hG(-5Gc zEMriR(eF2urFHmSboUKqMjx+t@fjU_108PXJQnj204Jh@IHan9l^oUzhIH<}8|aj9 zdY3LbY^9-$_t9t^)I(E{t|38?dSh=xncf+vgyZkr+g7oGC(#4)OF+**sr9G(Ly90Q zx>5wBsGmg7xc4M_Mx(1#!0pJb;_{H3sy06c&tw*T{`Kg)czs~Fr}tU<__B(I)%-eL zGRLth+#Agn|5NLKQA1m5yIV}$ycRH9?^L%c2E+PfsC7}e#ve^Xm4==oFwyzqpIWho z8B!FhU1E>Uh7BR(+sC$T(2CiVe`$k^%8ZaX=vFh0lnl&X;215Q@CyEyh<>Jt-W~cc!os{4O}L zOkqajHa~^NvEYuTE%_;8qSwv9TB>)W24Avc&BTi=gDFXv$O&shXn0J3pGvHya!~)2 z%9BE!P!r{SANTR1nVexQ}W{$_Ue5W~_2FI|9qWck%2UhlX78#Lb-psKlztaZH zNsmqSJfU@+_yBR)XQX&Z!9?@};H}QH-0}V;8#YlL?s{9QZ)^uPJZL*J6J3jmG%6 znF~}BYzoA-^>h`D=Z=)M;uZtB?*{KgU^_<&5qen?!Zn@YHDzLT6?J!kkNw5!I)_zt zbM;FQ4H<>DaDiA%l%74Y=SBv~mcskbH;%~VPE*YbL=&JBGKiR+i3Vl%VK-NiLzfnM z9JES_7+?k6T_vS$p%|9B@ZwA7Gv?+Mc^2>PYRMIf>L25yQ^cl=AjZ;KpqT;G6YV$_ zC)@O^F!|Xva#n^!Z_b9V(gv1`%`zG3xyv(z<~6d$XboaO5Dnbi6Yq1md%8yXqc8_D zSKdH;)lqVS(zmfrTkx$QY;(OOFAjL<86kUG+JHV zj9V2llbF1~!c}YJQ_UTngGj&I*0=eHBnP(|_5_rA4%v3hsGtIVCY^&#fRz1gg zE|Hn3JyCAdl*PrjraNYfNnPco%DlX!U%;-eX6-qyzUOBE=a;7Fb9UJ9bbdzEBxl`*`bvZnMT=Gkv$Xz^My^1=24+mv`R` zsE??#FKn&>`JKqH0d_paz-#GTyQ`p}EyXw*H?MF~R9!H`WubVSE*G75tgqn2uF#Re zbRv%Z+wPhfrizEV8=8K)i3}Y~ISrC@A_B|QIhA4W5T}i-p2~Bb&A!ibIjmUNVa55b z0e#x2Fbio+&{a{`jrp$L^49pau8M$DFQDu1gZB%+$#;42dIFxqq9qf8VKp1YN>x*e z6KW!aX6z?jNgV&9h7H>sO4O!#Q$H}A52a%3sS zlGJa>O`ej9(VkO=0Gp8oJxG9VCjlvZi5|4tX!GKvv)L38qOZz}J1Q1U4r6f0UhC_6 ztlO~3;bH8$LRTWAS+?S^j)B%X%{H&zo0AB zGIxq%HC!_4DfLui*J>O*i=C&{*p7-&BH$6;&Fb+6>Ik5Yuc{oQ8#OW*!aW=I3wLS= zWGX8l60s4roNq*p3#VyFpLU;4PsB7m-i8g+QslGhX5oQ5QU$$ucUcDYgH(Dx|GElP{SncD>9fg3;D?Q*%` zB;$LVCI`;(dRpRf?35azcdZ`YCzEt9@UCxyKPj{{(h!NS)7K7s6YxaCdFZC`yuvK} zG?u}BiuWNV^IKoAWJ~vzF9egZs%Ghz8+~4!mZJEyu4-+(lRIy5ye)tUrrwP&f)A{Q z9qZ>RPec|q;kFuFDgsMVM64N>@w zlHmOk`4+HVjWFC)y2WAddj7hdxhCD*wEA=K`l@G==?&7UX}=+r!B2w!3+BJrS~PonGQa2kZ;!EdMCcUsT5rhw!)to zt~ll`aR;BCE^U;Rm}i|HlkX!qGY0TvVYH?0%*e*+&8{=!wE@lT%oq?|gT(FAxm;}D z2+VBGxu9QfKfU^csT4hvM3-sN>(Jbxfk!?=4eRib>_W6hCp##nj7=Zt8p@gm zx`wk`2D%30(LQq9;!z);J227hUGL^go9=#MQ2t4 zOku>j!T>OZ(K@bbLMOquj!PlL#&ymkX2i3LOI-cNm2$oEyTwoluebAVm_G-_6~hlN zFZTV=(@wH7MFV4tOI(gorLwi1d3yFniK~A(PWF)EpEel|(Zq~wS&qjwa5M}7Z(FBJ zhZo@+@V=qWFPr6Y^-q+F_ItW?RPIzVH{K#`ZG`y90O6^}H09=I<8-umB7+4qooB$r zXv5~6c~bTr5{}UA-|5mtR~q@Tv4dO#N1jQda7(IU*{VS<_n0$D6~!xJX(=BbDQv1P z0rt)1Bsas2vKasPaKQvv17qO|P1wQ-z z5Z76Fch;yVq!2OURastN;!)UwQdhA{e>4^zi}0?Bj@(($qsm3 zJ^SmeSIC`fc@@tWM&ti$@5{rZDzd&iO$ed0LDo*HJGV)IEM#E~5FkJZfk24tpvV$P z0)db~5>{n#M;ule%8g}^aTFZ|wr~aLb89(EZMPer5ao#BZEKwVpNtT7*$iqT$$)Lv~6f;u7j zuhZL^3IQ-V3YSAu#fM0al|^Nc{5h57dR0Qa)IT0|fXO`h6>)QG>eZmzUItAc6&ois zsRzmW)fyz3B-005{Zw10%TWz1#EGP!#*3^j)xpUiGUaO{^G(9HdK$__Hj*h}s! zgPCBh_{h|ueM6bZlB%Bx*oHEZaaBJPunlD*bE|$PU>nLr7FhjEz&4bLjI#QffNdxf z*=eRsDS87poC&6zDNnM@GpkF3<#=S#TehabEW$E3m9t2e<6EUr_k-TdFBmc1;v}H{3dh$m;^r?X(z! zEGCn+=6fR?p}bEf!)K1MCA+jF31VCQf;yatPsCTv0lJ$poYHhtL{^+GsmI9e1elAh zDZoJkwVaj_j)Z@PQVT(*|iwrC7 z!c2bu5snc4Yj+mHH@0QL%_x@`>9aD1V;)rcxJEp$`V&Z~Jn_6oJ`3i}HbdThd=4ZA zv}0}g`2)Z$ZpS*vU$3@f8GQR$;J$6g+MDv`wFjv&?O97cdOu?CY0o;z9J|}I&hpp4 z+p{d0w`&KMZOZ#l2bRcp-->b%cVG#Uz|S2}Q27}a)C3bWWF&A`A->T5!9v!I59tWw z#Vv4o(Fo{9ymS(Ot|JTMCpM$G1QX{v>NI$4C+N_$LRdP2Ku#7Sd=c2#2?T=w3~eO{ z9P7k73MP0|7MkNa2yDt?Q9S3*td%5iJPQ>^Z^5HGqj^jOI>U4I#leOyP&`j`1{>Qt zD=No2D=Lv)yr~56+%9h;_PS9e#U!WSQi)0cl9t^3GPlC%$+?kgs=8s zwzWAdHpVn$<;+>Otdd8HF=f>&2NgXe2fsvZ*W|Ex{;xB58J@$k{IPmHgRdOvh?Z7X zQ6U?`?>+~2Mh%b<{(2#6!pHRlZU+4eeG2uwWeS@A`JU(|>q{~E7Cr@{L(5ov8@KEb zD@u|NGkfAdrOsYXFN}}JCS&;5^uh$&{k=eBYdPN7Zz>w=xn~f2@EJse{+Y!D=y`sg zhB9C14B2(lU(w2sSFjfR^9iWPs@|xP=l%+|5RB)~_GSTmYj3P1@9xcF?IsrV?K?WX zMMLmP`|vN+&G|?=48V6U1S8W&Icz*D7cE+xiwfLBf<)j}<+65sXD*T`Nf^Sv%0=O0 zhk;=OM-r76j>MZ>num815vb!(M^;DWaG6*ul3V-5tRj!kW1)>Zv_~?&s}JkLf9(S* zf&gOd<~G;&s>?S2%P2^IY0FU9uv^ej2Fp+9u_WPf=)#@$6zY|5BF{{^xrrmOsnDzf zdiI6bUAYRCptMBN%y1rWUP{Jwk)p_Tdg zFjJM(V~6gMFQAdrNp$Qyu;XNZc1xC!Pv2SBdu9iWsfs5IeM2PkQqJ`m(R zNCooo1AS_`5dPFaaM1e!G>WL6s{=8eAw-Grd}0cj<2vODbaJ6m+CLPsB6nMa@KN}7 zCSUeAVuy}_#uf#=JV?Fyw-jrz8(9SDSzkFM@!BHRJV4F~)9g%lKJ6x!Bj;bHl5uk4 zRs1`66U*mO*tNoUKaHa155_1n45YID5Hc7(G5kOY_!1J5!yrP9O1pCf-mYz-!=KEY=KSO$B+>51zhB+y z9=r>3^!K9|W;QP&wfMyiWB~mhtTxw4>yp$=yeZ!`g4%IC^Ovt{)X4cd2#oJW;9tYl zlCd5tCv&8#zQH5GwrY-WzGNhtT1aV8RXazbH+WV3>#sn8TpjtF1+^aqDNDRa2V<80 z0cD|;^iHy76dGCxd&NNnzc>p0tb7@Sp@Hi+n%T{rO^AI{r(KJ99}?f_)#s3a3k_iq z?R+zELJJtU2M8x*zk&OlaA_MLdkkC;QcFW_L9aD%D+nhX3j=qGa6%9mxb9IPK1H;9}C>U4jw#DAY6SJ8pe9^2ksr;$9Xn8k#f%mCf0ba$IbejieBVP6`QjuK8-nqmMf zuY!^k13*k>?p%N-7asBP1@QC4%$|r~Gr)4YF_`r1HUqXxMj>WCCk%pnc77r})}rs> z9V}f4(JW+CvqAVs{e)5QSSL(^k0@d@qu^$TUdGrI^q`FT%81D`F%*ssax~>_qmbj+ zKt~XV2ux{kn8)zNC168Hg4&+Ya7wtgk*2SBUsoyIy{$bVTvco&f1nhvFU(=1O3o7Q z_NSoH6)u8zFGDL1F7v>x0nR)MrS)}*;T0kM2qR({MPQ62n#g`hI5Dz>mtnkTujz;oPKQC@A;KZCOZp&2;wuy( zToMD9U+F2G$)nXhLl~b;_`*tbMUQum=6fqysPJk`jSyZ1+O4Zto;1(?o5!DSSVvZ) zCr__sss80yOy%opF>JlG>B?#rEo1lBc-Z5oKe2#rsMQLv_$BXd@wz*5pHoUN7U#W;aAx7gH@Wp6~|FzZr*Tt-jn1qqj?)=lmtQWW60aYSq+{vNrPDT~> z9bq%^G&#vZK`)n5r$I3uNri7ItOQRqxtCq*r6z<`&g7qsmt3KUt^y?7*#4;FW!u?hyHfc)R z9>f+e`7X*C3FNN7z>0?J6UHCCAB$MVriNqpvu=FjNagUvErnMhTpE#g;8Mu);LGrT zW-VodWQ3Ts*t--Q>{|*Cv!SukocCM?P3e9a-uD5tg<=;K^naV%>B}(A_R##ByTZ-$ zZ)*CQy9bP~7I!@a!4R_?#&|LsvA4$aEdu$~2U)8dC<49%l&D*Q3E!dNxA5md ze`E>QSA_B(n({w$4`CoYiH6Gw0$C`b4e4VUB39sCB~2Vc~4 z*Ou@t8m69f123@YA($)%b>Uw$Ox>SnKFnI)KoRgUvP?w?ALBZTXv`-*c0+9eXTw~M za5jFcoB@xzdu}N9PG`t%C-k9QV~?OuDFUw}jDPc(N5c#Mr`rlMQKdkrYd2Kf!$A9ztH2;%_R2y*% zi}vATh$;X7qp#`Df7yg($7`yf!H;{q;i|`RR=S=OCKfAvplQ9r2bz{Fe4uI7!Uvib zE_|SA?ZO9|mM?suX?em2npP-$plOl92b$I?e4ss-DtshxuU7buGc8#7PSCzvy&5Nk zZoZlK!pL-<-X|?z_@JAUgKH{$r58&Z?%w);-F~LE3!kq+8+d%YHmzp(OixQ1KGM^w zh7U9?Y?R2_^F7PqwK0g2`c8;*efa98+@j*EIcTlJC&RSh;e#_;^YDSDWe*={u?@r2 z*f;7;8nYjl3SiEPeGFIv3+4|!4X;j2>3{Gn7DK*#8Z&CN%;JLwT50k5hP2$`GlJG! zd=R2#7awR^dGUd!MHL@tT33m^c5~1Ii;rCHH5MOnw9MiI?Oti|`HHmM;yaUEaq*dn zmR%BkbRt6O(!#X#((_rh-{g8X<)JB4#F|XBk3wkoEjFP<@O6W+GMqD*1;?v{HRWZl zx^pkjFcMR|-B#xCE9XPDvZ&CpY2su{4Q|mP_jcwX78NDx!F^IhQ7=9XKkV_X zFzwP0v5>Vdq6bqkv3fD;*ovu~Z?}T^U$?S^rtSkHe8`KmK(dWRhq!U7U@cr0EDmR= zQpG!IC9Fw+IJA+(Pi|wTeUAFkjC!e?=x61;lZ%5D=^n}56&9nviGHfjJx%&s^`)~- zF5opNN9&a3DaGq194YHV9*MaIY1PW=2%`t_m{1pPPBD%H$=aX$0*kC)`%!vna#q7# znrQXEy#T>=_yz2Yb}ziS+n>WS_UF4^gaIvPs6KfS-9$}EH0E8<-k#0h+Bhjhm(e2i z2Q!^ve9j?w4r1!TYl?!b=j$xZiQbJfec8B~MSOIx{@edX;bBJam31!;s?m`K{jwJv z3e($?rdp{lrqGZwC#FLa^;6RH(nY%T`g)mO0I>mhE{ zcvt6Cjq%>|RpxRl9Si_#T}95b6IZ-+JR4e#b(oiWN}uqhzdxa?bb!zbX^c_&xL{=|WReXlX?`l_g_eh^UdpdS?yvjG4Nw`{<^4+jYCprZqtv?RV^Cl(3Z+KG$ONgqYZ1IHd(O;^5%>q?ht@Gf8a6?8c&%8*?3O+hiMv!+jgyV3AGLxxOUPhr^8V zAx|1o8k?SmR3D8Cb0X3m+?>5!91OwM5BG!&GS`K`%toQ$DR%QulF2&k-Fh`dxhuRQne8*W=7kxTmVI@l$WH zShWeCy^U=U-QR{@@LLcU&8NN%vv1bh*m}S9ZLD$aKFX4Vdbo-w<5pR5<4%jup`VK0 z!D4Bf&$0fw{2eUMO{ZU9?1v)z=p7K7dK#`s<^i}pL3`kEs7-QCzVHB&JiUE!PnWI_Gpt$C8IY*&J-jcdTLn~HETC7l*8FPrC8G-^W~ z{-MI;wF>wlS3GB&#+k14Q!J>tC&S3a5AK1a%^!g!cCnIpaSvwUQwt$@o%_(|goY6F z{@wSXW7#gF>tMD&h?nidJiFL&EN1$}V(r{_!M&j%M8y6GtkFOGF6&QI`+?;AH0C1l zm+wNPiq!+){P}H%Kva-7HYJO7fRw$6Xcgs%G+H0kyKv(Tt{^EX9bZ;njjKU$ zL38D#Db!^qmKyhjl$N-AJ!s6rJ&_f3>bX+yL^Y)qWv=P^U8nApa(w9Bm{0gSv!x6} zLUsEVuF9TMRXwe=x}XFX^6GuPK);)bFaJB%QFs2G-OjgufZjOxJ!X$_Q>Lcw=}MN@ zFx|$tA4H4&@jbSpB@CG46pv(NP}6lM2wfDC>%c(oAbpe!HP@s#-cU&Gl#I$b`q0QLCQmdJmSrg9Wim}0JBOn zW>uH#w@oHxCaD%oIgHMB^I_CR>PB#I?_mtl$h}YsuN-EYKZzB7={C%*{cxD|T$Gw> zbEUcl(KpNibk2WL6-ET^0>A~YuF_(R9wAi4eK0hTbSXSbd<4i z6A?Ed)F_tax~Sl!c1kg>IHDI5wIXQt5=u;BNrh7t@FV{~XZQP%X`R)Zi;I;-R!WrO z>e}McyU^-O0xq8VF(k&(k6D(3gdNFNx*mM`j9R>n{6Uq# zmw(J!H<+D=d;pJE`5B?=2aMGHUmDTXPL!5Es1i!I#p zU)nlJ9-L*9?M0LALa<}PV1dnDPra#6wQL7XaGQwruE%6ji7FDMqnRSZ+-g!6;Ny;B zyp!o_qZl2z>L{DWuN=i(X52B>DV|zE^(l-^y1l=udRX~nTvG`XYwhQ(uZwD|2F)Xq zc_pAY{`Ed|u*}a{d}~vZ!Nt|Z(?wQ!qpAvG&Vy&RWRA|FMMP`Vnr<)f$q%-;6%U&< zrF43+G)5z1)zx#Nawre|p|!L5#m`xEn8_NY3g#`&fkT)sfw;aCY|)7Gd?ABdar>3L zzfxRA5+u70Wl7`WS`(ps$Xk|vK)p70>jD2z;z$~`f(_CkjTYeg{N|$_u>pF63_QkK z+T`F9wK?uIEVgCG(6Q&A#T3HcV^~nxeinv(+WRGkI7=F6#>m=qLH^B{h3j3Z-m}dC zqZg}`RkLc1qeNJ|!Y+0?jC-9Df#jz(? z#;uC96bk*Jl`x+A3Vl>lMb!nn8CR2=UPR^aVB6Fqjb6le&vZKY7bjSlm@sy^N=j$o z1Jh7Q<(TJljTvjap}O(Rb`lNJ`6Q0Pm(i~WPr~eY?q5&272;Ctx1cLmMqr&xj9%=_{w_^0A*|=K-golMG)%*lEe9(c;1a z6e}Pw$C~n+PNSa~>4c59{|sCKVUCdvg}dajREQf-Q``ehKL{!Ii|(Hj*O*6d4I!kf=P!WxF6iz?{A8CAA0 zEqk72P0`Mg+;tWeVx$FLtQ5mOV=k>Po~cn{C1O5LTY7fFQ*fu zw*4@751)nIY8biL=@sLv(S~=bgGEkn$IoM@SHN_d%%0AJ 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 A^#A|> delta 113632 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 IxINSV7o(G;;{X5v diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts index 579b42ad9..12a0edbc5 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts @@ -1,9 +1,9 @@ import '../.metadata/metadata.index'; -import { Metadata } from '@afsalthaj/golem-ts-sdk'; +import { Metadata } from '@golemcloud/golem-ts-sdk'; import { metadataCollection } from '../.metadata/metadata.index'; // Clear preloaded metadata -Metadata.clearMetadata("@afsalthaj/golem-ts-sdk"); +Metadata.clearMetadata("@golemcloud/golem-ts-sdk"); // Load generated metadata metadataCollection.forEach(mod => mod.add(Metadata, false)); diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts index 3be98b5bb..7526999ff 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts +++ b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts @@ -3,7 +3,7 @@ import { Agent, Prompt, Description, -} from '@afsalthaj/golem-ts-sdk'; +} from '@golemcloud/golem-ts-sdk'; @Agent() class AssistantAgent extends BaseAgent { @@ -12,9 +12,8 @@ class AssistantAgent extends BaseAgent { async ask(name: string): Promise { const customData = { data: "Sample data", value: 42 }; - // Can be used after solving https://github.com/golemcloud/wasm-rquickjs/issues/2 - // const remoteWeatherClient = WeatherAgent.createRemote(""); - // const remoteWeather = await remoteWeatherClient.getWeather(name, customData); + const remoteWeatherClient = WeatherAgent.createRemote(""); + const remoteWeather = await remoteWeatherClient.getWeather(name, customData); const localWeatherClient = WeatherAgent.createLocal("afsal"); const localWeather = await localWeatherClient.getWeather(name, customData); diff --git a/template-golem-agent-ts/package-lock.json b/template-golem-agent-ts/package-lock.json index e2997f84a..47e7dd015 100644 --- a/template-golem-agent-ts/package-lock.json +++ b/template-golem-agent-ts/package-lock.json @@ -6,13 +6,13 @@ "": { "name": "app", "dependencies": { - "@afsalthaj/golem-ts-sdk": "0.0.1-dev.1" + "@golemcloud/golem-ts-sdk": "0.0.1-dev.3" } }, - "node_modules/@afsalthaj/golem-ts-sdk": { - "version": "0.0.1-dev.1", - "resolved": "https://registry.npmjs.org/@afsalthaj/golem-ts-sdk/-/golem-ts-sdk-0.0.1-dev.1.tgz", - "integrity": "sha512-xdv66QAo+QZGj6lE2SzdIHH0rtAxLH+8oT/LgJdkr2hr/NbmwU15fRyUwD6myV03K2LSyOMLiyR20hZJ1t3riw==", + "node_modules/@golemcloud/golem-ts-sdk": { + "version": "0.0.1-dev.3", + "resolved": "https://registry.npmjs.org/@golemcloud/golem-ts-sdk/-/golem-ts-sdk-0.0.1-dev.3.tgz", + "integrity": "sha512-Lviy5a9h+cOVqU/VyXZWUPQPb7c8M0ph5AyKpPXZ3hTc+2OwV0zxI/PUh5wjJvSb6SIJMjy1x72RutF3Bj/HzQ==", "license": "ISC" } } diff --git a/template-golem-agent-ts/package.json b/template-golem-agent-ts/package.json index 15673b377..28a056a7c 100644 --- a/template-golem-agent-ts/package.json +++ b/template-golem-agent-ts/package.json @@ -1,11 +1,11 @@ { "name": "app", "dependencies": { - "@afsalthaj/golem-ts-sdk": "0.0.1-dev.1" + "@golemcloud/golem-ts-sdk": "0.0.1-dev.3" }, "scripts": { "update": "wit-deps update", - "generate": "wasm-rquickjs generate-wrapper-crate --wit wit --output dist/wrapper --world golem-agent --js-modules '@afsalthaj/golem-ts-sdk=node_modules/@afsalthaj/golem-ts-sdk/dist/index.mjs' --js-modules 'user=@composition'", + "generate": "wasm-rquickjs generate-wrapper-crate --wit wit --output dist/wrapper --world golem-agent --js-modules '@golemcloud/golem-ts-sdk=node_modules/@golemcloud/golem-ts-sdk/dist/index.mjs' --js-modules 'user=@composition'", "build": "cargo component build --manifest-path=dist/wrapper/Cargo.toml --release" } } From ef6af38aaf604d885fa2e082cb85efc13f793e31 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Mon, 4 Aug 2025 17:46:13 -0700 Subject: [PATCH 07/12] Renamed template directories to fix app new issue --- .../ts-agent-app-common/common-ts/golem.yaml | 39 ---------- .../common-ts/rollup.config.component.mjs | 52 -------------- .../components-ts/component-name/src/main.ts | 51 ------------- .../metadata.json | 4 -- .../templates/ts/ts-app-common/.gitignore | 1 + .../ts/ts-app-common/common-ts/golem.yaml | 41 ++++++----- .../common-ts/rollup.config.component.mjs | 65 +++++++---------- .../common-ts/tsconfig.component.json | 19 +++-- .../templates/ts/ts-app-common/metadata.json | 4 +- .../templates/ts/ts-app-common/package.json | 7 +- .../wasm/golem_agent.wasm | Bin .../component-name/.agent/main.ts | 0 .../component-name/reflect.config.json | 0 .../components-ts/component-name/src/main.ts | 67 +++++++++++++----- .../component-name/tsconfig.json | 4 +- .../ts/ts-app-component-default/metadata.json | 4 +- .../.gitignore | 1 - .../common-ts/golem.yaml | 36 ++++++++++ .../common-ts/rollup.config.component.mjs | 65 +++++++++++++++++ .../common-ts/src/lib.ts | 0 .../common-ts/tsconfig.component.json | 19 ++--- .../golem.yaml | 0 .../metadata.json | 4 +- .../package.json | 7 +- .../wit/common.wit | 0 .../components-ts/.gitignore | 0 .../components-ts/component-name/golem.yaml | 0 .../components-ts/component-name/package.json | 0 .../component-name/rollup.config.mjs | 0 .../components-ts/component-name/src/main.ts | 18 +++++ .../component-name/tsconfig.json | 0 .../components-ts/component-name/wit/main.wit | 0 .../metadata.json | 4 ++ .../components-ts/.gitignore | 0 .../components-ts/component-name/golem.yaml | 0 .../components-ts/component-name/package.json | 0 .../component-name/rollup.config.mjs | 0 .../components-ts/component-name/src/main.ts | 0 .../component-name/tsconfig.json | 4 +- .../components-ts/component-name/wit/main.wit | 0 .../metadata.json | 0 41 files changed, 258 insertions(+), 258 deletions(-) delete mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml delete mode 100644 golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs delete mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts delete mode 100644 golem-templates/templates/ts/ts-agent-app-component-default/metadata.json rename golem-templates/templates/ts/{ts-agent-app-common => ts-app-common}/wasm/golem_agent.wasm (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-app-component-default}/components-ts/component-name/.agent/main.ts (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-app-component-default}/components-ts/component-name/reflect.config.json (100%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/.gitignore (74%) create mode 100644 golem-templates/templates/ts/ts-generic-app-common/common-ts/golem.yaml create mode 100644 golem-templates/templates/ts/ts-generic-app-common/common-ts/rollup.config.component.mjs rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/common-ts/src/lib.ts (100%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/common-ts/tsconfig.component.json (55%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/golem.yaml (100%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/metadata.json (62%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/package.json (69%) rename golem-templates/templates/ts/{ts-agent-app-common => ts-generic-app-common}/wit/common.wit (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-generic-app-component-default}/components-ts/.gitignore (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-generic-app-component-default}/components-ts/component-name/golem.yaml (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-generic-app-component-default}/components-ts/component-name/package.json (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-generic-app-component-default}/components-ts/component-name/rollup.config.mjs (100%) create mode 100644 golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/src/main.ts rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-default}/components-ts/component-name/tsconfig.json (100%) rename golem-templates/templates/ts/{ts-app-component-default => ts-generic-app-component-default}/components-ts/component-name/wit/main.wit (100%) create mode 100644 golem-templates/templates/ts/ts-generic-app-component-default/metadata.json rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/.gitignore (100%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/component-name/golem.yaml (100%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/component-name/package.json (100%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/component-name/rollup.config.mjs (100%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/component-name/src/main.ts (100%) rename golem-templates/templates/ts/{ts-agent-app-component-default => ts-generic-app-component-example-fetch}/components-ts/component-name/tsconfig.json (69%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/components-ts/component-name/wit/main.wit (100%) rename golem-templates/templates/ts/{ts-app-component-example-fetch => ts-generic-app-component-example-fetch}/metadata.json (100%) diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml deleted file mode 100644 index df7e87a91..000000000 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/golem.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# golem-app-manifest-header - -templates: - ts: - build: - - command: npx --no @rttist/typegen@0.2.0 generate - sources: - - src - - ../../common-ts - targets: - - .metadata - - command: npx --no rollup -- -c - sources: - - src - - ../../common-ts - - rollup.config.mjs - - tsconfig.js - targets: - - dist/main.js - - injectToPrebuiltQuickjs: ../../wasm/golem_agent.wasm - module: dist/main.js - moduleWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.module.wasm - into: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm - - generateAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm - basedOnCompiledWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm - - composeAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm - withAgent: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm - to: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm - - sourceWit: ../../wasm/golem_agent.wasm - generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated - componentWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm - linkedWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wasm - clean: - - dist - - .metadata -customCommands: - ts-npm-install: - - command: npm install diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs deleted file mode 100644 index e0320bb0d..000000000 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/rollup.config.component.mjs +++ /dev/null @@ -1,52 +0,0 @@ -import alias from "@rollup/plugin-alias"; -import json from "@rollup/plugin-json"; -import nodeResolve from "@rollup/plugin-node-resolve"; -import path from "node:path"; -import typescript from "@rollup/plugin-typescript"; -import url from "node:url"; - -export default function componentRollupConfig() { - const dir = path.dirname(url.fileURLToPath(import.meta.url)); - - const externalPackages = (id) => { - return ( - id === "@golemcloud/golem-ts-sdk" || - id.startsWith("golem:api") || - id.startsWith("golem:rpc") - ); - }; - - return { - input: ".agent/main.ts", - output: { - file: "dist/main.js", - format: "esm", - inlineDynamicImports: true, - sourcemap: false, - }, - external: externalPackages, - plugins: [ - alias({ - entries: [ - { - find: "common", - replacement: path.resolve(dir, "../common-ts/src"), - }, - ], - }), - nodeResolve({ - extensions: [".mjs", ".js", ".json", ".node", ".ts"], - }), - typescript({ - noEmitOnError: true, - include: [ - "./src/**/*.ts", - ".agent/**/*.ts", - ".metadata/**/*.ts", - "../../common-ts/src/**/*.ts", - ], - }), - json(), - ], - }; -} diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts deleted file mode 100644 index 7526999ff..000000000 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/src/main.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - BaseAgent, - Agent, - Prompt, - Description, -} from '@golemcloud/golem-ts-sdk'; - -@Agent() -class AssistantAgent extends BaseAgent { - @Prompt("Ask your question") - @Description("This method allows the agent to answer your question") - async ask(name: string): Promise { - const customData = { data: "Sample data", value: 42 }; - - const remoteWeatherClient = WeatherAgent.createRemote(""); - const remoteWeather = await remoteWeatherClient.getWeather(name, customData); - - const localWeatherClient = WeatherAgent.createLocal("afsal"); - const localWeather = await localWeatherClient.getWeather(name, customData); - - return ( - `Hello! I'm the assistant agent (${this.getId()}) reporting on the weather in ${name}. ` + - `Here’s what the weather agent says: "\n${localWeather}\n". ` + - `Info retrieved using weather agent (${localWeatherClient.getId()}).` - ); - } -} - -@Agent() -class WeatherAgent extends BaseAgent { - private readonly userName: string; - - constructor(username: string) { - super() - this.userName = username; - } - - @Prompt("Get weather") - @Description("Weather forecast weather for you") - async getWeather(name: string, param2: CustomData): Promise { - return Promise.resolve( - `Hi ${this.userName} Weather in ${name} is sunny. Params passed: ${name} ${JSON.stringify(param2)}. ` + - `Computed by weather-agent ${this.getId()}. ` - ); - } -} - -interface CustomData { - data: String; - value: number; -} diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json b/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json deleted file mode 100644 index 5021ab306..000000000 --- a/golem-templates/templates/ts/ts-agent-app-component-default/metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "The default agent template for TypeScript", - "appComponentGroup": "default" -} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-common/.gitignore b/golem-templates/templates/ts/ts-app-common/.gitignore index 779a47485..58e78b858 100644 --- a/golem-templates/templates/ts/ts-app-common/.gitignore +++ b/golem-templates/templates/ts/ts-app-common/.gitignore @@ -1,3 +1,4 @@ /dist /golem-temp /node_modules +.generated diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml index d7e2cf843..df7e87a91 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml @@ -3,9 +3,13 @@ templates: ts: build: - - generateQuickjsDts: src/generated/interfaces - wit: wit-generated - - command: npx rollup -c + - command: npx --no @rttist/typegen@0.2.0 generate + sources: + - src + - ../../common-ts + targets: + - .metadata + - command: npx --no rollup -- -c sources: - src - ../../common-ts @@ -13,24 +17,23 @@ templates: - tsconfig.js targets: - dist/main.js - - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} - wit: wit-generated - jsModules: - main: dist/main.js - - command: cargo component build --release - dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} - sources: - - src - - wit - - Cargo.toml - targets: - - target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm - sourceWit: wit - generatedWit: wit-generated - componentWasm: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }}/target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm - linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm + - injectToPrebuiltQuickjs: ../../wasm/golem_agent.wasm + module: dist/main.js + moduleWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.module.wasm + into: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + - generateAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm + basedOnCompiledWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + - composeAgentWrapper: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wrapper.wasm + withAgent: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm + to: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm + + sourceWit: ../../wasm/golem_agent.wasm + generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated + componentWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.static.wasm + linkedWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wasm clean: - dist + - .metadata customCommands: ts-npm-install: - command: npm install diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-app-common/common-ts/rollup.config.component.mjs index 0cb6ab917..e0320bb0d 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/rollup.config.component.mjs +++ b/golem-templates/templates/ts/ts-app-common/common-ts/rollup.config.component.mjs @@ -1,65 +1,52 @@ -import * as fs from "node:fs"; import alias from "@rollup/plugin-alias"; +import json from "@rollup/plugin-json"; import nodeResolve from "@rollup/plugin-node-resolve"; import path from "node:path"; -import url from "node:url"; import typescript from "@rollup/plugin-typescript"; +import url from "node:url"; export default function componentRollupConfig() { const dir = path.dirname(url.fileURLToPath(import.meta.url)); - const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; - const generated_interfaces_dir = "src/generated/interfaces"; - - const externalPackages = (() => { - if (!fs.existsSync(generated_interfaces_dir)) { - return []; - } - return fs - .readdirSync(generated_interfaces_dir, { withFileTypes: true }) - .filter( - (dirent) => - dirent.isFile() && - dirent.name.endsWith(".d.ts") && - dirent.name !== "exports.d.ts", - ) - .flatMap((dirent) => - [ - ...fs - .readFileSync(path.join(generated_interfaces_dir, dirent.name)) - .toString() - .matchAll(moduleRegex), - ].map((match) => { - const moduleName = match[1]; - if (moduleName === undefined) { - throw new Error(`Missing match for module name`); - } - return moduleName; - }), - ); - })(); - console.log("External packages:", externalPackages); + const externalPackages = (id) => { + return ( + id === "@golemcloud/golem-ts-sdk" || + id.startsWith("golem:api") || + id.startsWith("golem:rpc") + ); + }; return { - input: "src/main.ts", + input: ".agent/main.ts", output: { file: "dist/main.js", format: "esm", + inlineDynamicImports: true, + sourcemap: false, }, external: externalPackages, plugins: [ alias({ entries: [ - {find: 'common', replacement: path.resolve(dir, "../common-ts/src")} - ] + { + find: "common", + replacement: path.resolve(dir, "../common-ts/src"), + }, + ], }), nodeResolve({ - extensions: [".mjs", ".js", ".json", ".node", ".ts"] + extensions: [".mjs", ".js", ".json", ".node", ".ts"], }), typescript({ noEmitOnError: true, - include: ["./src/**/*.ts", "../../common-ts/src/**/*.ts"] - }) + include: [ + "./src/**/*.ts", + ".agent/**/*.ts", + ".metadata/**/*.ts", + "../../common-ts/src/**/*.ts", + ], + }), + json(), ], }; } diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/tsconfig.component.json b/golem-templates/templates/ts/ts-app-common/common-ts/tsconfig.component.json index e5fbabbec..216e8107a 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/tsconfig.component.json +++ b/golem-templates/templates/ts/ts-app-common/common-ts/tsconfig.component.json @@ -4,21 +4,20 @@ "skipLibCheck": true, "target": "ES2020", "noEmit": true, - "lib": [ - "ES2020" - ], - "types": [ - "node" - ], + "lib": ["ES2020"], + "types": ["node"], "moduleResolution": "bundler", "checkJs": false, "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false, "paths": { - "common/*": [ - "../common-ts/src/*" - ] + "common/*": ["../common-ts/src/*"] } } -} \ No newline at end of file +} diff --git a/golem-templates/templates/ts/ts-app-common/metadata.json b/golem-templates/templates/ts/ts-app-common/metadata.json index 93ccf9f9e..4a87eb4e5 100644 --- a/golem-templates/templates/ts/ts-app-common/metadata.json +++ b/golem-templates/templates/ts/ts-app-common/metadata.json @@ -1,6 +1,6 @@ { - "description": "Composable App Common template for TypeScript", - "appCommonGroup": "generic", + "description": "Composable App Common template for TypeScript Agents", + "appCommonGroup": "default", "appCommonSkipIfExists": "common-ts/golem.yaml", "requiresGolemHostWIT": true, "requiresWASI": true, diff --git a/golem-templates/templates/ts/ts-app-common/package.json b/golem-templates/templates/ts/ts-app-common/package.json index 07ce18af3..f030a3c27 100644 --- a/golem-templates/templates/ts/ts-app-common/package.json +++ b/golem-templates/templates/ts/ts-app-common/package.json @@ -7,15 +7,18 @@ "components-ts/*/*" ], "dependencies": { - "@golemcloud/golem-ts": "1.5.0" + "@golemcloud/golem-ts-sdk": "0.0.1-dev.3", + "rttist": "^1.0.0-rc.4" }, "devDependencies": { "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@types/node": "^22.10.5", "rollup": "^4.29.1", "tslib": "^2.8.1", - "typescript": "^5.7.2" + "typescript": "^5.8.3", + "@rttist/typegen": "^0.2.0" } } diff --git a/golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm b/golem-templates/templates/ts/ts-app-common/wasm/golem_agent.wasm similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-common/wasm/golem_agent.wasm rename to golem-templates/templates/ts/ts-app-common/wasm/golem_agent.wasm diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/.agent/main.ts similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/.agent/main.ts rename to golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/.agent/main.ts diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/reflect.config.json similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/reflect.config.json rename to golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/reflect.config.json diff --git a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/src/main.ts index ef6bbb612..7526999ff 100644 --- a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/src/main.ts +++ b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/src/main.ts @@ -1,18 +1,51 @@ -import type * as bindings from "component-name" - -// Use this import for using the common lib: -// import {exampleCommonFunction} from "common/lib"; - -let state = 0; - -export const componentNameApi: typeof bindings.componentNameApi = { - async add(value: number) { - // Example common lib use: - // console.log(example_common_function()); - console.log(`Adding ${value} to the counter`); - state += value; - }, - async get() { - return state; +import { + BaseAgent, + Agent, + Prompt, + Description, +} from '@golemcloud/golem-ts-sdk'; + +@Agent() +class AssistantAgent extends BaseAgent { + @Prompt("Ask your question") + @Description("This method allows the agent to answer your question") + async ask(name: string): Promise { + const customData = { data: "Sample data", value: 42 }; + + const remoteWeatherClient = WeatherAgent.createRemote(""); + const remoteWeather = await remoteWeatherClient.getWeather(name, customData); + + const localWeatherClient = WeatherAgent.createLocal("afsal"); + const localWeather = await localWeatherClient.getWeather(name, customData); + + return ( + `Hello! I'm the assistant agent (${this.getId()}) reporting on the weather in ${name}. ` + + `Here’s what the weather agent says: "\n${localWeather}\n". ` + + `Info retrieved using weather agent (${localWeatherClient.getId()}).` + ); + } +} + +@Agent() +class WeatherAgent extends BaseAgent { + private readonly userName: string; + + constructor(username: string) { + super() + this.userName = username; } -}; + + @Prompt("Get weather") + @Description("Weather forecast weather for you") + async getWeather(name: string, param2: CustomData): Promise { + return Promise.resolve( + `Hi ${this.userName} Weather in ${name} is sunny. Params passed: ${name} ${JSON.stringify(param2)}. ` + + `Computed by weather-agent ${this.getId()}. ` + ); + } +} + +interface CustomData { + data: String; + value: number; +} diff --git a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/tsconfig.json index 17748c83d..c827e32c5 100644 --- a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/tsconfig.json +++ b/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/tsconfig.json @@ -2,6 +2,8 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "../../common-ts/tsconfig.component.json", "include": [ - "src/**/*.ts" + "src/**/*.ts", + ".agent/**/*", + ".metadata/**/*" ] } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-default/metadata.json b/golem-templates/templates/ts/ts-app-component-default/metadata.json index ffc0c5943..5021ab306 100644 --- a/golem-templates/templates/ts/ts-app-component-default/metadata.json +++ b/golem-templates/templates/ts/ts-app-component-default/metadata.json @@ -1,4 +1,4 @@ { - "description": "The default component template for TypeScript", - "appComponentGroup": "generic" + "description": "The default agent template for TypeScript", + "appComponentGroup": "default" } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/.gitignore b/golem-templates/templates/ts/ts-generic-app-common/.gitignore similarity index 74% rename from golem-templates/templates/ts/ts-agent-app-common/.gitignore rename to golem-templates/templates/ts/ts-generic-app-common/.gitignore index 58e78b858..779a47485 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/.gitignore +++ b/golem-templates/templates/ts/ts-generic-app-common/.gitignore @@ -1,4 +1,3 @@ /dist /golem-temp /node_modules -.generated diff --git a/golem-templates/templates/ts/ts-generic-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-generic-app-common/common-ts/golem.yaml new file mode 100644 index 000000000..d7e2cf843 --- /dev/null +++ b/golem-templates/templates/ts/ts-generic-app-common/common-ts/golem.yaml @@ -0,0 +1,36 @@ +# golem-app-manifest-header + +templates: + ts: + build: + - generateQuickjsDts: src/generated/interfaces + wit: wit-generated + - command: npx rollup -c + sources: + - src + - ../../common-ts + - rollup.config.mjs + - tsconfig.js + targets: + - dist/main.js + - generateQuickjsCrate: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} + wit: wit-generated + jsModules: + main: dist/main.js + - command: cargo component build --release + dir: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }} + sources: + - src + - wit + - Cargo.toml + targets: + - target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm + sourceWit: wit + generatedWit: wit-generated + componentWasm: ../../golem-temp/quickjs-wrappers/{{ component_name | to_snake_case }}/target/wasm32-wasip1/release/{{ component_name | to_snake_case }}.wasm + linkedWasm: ../../golem-temp/components/{{ component_name | to_snake_case }}.wasm + clean: + - dist +customCommands: + ts-npm-install: + - command: npm install diff --git a/golem-templates/templates/ts/ts-generic-app-common/common-ts/rollup.config.component.mjs b/golem-templates/templates/ts/ts-generic-app-common/common-ts/rollup.config.component.mjs new file mode 100644 index 000000000..0cb6ab917 --- /dev/null +++ b/golem-templates/templates/ts/ts-generic-app-common/common-ts/rollup.config.component.mjs @@ -0,0 +1,65 @@ +import * as fs from "node:fs"; +import alias from "@rollup/plugin-alias"; +import nodeResolve from "@rollup/plugin-node-resolve"; +import path from "node:path"; +import url from "node:url"; +import typescript from "@rollup/plugin-typescript"; + +export default function componentRollupConfig() { + const dir = path.dirname(url.fileURLToPath(import.meta.url)); + const moduleRegex = /declare\s+module\s+['"]([^'"]+)['"]/g; + const generated_interfaces_dir = "src/generated/interfaces"; + + const externalPackages = (() => { + if (!fs.existsSync(generated_interfaces_dir)) { + return []; + } + return fs + .readdirSync(generated_interfaces_dir, { withFileTypes: true }) + .filter( + (dirent) => + dirent.isFile() && + dirent.name.endsWith(".d.ts") && + dirent.name !== "exports.d.ts", + ) + .flatMap((dirent) => + [ + ...fs + .readFileSync(path.join(generated_interfaces_dir, dirent.name)) + .toString() + .matchAll(moduleRegex), + ].map((match) => { + const moduleName = match[1]; + if (moduleName === undefined) { + throw new Error(`Missing match for module name`); + } + return moduleName; + }), + ); + })(); + + console.log("External packages:", externalPackages); + + return { + input: "src/main.ts", + output: { + file: "dist/main.js", + format: "esm", + }, + external: externalPackages, + plugins: [ + alias({ + entries: [ + {find: 'common', replacement: path.resolve(dir, "../common-ts/src")} + ] + }), + nodeResolve({ + extensions: [".mjs", ".js", ".json", ".node", ".ts"] + }), + typescript({ + noEmitOnError: true, + include: ["./src/**/*.ts", "../../common-ts/src/**/*.ts"] + }) + ], + }; +} diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts b/golem-templates/templates/ts/ts-generic-app-common/common-ts/src/lib.ts similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-common/common-ts/src/lib.ts rename to golem-templates/templates/ts/ts-generic-app-common/common-ts/src/lib.ts diff --git a/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json b/golem-templates/templates/ts/ts-generic-app-common/common-ts/tsconfig.component.json similarity index 55% rename from golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json rename to golem-templates/templates/ts/ts-generic-app-common/common-ts/tsconfig.component.json index 216e8107a..e5fbabbec 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/common-ts/tsconfig.component.json +++ b/golem-templates/templates/ts/ts-generic-app-common/common-ts/tsconfig.component.json @@ -4,20 +4,21 @@ "skipLibCheck": true, "target": "ES2020", "noEmit": true, - "lib": ["ES2020"], - "types": ["node"], + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], "moduleResolution": "bundler", "checkJs": false, "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "useDefineForClassFields": false, "paths": { - "common/*": ["../common-ts/src/*"] + "common/*": [ + "../common-ts/src/*" + ] } } -} +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-agent-app-common/golem.yaml b/golem-templates/templates/ts/ts-generic-app-common/golem.yaml similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-common/golem.yaml rename to golem-templates/templates/ts/ts-generic-app-common/golem.yaml diff --git a/golem-templates/templates/ts/ts-agent-app-common/metadata.json b/golem-templates/templates/ts/ts-generic-app-common/metadata.json similarity index 62% rename from golem-templates/templates/ts/ts-agent-app-common/metadata.json rename to golem-templates/templates/ts/ts-generic-app-common/metadata.json index 4a87eb4e5..93ccf9f9e 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/metadata.json +++ b/golem-templates/templates/ts/ts-generic-app-common/metadata.json @@ -1,6 +1,6 @@ { - "description": "Composable App Common template for TypeScript Agents", - "appCommonGroup": "default", + "description": "Composable App Common template for TypeScript", + "appCommonGroup": "generic", "appCommonSkipIfExists": "common-ts/golem.yaml", "requiresGolemHostWIT": true, "requiresWASI": true, diff --git a/golem-templates/templates/ts/ts-agent-app-common/package.json b/golem-templates/templates/ts/ts-generic-app-common/package.json similarity index 69% rename from golem-templates/templates/ts/ts-agent-app-common/package.json rename to golem-templates/templates/ts/ts-generic-app-common/package.json index f030a3c27..07ce18af3 100644 --- a/golem-templates/templates/ts/ts-agent-app-common/package.json +++ b/golem-templates/templates/ts/ts-generic-app-common/package.json @@ -7,18 +7,15 @@ "components-ts/*/*" ], "dependencies": { - "@golemcloud/golem-ts-sdk": "0.0.1-dev.3", - "rttist": "^1.0.0-rc.4" + "@golemcloud/golem-ts": "1.5.0" }, "devDependencies": { "@rollup/plugin-alias": "^5.1.1", - "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@types/node": "^22.10.5", "rollup": "^4.29.1", "tslib": "^2.8.1", - "typescript": "^5.8.3", - "@rttist/typegen": "^0.2.0" + "typescript": "^5.7.2" } } diff --git a/golem-templates/templates/ts/ts-agent-app-common/wit/common.wit b/golem-templates/templates/ts/ts-generic-app-common/wit/common.wit similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-common/wit/common.wit rename to golem-templates/templates/ts/ts-generic-app-common/wit/common.wit diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/.gitignore similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/.gitignore rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/.gitignore diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/golem.yaml similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/golem.yaml rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/golem.yaml diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/package.json similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/package.json rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/package.json diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/rollup.config.mjs similarity index 100% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/rollup.config.mjs rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/rollup.config.mjs diff --git a/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/src/main.ts new file mode 100644 index 000000000..ef6bbb612 --- /dev/null +++ b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/src/main.ts @@ -0,0 +1,18 @@ +import type * as bindings from "component-name" + +// Use this import for using the common lib: +// import {exampleCommonFunction} from "common/lib"; + +let state = 0; + +export const componentNameApi: typeof bindings.componentNameApi = { + async add(value: number) { + // Example common lib use: + // console.log(example_common_function()); + console.log(`Adding ${value} to the counter`); + state += value; + }, + async get() { + return state; + } +}; diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/tsconfig.json similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/tsconfig.json rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/tsconfig.json diff --git a/golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit b/golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/wit/main.wit similarity index 100% rename from golem-templates/templates/ts/ts-app-component-default/components-ts/component-name/wit/main.wit rename to golem-templates/templates/ts/ts-generic-app-component-default/components-ts/component-name/wit/main.wit diff --git a/golem-templates/templates/ts/ts-generic-app-component-default/metadata.json b/golem-templates/templates/ts/ts-generic-app-component-default/metadata.json new file mode 100644 index 000000000..ffc0c5943 --- /dev/null +++ b/golem-templates/templates/ts/ts-generic-app-component-default/metadata.json @@ -0,0 +1,4 @@ +{ + "description": "The default component template for TypeScript", + "appComponentGroup": "generic" +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/.gitignore b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/.gitignore similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/.gitignore rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/.gitignore diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/golem.yaml b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/golem.yaml similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/golem.yaml rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/golem.yaml diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/package.json b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/package.json similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/package.json rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/package.json diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/rollup.config.mjs b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/rollup.config.mjs similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/rollup.config.mjs rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/rollup.config.mjs diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/src/main.ts b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/src/main.ts similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/src/main.ts rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/src/main.ts diff --git a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/tsconfig.json similarity index 69% rename from golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/tsconfig.json index c827e32c5..17748c83d 100644 --- a/golem-templates/templates/ts/ts-agent-app-component-default/components-ts/component-name/tsconfig.json +++ b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/tsconfig.json @@ -2,8 +2,6 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "../../common-ts/tsconfig.component.json", "include": [ - "src/**/*.ts", - ".agent/**/*", - ".metadata/**/*" + "src/**/*.ts" ] } \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/wit/main.wit b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/wit/main.wit similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/components-ts/component-name/wit/main.wit rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/components-ts/component-name/wit/main.wit diff --git a/golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json b/golem-templates/templates/ts/ts-generic-app-component-example-fetch/metadata.json similarity index 100% rename from golem-templates/templates/ts/ts-app-component-example-fetch/metadata.json rename to golem-templates/templates/ts/ts-generic-app-component-example-fetch/metadata.json From 8305680c0380f3e7a6af35ceb149adb26470b4e5 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Mon, 4 Aug 2025 18:16:45 -0700 Subject: [PATCH 08/12] Test fix --- golem-cli/tests/app/mod.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/golem-cli/tests/app/mod.rs b/golem-cli/tests/app/mod.rs index eddebd57b..da94e531c 100644 --- a/golem-cli/tests/app/mod.rs +++ b/golem-cli/tests/app/mod.rs @@ -221,7 +221,7 @@ fn basic_dependencies_build(_tracing: &Tracing) { let mut ctx = TestContext::new(); let app_name = "test-app-name"; - let outputs = ctx.cli([cmd::APP, cmd::NEW, app_name, "rust", "ts"]); + let outputs = ctx.cli([cmd::APP, cmd::NEW, app_name, "rust", "go"]); assert!(outputs.success()); ctx.cd(app_name); @@ -229,10 +229,7 @@ fn basic_dependencies_build(_tracing: &Tracing) { let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "rust", "app:rust"]); assert!(outputs.success()); - let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "ts", "app:ts"]); - assert!(outputs.success()); - - let outputs = ctx.cli([cmd::APP, "ts-npm-install"]); + let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "go", "app:go"]); assert!(outputs.success()); fs::append_str( @@ -246,20 +243,20 @@ fn basic_dependencies_build(_tracing: &Tracing) { app:rust: - target: app:rust type: wasm-rpc - - target: app:ts + - target: app:go type: wasm-rpc "}, ) .unwrap(); fs::append_str( - ctx.cwd_path_join(Path::new("components-ts").join("app-ts").join("golem.yaml")), + ctx.cwd_path_join(Path::new("components-go").join("app-go").join("golem.yaml")), indoc! {" dependencies: - app:ts: + app:go: - target: app:rust type: wasm-rpc - - target: app:ts + - target: app:go type: wasm-rpc "}, ) @@ -268,7 +265,7 @@ fn basic_dependencies_build(_tracing: &Tracing) { let outputs = ctx.cli([cmd::APP]); assert!(!outputs.success()); check!(outputs.stderr_count_lines_containing("- app:rust (wasm-rpc)") == 2); - check!(outputs.stderr_count_lines_containing("- app:ts (wasm-rpc)") == 2); + check!(outputs.stderr_count_lines_containing("- app:go (wasm-rpc)") == 2); let outputs = ctx.cli([cmd::APP, cmd::BUILD]); assert!(outputs.success()); From 071623529fae8ce646370ed4dca1fed804a870f0 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Mon, 4 Aug 2025 18:57:46 -0700 Subject: [PATCH 09/12] Fix --- .../templates/ts/ts-app-common/common-ts/golem.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml index df7e87a91..4753fbec8 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml @@ -3,12 +3,13 @@ templates: ts: build: - - command: npx --no @rttist/typegen@0.2.0 generate + - command: npx --no @rttist/typegen generate -p components-ts/{{ component_name | to-kebab-case }} sources: - src - ../../common-ts targets: - .metadata + dir: ../.. - command: npx --no rollup -- -c sources: - src From 0c7231e18941c5cc45c3c4e57b326821813fb548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Istv=C3=A1n=20B=C3=ADr=C3=B3?= Date: Tue, 5 Aug 2025 10:45:00 +0200 Subject: [PATCH 10/12] fix ts template filter --- golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml index 4753fbec8..0aef1ee8c 100644 --- a/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml +++ b/golem-templates/templates/ts/ts-app-common/common-ts/golem.yaml @@ -3,7 +3,7 @@ templates: ts: build: - - command: npx --no @rttist/typegen generate -p components-ts/{{ component_name | to-kebab-case }} + - command: npx --no @rttist/typegen generate -p components-ts/{{ component_name | to_kebab_case }} sources: - src - ../../common-ts From 28766c24d058878c4596242191c1a771d48235dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Istv=C3=A1n=20B=C3=ADr=C3=B3?= Date: Tue, 5 Aug 2025 11:27:01 +0200 Subject: [PATCH 11/12] synchronize js and ts package.json --- .../templates/js/js-app-common/package.json | 10 +++++++--- .../templates/ts/ts-app-common/package.json | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/golem-templates/templates/js/js-app-common/package.json b/golem-templates/templates/js/js-app-common/package.json index 07ce18af3..52fe45479 100644 --- a/golem-templates/templates/js/js-app-common/package.json +++ b/golem-templates/templates/js/js-app-common/package.json @@ -7,15 +7,19 @@ "components-ts/*/*" ], "dependencies": { - "@golemcloud/golem-ts": "1.5.0" + "@golemcloud/golem-ts": "1.5.0", + "@golemcloud/golem-ts-sdk": "0.0.1-dev.3", + "rttist": "^1.0.0-rc.4" }, "devDependencies": { "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@types/node": "^22.10.5", "rollup": "^4.29.1", "tslib": "^2.8.1", - "typescript": "^5.7.2" + "typescript": "^5.8.3", + "@rttist/typegen": "^0.2.0" } -} +} \ No newline at end of file diff --git a/golem-templates/templates/ts/ts-app-common/package.json b/golem-templates/templates/ts/ts-app-common/package.json index f030a3c27..b8aa12e84 100644 --- a/golem-templates/templates/ts/ts-app-common/package.json +++ b/golem-templates/templates/ts/ts-app-common/package.json @@ -7,6 +7,7 @@ "components-ts/*/*" ], "dependencies": { + "@golemcloud/golem-ts": "1.5.0", "@golemcloud/golem-ts-sdk": "0.0.1-dev.3", "rttist": "^1.0.0-rc.4" }, From f9ada470b0829bcd4dceb3172615335f96d95b59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Istv=C3=A1n=20B=C3=ADr=C3=B3?= Date: Tue, 5 Aug 2025 12:15:53 +0200 Subject: [PATCH 12/12] fix moonbit pkg name case --- golem-cli/src/model/agent/moonbit.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/golem-cli/src/model/agent/moonbit.rs b/golem-cli/src/model/agent/moonbit.rs index 12304c787..44a331773 100644 --- a/golem-cli/src/model/agent/moonbit.rs +++ b/golem-cli/src/model/agent/moonbit.rs @@ -35,8 +35,8 @@ pub fn generate_moonbit_wrapper( .context("Defining bindgen packages")?; let moonbit_root_package = component.moonbit_root_package()?; - let pkg_namespace = component.root_pkg_namespace()?; - let pkg_name = component.root_pkg_name()?; + let pkg_namespace = component.root_pkg_namespace()?.to_snake_case(); + let pkg_name = component.root_pkg_name()?.to_snake_case(); // Adding the builder and extractor packages add_builder_package(&mut component, &moonbit_root_package)?;

pqgm-cdXMYVj^2$v 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