From 5054c4b7850ad43cdf777028ea5d6bae08c73f6e Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Tue, 26 Mar 2024 16:58:42 +0530 Subject: [PATCH 01/10] refactor: remove unwanted methods inside ssb client and clear clippy warnings --- runtime/lite/examples/basic-producer.rs | 17 +-- runtime/lite/src/consumer.rs | 15 ++- runtime/lite/src/context.rs | 25 ++-- .../modules/kuska_ssb_client/client/client.rs | 107 +++++------------- .../modules/kuska_ssb_client/client/mod.rs | 4 +- .../client/response_parser.rs | 2 +- .../modules/kuska_ssb_client/client/tests.rs | 6 +- .../modules/kuska_ssb_client/client/types.rs | 17 --- runtime/lite/src/modules/logger/mod.rs | 1 + runtime/lite/src/modules/storage/mod.rs | 1 + runtime/lite/src/modules/storage/storage.rs | 6 +- .../src/modules/wasmtime_wasi_module/mod.rs | 6 +- 12 files changed, 69 insertions(+), 138 deletions(-) diff --git a/runtime/lite/examples/basic-producer.rs b/runtime/lite/examples/basic-producer.rs index 215eae65..a3ac5b37 100644 --- a/runtime/lite/examples/basic-producer.rs +++ b/runtime/lite/examples/basic-producer.rs @@ -42,19 +42,6 @@ async fn main() { println!(" Hash: {block_hash}"); println!(" Extrinsics:"); - // Code for automate transfer - // use subxt_signer::sr25519::dev; - // if block_number == 10 { - // let dest = dev::bob().public_key().into(); - // let tx = polkadot::tx().balances().transfer_allow_death(dest, 10_000); - // let from = dev::alice(); - // let _events = api - // .tx() - // .sign_and_submit_then_watch_default(&tx, &from) - // .await - // .unwrap(); - // } - // Log each of the extrinsic with it's associated events: let extrinsics = block.extrinsics().await.unwrap(); for ext in extrinsics.iter() { @@ -81,11 +68,9 @@ async fn main() { name: None, }; - let result = client + let _ = client .publish(&value.to_string(), Some(vec![menttion])) .await; - // assert!(result.is_ok()); - // break 'outer; } None => (), } diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index 22c8b765..3e6ef14e 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -2,12 +2,12 @@ use kuska_ssb::keystore::read_patchwork_config; use runtime::{ common::RequestBody, logger::CoreLogger, + state_manager::GlobalState, modules::kuska_ssb_client::client::Client, storage::{CoreStorage, Storage}, Ctx, Logger, }; use std::{ - borrow::{Borrow, BorrowMut}, net::{TcpListener, TcpStream}, sync::{Arc, Mutex}, }; @@ -20,9 +20,13 @@ use dotenv::dotenv; async fn main() { dotenv().ok(); let db = CoreStorage::new("runtime").unwrap(); + let logger = CoreLogger::new(Some("./workflow")); + let state_manager = GlobalState::new(logger.clone()); + let context = Arc::new(Mutex::new(Context::new( - CoreLogger::new(Some("./workflow")), + logger, db, + state_manager ))); let secret = std::env::var("SECRET").unwrap_or_else(|_| { @@ -39,7 +43,10 @@ async fn main() { let mut client = Client::new(Some(key), "0.0.0.0".to_string(), port) .await .unwrap(); - client.live_feed_with_execution_of_workflow(true, ssb_context).await.unwrap(); + client + .live_feed_with_execution_of_workflow(true, ssb_context) + .await + .unwrap(); }); // Spawn the HTTP server task @@ -77,7 +84,7 @@ fn handle_client(mut stream: TcpStream, ctx: Arc>) { db.insert(&body.pub_id.clone(), body).unwrap(); logger.info("Data inserted successfully"); - + // println!("Received data: {:?}", body); // Respond to the client (optional) let response = "Data received!"; diff --git a/runtime/lite/src/context.rs b/runtime/lite/src/context.rs index 3935de4c..802aa72e 100644 --- a/runtime/lite/src/context.rs +++ b/runtime/lite/src/context.rs @@ -1,33 +1,40 @@ -use std::sync::{Mutex, MutexGuard, RwLockReadGuard}; +use std::sync::{Mutex, MutexGuard}; -use async_std::sync::RwLock; +use crate::{logger::CoreLogger, state_manager::{GlobalState, WorkflowState}, storage::CoreStorage}; -use crate::{state_manager::CoreLogger, storage::CoreStorage}; +type GlobalStateManager = GlobalState; pub trait Ctx: Send + 'static { - fn get_logger(&self) -> std::sync::MutexGuard; - fn get_db(&self) -> std::sync::MutexGuard; + fn get_logger(&self) -> MutexGuard; + fn get_db(&self) -> MutexGuard; + fn get_state_manager(&self) -> MutexGuard; } pub struct Context { pub logger: Mutex, - pub db : Mutex + pub db : Mutex, + pub state_manager : Mutex, } impl Ctx for Context { - fn get_logger(&self) -> std::sync::MutexGuard { + fn get_logger(&self) -> MutexGuard { self.logger.lock().unwrap() } - fn get_db(&self) -> std::sync::MutexGuard { + fn get_db(&self) -> MutexGuard { self.db.lock().unwrap() } + fn get_state_manager(&self) -> MutexGuard{ + self.state_manager.lock().unwrap() + } + } impl Context { - pub fn new(logger: CoreLogger, db: CoreStorage) -> Self { + pub fn new(logger: CoreLogger, db: CoreStorage, state_manager: GlobalStateManager) -> Self { Context { logger: Mutex::new(logger), db: Mutex::new(db), + state_manager: Mutex::new(state_manager), } } } diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index d5154a5d..a30a5c8b 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -5,7 +5,7 @@ use crate::{ }; use super::*; -use kuska_ssb::api::dto::content::Mention; +use kuska_ssb::api::dto::content::{Mention, Post}; impl Client { async fn get_async<'a, T, F>(&mut self, req_no: RequestNo, f: F) -> Result @@ -18,7 +18,7 @@ impl Client { if id == req_no { match msg { RecvMsg::RpcResponse(_type, body) => { - return f(&body).map_err(|err| err.into()); + return f(&body); } RecvMsg::ErrorResponse(message) => { return std::result::Result::Err(Box::new(AppError::new(message))); @@ -29,7 +29,7 @@ impl Client { } } - async fn print_source_until_eof<'a, T, F>(&mut self, req_no: RequestNo, f: F) -> Result> + async fn get_responses<'a, T, F>(&mut self, req_no: RequestNo, f: F) -> Result> where F: Fn(&[u8]) -> Result, T: Debug + serde::Deserialize<'a>, @@ -45,10 +45,7 @@ impl Client { let display = f(&body); match display { - Ok(display) => { - println!("response=> {:#?}", display); - response.push(display); - } + Ok(display) => response.push(display), Err(err) => { let body = std::str::from_utf8(&body).unwrap(); @@ -79,7 +76,7 @@ impl Client { ip: String, port: String, ) -> Result { - let server_pk = id.replace("=.ed25519", "").replace("@", ""); + let server_pk = id.replace("=.ed25519", "").replace('@', ""); let server_pk = ed25519::PublicKey::from_slice(&base64::decode(&server_pk)?).expect("bad public key"); @@ -104,12 +101,6 @@ impl Client { pub async fn new(configs: Option, ip: String, port: String) -> Result { match configs { Some(config) => { - // let public_key = - // PublicKey::from_slice(&base64::decode(&config.public_key)?).unwrap(); - // let secret_key = - // SecretKey::from_slice(&base64::decode(&config.secret_key)?).unwrap(); - // let id = config.id; - Self::ssb_handshake(config.pk, config.sk, config.id, ip, port).await } None => { @@ -132,19 +123,13 @@ impl Client { } pub async fn get(&mut self, msg_id: &str) -> Result { - let msg_id = if msg_id == "any" { - "%TL34NIX8JpMJN+ubHWx6cRhIwEal8VqHdKVg2t6lFcg=.sha256".to_string() - } else { - msg_id.to_string() - }; - - let req_id = self.api.get_req_send(&msg_id).await?; + let req_id = self.api.get_req_send(msg_id).await?; let msg = self.get_async(req_id, message_res_parse).await?; Ok(msg) } - pub async fn user(&mut self, live: bool, user_id: &str) -> Result> { + pub async fn get_feed_by_user(&mut self, live: bool, user_id: &str) -> Result> { let user_id = match user_id { "me" => self.whoami().await?, _ => user_id.to_string(), @@ -153,7 +138,7 @@ impl Client { let args = CreateHistoryStreamIn::new(user_id).live(live); let req_id = self.api.create_history_stream_req_send(&args).await?; - let feed = self.print_source_until_eof(req_id, feed_res_parse).await?; + let feed = self.get_responses(req_id, feed_res_parse).await?; Ok(feed) } @@ -162,7 +147,7 @@ impl Client { let args = CreateStreamIn::default().live(live); let req_id = self.api.create_feed_stream_req_send(&args).await?; - let feed = self.print_source_until_eof(req_id, feed_res_parse).await?; + let feed = self.get_responses(req_id, feed_res_parse).await?; Ok(feed) } @@ -175,57 +160,21 @@ impl Client { let args = CreateStreamIn::default().live(live); let req_id = self.api.create_feed_stream_req_send(&args).await?; - let _feed = self.execute_workflow_by_event(req_id, ctx).await?; - - Ok(()) - } - - pub async fn latest(&mut self) -> Result<()> { - let req_id = self.api.latest_req_send().await?; - self.print_source_until_eof(req_id, latest_res_parse) - .await?; - - Ok(()) - } - - pub async fn private(&mut self, user_id: &str) -> Result<()> { - let user_id = match user_id { - "me" => self.whoami().await?, - _ => user_id.to_string(), - }; - - let sk = self.get_secret_key(); - let show_private = |body: &[u8]| { - let msg = feed_res_parse(body)?.into_message()?; - if let serde_json::Value::String(content) = msg.content() { - if is_privatebox(&content) { - let ret = privatebox_decipher(&content, &sk)?.unwrap_or("".to_string()); - return Ok(ret); - } - } - return Ok("".to_string()); - }; - - let args = CreateHistoryStreamIn::new(user_id.to_string()); - let req_id = self.api.create_history_stream_req_send(&args).await?; - - self.print_source_until_eof(req_id, show_private).await?; + self.execute_workflow_by_event(req_id, ctx).await?; Ok(()) } - pub async fn create_invite(&mut self) -> Result<()> { + pub async fn create_invite(&mut self) -> Result> { let req_id = self.api.invite_create_req_send(1).await?; - - self.print_source_until_eof(req_id, invite_create).await?; - - Ok(()) + let responses = self.get_responses(req_id, invite_create).await?; + Ok(responses) } - pub async fn accept_invite(&mut self, invite_code: &str) -> Result<()> { - let req_id = self.api.invite_use_req_send(invite_code).await?; - self.print_source_until_eof(req_id, invite_create).await?; - Ok(()) + pub async fn accept_invite(&mut self, invite_code: &str) -> Result> { + let req_id = self.api.invite_use_req_send(invite_code).await?; + let responses = self.get_responses(req_id, invite_create).await?; + Ok(responses) } pub async fn publish(&mut self, msg: &str, mention: Option>) -> Result<()> { @@ -262,7 +211,6 @@ impl Client { req_no: RequestNo, ctx: Arc>, ) -> Result<()> { - let mut response = vec![]; let mut is_synced = false; @@ -277,14 +225,13 @@ impl Client { match display { Ok(display) => { if is_synced { - match serde_json::from_value::( + match serde_json::from_value::( display.value.get("content").unwrap().clone(), ) { Ok(x) => { match serde_json::from_str::(&x.text) { Ok(mut event) => { - response.push(display); println!("{:#?}", event); let ctx = ctx.lock().unwrap(); @@ -297,12 +244,14 @@ impl Client { "data" : crate::common::combine_values(&mut event, &body.input), "allowed_hosts": body.allowed_hosts }); - wasmtime_wasi_module::run_workflow( - serde_json::to_value(data).unwrap(), - body.wasm, - 0, - "hello", - ); + let _ = + wasmtime_wasi_module::run_workflow( + serde_json::to_value(data) + .unwrap(), + body.wasm, + 0, + "hello", + ); } Err(e) => logger.error(&e.to_string()), } @@ -327,12 +276,12 @@ impl Client { } } RecvMsg::ErrorResponse(message) => { - return std::result::Result::Err(Box::new(AppError::new(message))); + return std::result::Result::Err(Box::new(AppError::new(message))) } - RecvMsg::CancelStreamResponse() => {} _ => {} } } } } } + diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/mod.rs b/runtime/lite/src/modules/kuska_ssb_client/client/mod.rs index 0cd1b521..0507c14b 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/mod.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/mod.rs @@ -3,7 +3,6 @@ extern crate kuska_ssb; extern crate base64; - use std::fmt::Debug; use async_std::net::TcpStream; @@ -16,11 +15,12 @@ use kuska_ssb::{ api::ApiCaller, crypto::ed25519::PublicKey, discovery::ssb_net_id, - feed::{is_privatebox, privatebox_decipher, Feed, Message}, + feed::{Feed, Message}, keystore::{from_patchwork_local, OwnedIdentity}, rpc::{RecvMsg, RequestNo, RpcReader, RpcWriter}, }; +#[allow(clippy::module_inception)] mod client; mod errors; mod response_parser; diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/response_parser.rs b/runtime/lite/src/modules/kuska_ssb_client/client/response_parser.rs index 8e5b1ebe..c2a87457 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/response_parser.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/response_parser.rs @@ -7,7 +7,7 @@ pub fn message_res_parse(body: &[u8]) -> Result { Ok(Message::from_slice(body)?) } pub fn feed_res_parse(body: &[u8]) -> Result { - Ok(Feed::from_slice(&body)?) + Ok(Feed::from_slice(body)?) } pub fn latest_res_parse(body: &[u8]) -> Result { diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs index aabbd573..f52c6354 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs @@ -1,6 +1,6 @@ #[cfg(test)] mod tests { - use crate::modules::kuska_ssb_client::client::{types, Client, UserConfig}; + use crate::modules::kuska_ssb_client::client::{types, Client}; use dotenv::dotenv; use kuska_ssb::keystore::read_patchwork_config; @@ -121,7 +121,7 @@ mod tests { // wait for server to publish async_std::task::sleep(std::time::Duration::from_secs(1)).await; - let feed = client.user(false, &config.id).await.unwrap(); + let feed = client.get_feed_by_user(false, &config.id).await.unwrap(); let event = feed.last().unwrap().value.clone(); let message = event.get("content").unwrap(); @@ -230,8 +230,6 @@ mod tests { #[tokio::test] #[ignore] async fn test_event_subscription() { - use super::*; - dotenv().ok(); let secret = std::env::var("SECRET").unwrap_or_else(|_| { diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs index 7d58e540..685d5850 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs @@ -1,4 +1,3 @@ -use kuska_ssb::api::dto::content::Mention; use serde::{Deserialize, Serialize}; use super::*; @@ -15,12 +14,6 @@ pub struct Event { pub body: String, } -pub struct UserConfig { - pub public_key: String, - pub secret_key: String, - pub id: String, -} - #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)] pub struct Content { #[serde(rename = "type")] @@ -28,13 +21,3 @@ pub struct Content { pub text: String, // mentions: Option>, } - -impl UserConfig { - pub fn new(public_key: &str, secret_key: &str, id: &str) -> Self { - Self { - public_key: public_key.to_string(), - secret_key: secret_key.to_string(), - id: id.to_string(), - } - } -} diff --git a/runtime/lite/src/modules/logger/mod.rs b/runtime/lite/src/modules/logger/mod.rs index ce0131ac..fb7be6c9 100644 --- a/runtime/lite/src/modules/logger/mod.rs +++ b/runtime/lite/src/modules/logger/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] pub mod logger; pub mod traits; diff --git a/runtime/lite/src/modules/storage/mod.rs b/runtime/lite/src/modules/storage/mod.rs index 6cb2bb1d..dd060ff8 100644 --- a/runtime/lite/src/modules/storage/mod.rs +++ b/runtime/lite/src/modules/storage/mod.rs @@ -2,6 +2,7 @@ /// does: pub mod traits; pub use traits::*; +#[allow(clippy::module_inception)] pub mod storage; pub use storage::*; pub mod test; diff --git a/runtime/lite/src/modules/storage/storage.rs b/runtime/lite/src/modules/storage/storage.rs index b8b3f062..1843e26e 100644 --- a/runtime/lite/src/modules/storage/storage.rs +++ b/runtime/lite/src/modules/storage/storage.rs @@ -95,7 +95,7 @@ impl Storage for CoreStorage { /// The `set_data` function returns a `Result<(), Error>`. fn set_data(&self, key: &str, value: Vec) -> Result<(), CustomError> { let serialized_value = value; - self.db.put(key, &serialized_value)?; + self.db.put(key, serialized_value)?; Ok(()) } @@ -115,7 +115,7 @@ impl Storage for CoreStorage { /// The `modify_data` function is returning a `Result<(), Error>`. fn modify_data(&self, key: &str, value: Vec) -> Result<(), CustomError> { let _existing_data = self.get_data(key)?; - self.db.put(key, &value)?; + self.db.put(key, value)?; Ok(()) } @@ -151,7 +151,7 @@ impl Storage for CoreStorage { /// /// The `store_wasm` function is returning a `Result<(), Error>`. fn store_wasm(&self, key: &str, wasm: &[u8]) -> Result<(), CustomError> { - self.db.put(key, &wasm)?; + self.db.put(key, wasm)?; Ok(()) } diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs index 54d641db..e6a283a8 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs @@ -40,7 +40,7 @@ fn run_workflow_helper( let cache = DB::open_default(format!("./.cache/{:?}", id)).unwrap(); let prev_internal_state_data = if !restart { - let prev_internal_state_data: Value = match cache.get(&hash_key.as_bytes()).unwrap() { + let prev_internal_state_data: Value = match cache.get(hash_key.as_bytes()).unwrap() { Some(data) => serde_json::from_slice(&data).unwrap(), None => serde_json::json!([]), }; @@ -267,7 +267,7 @@ fn run_workflow_helper( let mut bytes: Vec = Vec::new(); serde_json::to_writer(&mut bytes, &state_output).unwrap(); - cache.put(&hash_key.as_bytes(), bytes).unwrap(); + cache.put(hash_key.as_bytes(), bytes).unwrap(); } else { state_manager .update_result(workflow_index, res.result.clone(), true) @@ -276,7 +276,7 @@ fn run_workflow_helper( let state_result = serde_json::json!({ "success" : res }); let mut bytes: Vec = Vec::new(); serde_json::to_writer(&mut bytes, &state_result).unwrap(); - cache.put(&hash_key.as_bytes(), bytes).unwrap(); + cache.put(hash_key.as_bytes(), bytes).unwrap(); } Ok(res) From d0a2c7c93a5e50e05a3a4f830e6823032b69de38 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Wed, 27 Mar 2024 11:40:17 +0530 Subject: [PATCH 02/10] fix: create new type `Event` to use in publish event method and pass missing fields --- .../modules/kuska_ssb_client/client/client.rs | 14 +++--- .../modules/kuska_ssb_client/client/tests.rs | 45 ++++++------------- .../modules/kuska_ssb_client/client/types.rs | 31 ++++++++++--- 3 files changed, 46 insertions(+), 44 deletions(-) diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index a30a5c8b..4f35a4f5 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -100,9 +100,7 @@ impl Client { pub async fn new(configs: Option, ip: String, port: String) -> Result { match configs { - Some(config) => { - Self::ssb_handshake(config.pk, config.sk, config.id, ip, port).await - } + Some(config) => Self::ssb_handshake(config.pk, config.sk, config.id, ip, port).await, None => { let OwnedIdentity { pk, sk, id } = from_patchwork_local().await.expect("read local secret"); @@ -189,12 +187,14 @@ impl Client { Ok(()) } - pub async fn publish_event(&mut self, msg: &str, mention: Option>) -> Result<()> { + pub async fn publish_event(&mut self, event: Event) -> Result<()> { let _req_id = self .api .publish_req_send(TypedMessage::Event { - text: msg.to_string(), - mentions: mention, + event: event.event, + section: event.section, + content: event.content, + mentions: event.mentions, }) .await?; @@ -211,7 +211,6 @@ impl Client { req_no: RequestNo, ctx: Arc>, ) -> Result<()> { - let mut is_synced = false; loop { @@ -284,4 +283,3 @@ impl Client { } } } - diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs index ba748a78..979b01bd 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs @@ -1,8 +1,9 @@ #[cfg(test)] mod tests { - use kuska_ssb::keystore::read_patchwork_config; - use crate::modules::kuska_ssb_client::client::{types, Client}; + use crate::modules::kuska_ssb_client::client::Client; use dotenv::dotenv; + use kuska_ssb::keystore::read_patchwork_config; + use serde_json::{json, Value}; // ssb-server should keep running for testing /* configure the env variables such as ssb-sercret file path, ip and port where @@ -93,7 +94,7 @@ mod tests { #[ignore] // returns list of feeds posted by particular user async fn test_user_method() { - use types::Event; + // use types::Event; dotenv().ok(); let secret = std::env::var("CONSUMER_SECRET").unwrap_or_else(|_| { @@ -109,10 +110,10 @@ mod tests { .await .unwrap(); - let old_event = Event { - id: "1".to_string(), - body: "hello_world_event".to_string(), - }; + let old_event = json!({ + "id": "1".to_string(), + "body": "hello_world_event".to_string(), + }); let value = serde_json::to_value(old_event.clone()).unwrap(); @@ -134,7 +135,7 @@ mod tests { let feed_text = message.get("text").unwrap(); let feed_text: String = serde_json::from_value(feed_text.clone()).unwrap(); - let new_event: Event = serde_json::from_str(&feed_text).unwrap(); + let new_event: Value = serde_json::from_str(&feed_text).unwrap(); // let event = serde_json::from_value(event).unwrap(); assert_eq!(old_event, new_event); } @@ -197,10 +198,10 @@ mod tests { let feed = client.feed(false).await.unwrap(); let prev_len = feed.len(); - let old_event = types::Event { - id: "1".to_string(), - body: "hello_world_event".to_string(), - }; + let old_event = json!({ + "id": "1".to_string(), + "body": "hello_world_event".to_string(), + }); let value = serde_json::to_value(old_event.clone()).unwrap(); @@ -223,7 +224,7 @@ mod tests { let feed_text = message.get("text").unwrap(); let feed_text: String = serde_json::from_value(feed_text.clone()).unwrap(); - let new_event: types::Event = serde_json::from_str(&feed_text).unwrap(); + let new_event: Value = serde_json::from_str(&feed_text).unwrap(); assert_eq!(old_event, new_event); } @@ -333,22 +334,4 @@ mod tests { let res = client.create_invite().await; assert!(res.is_ok()) } - - #[async_std::test] - #[ignore] - async fn test_accept_invite() { - dotenv::dotenv().ok(); - let secret = std::env::var("CONSUMER_SECRET").unwrap_or_else(|_| { - let home_dir = dirs::home_dir().unwrap(); - std::format!("{}/.ssb/secret", home_dir.to_string_lossy()) - }); - let port = std::env::var("CONSUMER_PORT").unwrap_or_else(|_| 8015.to_string()); - let mut file = async_std::fs::File::open(secret).await.unwrap(); - let key = read_patchwork_config(&mut file).await.unwrap(); - let mut client = Client::new(Some(key), "0.0.0.0".to_string(), port) - .await - .unwrap(); - let res = client.accept_invite("172.28.0.4:8008:@hkYrVBGtWm5+xeRYDzsL9u6b0cM2rtcYs4NiiZQEVLs=.ed25519~BERengMsq9t2ovXHBZgiFtKDlcvAYQTXSPk/JAw+3zQ=").await; - assert!(res.is_ok()) - } } diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs index 685d5850..b7762386 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs @@ -1,17 +1,38 @@ -use serde::{Deserialize, Serialize}; - use super::*; +use kuska_ssb::api::dto::content::Mention; +use serde::{Deserialize, Serialize}; + pub struct Client { pub api: ApiCaller, pub rpc_reader: RpcReader, pub sk: SecretKey, } -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize)] pub struct Event { - pub id: String, - pub body: String, + pub event: String, + pub section: String, + pub content: String, + + #[serde(skip_serializing_if = "Option::is_none")] + pub mentions: Option>, +} + +impl Event { + pub fn new( + event: String, + section: String, + content: String, + mentions: Option>, + ) -> Self { + Self { + event, + section, + content, + mentions, + } + } } #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)] From 62176476d65c62115d9673712d90fdecad94da4b Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Wed, 27 Mar 2024 15:55:19 +0530 Subject: [PATCH 03/10] chore: add state manager to the context & optimize wasm runtime and state manager --- runtime/lite/src/consumer.rs | 10 +- .../modules/kuska_ssb_client/client/client.rs | 21 +++- runtime/lite/src/modules/logger/logger.rs | 2 - runtime/lite/src/modules/state_manager/mod.rs | 4 +- .../lite/src/modules/state_manager/traits.rs | 2 +- runtime/lite/src/modules/storage/storage.rs | 41 +------ runtime/lite/src/modules/storage/test.rs | 31 ------ runtime/lite/src/modules/storage/traits.rs | 6 +- .../src/modules/wasmtime_wasi_module/mod.rs | 65 ++++------- .../src/modules/wasmtime_wasi_module/tests.rs | 105 ++++++++++++------ 10 files changed, 124 insertions(+), 163 deletions(-) diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index 13c8206f..d1bb4866 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -2,8 +2,8 @@ use kuska_ssb::keystore::read_patchwork_config; use runtime::{ common::RequestBody, logger::CoreLogger, - state_manager::GlobalState, modules::kuska_ssb_client::client::Client, + state_manager::GlobalState, storage::{CoreStorage, Storage}, Ctx, Logger, }; @@ -23,11 +23,7 @@ async fn main() { let logger = CoreLogger::new(Some("./workflow")); let state_manager = GlobalState::new(logger.clone()); - let context = Arc::new(Mutex::new(Context::new( - logger, - db, - state_manager - ))); + let context = Arc::new(Mutex::new(Context::new(logger, db, state_manager))); let secret = std::env::var("CONSUMER_SECRET").unwrap_or_else(|_| { let home_dir = dirs::home_dir().unwrap(); @@ -82,7 +78,7 @@ fn handle_client(mut stream: TcpStream, ctx: Arc>) { logger.info("Data Deseriased"); let db = ctx.get_db(); - db.insert(&body.pub_id.clone(), body).unwrap(); + db.insert_request_body(&body.pub_id.clone(), body).unwrap(); logger.info("Data inserted successfully"); // println!("Received data: {:?}", body); diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index 4f35a4f5..77a26d48 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -1,7 +1,10 @@ use std::sync::{Arc, Mutex}; use crate::{ - modules::logger::Logger, modules::storage::Storage, modules::wasmtime_wasi_module, Ctx, + modules::{ + logger::Logger, state_manager::GlobalStateManager, storage::Storage, wasmtime_wasi_module, + }, + Ctx, }; use super::*; @@ -236,20 +239,30 @@ impl Client { let ctx = ctx.lock().unwrap(); let db = ctx.get_db(); let logger = ctx.get_logger(); + let state_manager = ctx.get_state_manager(); - match db.get(&x.mentions.unwrap()[0].link) { + match db.get_request_body( + &x.mentions.unwrap()[0].link, + ) { Ok(body) => { let data = serde_json::json!({ "data" : crate::common::combine_values(&mut event, &body.input), "allowed_hosts": body.allowed_hosts }); + + let workflow_index = ctx + .get_state_manager() + .new_workflow(0, "hello"); + let _ = wasmtime_wasi_module::run_workflow( + state_manager, + logger, serde_json::to_value(data) .unwrap(), body.wasm, - 0, - "hello", + workflow_index, + false, ); } Err(e) => logger.error(&e.to_string()), diff --git a/runtime/lite/src/modules/logger/logger.rs b/runtime/lite/src/modules/logger/logger.rs index 1b2eed59..83736b9d 100644 --- a/runtime/lite/src/modules/logger/logger.rs +++ b/runtime/lite/src/modules/logger/logger.rs @@ -28,14 +28,12 @@ impl CoreLogger { let file = match log_file { Some(file) => OpenOptions::new() .write(true) - .append(true) .create(true) .open(file) .unwrap(), None => OpenOptions::new() .create(true) .write(true) - .append(true) .open("./workflows.log") .unwrap(), }; diff --git a/runtime/lite/src/modules/state_manager/mod.rs b/runtime/lite/src/modules/state_manager/mod.rs index 88b777db..92db5cee 100644 --- a/runtime/lite/src/modules/state_manager/mod.rs +++ b/runtime/lite/src/modules/state_manager/mod.rs @@ -11,6 +11,7 @@ pub use logger::{CoreLogger, Logger}; use super::logger; +#[derive(Debug)] pub struct GlobalState { workflows: Vec, logger: U, @@ -27,10 +28,11 @@ impl GlobalState { impl GlobalStateManager for GlobalState { - fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str) { + fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str) -> usize{ self.workflows .push(WorkflowState::new(workflow_id, workflow_name)); self.logger.info(&format!("[new workflow created with id:{}]", workflow_id)); + self.workflows.len() - 1 } fn get_state_data(&self, workflow_index: usize) -> Result> { diff --git a/runtime/lite/src/modules/state_manager/traits.rs b/runtime/lite/src/modules/state_manager/traits.rs index eaee9490..8e755d7c 100644 --- a/runtime/lite/src/modules/state_manager/traits.rs +++ b/runtime/lite/src/modules/state_manager/traits.rs @@ -12,7 +12,7 @@ pub trait WorkflowStateManager{ } pub trait GlobalStateManager { - fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str); // returns index(used as id also) + fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str) -> usize; // returns index(used as id also) fn get_state_data(&self, workflow_index: usize) -> Result>; fn update_running(&mut self, workflow_index: usize) -> Result<()>; fn update_paused(&mut self, workflow_index: usize, output: Option) -> Result<()>; diff --git a/runtime/lite/src/modules/storage/storage.rs b/runtime/lite/src/modules/storage/storage.rs index 1843e26e..14cbef5c 100644 --- a/runtime/lite/src/modules/storage/storage.rs +++ b/runtime/lite/src/modules/storage/storage.rs @@ -36,7 +36,7 @@ impl From for CustomError { impl From for io::Error { fn from(error: CustomError) -> Self { - match error { + match error { CustomError::RocksDB(e) => io::Error::new(io::ErrorKind::Other, e), CustomError::Io(e) => e, CustomError::Custom(e) => io::Error::new(io::ErrorKind::Other, e), @@ -94,8 +94,8 @@ impl Storage for CoreStorage { /// /// The `set_data` function returns a `Result<(), Error>`. fn set_data(&self, key: &str, value: Vec) -> Result<(), CustomError> { - let serialized_value = value; - self.db.put(key, serialized_value)?; + // let serialized_value = value; + self.db.put(key, value)?; Ok(()) } @@ -137,25 +137,6 @@ impl Storage for CoreStorage { Ok(()) } - /// The function `store_wasm` stores a WebAssembly binary file in a key-value database. - /// - /// Arguments: - /// - /// * `key`: The `key` parameter is a reference to a string that represents the key under which the - /// WebAssembly binary will be stored in the database. - /// * `wasm_path`: The `wasm_path` parameter in the `store_wasm` function represents the file path - /// to the WebAssembly (Wasm) file that you want to store in the database. This function reads the - /// contents of the Wasm file as bytes and stores them in the database with the specified key. - /// - /// Returns: - /// - /// The `store_wasm` function is returning a `Result<(), Error>`. - fn store_wasm(&self, key: &str, wasm: &[u8]) -> Result<(), CustomError> { - self.db.put(key, wasm)?; - - Ok(()) - } - /// The function `get_wasm` retrieves a WebAssembly module from a database using a given key. /// /// Arguments: @@ -168,24 +149,14 @@ impl Storage for CoreStorage { /// The `get_wasm` function returns a `Result` containing either a vector of `u8` bytes or an /// `Error`. - fn get_wasm(&self, key: &str) -> Result, CustomError> { - match self.db.get(key) { - Ok(Some(retrieved_wasm_bytes)) => Ok(retrieved_wasm_bytes), - Ok(None) => Err(CustomError::Custom(format!( - "WASM module not found with key: {:?}", - key - ))), - Err(err) => Err(CustomError::RocksDB(err)), - } - } - - fn insert(&self, key: &str, value: crate::common::RequestBody) -> Result<(), CustomError> { + fn insert_request_body(&self, key: &str, value: crate::common::RequestBody) -> Result<(), CustomError> { let bytes = serde_json::to_vec(&value).map_err(|e| CustomError::Custom(e.to_string()))?; self.db .put(key, bytes) .map_err(|e| CustomError::Custom(e.to_string())) } - fn get(&self, key: &str) -> Result { + + fn get_request_body(&self, key: &str) -> Result { let res = self .db .get(key) diff --git a/runtime/lite/src/modules/storage/test.rs b/runtime/lite/src/modules/storage/test.rs index b80232d6..d872c189 100644 --- a/runtime/lite/src/modules/storage/test.rs +++ b/runtime/lite/src/modules/storage/test.rs @@ -94,35 +94,4 @@ mod tests { fs::remove_dir_all(std::path::Path::new("test5")).unwrap(); result.unwrap(); } - - /// The test function stores a WebAssembly file in a database and then retrieves it to compare with - /// the original file. - #[test] - fn test_store_and_get_wasm() { - let core_storage = CoreStorage::new("test8").unwrap(); - let wasm_bytes = vec![0x00, 0x61, 0x01]; - - let key = "boilerplate"; - core_storage.store_wasm(key, &wasm_bytes).unwrap(); - - let retrieved_wasm = core_storage.get_wasm(key).unwrap(); - fs::remove_dir_all(std::path::Path::new("test8")).unwrap(); - assert_eq!(retrieved_wasm, wasm_bytes) - } - - /// The test function is checking if an error is raised when trying to retrieve a WebAssembly module - /// with a different key than the one it was stored with. - #[test] - #[should_panic] - fn test_get_wasm_with_different_key() { - let core_storage = CoreStorage::new("test9").unwrap(); - let wasm_bytes = vec![0x00, 0x61, 0x01]; - - let key = "boilerplate"; - core_storage.store_wasm(key, &wasm_bytes).unwrap(); - - let result = core_storage.get_wasm("hello"); - fs::remove_dir_all(std::path::Path::new("test9")).unwrap(); - result.unwrap(); - } } diff --git a/runtime/lite/src/modules/storage/traits.rs b/runtime/lite/src/modules/storage/traits.rs index 15176bc7..49409641 100644 --- a/runtime/lite/src/modules/storage/traits.rs +++ b/runtime/lite/src/modules/storage/traits.rs @@ -5,8 +5,6 @@ pub trait Storage { fn set_data(&self, key: &str, value: Vec) -> Result<(), CustomError>; fn modify_data(&self, key: &str, value: Vec) -> Result<(), CustomError>; fn delete_data(&self, key: &str) -> Result<(), CustomError>; - fn store_wasm(&self, key: &str, wasm : &[u8]) -> Result<(), CustomError>; - fn get_wasm(&self, key: &str) -> Result, CustomError>; - fn insert(&self, key: &str, value: RequestBody) -> Result<(), CustomError>; - fn get(&self, key: &str) -> Result; + fn insert_request_body(&self, key: &str, value: RequestBody) -> Result<(), CustomError>; + fn get_request_body(&self, key: &str) -> Result; } diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs index e6a283a8..f1a5e455 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs @@ -1,5 +1,6 @@ use serde::{Deserialize, Serialize}; use serde_json::Value; +use std::sync::MutexGuard; pub mod help; pub use help::*; mod tests; @@ -13,7 +14,7 @@ use std::sync::{Arc, Mutex}; mod types; pub use types::*; -use logger::{CoreLogger, Logger}; +use logger::Logger; use rocksdb::DB; use wasi_common::WasiCtx; use wasi_experimental_http_wasmtime::{HttpCtx, HttpState}; @@ -23,23 +24,24 @@ use wasmtime_wasi::sync::WasiCtxBuilder; use super::logger; -#[allow(dead_code)] -fn run_workflow_helper( +pub fn run_workflow( + mut state_manager: MutexGuard>, + logger: MutexGuard, data: Value, wasm_file: Vec, - hash_key: String, - state_manager: &mut GlobalState, workflow_index: usize, - restart: bool, // ignores the cache - logger: U, + ignore_cache: bool, // ignores the cache ) -> Result { - let id = state_manager + let workflow_id = state_manager .get_state_data(workflow_index) .unwrap() .get_id(); - let cache = DB::open_default(format!("./.cache/{:?}", id)).unwrap(); - let prev_internal_state_data = if !restart { + let hash_key = digest(format!("{:?}{:?}", data, workflow_id)); + + let cache = DB::open_default(format!("./.cache/{:?}", workflow_id)).unwrap(); + + let prev_internal_state_data = if !ignore_cache { let prev_internal_state_data: Value = match cache.get(hash_key.as_bytes()).unwrap() { Some(data) => serde_json::from_slice(&data).unwrap(), None => serde_json::json!([]), @@ -48,7 +50,7 @@ fn run_workflow_helper( // returns the main output without passing the state data to the workflow if let Some(output) = prev_internal_state_data.get("success") { state_manager.update_running(workflow_index).unwrap(); - logger.warn(&format!("[workflow:{id} cached result used]")); + logger.warn(&format!("[workflow:{workflow_id} cached result used]")); state_manager .update_result(workflow_index, output.clone(), true) .unwrap(); @@ -120,7 +122,7 @@ fn run_workflow_helper( let output_2: Arc>> = Arc::new(Mutex::new(Vec::new())); let output_ = output_2.clone(); - let logger_cln = Arc::new(Mutex::new(logger)); + let logger_cln = Arc::new(Mutex::new(logger.clone())); linker .func_wrap( @@ -142,21 +144,25 @@ fn run_workflow_helper( ExecutionState::Init => { logger_cln.lock().unwrap().info(&format!( "[workflow:{:?} task[{}...] ]", - id, task_state_data.action_name + workflow_id, task_state_data.action_name )); } ExecutionState::Running => { logger_cln.lock().unwrap().info(&format!( "[workflow:{:?} task[{}:{}] running]", - id, task_state_data.task_index, task_state_data.action_name + workflow_id, + task_state_data.task_index, + task_state_data.action_name )); } ExecutionState::Paused => { logger_cln.lock().unwrap().warn(&format!( "[workflow:{:?} task[{}:{}] paused]", - id, task_state_data.task_index, task_state_data.action_name + workflow_id, + task_state_data.task_index, + task_state_data.action_name )); } @@ -167,14 +173,14 @@ fn run_workflow_helper( -1 => { logger_cln.lock().unwrap().info(&format!( "[workflow:{:?} task[{}] success]", - id, task_state_data.action_name + workflow_id, task_state_data.action_name )); } _ => { logger_cln.lock().unwrap().info(&format!( "[workflow:{:?} task[{}:{}] success]", - id, + workflow_id, task_state_data.task_index, task_state_data.action_name )); @@ -188,7 +194,7 @@ fn run_workflow_helper( ExecutionState::Failed => { logger_cln.lock().unwrap().error(&format!( "[workflow:{:?} task[{}:{}] failed[{}]]", - id, + workflow_id, task_state_data.task_index, task_state_data.action_name, task_state_data.error.unwrap() @@ -281,26 +287,3 @@ fn run_workflow_helper( Ok(res) } - -pub fn run_workflow( - data: Value, - wasm_file: Vec, - workflow_id: usize, - workflow_name: &str, -) -> Result { - let logger = CoreLogger::new(Some("./workflow.log")); - let mut state_manager = GlobalState::new(logger.clone()); - - state_manager.new_workflow(workflow_id, workflow_name); - - let digest = digest(format!("{:?}{:?}", data, workflow_name)); - run_workflow_helper( - data, - wasm_file, - digest, - &mut state_manager, - 0, - false, - logger, - ) -} diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs b/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs index dfef33d9..0c92b450 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs @@ -1,43 +1,74 @@ -#[async_std::test] -async fn test_hello_world() { - let path = std::env::var("WORKFLOW_WASM") - .unwrap_or("../../workflow/examples/hello_world.wasm".to_string()); +#[cfg(test)] +mod tests { + use crate::context::Ctx; + use crate::logger::CoreLogger; + use crate::state_manager::{GlobalState, GlobalStateManager}; + use crate::storage::CoreStorage; + use crate::wasmtime_wasi_module::run_workflow; - let wasm = std::fs::read(&path).unwrap(); + #[async_std::test] + async fn test_hello_world() { + let logger = CoreLogger::new(Some("./workflow-1.log")); + let ctx = crate::context::Context::new( + logger.clone(), + CoreStorage::new("workflow_db_1").unwrap(), + GlobalState::new(logger), + ); - let input = serde_json::json!({ - "allowed_hosts": [], - "data": { - "hello" : "world" - } - }); + let path = std::env::var("WORKFLOW_WASM") + .unwrap_or("../../workflow/examples/hello_world.wasm".to_string()); - let result = super::run_workflow(input, wasm, 1,"hello_world").unwrap(); + let wasm = std::fs::read(&path).unwrap(); - assert!(result.result.to_string().contains("Hello")); -} + let input = serde_json::json!({ + "allowed_hosts": [], + "data": { + "hello" : "world" + } + }); + + let logger = ctx.get_logger(); + let mut state_manager = ctx.get_state_manager(); + + let index = state_manager.new_workflow(1, "hello_world"); + + let result = run_workflow(state_manager, logger, input.clone(), wasm, index, true).unwrap(); + + assert!(result.result.to_string().contains("Hello")); + } + + #[async_std::test] + async fn test_employee_salary() { + let logger = CoreLogger::new(Some("./workflow-2.log")); + let ctx = crate::context::Context::new( + logger.clone(), + CoreStorage::new("workflow_db_2").unwrap(), + GlobalState::new(logger), + ); + + let path = std::env::var("WORKFLOW_WASM") + .unwrap_or("../../workflow/examples/employee_salary_state_managed.wasm".to_string()); + let wasm = std::fs::read(&path).unwrap(); + + let server = test_util::post("127.0.0.1:1234").await; + let input = serde_json::json!({ + "allowed_hosts": [ + server.uri() + ], + "data": { + "role":"Software Developer", + } + }); + + let logger = ctx.get_logger(); + let mut state_manager = ctx.get_state_manager(); + + let index = state_manager.new_workflow(2, "employee_salary"); -#[async_std::test] -async fn test_employee_salary() { - - let path = std::env::var("WORKFLOW_WASM").unwrap_or( - "../../workflow/examples/employee_salary_state_managed.wasm".to_string(), - ); - let wasm = std::fs::read(&path).unwrap(); - - let server = test_util::post("127.0.0.1:1234").await; - let input = serde_json::json!({ - "allowed_hosts": [ - server.uri() - ], - "data": { - "role":"Software Developer", - } - }); - - let result = super::run_workflow(input.clone(), wasm, 2, "employee_salary").unwrap(); - assert!(result - .result - .to_string() - .contains("Salary creditted for emp id 1 from Hugobyte")); + let result = run_workflow(state_manager, logger, input.clone(), wasm, index, true).unwrap(); + assert!(result + .result + .to_string() + .contains("Salary creditted for emp id 1 from Hugobyte")); + } } From 23fb88c694c80d476d03e2a705992cb7b5fae044 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Wed, 27 Mar 2024 16:47:09 +0530 Subject: [PATCH 04/10] refactor: fix spelling mistakes, format Cargo.toml and remove unwanted files --- runtime/lite/Cargo.toml | 110 ++++++----- runtime/lite/src/consumer.rs | 2 +- runtime/lite/src/modules/common/mod.rs | 4 +- .../modules/kuska_ssb_client/client/client.rs | 4 +- .../modules/kuska_ssb_client/client/tests.rs | 2 +- runtime/lite/src/modules/logger/tests.rs | 4 +- runtime/lite/src/modules/state_manager/mod.rs | 186 +++--------------- .../lite/src/modules/state_manager/tests.rs | 132 +++++++++++++ .../src/modules/wasmtime_wasi_module/help.rs | 11 -- .../src/modules/wasmtime_wasi_module/mod.rs | 11 +- 10 files changed, 235 insertions(+), 231 deletions(-) create mode 100644 runtime/lite/src/modules/state_manager/tests.rs delete mode 100644 runtime/lite/src/modules/wasmtime_wasi_module/help.rs diff --git a/runtime/lite/Cargo.toml b/runtime/lite/Cargo.toml index c1fa7dba..b20ae044 100644 --- a/runtime/lite/Cargo.toml +++ b/runtime/lite/Cargo.toml @@ -1,64 +1,74 @@ -[package] -name = "runtime" -authors = ["The HugoByte Team "] -edition = "2021" -repository = "https://github.com/hugobyte/aurras.git" -version = "0.0.1" - - [[bin]] -name = "consumer" -path = "src/consumer.rs" +name = 'consumer' +path = 'src/consumer.rs' + +[package] +name = 'runtime' +authors = ['The HugoByte Team '] +edition = '2021' +repository = 'https://github.com/hugobyte/aurras.git' +version = '0.0.1' [lib] -path = "src/lib.rs" +path = 'src/lib.rs' [dependencies] -kuska-ssb = { git = "https://github.com/shanithkk/ssb.git", branch = "fix-invite-accept-issue" } -kuska-handshake = { git = "https://github.com/Kuska-ssb/handshake.git", features = [ - "async_std", -] } -# kuska-handshake = "0.2.0" -kuska-sodiumoxide = "0.2.5-0" -base64 = "0.11.0" -# hex = "0.4.0" -async-std = { version = "1.12.0", features = ["unstable", "attributes"] } -log = "0.4.8" -serde = { version = "1.0.104", features = ["derive"] } -serde_json = { version = "1.0.48", features = [ - "preserve_order", - "arbitrary_precision", -] } -dirs = "2.0" - -# rand = "0.7.3" -# wasmtime-wasi-module = { path = "/Users/shanithkk/Hugobyte/learn/rust/search/wasmtime-wasi-module" } +kuska-sodiumoxide = '0.2.5-0' +base64 = '0.11.0' +log = '0.4.8' +dirs = '2.0' +subxt-signer = '0.34.0' +slog = '2.7.0' +slog-async = '2.8.0' +slog-term = '2.9.1' +wasmtime = '0.35.0' +anyhow = '1.0.80' +wasmtime-wasi = '0.35.0' +wasi-common = '0.35.0' +serde_derive = '1.0.81' +http = '0.2' +bytes = '1' +wasi-experimental-http-wasmtime = '0.10.0' +sha256 = '1.5.0' +rocksdb = '0.18.0' +dotenv = '0.15.0' -tokio = { version = "1.36.0", features = ["macros", "time", "rt-multi-thread"] } -subxt-signer = "0.34.0" +[dependencies.kuska-ssb] +git = 'https://github.com/shanithkk/ssb.git' +branch = 'fix-invite-accept-issue' -slog = "2.7.0" -slog-async = "2.8.0" -slog-term = "2.9.1" +[dependencies.kuska-handshake] +git = 'https://github.com/Kuska-ssb/handshake.git' +features = ['async_std'] -wasmtime = "0.35.0" -anyhow = "1.0.80" -# wiremock = "0.5.17" -wasmtime-wasi = "0.35.0" -wasi-common = "0.35.0" -serde_derive = "1.0.81" -http = "0.2" -bytes = "1" -wasi-experimental-http-wasmtime = "0.10.0" -sha256 = "1.5.0" -test_util = { path = "../../workflow/test_util" } +[dependencies.async-std] +version = '1.12.0' +features = [ + 'unstable', + 'attributes', +] -rocksdb = "0.18.0" +[dependencies.serde] +version = '1.0.104' +features = ['derive'] +[dependencies.serde_json] +version = '1.0.48' +features = [ + 'preserve_order', + 'arbitrary_precision', +] -# tempfile = "3.10.1" -dotenv = "0.15.0" +[dependencies.tokio] +version = '1.36.0' +features = [ + 'macros', + 'time', + 'rt-multi-thread', +] +[dependencies.test_util] +path = '../../workflow/test_util' [dev-dependencies] -subxt = "0.34.0" +subxt = '0.34.0' diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index d1bb4866..06323d69 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -75,7 +75,7 @@ fn handle_client(mut stream: TcpStream, ctx: Arc>) { let ctx = ctx.lock().unwrap(); let logger = ctx.get_logger().clone(); - logger.info("Data Deseriased"); + logger.info("Data Deserialized"); let db = ctx.get_db(); db.insert_request_body(&body.pub_id.clone(), body).unwrap(); diff --git a/runtime/lite/src/modules/common/mod.rs b/runtime/lite/src/modules/common/mod.rs index cc4fd5c5..5a3de043 100644 --- a/runtime/lite/src/modules/common/mod.rs +++ b/runtime/lite/src/modules/common/mod.rs @@ -6,7 +6,7 @@ pub struct RequestBody { pub wasm: Vec, pub invite: String, pub pub_id: String, - pub allowed_hosts : Option>, + pub allowed_hosts: Option>, pub input: Value, } @@ -24,4 +24,4 @@ pub fn combine_values(dest: &mut serde_json::Value, src: &serde_json::Value) { } (_, _) => panic!("update_with only works with two serde_json::Value::Object s"), } -} \ No newline at end of file +} diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index 77a26d48..fafd0fda 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -83,9 +83,9 @@ impl Client { let server_pk = ed25519::PublicKey::from_slice(&base64::decode(&server_pk)?).expect("bad public key"); - let server_ipport = format!("{}:{}", ip, port); + let server_ip_port = format!("{}:{}", ip, port); - let mut socket = TcpStream::connect(server_ipport).await?; + let mut socket = TcpStream::connect(server_ip_port).await?; let handshake = handshake_client(&mut socket, ssb_net_id(), pk, sk.clone(), server_pk).await?; diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs index 979b01bd..0a0ba167 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs @@ -6,7 +6,7 @@ mod tests { use serde_json::{json, Value}; // ssb-server should keep running for testing - /* configure the env variables such as ssb-sercret file path, ip and port where + /* configure the env variables such as ssb-secret file path, ip and port where ssb-server is running in .env file */ // use `cargo test -- --ignored` command for testing diff --git a/runtime/lite/src/modules/logger/tests.rs b/runtime/lite/src/modules/logger/tests.rs index 0a21a4c5..31c2ff61 100644 --- a/runtime/lite/src/modules/logger/tests.rs +++ b/runtime/lite/src/modules/logger/tests.rs @@ -27,7 +27,7 @@ fn test_writing_to_log_file() { } #[test] -fn test_logger_in_multi_threads(){ +fn test_logger_in_multi_threads() { let logger = CoreLogger::new(Some("test3.log")); let mut handles = vec![]; @@ -44,4 +44,4 @@ fn test_logger_in_multi_threads(){ } fs::remove_file("test3.log").unwrap(); -} \ No newline at end of file +} diff --git a/runtime/lite/src/modules/state_manager/mod.rs b/runtime/lite/src/modules/state_manager/mod.rs index 92db5cee..e72112d1 100644 --- a/runtime/lite/src/modules/state_manager/mod.rs +++ b/runtime/lite/src/modules/state_manager/mod.rs @@ -5,11 +5,13 @@ use serde_json::Value; pub mod traits; pub mod types; +pub use logger::{CoreLogger, Logger}; pub use traits::*; pub use types::*; -pub use logger::{CoreLogger, Logger}; use super::logger; +#[cfg(test)] +mod tests; #[derive(Debug)] pub struct GlobalState { @@ -26,12 +28,12 @@ impl GlobalState { } } -impl GlobalStateManager for GlobalState -{ - fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str) -> usize{ +impl GlobalStateManager for GlobalState { + fn new_workflow(&mut self, workflow_id: usize, workflow_name: &str) -> usize { self.workflows .push(WorkflowState::new(workflow_id, workflow_name)); - self.logger.info(&format!("[new workflow created with id:{}]", workflow_id)); + self.logger + .info(&format!("[new workflow created with id:{}]", workflow_id)); self.workflows.len() - 1 } @@ -47,9 +49,15 @@ impl GlobalStateManager for GlobalState if self.workflows.len() <= workflow_index { Err(anyhow!("index out of bound")) } else { - self.logger.info(&format!("[workflow:{} starting...]", self.workflows[workflow_index].get_id())); + self.logger.info(&format!( + "[workflow:{} starting...]", + self.workflows[workflow_index].get_id() + )); self.workflows[workflow_index].update_running()?; - self.logger.info(&format!("[workflow:{} running]", self.workflows[workflow_index].get_id())); + self.logger.info(&format!( + "[workflow:{} running]", + self.workflows[workflow_index].get_id() + )); Ok(()) } } @@ -59,7 +67,10 @@ impl GlobalStateManager for GlobalState Err(anyhow!("index out of bound")) } else { self.workflows[workflow_index].update_paused(output)?; - self.logger.warn(&format!("[workflow:{} paused]", self.workflows[workflow_index].get_id())); + self.logger.warn(&format!( + "[workflow:{} paused]", + self.workflows[workflow_index].get_id() + )); Ok(()) } } @@ -75,157 +86,22 @@ impl GlobalStateManager for GlobalState } else { self.workflows[workflow_index].update_result(result.clone(), is_success)?; - if is_success{ - self.logger.info(&format!("[workflow:{} execution success✅]", self.workflows[workflow_index].get_id())); - }else{ + if is_success { + self.logger.info(&format!( + "[workflow:{} execution success✅]", + self.workflows[workflow_index].get_id() + )); + } else { let id = self.workflows[workflow_index].get_id(); - self.logger.error(&format!("[workflow:{} execution failed❌]", id)); - let result: String = serde_json::from_value(result.get("Err").unwrap().clone()).unwrap(); - self.logger.error(&format!("[workflow:{} result: {}]", id, result)); + self.logger + .error(&format!("[workflow:{} execution failed❌]", id)); + let result: String = + serde_json::from_value(result.get("Err").unwrap().clone()).unwrap(); + self.logger + .error(&format!("[workflow:{} result: {}]", id, result)); } Ok(()) } } - - } - -#[cfg(test)] -mod tests { - use super::*; - #[test] - fn test_new_workflow() { - let logger = CoreLogger::new(Some("./test_log_1.log")); - let mut global_state= GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - let new_workflow_state = WorkflowState::new(0, "test_workflow"); - assert_eq!(global_state.workflows[0], new_workflow_state); - std::fs::remove_file("./test_log_1.log").unwrap() - } - - #[test] - fn test_get_state_data_pass() { - let logger = CoreLogger::new(Some("./test_log_2.log")); - let mut global_state = GlobalState::new(logger); - - global_state.new_workflow(0, "test_workflow"); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_id(), 0); - assert_eq!(state_data.get_workflow_name(), "test_workflow"); - assert_eq!(state_data.get_execution_state(), ExecutionState::Init); - assert!(state_data.get_result().is_err()); - - - global_state.update_running(0).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_id(), 0); - assert_eq!(state_data.get_workflow_name(), "test_workflow"); - assert_eq!(state_data.get_execution_state(), ExecutionState::Running); - assert!(state_data.get_result().is_err()); - - // without result - global_state.update_paused(0, None).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_id(), 0); - assert_eq!(state_data.get_workflow_name(), "test_workflow"); - assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); - assert!(state_data.get_result().is_err()); - - - global_state.update_running(0).unwrap(); - // with result - let data = Value::String("some result".to_string()); - global_state.update_paused(0, Some(data.clone())).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_id(), 0); - assert_eq!(state_data.get_workflow_name(), "test_workflow"); - assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); - assert_eq!(state_data.get_result().unwrap(), data); - - global_state.update_running(0).unwrap(); - global_state.update_result(0, data.clone(), true).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_id(), 0); - assert_eq!(state_data.get_workflow_name(), "test_workflow"); - assert_eq!(state_data.get_execution_state(), ExecutionState::Success); - assert_eq!(state_data.get_result().unwrap(), data); - std::fs::remove_file("./test_log_2.log").unwrap() - } - - #[test] - #[should_panic="index out of bound"] - fn test_get_state_data_fail(){ - let logger = CoreLogger::new(Some("./test_log_3.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - std::fs::remove_file("./test_log_3.log").unwrap(); - global_state.get_state_data(1).unwrap(); - } - - #[test] - fn test_update_running_pass(){ - let logger = CoreLogger::new(Some("./test_log_4.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - global_state.update_running(0).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_execution_state(), ExecutionState::Running); - std::fs::remove_file("./test_log_4.log").unwrap() - } - - #[test] - #[should_panic="index out of bound"] - fn test_update_running_fail(){ - let logger = CoreLogger::new(Some("./test_log_5.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - std::fs::remove_file("./test_log_5.log").unwrap(); - global_state.update_running(1).unwrap(); - } - - #[test] - fn test_update_paused_pass(){ - let logger = CoreLogger::new(Some("./test_log_6.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - global_state.update_paused(0, None).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); - std::fs::remove_file("./test_log_6.log").unwrap(); - } - - #[test] - #[should_panic="index out of bound"] - fn test_update_paused_fail(){ - let logger = CoreLogger::new(Some("./test_log_7.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - std::fs::remove_file("./test_log_7.log").unwrap(); - global_state.update_paused(1, None).unwrap(); - } - - #[test] - fn test_update_result_pass(){ - let logger = CoreLogger::new(Some("./test_log_8.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - global_state.update_running(0).unwrap(); - let data = Value::String("some result".to_string()); - global_state.update_result(0, data.clone(), true).unwrap(); - let state_data = global_state.get_state_data(0).unwrap(); - std::fs::remove_file("./test_log_8.log").unwrap(); - assert_eq!(state_data.get_result().unwrap(), data); - } - - #[test] - #[should_panic="index out of bound"] - fn test_update_result_fail(){ - let logger = CoreLogger::new(Some("./test_log_9.log")); - let mut global_state = GlobalState::new(logger); - global_state.new_workflow(0, "test_workflow"); - std::fs::remove_file("./test_log_9.log").unwrap(); - global_state.update_result(1, Value::Null, true).unwrap(); - } - -} \ No newline at end of file diff --git a/runtime/lite/src/modules/state_manager/tests.rs b/runtime/lite/src/modules/state_manager/tests.rs new file mode 100644 index 00000000..8aabc198 --- /dev/null +++ b/runtime/lite/src/modules/state_manager/tests.rs @@ -0,0 +1,132 @@ +use super::*; +#[test] +fn test_new_workflow() { + let logger = CoreLogger::new(Some("./test_log_1.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + let new_workflow_state = WorkflowState::new(0, "test_workflow"); + assert_eq!(global_state.workflows[0], new_workflow_state); + std::fs::remove_file("./test_log_1.log").unwrap() +} + +#[test] +fn test_get_state_data_pass() { + let logger = CoreLogger::new(Some("./test_log_2.log")); + let mut global_state = GlobalState::new(logger); + + global_state.new_workflow(0, "test_workflow"); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_id(), 0); + assert_eq!(state_data.get_workflow_name(), "test_workflow"); + assert_eq!(state_data.get_execution_state(), ExecutionState::Init); + assert!(state_data.get_result().is_err()); + + global_state.update_running(0).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_id(), 0); + assert_eq!(state_data.get_workflow_name(), "test_workflow"); + assert_eq!(state_data.get_execution_state(), ExecutionState::Running); + assert!(state_data.get_result().is_err()); + + // without result + global_state.update_paused(0, None).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_id(), 0); + assert_eq!(state_data.get_workflow_name(), "test_workflow"); + assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); + assert!(state_data.get_result().is_err()); + + global_state.update_running(0).unwrap(); + // with result + let data = Value::String("some result".to_string()); + global_state.update_paused(0, Some(data.clone())).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_id(), 0); + assert_eq!(state_data.get_workflow_name(), "test_workflow"); + assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); + assert_eq!(state_data.get_result().unwrap(), data); + + global_state.update_running(0).unwrap(); + global_state.update_result(0, data.clone(), true).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_id(), 0); + assert_eq!(state_data.get_workflow_name(), "test_workflow"); + assert_eq!(state_data.get_execution_state(), ExecutionState::Success); + assert_eq!(state_data.get_result().unwrap(), data); + std::fs::remove_file("./test_log_2.log").unwrap() +} + +#[test] +#[should_panic = "index out of bound"] +fn test_get_state_data_fail() { + let logger = CoreLogger::new(Some("./test_log_3.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + std::fs::remove_file("./test_log_3.log").unwrap(); + global_state.get_state_data(1).unwrap(); +} + +#[test] +fn test_update_running_pass() { + let logger = CoreLogger::new(Some("./test_log_4.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + global_state.update_running(0).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_execution_state(), ExecutionState::Running); + std::fs::remove_file("./test_log_4.log").unwrap() +} + +#[test] +#[should_panic = "index out of bound"] +fn test_update_running_fail() { + let logger = CoreLogger::new(Some("./test_log_5.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + std::fs::remove_file("./test_log_5.log").unwrap(); + global_state.update_running(1).unwrap(); +} + +#[test] +fn test_update_paused_pass() { + let logger = CoreLogger::new(Some("./test_log_6.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + global_state.update_paused(0, None).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + assert_eq!(state_data.get_execution_state(), ExecutionState::Paused); + std::fs::remove_file("./test_log_6.log").unwrap(); +} + +#[test] +#[should_panic = "index out of bound"] +fn test_update_paused_fail() { + let logger = CoreLogger::new(Some("./test_log_7.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + std::fs::remove_file("./test_log_7.log").unwrap(); + global_state.update_paused(1, None).unwrap(); +} + +#[test] +fn test_update_result_pass() { + let logger = CoreLogger::new(Some("./test_log_8.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + global_state.update_running(0).unwrap(); + let data = Value::String("some result".to_string()); + global_state.update_result(0, data.clone(), true).unwrap(); + let state_data = global_state.get_state_data(0).unwrap(); + std::fs::remove_file("./test_log_8.log").unwrap(); + assert_eq!(state_data.get_result().unwrap(), data); +} + +#[test] +#[should_panic = "index out of bound"] +fn test_update_result_fail() { + let logger = CoreLogger::new(Some("./test_log_9.log")); + let mut global_state = GlobalState::new(logger); + global_state.new_workflow(0, "test_workflow"); + std::fs::remove_file("./test_log_9.log").unwrap(); + global_state.update_result(1, Value::Null, true).unwrap(); +} diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/help.rs b/runtime/lite/src/modules/wasmtime_wasi_module/help.rs deleted file mode 100644 index 9fdbc87e..00000000 --- a/runtime/lite/src/modules/wasmtime_wasi_module/help.rs +++ /dev/null @@ -1,11 +0,0 @@ -// use wiremock::MockServer; - -// async fn create_server(add: &str) -> MockServer { -// let listener = std::net::TcpListener::bind(add).unwrap(); -// MockServer::builder().listener(listener).start().await -// } - -// pub async fn post(address: &str) -> MockServer { -// let server = create_server(address).await; -// server -// } diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs index f1a5e455..ea2286cd 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs @@ -1,16 +1,13 @@ -use serde::{Deserialize, Serialize}; -use serde_json::Value; -use std::sync::MutexGuard; -pub mod help; -pub use help::*; -mod tests; - use crate::modules::state_manager::{ ExecutionState, GlobalState, GlobalStateManager, WorkflowState, }; +use serde::{Deserialize, Serialize}; +use serde_json::Value; use sha256::digest; +use std::sync::MutexGuard; use std::sync::{Arc, Mutex}; +mod tests; mod types; pub use types::*; From d2d57f6d38fdc70b0a20f1a90084a7a8ec1111c9 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 11:44:53 +0530 Subject: [PATCH 05/10] chore: remove all print statements and log instead --- runtime/lite/Cargo.toml | 110 ++++++++++-------- runtime/lite/examples/basic-producer.rs | 21 ++-- runtime/lite/src/consumer.rs | 20 ++-- .../modules/kuska_ssb_client/client/client.rs | 15 +-- .../modules/kuska_ssb_client/client/tests.rs | 6 - runtime/lite/src/modules/storage/test.rs | 2 - 6 files changed, 95 insertions(+), 79 deletions(-) diff --git a/runtime/lite/Cargo.toml b/runtime/lite/Cargo.toml index c1fa7dba..b20ae044 100644 --- a/runtime/lite/Cargo.toml +++ b/runtime/lite/Cargo.toml @@ -1,64 +1,74 @@ -[package] -name = "runtime" -authors = ["The HugoByte Team "] -edition = "2021" -repository = "https://github.com/hugobyte/aurras.git" -version = "0.0.1" - - [[bin]] -name = "consumer" -path = "src/consumer.rs" +name = 'consumer' +path = 'src/consumer.rs' + +[package] +name = 'runtime' +authors = ['The HugoByte Team '] +edition = '2021' +repository = 'https://github.com/hugobyte/aurras.git' +version = '0.0.1' [lib] -path = "src/lib.rs" +path = 'src/lib.rs' [dependencies] -kuska-ssb = { git = "https://github.com/shanithkk/ssb.git", branch = "fix-invite-accept-issue" } -kuska-handshake = { git = "https://github.com/Kuska-ssb/handshake.git", features = [ - "async_std", -] } -# kuska-handshake = "0.2.0" -kuska-sodiumoxide = "0.2.5-0" -base64 = "0.11.0" -# hex = "0.4.0" -async-std = { version = "1.12.0", features = ["unstable", "attributes"] } -log = "0.4.8" -serde = { version = "1.0.104", features = ["derive"] } -serde_json = { version = "1.0.48", features = [ - "preserve_order", - "arbitrary_precision", -] } -dirs = "2.0" - -# rand = "0.7.3" -# wasmtime-wasi-module = { path = "/Users/shanithkk/Hugobyte/learn/rust/search/wasmtime-wasi-module" } +kuska-sodiumoxide = '0.2.5-0' +base64 = '0.11.0' +log = '0.4.8' +dirs = '2.0' +subxt-signer = '0.34.0' +slog = '2.7.0' +slog-async = '2.8.0' +slog-term = '2.9.1' +wasmtime = '0.35.0' +anyhow = '1.0.80' +wasmtime-wasi = '0.35.0' +wasi-common = '0.35.0' +serde_derive = '1.0.81' +http = '0.2' +bytes = '1' +wasi-experimental-http-wasmtime = '0.10.0' +sha256 = '1.5.0' +rocksdb = '0.18.0' +dotenv = '0.15.0' -tokio = { version = "1.36.0", features = ["macros", "time", "rt-multi-thread"] } -subxt-signer = "0.34.0" +[dependencies.kuska-ssb] +git = 'https://github.com/shanithkk/ssb.git' +branch = 'fix-invite-accept-issue' -slog = "2.7.0" -slog-async = "2.8.0" -slog-term = "2.9.1" +[dependencies.kuska-handshake] +git = 'https://github.com/Kuska-ssb/handshake.git' +features = ['async_std'] -wasmtime = "0.35.0" -anyhow = "1.0.80" -# wiremock = "0.5.17" -wasmtime-wasi = "0.35.0" -wasi-common = "0.35.0" -serde_derive = "1.0.81" -http = "0.2" -bytes = "1" -wasi-experimental-http-wasmtime = "0.10.0" -sha256 = "1.5.0" -test_util = { path = "../../workflow/test_util" } +[dependencies.async-std] +version = '1.12.0' +features = [ + 'unstable', + 'attributes', +] -rocksdb = "0.18.0" +[dependencies.serde] +version = '1.0.104' +features = ['derive'] +[dependencies.serde_json] +version = '1.0.48' +features = [ + 'preserve_order', + 'arbitrary_precision', +] -# tempfile = "3.10.1" -dotenv = "0.15.0" +[dependencies.tokio] +version = '1.36.0' +features = [ + 'macros', + 'time', + 'rt-multi-thread', +] +[dependencies.test_util] +path = '../../workflow/test_util' [dev-dependencies] -subxt = "0.34.0" +subxt = '0.34.0' diff --git a/runtime/lite/examples/basic-producer.rs b/runtime/lite/examples/basic-producer.rs index a3ac5b37..b115ccd4 100644 --- a/runtime/lite/examples/basic-producer.rs +++ b/runtime/lite/examples/basic-producer.rs @@ -1,11 +1,15 @@ use dotenv::dotenv; use kuska_ssb::{api::dto::content::Mention, keystore::read_patchwork_config}; use runtime::kuska_ssb_client::client::Client; +use runtime::logger::{CoreLogger, Logger}; #[tokio::main] async fn main() { dotenv().ok(); - println!("start"); + + let logger = CoreLogger::new(Some("./ssb-producer.log")); + + logger.info("starting producer..."); let secret = std::env::var("PRODUCER_SECRET").unwrap_or_else(|_| { let home_dir = dirs::home_dir().unwrap(); std::format!("{}/.ssb/secret", home_dir.to_string_lossy()) @@ -21,6 +25,8 @@ async fn main() { .await .unwrap(); + logger.info("producer successfully started✅"); + use subxt::{OnlineClient, PolkadotConfig}; #[subxt::subxt(runtime_metadata_path = "./src/modules/utils/polkadot_metadata_small.scale")] @@ -38,9 +44,9 @@ async fn main() { let block_number = block.header().number; let block_hash = block.hash(); - println!("Block #{block_number}:"); - println!(" Hash: {block_hash}"); - println!(" Extrinsics:"); + logger.info(&format!( + "Block #{block_number} Hash: {block_hash} Extrinsics:" + )); // Log each of the extrinsic with it's associated events: let extrinsics = block.extrinsics().await.unwrap(); @@ -56,20 +62,21 @@ async fn main() { let from_addr = transfer.from.to_string(); let to_addr = transfer.from.to_string(); let amount = transfer.amount; - println!("{from_addr:?}"); + + logger.info(&format!("Transfer: {from_addr} -> {to_addr} {amount}")); let value = format!( "{{\"from\":\"{}\",\"to\":\"{}\",\"amount\":\"{}\"}}", from_addr, to_addr, amount ); - let menttion = Mention { + let mention = Mention { link: pub_address.clone(), name: None, }; let _ = client - .publish(&value.to_string(), Some(vec![menttion])) + .publish(&value.to_string(), Some(vec![mention])) .await; } None => (), diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index 13c8206f..c64e1452 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -20,11 +20,13 @@ use dotenv::dotenv; async fn main() { dotenv().ok(); let db = CoreStorage::new("runtime").unwrap(); - let logger = CoreLogger::new(Some("./workflow")); + let logger = CoreLogger::new(Some("./ssb-consumer.log")); let state_manager = GlobalState::new(logger.clone()); + logger.info("starting consumer..."); + let context = Arc::new(Mutex::new(Context::new( - logger, + logger.clone(), db, state_manager ))); @@ -38,11 +40,16 @@ async fn main() { let key = read_patchwork_config(&mut file).await.unwrap(); let ssb_context = context.clone(); + // Spawn the SSB feed listener task - tokio::spawn(async { + tokio::spawn(async move{ let mut client = Client::new(Some(key), "0.0.0.0".to_string(), port) .await .unwrap(); + + let logger = ssb_context.clone().lock().unwrap().get_logger().clone(); + logger.info("consumer successfully started✅"); + client .live_feed_with_execution_of_workflow(true, ssb_context) .await @@ -52,14 +59,14 @@ async fn main() { // Spawn the HTTP server task tokio::spawn(async move { let listener = TcpListener::bind("127.0.0.1:8080").expect("Failed to bind to address"); - println!("Listening on 127.0.0.1:8080..."); + logger.info("Listening on 127.0.0.1:8080..."); for stream in listener.incoming() { match stream { Ok(stream) => { handle_client(stream, context.clone()); } Err(e) => { - eprintln!("Error accepting connection: {}", e); + logger.error(&format!("Error accepting connection: {}", e)); } } } @@ -79,13 +86,12 @@ fn handle_client(mut stream: TcpStream, ctx: Arc>) { let ctx = ctx.lock().unwrap(); let logger = ctx.get_logger().clone(); - logger.info("Data Deseriased"); + logger.info("Data Deserialized"); let db = ctx.get_db(); db.insert(&body.pub_id.clone(), body).unwrap(); logger.info("Data inserted successfully"); - // println!("Received data: {:?}", body); // Respond to the client (optional) let response = "Data received!"; stream diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index 4f35a4f5..32c2f2cf 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -215,6 +215,9 @@ impl Client { loop { let (id, msg) = self.rpc_reader.recv().await?; + let ctx = ctx.lock().unwrap(); + let db = ctx.get_db(); + let logger = ctx.get_logger(); if id == req_no { match msg { @@ -231,11 +234,9 @@ impl Client { match serde_json::from_str::(&x.text) { Ok(mut event) => { - println!("{:#?}", event); - let ctx = ctx.lock().unwrap(); - let db = ctx.get_db(); - let logger = ctx.get_logger(); + + logger.info(&format!("Event: {:#?}", event)); match db.get(&x.mentions.unwrap()[0].link) { Ok(body) => { @@ -255,10 +256,10 @@ impl Client { Err(e) => logger.error(&e.to_string()), } } - Err(e) => println!("{:#?}", e), + Err(e) => logger.error(&e.to_string()), } } - Err(e) => println!("{:#?}", e), + Err(e) => logger.error(&e.to_string()), } } } @@ -266,7 +267,7 @@ impl Client { let body = std::str::from_utf8(&body).unwrap(); if body == "{\"sync\":true}" { - println!("Syncing Successful"); + logger.info("Syncing Successful"); is_synced = true; } else { return std::result::Result::Err(err); diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs index 979b01bd..77ba146c 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs @@ -269,11 +269,6 @@ mod tests { let block = block.unwrap(); let block_number = block.header().number; - let block_hash = block.hash(); - - println!("Block #{block_number}:"); - println!(" Hash: {block_hash}"); - println!(" Extrinsics:"); if block_number == 10 { let dest = dev::bob().public_key().into(); @@ -300,7 +295,6 @@ mod tests { let from_addr = transfer.from.to_string(); let to_addr = transfer.from.to_string(); let amount = transfer.amount; - println!("{from_addr:?}"); let value = format!( "{{\"from\":\"{}\",\"to\":\"{}\",\"amount\":\"{}\"}}", diff --git a/runtime/lite/src/modules/storage/test.rs b/runtime/lite/src/modules/storage/test.rs index b80232d6..7c8f2e7e 100644 --- a/runtime/lite/src/modules/storage/test.rs +++ b/runtime/lite/src/modules/storage/test.rs @@ -15,7 +15,6 @@ mod tests { while retries < 3 { if let Err(_) = std::fs::remove_file(lock_file_path) { - println!("Failed to remove lock file: {}", lock_file_path); retries += 1; // Wait for 1 second before retrying @@ -41,7 +40,6 @@ mod tests { .set_data("test_key", b"test_value".to_vec()) .unwrap(); let result = core_storage.get_data("test_key").unwrap(); - println!("{:?}", result); let deserialized_value: Vec = result; fs::remove_dir_all(std::path::Path::new("test2")).unwrap(); assert_eq!(deserialized_value, b"test_value"); From ab1bd3be619173ced8063f1961b89721a1dad45b Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 16:10:59 +0530 Subject: [PATCH 06/10] chore: add pause and resume feature in wasm runtime --- .../modules/kuska_ssb_client/client/client.rs | 9 +- runtime/lite/src/modules/state_manager/mod.rs | 9 ++ .../lite/src/modules/state_manager/tests.rs | 6 +- .../lite/src/modules/state_manager/traits.rs | 2 +- .../lite/src/modules/state_manager/types.rs | 11 ++- .../src/modules/wasmtime_wasi_module/mod.rs | 37 ++++++-- .../src/modules/wasmtime_wasi_module/tests.rs | 86 +++++++++++++++++- .../employee_salary_state_paused.wasm | Bin 0 -> 769682 bytes 8 files changed, 137 insertions(+), 23 deletions(-) create mode 100755 workflow/examples/employee_salary_state_paused.wasm diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index ac808acd..d1396d38 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -220,8 +220,8 @@ impl Client { let (id, msg) = self.rpc_reader.recv().await?; let ctx = ctx.lock().unwrap(); let db = ctx.get_db(); - let logger = ctx.get_logger(); - let state_manager = ctx.get_state_manager(); + let mut logger = ctx.get_logger(); + let mut state_manager = ctx.get_state_manager(); if id == req_no { match msg { @@ -257,13 +257,14 @@ impl Client { let _ = wasmtime_wasi_module::run_workflow( - state_manager, - logger, + &mut state_manager, + &mut logger, serde_json::to_value(data) .unwrap(), body.wasm, workflow_index, false, + None ); } Err(e) => logger.error(&e.to_string()), diff --git a/runtime/lite/src/modules/state_manager/mod.rs b/runtime/lite/src/modules/state_manager/mod.rs index e72112d1..f9e73a40 100644 --- a/runtime/lite/src/modules/state_manager/mod.rs +++ b/runtime/lite/src/modules/state_manager/mod.rs @@ -80,6 +80,7 @@ impl GlobalStateManager for GlobalState { workflow_index: usize, result: Value, is_success: bool, + is_cached: bool ) -> Result<()> { if self.workflows.len() <= workflow_index { Err(anyhow!("index out of bound")) @@ -87,6 +88,14 @@ impl GlobalStateManager for GlobalState { self.workflows[workflow_index].update_result(result.clone(), is_success)?; if is_success { + + if is_cached { + self.logger.warn(&format!( + "[workflow:{} cached result used]", + self.workflows[workflow_index].get_id() + )); + } + self.logger.info(&format!( "[workflow:{} execution success✅]", self.workflows[workflow_index].get_id() diff --git a/runtime/lite/src/modules/state_manager/tests.rs b/runtime/lite/src/modules/state_manager/tests.rs index 8aabc198..b7503678 100644 --- a/runtime/lite/src/modules/state_manager/tests.rs +++ b/runtime/lite/src/modules/state_manager/tests.rs @@ -47,7 +47,7 @@ fn test_get_state_data_pass() { assert_eq!(state_data.get_result().unwrap(), data); global_state.update_running(0).unwrap(); - global_state.update_result(0, data.clone(), true).unwrap(); + global_state.update_result(0, data.clone(), true, false).unwrap(); let state_data = global_state.get_state_data(0).unwrap(); assert_eq!(state_data.get_id(), 0); assert_eq!(state_data.get_workflow_name(), "test_workflow"); @@ -115,7 +115,7 @@ fn test_update_result_pass() { global_state.new_workflow(0, "test_workflow"); global_state.update_running(0).unwrap(); let data = Value::String("some result".to_string()); - global_state.update_result(0, data.clone(), true).unwrap(); + global_state.update_result(0, data.clone(), true, false).unwrap(); let state_data = global_state.get_state_data(0).unwrap(); std::fs::remove_file("./test_log_8.log").unwrap(); assert_eq!(state_data.get_result().unwrap(), data); @@ -128,5 +128,5 @@ fn test_update_result_fail() { let mut global_state = GlobalState::new(logger); global_state.new_workflow(0, "test_workflow"); std::fs::remove_file("./test_log_9.log").unwrap(); - global_state.update_result(1, Value::Null, true).unwrap(); + global_state.update_result(1, Value::Null, true, false).unwrap(); } diff --git a/runtime/lite/src/modules/state_manager/traits.rs b/runtime/lite/src/modules/state_manager/traits.rs index 8e755d7c..66fc9da5 100644 --- a/runtime/lite/src/modules/state_manager/traits.rs +++ b/runtime/lite/src/modules/state_manager/traits.rs @@ -16,5 +16,5 @@ pub trait GlobalStateManager { fn get_state_data(&self, workflow_index: usize) -> Result>; fn update_running(&mut self, workflow_index: usize) -> Result<()>; fn update_paused(&mut self, workflow_index: usize, output: Option) -> Result<()>; - fn update_result(&mut self, workflow_index: usize, result:Value, is_success: bool) -> Result<()>; + fn update_result(&mut self, workflow_index: usize, result:Value, is_success: bool, is_cached: bool) -> Result<()>; } diff --git a/runtime/lite/src/modules/state_manager/types.rs b/runtime/lite/src/modules/state_manager/types.rs index 9bcbbabe..0e7aef96 100644 --- a/runtime/lite/src/modules/state_manager/types.rs +++ b/runtime/lite/src/modules/state_manager/types.rs @@ -8,6 +8,7 @@ pub enum ExecutionState { Paused, Failed, Success, + Cached, } #[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)] @@ -37,6 +38,8 @@ impl WorkflowStateManager for WorkflowState { self.get_result() )), + ExecutionState::Cached => Err(anyhow!("workflow already cached")), + ExecutionState::Running => Err(anyhow!("workflow execution already in progress!")), ExecutionState::Init | ExecutionState::Paused => { @@ -57,7 +60,7 @@ impl WorkflowStateManager for WorkflowState { Err(anyhow!("workflow does not executed! execution_state: Init")) } - ExecutionState::Running | ExecutionState::Paused => { + ExecutionState::Running | ExecutionState::Paused | ExecutionState::Cached => { if is_success { self.execution_state = ExecutionState::Success; } else { @@ -76,6 +79,8 @@ impl WorkflowStateManager for WorkflowState { self.get_result() )), + ExecutionState::Cached => Err(anyhow!("workflow already cached")), + ExecutionState::Paused => Err(anyhow!("workflow already paused")), ExecutionState::Init | ExecutionState::Running => { @@ -108,7 +113,7 @@ impl WorkflowStateManager for WorkflowState { ExecutionState::Running => Err(anyhow!("execution in-progress")), ExecutionState::Paused => Err(anyhow!("execution paused")), ExecutionState::Failed => Ok(false), - ExecutionState::Success => Ok(true), + ExecutionState::Success | ExecutionState::Cached => Ok(true), } } @@ -120,7 +125,7 @@ impl WorkflowStateManager for WorkflowState { Some(value) => Ok(value.clone()), None => Err(anyhow!("no result is stored!")), }, - ExecutionState::Failed | ExecutionState::Success => Ok(self.result.clone().unwrap()), + ExecutionState::Failed | ExecutionState::Success | ExecutionState::Cached => Ok(self.result.clone().unwrap()), } } } diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs index ea2286cd..9adf2ae7 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/mod.rs @@ -22,12 +22,13 @@ use wasmtime_wasi::sync::WasiCtxBuilder; use super::logger; pub fn run_workflow( - mut state_manager: MutexGuard>, - logger: MutexGuard, + state_manager: &mut MutexGuard>, + logger: &mut MutexGuard, data: Value, wasm_file: Vec, workflow_index: usize, ignore_cache: bool, // ignores the cache + pause_at: Option, ) -> Result { let workflow_id = state_manager .get_state_data(workflow_index) @@ -47,9 +48,8 @@ pub fn run_workflow( // returns the main output without passing the state data to the workflow if let Some(output) = prev_internal_state_data.get("success") { state_manager.update_running(workflow_index).unwrap(); - logger.warn(&format!("[workflow:{workflow_id} cached result used]")); state_manager - .update_result(workflow_index, output.clone(), true) + .update_result(workflow_index, output.clone(), true, true) .unwrap(); return Ok(serde_json::from_value(output.clone()).unwrap()); } @@ -63,9 +63,9 @@ pub fn run_workflow( let mut input: MainInput = serde_json::from_value(data).unwrap(); input.data = if prev_internal_state_data.is_some() { - serde_json::json!({"data": input.data, "prev_output": prev_internal_state_data}) + serde_json::json!({"data": input.data, "prev_output": prev_internal_state_data, "pause_at": pause_at}) } else { - serde_json::json!({"data": input.data, "prev_output": []}) + serde_json::json!({"data": input.data, "prev_output": [], "pause_at": pause_at}) }; let engine = Engine::default(); @@ -163,6 +163,15 @@ pub fn run_workflow( )); } + ExecutionState::Cached => { + logger_cln.lock().unwrap().warn(&format!( + "[workflow:{:?} task[{}:{}] cached result used]", + workflow_id, + task_state_data.task_index, + task_state_data.action_name + )); + } + ExecutionState::Success => { let mut output_2 = output_2.lock().unwrap(); @@ -265,15 +274,27 @@ pub fn run_workflow( if res.result.get("Err").is_some() { state_manager - .update_result(workflow_index, res.result.clone(), false) + .update_result(workflow_index, res.result.clone(), false, false) .unwrap(); + let mut bytes: Vec = Vec::new(); + serde_json::to_writer(&mut bytes, &state_output).unwrap(); + cache.put(hash_key.as_bytes(), bytes).unwrap(); + } else if res + .result + .get("Ok") + .unwrap() + .get("workflow_paused") + .is_some() + { + state_manager.update_paused(workflow_index, None).unwrap(); + let mut bytes: Vec = Vec::new(); serde_json::to_writer(&mut bytes, &state_output).unwrap(); cache.put(hash_key.as_bytes(), bytes).unwrap(); } else { state_manager - .update_result(workflow_index, res.result.clone(), true) + .update_result(workflow_index, res.result.clone(), true, false) .unwrap(); let state_result = serde_json::json!({ "success" : res }); diff --git a/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs b/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs index 0c92b450..78807960 100644 --- a/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs +++ b/runtime/lite/src/modules/wasmtime_wasi_module/tests.rs @@ -1,5 +1,6 @@ #[cfg(test)] mod tests { + use crate::context::Ctx; use crate::logger::CoreLogger; use crate::state_manager::{GlobalState, GlobalStateManager}; @@ -27,12 +28,21 @@ mod tests { } }); - let logger = ctx.get_logger(); + let mut logger = ctx.get_logger(); let mut state_manager = ctx.get_state_manager(); let index = state_manager.new_workflow(1, "hello_world"); - let result = run_workflow(state_manager, logger, input.clone(), wasm, index, true).unwrap(); + let result = run_workflow( + &mut state_manager, + &mut logger, + input.clone(), + wasm, + index, + true, + None, + ) + .unwrap(); assert!(result.result.to_string().contains("Hello")); } @@ -60,12 +70,80 @@ mod tests { } }); - let logger = ctx.get_logger(); + let mut logger = ctx.get_logger(); let mut state_manager = ctx.get_state_manager(); let index = state_manager.new_workflow(2, "employee_salary"); - let result = run_workflow(state_manager, logger, input.clone(), wasm, index, true).unwrap(); + let result = run_workflow( + &mut state_manager, + &mut logger, + input.clone(), + wasm, + index, + true, + None, + ) + .unwrap(); + assert!(result + .result + .to_string() + .contains("Salary creditted for emp id 1 from Hugobyte")); + } + + #[async_std::test] + async fn test_pause_resume_employee_salary() { + let logger = CoreLogger::new(Some("./workflow-3.log")); + let ctx = crate::context::Context::new( + logger.clone(), + CoreStorage::new("workflow_db_3").unwrap(), + GlobalState::new(logger), + ); + + let path = std::env::var("WORKFLOW_WASM") + .unwrap_or("../../workflow/examples/employee_salary_state_paused.wasm".to_string()); + let wasm = std::fs::read(&path).unwrap(); + + let server = test_util::post("127.0.0.1:1235").await; + let input = serde_json::json!({ + "allowed_hosts": [ + server.uri() + ], + "data": { + "role":"Software Developer", + } + }); + + let mut logger = ctx.get_logger(); + let mut state_manager = ctx.get_state_manager(); + + let index = state_manager.new_workflow(3, "employee_salary"); + + let result = run_workflow( + &mut state_manager, + &mut logger, + input.clone(), + wasm.clone(), + index, + true, // ignore cache + Some(2), // pause at task 2 + ) + .unwrap(); + + let expected_result = serde_json::json!({ "Ok" : { "workflow_paused" : true }}); + assert_eq!(result.result, expected_result); + + let result = run_workflow( + &mut state_manager, + &mut logger, + input.clone(), + wasm, + index, + false, // don't ignore cache + None, // don't pause + ) + .unwrap(); + assert!(result .result .to_string() diff --git a/workflow/examples/employee_salary_state_paused.wasm b/workflow/examples/employee_salary_state_paused.wasm new file mode 100755 index 0000000000000000000000000000000000000000..380eb7e3124e3fe4f290f49c3da06e6006d47d25 GIT binary patch literal 769682 zcmd4451d_9b@zS#-a9k*&gA5OAQ8^JrtL&Yi7ibi(3(Au1TY}j*Y@>!KmB}!3Vn5g zNJ6Ugc_UTf{O_lYjJ>?Ls&Mezrcr=K5hiq6kA@h>_*(N9|4#+yjE zl3%58iS;w2ocYLzu=#)WfyIH!DSmS*mzNtSi+DJUivp1Fa4X1QR2&AcF6^oUiPAwZhXO| z8!md;i!XZlGln)?aLI))eaQ>{--|Xz*-`Qg{Pl$|c=?7GQ}5tWpvYf%@k=keD5@Xj z_26H<^uoV=!G?=2xUi~W8XS#_E_vCDH@x(c#|30|mFcn<|F4TKd)%ypmu`6J3qjY5 zH%3wV`P%1dNj({AG_s^wOR{WuWF$&QMrNhMBqwo_^2be5i;^hgnnY1zi7|I+Evlsn z34=+K*J-^dX3wc*l&F!1yh%NaliI8-OQJNb&7y2QOVYV>XU$8KjHDz^v#4H6>-BWj zEZRw9H4xS7{6w^uWf_-ZUJ3l)nJEnGw+FP6g zaGKQ8S}o3&DCH@1D2eIejQ<9eDyYE}dC0#Y$}%;oWE#joOD$E3(!dD+YSs;KkR->| zqpTS%;U$>hkqXjyZXDNVrD;@)>uKDaKc9N+KL7)v+=AS67Wt1a7i2ApcucC@tiAwb zGa$g82pRSdFxuSEyurv&8mI!ul6|W1r*tbdizoh1(m_T!J%<0m@?fd{4i096!2VPl zK~V>-GD1l`XXt1|Pj&E2Z4vhjq~KcG{+;Z1>G)jV%wP-Vekg&#%|`M@b&*wR&yY)8@|yo~#~U8t+VYCV3i1vulG$X*V%3 z88zyEnAKi#(Mw*s;ct_u@z)zJy66S|Df;JH)8D<|f{QPH=?kMT*J_ef8#YGw)doM4 z#gU5}wr)HTmF;u z*|+51h$rJuCtphbIr&QR<>bEP{^aZNXOfS`Uri1q4CW^W={wWgYPY2yNI#hFNk5dnKi!>PmtLQ~zV`R&Kc@eXz9qdi zy}9=G+MCiF(l@4WPTyABp1wAFWA?f9-t_b7L+QimFVbJ8TeDYXugQLtz9IWo{=V#M z>DSY5q#sE?mQJQ$NWYlwPrsD@b9!I;mhA7d4`$o54`lDjZpg0B-kRN*y*+zd_KxhP zY-je)?3V22?AGjE*{bNmoBXl-8~FqIgZVe}ALT#Jf093%Usao^y`uK3 z{NM9m=f6x|Rohy7b?x@r_S%QDx5ppPZi+ve?ag+?d$L>NYirln-cZ|CyDEEAZAa~m zwOeb~)!tgWsrJs=TWYt|cGhmF-B^1^?KQPswO7{OU3*V$=;42#^|{*b#qp*xD&yic z6B83rJ9Zb3w-c9*uS_zM6UVE?E1}T$#&NRgspOf6T(PblFSXlbb+WpQMw3Ouk&9YU zGj1fS)753{2FA;%xbZ4-m+@#a;NmsIaTzIV;SOF&?S+3Dps@iS2Y5`DrP0`?tH&l@ zan+Ws+jdM&Y}&jkjha!Tp*ota#1~oQHc?=auZvRa+`Nm&TM?ODG48=CqsB8M!Il8a zXcCR25tCDc^6}Htf#S95#VmVV#^dYyA78J>#`C(}E!VY^P;cVWQ=)+~DdRs*3$Q~s z6LrNUz3$^cel!%UTWD90!}G4MR_7*j*y;?T}2+R-@l zxAd=SiONB^I`yYX2KrOo)1E)I=2 z-k>gM%m-R&@kTwgfqqre1bt)>2{CdWkMXi3T4nv}8R1Rcovwc*jK!^5nVe2a+Nw7}MJ6PH&8XOJ zUCXFKucMN?%p~DhD!JE}_xhf^@$|fDV=QXblGS4j=ijyKW6}Q{j>eK!t(h=zANiQE zI5kX6Y`PjK5E_~Ij(n|}5K>>2N&wermRB7zZTvb-@;)BU1C__c4FU+EL!;H7Xtn$2 zQC06pRozfE;LaOw*WF|B`u3n3I%_yDYo`yVWz9urf}YxVyH;jrUIsD;T)DyUm^FtQ z$`nt{bo%gML;4i3EOFQU8*Ey!CnEqI3)?xO`@Vob3&;Q3fUtBn*TYLO7Ms(2SYoP#$%#g+Fp)1=%W&Mt^$KuUb zw9|6vdBX{{)L_bXy{tWlD(Z|G-05~$ms)O5Uzet1$XL$6x=|fOM0BvRv$tp`^`72T z#yk$adYg(18K(Aogo+1Lv6>@ujTW-9zOFssj{h4_Juz|lW#vFwchR%CK+B5* z*MX1edCu(Q>5^H!umO<}2;@UEb@w@lD>_?r;zVbN_5>!W8=2K_7kv$mm0NEs2XAW+ z0g8VOR}GZ|BC(+}FJrdolE{5C5yN@V_}h(`;)dHF=&(O$-kA#;Co*#Znr1m9e>-NX zs@QRV?`&B@Y6v&W%rJ0U znH1l@3aX77mlzNlJ5P+2fR2I8CZbA2`>}I_Ye8Yat4)S<$O{^;PZ>{SehB=G5mJoz z8?Q<-R2v*+@fBV5rs9qCBVCyYJQ?!z_`hk_FB5sx-G>s0rmQ_H3jZz`PJt2a?Mx%m z5%nF=pjTv;P0A8eO#HQH?b!E&tABp)w>I6%gp#>E$#@HUmWjOX(v9vBjpX>#)2KCI z^=*1K_0`G&GHVXt?v{4#`q1o=O@9RtxtqDQhKs4$5K${@H# zBP4dm-SI>V3rGl@oSABZ)Nc5x!4D21nTf75duBaMi*HX zK`;DZPJ#G(tacM?9o@96aY0*B7pDj$l&k@;$z>3BGxexoh*Gc+6bTbZ=wN7)Ajzh0 zjUv`~I0DEsyI#`Ye*hkxQqG4STe&7IM}{$Mf}Oq$L?hQmOW)e&nt_hc9WozF4iPLZ(^ zb+k*pB5Q4iGH@EbDZJs|F-@YzpY;i(KBLom&yUgaz>_ur8}k4OC_b_o;&XBF4)v}v zpCpZJ@nt=NA=x!m)&p;3@^V?o`cxqxQOBrd|3ptM8vMS3_xwNwt2T~g@jzu4uISi> zuF=Yj)Dx^N=9c`jGDq~fZC{8aRdZ7z$y8S+rXYKB3A0AsT`}H9PkD}s93)*fUZQ)e z;KkBi9(ycZ?+!(mpq0lP-Oe8Y==h0IbZR7dm5igiLWYun6df8zYZ)Z>#p`^zsU_4{ zt4`yO-SyQI*R}@AS}QLH(DOBExg+~0>1WH`r)#CMyCYvv>XQCc^`iO%*oPub-Zd)B zJYQ$-O5>1Dukvx`yP9=mzyml1Hc^|YZy-yBf$}+3zv}dBYVW0mQU~aj{j1FY3aSqHqW5cCr(}pP_V%&2o z{)ZV${xXXj6~#?P9k+_hTIeagf96?mnfEO;<*I4i`7Dal{ zI2YAJQZ`SCN}4!XUcPd?xZR62xr$EK6oc-)GHL4ZGsPXA1|9yTL!G7AnHZq@*ToxW8`s zh>H(c^}Ng6jRwaD4G!w4;GiljdNcw<3rOh{)BR)=$g$Bx3?la*eg*w#+`_6(ujSe6 z-V;6`2UU9wT^1XoNedT!iGixn;P2xEqAr?^d`&;%nZ5i*XEM92$S(usGLuh4^yByTm^i4lo= zc#D-ro;sjXMJG{1!sM_rDebP{?qs`ba<{@NF8*CWwZK=GZ_BuGAM3Ccko&tchHy8- z93k;$r~=zwLv07i&Or5aN7EORh1Q`UYYi-uhh~d+->=z)Up)9967amOI)G1eRdPZ# zYMKSS=*CX_2cLC$bh4}CrUkY{_sj*V-~ zxzqhgE0a<6U}dtD3&5931y&RFj0ZmJq|`Xraz>(gs#?(yv6AmJ!{rGTp^(vrDe$3q zGYD9t?Z*?asy&b!kax-j>2~tCJJd5vh;>3kwm#J(-S&6n@ilRGRQtuRA6PUG)@@9F zy8GXK|I@G{7#59~6c}(sXB{e%7vAY@AL>7 zG~mSN6$}g^sywyo($qK_%|I}?jF3CfN{#7E>{^qOX7X}y9J=bv_Cl5Me3<5l!5|sIn7dP2S|VC1&PquNkf}cFWhWdXTzru+~!N`dzLP<3F}FnAAPYRUX4% zbA>E|Q&`T5L8=~_-bUJ7Y`nQM_P%A24p^5O(>%6gmxI$Izqo56a%q9pJOQnpPV=77 zs@%u)=KlHA+;gYoUeufWmzF#0);)Vl?uFglh9KaHikm7bU6!6dmOj_8DDpK7epD}; z=mp?*G zco?1QF0HPas7KUDP%^BgmzNUj_!bs5=LVoI>;Y;%KrN4!NMvY+PGtv?SqgnBCz|iv z^x=!AAWHRw)t5v)+Xh9AF-dF{WkI}jpoND;%C$Yl8w9;DrZ@F)ODbN~WVOvG_eC9& z7coAsnoR!OU}A=yO14?E2$~MiQ{pe6-V=ny)cuQ*Y0Y{hh%k(%mj*vR2V~gk3lLU} zr#jCco~_FTrw?@Hv1B{I4^qQ~ zBSK5VUgsxB8O$Jg3F5tUp{!dX8iPn=5JgYxS*|8c63m`RCUYl9ey))G%vFEYP-r7l z1CoxtZLnIsQw=}{J46vcD4k_163E6bOx|({)AsXG^@i0q2Dv+rZ$+cjynJok8p5Q_ z0dG**Dq2J3{?F4I%+(zqCX(|27P)b@2cmbh5O%qzg&^!;j%nlW66V*shLHiiCAP(^ z)cuDB6R`D)iW!pgY@iW`aG#q!Lq*NOE?~VJZnC?F!_}auTRjZ?fsHb+7A zRp?hxek4Y*Goh71f|^tD>mi0!4j;%2H9(#|ORv;2lB?7O)w{ziXd^143*Xw!K2>B7 zEosu%NY2m*Ysrc6fQ^E&NG8o7q8<;ZkOos6tt>KehF92}6(=*Xnu#s!lrc^en+!c0 z_=!%eBBdiSMNo{<&Z^n)kMQseDRV(c1IBom4;wh0Sm7wI*`l{rb<#^29y4G(m?y|M zTomTqsx(!}JxNLVy_AL|CE&pBwgNNA6xxh?bG%wZw|UbPqZ?VQU@=e!@hnTXniDKl z{YG%ygf`5a_Gw6Y2Xwk3P%;~irnkd>DF9Vz;&nii_EAX z%oS1#PVxgSYQH;B`wxr@-~~Dgg`Q)xSDqxh#lF&I{l*KE&Bs4Dxl@=&D=gWf79 zl2hZys}n@@g4wUThdL$Ld+S75db}!;ot-KTg>bZ=C&jU*+)MQl;TQo2W5Mm`)-=qm%72Rt zSxu+11(;oxbHQ{C&JYv`!c;%GkK7FEyq0-8qk`651>*FnIUX9DtRz7z-#|#7LGhNR z-X2<&iYVyN6RhaUt z7E*B48)Ua$Ff>H}oQ}9k+#_WAtOnU=&uf+>BP_iaj5#hxgByI}F@&l*{tFGsib}FS z!zO?k%(>nH`~${MHr#JNeqH{afr{ESH7-|(Iq56)|M4t2K?Me8q8`OfN?hy&J05AC zN=|~`dWd9-?py{jkenEueQI<;7<(>I!i%`TBGLmA_l3xthA)H?289Vz1uAM_ID1K~ zA_pb+*pHHGtI|a#2>d`>0|b4^{_h=c>t%duyvXBe1eO!fO|- znI+cg67>GI{=2SViTj-l!uw=Az7%@IXaCXIuU%Dg)wYXMGKPAhJri%=^9XH%PVN^u9Sj+DON&46+f-`g-S?3CfMqgR%?KQI7>{89Tsf(Yhgp!LglvjA0M6JV!>%On|l~Yc%&ZkQd#j8 zL8VTr%+j{i4u(dPQNI!jG$A6+rx6X|1E+0mRI5oEj|!CCJ)n@kN!wfqx1J6HQNK^B zam2nt$;t{S0l?6)LafDE2t+}V9RMbK05Du2IPpD)NR=)gKtVC7u3L|dPP9&BwOW6> zS;6)6aa6Mv?Xc*DiQ~3e(~oHwqQ=Ync1R?>)C8)rKN**>hR|I!h!M!Pcfy9|$uAnH zTv#;N+`o7c$QT@EY8HauFT39zSA1S@N@f{51*^@549eBwf*eALx7v<{jfhreMgT*~ zkIiC>fv6b58Fb#efY^A3cj=2e+DWh~WO74tg}K^nnGmU^B>9&cZ!gT%K2mYuj$~as z>qnYswEI_D<+%w95txMth!@47V#hK+F@9s(8pK2cN}QkYth-i`Jf;?53Bg^>i&-j%?wJZj7IQh==z@9BwS0-n20Xfg&f`&@?#;Ww> zvU%HZEZt$ID%8=V6v9Ve+@xjL_K+1tQ{17)W6O99LYOF4F@kXkZlqTv0efy}Ej=-u z_y#3(w62&I?^WNWv--D##g9~-FomO0ZFnQSJ*-|cqe-J}jd&P9OQvaq-nVCgp&^X} zag^63X6l08VN2BlPa`Z@r2!6X^mb7;G_iWScYxxXhyv4S6JB#F7Z6s{P;2K@I;oLw zXi*D$zieOu8cmF1qBBP1D&A+KU31$Lr2*-veoiQMdn$0HWi8%sj|~YM%T+4Z(&7V_ zOecKHQsUIF+2t&HF80XWVc*p`<#5mfeG)yHTNa@k#7Zv%R;ikHi*F)5EYM-PZP-99 zVVe5zt4Y@85w6kU(n5OcW59xJQG60tXoqKz63w|M|mPXjw@JHpmPoIhlBtPgj-g!!KE?OnC7IkvW|8mS zv4kNC*hTtT(jgu=hC+dOi2Aa?6wT1&niq%%hz*9iVFm475l`$7ITwY0e%V-8%HQwy z|4gfHqwW!1tFXaoZY6FedchpY(gY*0GTEamVr4h81*9o!0+ugsuK1S0 zQ#eOOO4}h1)QjR4y_efMGtaE2w|RI2_h>+5gw!S67>r{pK?k-83bOUDV=0E9tCxet zhm27&H{pk`Q7#OG+2xBV?656al}>0Zpu~zFysQV(rf8u=={M0%1I7`?9?0k}dw9k` z+LRrjfe9;0T#A1%05RKhhKU)mFwEKLXO9V>x!eN-TfnEsRE8jnI|31}TLi!5p+?hF zjrmAcoRy@I=RM`VJaF4F#%)6_CJK0**iLg3W^SKcV_tsT!z}|Srk&(gdJk|gl&6t` zOgI_*qRVxi0&efmMJs>gj_BHxnV-TvBHU>c{^SGo6c)QaW z4b4tihg4E#uz5o zP?&C)QfXw_Rv3IGM1^@GZ_218_`oYQ8G@_?Fl6o_E){GZ2FXU>oAHgt>&(`?qO*~O zK%LN;N=LMTtzzpUtW4HFQ!TsGfXvGQku;zUz5#IG!Kc)- zmcZ;p%teh~Ctb`QBowTJS)mU+DEkDBfRC|wm5muV)0i=IAVfRBwBM_L9KZv*)|WM) zRkw6ikk4vQ^r;&)=ab>A%SM*WAo=9(K#3?;uS!9^J79HhHt|n=&zF;XdGtS}@1}C5 z(26f!Y*8K<16zx3j3&<#tpu^))0U;9VtixX08uZ?2WTp4(IiPVOM(+qCfsQ9mloq= zvW8YX8t7Z`F?HT@^cIp>Iam=%72WUZ%`n8g$Y6yvJjcgT+z$5j6HH>9Zwkldo)?`_< zXjK&Z(bbt0exB97X)A~Y!ua?RgV`x6q%+1lVjh@BZ`76N?RI72VRrK&7h>JZ%S3TA zmnN&tP88tG=jcb>$jU_)SsC1IJ~-nD>}7rQft4XPgK&3JdFP$A{S+5!^^xTOZ^c6( zrgq945O|n^8&{C8AsC>^g=}R|}osG?06ER-Kbd_Xxu2`GsEe9O$5DyCLve`<1fm zM|o12x#w*scH&*yM&Z*yoCRJ8k&2!0rIb2^1I0J`56?FtI&X*AdgrCUgaAE2zV)`Gls#TP}MRhSFC!(yiC3kFi z1NoR$(bwpiW{LyCVC+&aDkwsJjk{lYuXeV0p74@S18b|8i8~ZmZYPtj4`AGBWIVQn zT49j!Oj+`X@u#6Ilq zT$(aZRO^w#Ri~h|AGHm|R4Sh#w#)tIBKBz&`&Z;@bDJLU0xSg%bQ^XacQ#S<@AR+( zGPX(iOja|#hVxkZo%&>}J4O|7nGMLiHb*I7mS#QfAj`mfEuB^-YwyG$Z&~l$5hjXJ zNGj{N5B-W0Bw0CE1Uxfc0RE|H{fPfej#p7`?c@0pXuFW=C<1KNYofq^r)6Ee5 zumVhC9VD=m<)gqAaldZh=?1$D7KwZLgQQBw4P31?de+ONAi>mw8ZAi5NAe5$jy3pD z4`AB968TQiFbf_{F7LT|(wlQ|vh1};rc22S&H4}g0H1+ob<@bs=2FTdVOh`gmy`VE z1VG>|D%EQ6WYiI{@1*#V#vj$!9nyIhZWXTzcB83Y_sIPu6+c%Fw10cSII9-=A_1p{ zG2fEXYoeI?k9D+o^qA0dc1aM&m z3#C!K!w47O6*;y!)JU_qQ~@+gSu0W4HHJTo0)E$+DavLmSz~0<&gn?3#g-nYDF9DRBQ1tCa!xb`AT0U zg({i%c$Ek?gMdA5gx7yn#m(2o0V0?lz9R>GM*?in1;)~sts(2~RKRS;B9kyyyffr0 zyMPB|dRs1Rq$|GW+t6GV0}xx^z8+F+`gok`Oo7pRirJ<-CW~*VEIngND8pU?$x#US zOrt@Wk#>j-<0F}3EH4G{WO@w26UC>eQUA1*r^>wK!zTQ0Wv%s$j;Y)|@PdN_aH>S6AHi zdSwD?HGgL7%0%1s&DG@@Z->l$S;II%L}MQ`XPJo84qsu^v|}GutNhAVOdd*Vsr)dF zrCuDz^j)0dGIIx@V;A4rLj9(CH+FDnEZcgrO^!XthWTWSV*og8qtp&dn0}tO4umni znZSI^b$$STAnmkA4xnI^nciLbcei0GbxsecPu)KcbgVf7q)rcrS@uUf)ZNjK4p2L? zQO9(2z+WJIGS*#mM3@ln4*o=}-g5hNt^B&3Bl`MM)iM89X18(r&O?!o#i@I7Celj% z*#W8V5eEm<4X{h-j)6D*-~h17VJDo%!HpdrVE8~h2p_enJxBYP8D7e2ON&2vz_xeD z@Uw{NGCu>u$m&C%w7veRo3DdBX6!i(fCp_|5V1gkh$SR`#=J*Kt&TVB!`%^4NYY0k zjL0)z+0L#mv%hQGz>8e`DGZQHO_+vU?9Bw@SM%h;xn_Y}prDFeIQ^|UY+~AR3!YpC zD{^77*DB@F$wlpmNCLSK4Fav!|4Zbe!R;j&XxBEfc!FVa^L?sy3FdK6n$Y1bHGk3s z*bomK?U;$~S#Sw3a3lv|b`VBi_#tKG{y}@4nd*-+%D)9g1fEI8HvQkmFBYU>hf%PO zR}E+9BnlkvI*DS&`hOehd|r}p+8o`E%IE^EML@;`*SoBYKGyb2^hn-E9*Z`&lk?i? zV#twa{UhzUi(N`iQsc_+R^NQy;>NByb&+wpDdqp3)9jGSNhPg6*6#S~>YJgRbnK+9 zx1s(JB@Z;Xr8!Lzg;OVQFtsqf!>6;>d->>5rC$gz`ZF?Oz$01oK)&Rx4O*kC03Fz( zMXSZ_fwANoTnz(b@#fZ0w+brB-RE9D?(TiLash!I`{V99oL%hZysWL3)3xoUR*V~E zb6tD5c)jL~R)b~AVV7;>c#Hk7M=Z+WP&VCx&V57S1nb7#qmiU`BD=0$Y_qaxb#nBh zQc$QhLOl!49aiU?<=|L8ahven132z2c>kK2;U@Md^WFI0~GeMIi9!JjOX=H5E6|E66SX$ld(84`pWkxsC|Ii{pZk94k!WkqS78?g@fehkn*+M;(XO-l)BmILYmhYJ zj`Z}hv7UZrDmrL=2XFB2EIKX@8ALUb6T9hRos>l@hNhmne1u}RDQHYG{K-_@i_sl@ zU90fCtv3}xf~0z`aijpcY{Po9crvhl-eRUq2xz^o27t@gEVjucTf5;74NAt`-NEGU z-io1SFnOi~hSvXw?aatd*2&(iZnh8(DLwYs=HI;Y!EenLDHb41Dc8UAU*Gpotdv|9-~dm_33%{KXb9wvx1kvhsf|dT1-~@iY@Oe#6>5Sy$H$8|N)T{Q zwzB!`#bVu5vxG(eL}Y7<9qQxmy$6jID0LQ;S(mEJv3C-|)wth&xQEcGf^$XBlnSkk zHNik_`M6sl215CUV*A+h&feljtJL!i-PnXL1xZRXO^iL4`+KTYR4fa0buhvOdB~65)iY2{uXcYh!KkuQKRTxiX$Cxzmq@U&18jWR}yKt-+Ekk zzpo~Ava+sI>qoW;pS|@nRjVSm`vIZY!T0N0vtW9F9WRH+*O{!%ZCIL8ySw9868n;e zK?F>&AyGvno?)KR$Hfsa-w2o&)BD)Q4vuf^#k|o57J|xZ=qeHsgn-!~Dx|pk8i#xbdAZULmG1-xLm2`Y`#?)(j+wMU0KyP03fXZqt^Tz7#;(ga-Md6jp35b&7 zZC8n+ElRAE#Ry$xdb`!thY`Y0Ny}&@I zj^Q(Ri9CY1hj8umwvTm-KjjhhOHTKOH5L6v4?@;dhjPhv`PeJ2pyq5t3mo+nN58=O zgL0D90T8fgU@*%wS;;iK?DM%|%bPIkxDYAI*zs^2r&9WxZN|&P=}z$nLnN5y&`%huYd+Dmg(D3J!&wa`Ulvn>q4uZ!;jG^$3^d^`hapl;R; za;aiBg|RCF?Ceqn`oq?3Cys zy9tCI(pIXqP@U1~J*_im1fLzrF+*iyBZTeL7g;xWqd_mMZN6qp1)Jk ze;A1vy!5!mk*}WVNarr@db`!rPIOCeSPSFbSqmz(4%*?!(@)zQ~uN1c{jl8dN-gFe!Csn=Zn>@cS$v1Kb!VCRf7>tRD_P%A$0I0?`$C&>6=J& z;Yioek0LoR&gIJ}g{go5b@_ZM01toZ5pbS=I$K!rU@EZvLLRw1uNo|*kvT|od>Ux5 zJ~1;gv1(Xe{@^L2##&R#(U z47)pfAYT}Xn!x^8Du);Y6GlQSYUJ!J^@m0BYJuE#LTsz+w; zdW#ln!*_u!OuH%^iZxCR)dHG3EOff3yXy>rTV4USBly$P0@IPf6PQfvr7Kld`k>(H zoIR-&!V&{?Mt_Ds6le>VYh0BlgUlUaIdxli-hePcQnSqzU;29lw?9Z!8x<6~#`+}s ziwOkGC)r^BbVdbLO#4I^1lTK4KoQI@s)RRT{=sCm{*2QB?z^Hciy2j_e5mT zs8=SeWP$3CUM}dVC?X65o+=d9aKHfrI6(&`c?d|7A6ASO@H$>v4l$@XwbOZAJt-cyJ@!$8= zI3UkAu4~bSK8%V9U@L-1ySNx1Vq=*;(H~w#4MR7i_i-^#gC8>ms-n=8grnM zu-PR9f;aw8Z`|1Ve_-Rr|=@iZdLEGed ztF8~=+1nzn5q@%aU;pF1JYL;>dr$x4o&Aryc;rCfZhq(=b;xM?9vx5xd9NncRvYgg z)#Su|&i%H3v-{n;4~1{%p35yQdB)XYOv%{eFLsLbEd2 z=kNE`x!>#WCu`jAQf_n!ARVh~>rSp?5!tv0Dz5Ty2wl0OH@2}a*U1*XOz~r(0ziIf zfS?h_lG?z8_7=N?{uc9B8$XoFG4OVX&5*9QYr!RVKf~+E7bpi-#%lW@PebEl)h8+A zRZ8uB{5B@MU@3m0wk6v1ryX#+@^;f7#K}g`-8oiv?&zY=PNnU{t*jzBpo3G%L&w+0mN((M+S-8VTnJ^x+yHIpBist3=vN0R*mKTUo*UI(fxH_vik|W zM`?aUm<*pf~r8sq2Q{A=oT&Ekm1fN;65 zE}7sC5}C&Y4%ycIPGk}(p4`h9=MG}VS@D~#cv1Y+29J+-9jJpETy;XiK}5)0)u4vv z`lCjCCGlsejus(fqc9*zv2Nj4P=M$<|BlS{Zb%`Gh}_(0c*L_2Kk9N z82ARF@c_faURQ~N45vn`hu`a0&u+RMe`qxfpl|GXdY!$ z;PbF$K^_i!qyc7G;e^NCs7?k1crq!6fHs*#AE;f({*@XeH=9teRVj9LZ`Bp!?>b$P zSKGKMucVlr#_rM7Cw<*LBK%N$kgFz0EpLDV3`)-J_Y!rh?j>Ed*-+4F90F8c_R)jG zS$nQaFJV4L+l|Y)c$!ka@3KICi@C(zJoecCUdx&cpBfl%v!nA|;;M8Y3qv#83^tLG zytGtxU2MoNPJxu^*sN0^Wv;VLM$K3AuvtaOtp!$z_I9-w8vD~ZW6+e%V5dY6+pfag z9f2>2QsxJTgAaFGNSWCfLKCutsI?LsWQB{{DLTK7e(;P>ooygMehlm7LPTby;}T}; zB6X_0h<(*nAn@PNO0LE6rB2-|u5gy)!T zx8P@_oD;s1Gr}5CIfoypR_+^^jh)RVG9_kCjVBdQVuZo3@L){WFF7doxRPT*2jR!s zDE0HdWRszAx(u+T>lp5x>%jEH73V5WC5Qjiskr#}K-GLRYoCEUnrwjwOfi5ICgS!& z=?3VPF#Tw9Fl(`kf$q$8i-}_-Ssdshp8r}={SY3<0}YTqtar-#U;8t0f(25>?fK<= zcdXVN7tz|jx4}h)Klx`EUlQu(uvSumk#G)OE;l)b%~LL91N<;Fa@fi|>U%7s5D|lk zW7F(m^35rU196X7uK%cVy-0a3E`FnDA_i>#Qd&00P9b7p-z@-94ZFFcp={m}NaUWm zzV|hlamhJI8@>MhX|Ls8V+#jrG_Oaey_SbDJBR&kdflG(T3nsmQRlo~GVQf=wAwkG zeNJhGY%X}&6yT&V@qL6LGH_bN)VGp5=un28n%jDl@ZQ1B`NGbHUF^7lbJ!&*FsI;0 z>et|!VYW*1ZaRJjc|CN_@UXp}j-Mf3H`WY~*z4)|kxAD)XLy#qo{k?afDG$sYqdQc zKf}BpIft{fkA@#UsO)B~8Je0L9Yq({$T+^x^0E!p~p!;HNle7|}c(Kl&Qd z>@~yM7CjSwX7hT^Im7eq^>qBq;q}}#!wc;7bo|WaHPLzt?e%p0XoLU!HN)CXKNEiD z^LoKK!^i0LjP$dB3=7u`A4`TA@Usy7><{>v<96NLhoAF=pXc@9XVE#siw%w`^s|UI zj#)FTjsG*@=NMied(QAv?Dcf~u(<9PuNgkhUQfpl;e&3;Im5@>>*@I6Fa!6LHN&O7 zo=!hc;q`In47c?9w)V(${yL5f$J2$*U7bvzSVDMhNTSkbtIgP0EIYb_ye61#Og zf4d}TipL~_qK4ac15ZR?9WY519FRz^$ZdUlZ$2cF+uoNVIkT%T1uent?MulBDB9PT z!Z(%OfxeWQtGUB{DRozOkMyPBzjND7T2yckxq}{JcE^Ff zlwmjQ4)>*uxDoeAU&<^u%WXAYtXeNz;db?<%yzTg-oBJMZjRg6monGQbqD%V=DB(9 za9_%NH{U(dm$JYua9fSitJW8~g>HLa$|ASO?d?lB#vSAK^`#u^j&%q6QWm?#?r>kq z5-8!3zLcl9r?{qvO|;|mWG&Zq=Gn9kiE>! zTEAh+bR~6X2l&_tKyx*ZxyEm-tpk8uEzyG zG4R!FTs50*bSwIsHQ=n{UWSIDs?keGT<29I6dQDNDFm_f0wy6v+A`IQ zyFZZ@3G+$-_*MLQZtIOboXtx*MqYiIr4=RUt^2IVqmnH$h|B_Lwh03vI7-W5K*nfJ8_U!Ix3nrQgb({n3?7+LR%RME z>@Dd)vxK2@n2oIrYLS&;Km5yFI&G{IKZ;uCx9oT@`_P>d`x=*XLNtX5GZTt|?I<+t z_Vy7zB9PUnvjD@J0bUoM(0Yti@B@V6odIy1aD^Rby1Fdg&Qb)1&@yZ>Hp+4*eOSMT zsy(l{+mnyWJxpB+4l!fxfgXbo(_hBly>-kj@atjd7=1Ju488lTWtp8F1Mj{8udf~; zt_rMRwdrdwwEh4m@KDvv=9*dOG}C9Y$!J%v4hb?hT)A+lmFj{M=deL=6c3L4me)dh zwh*B!ecd8blwp;-ErT6%c@!ho!+mePl|uBkkdA2>0d%am8<7R1uJ9WaL^1dAYx#LB zI)e|s$W)=u;wnErvJty(5PjLk+ves7feHBbj1Vm3nsY@NP}uNlDz+ zUjBB761TlS1=`uwn__slT`E(tSyY4qb*Cv%PjiPYb&F30qjKFKOg(ehM-sjJUFkid zz}6yRy-F19%H5r|x~ox9-Yq{7U+uF6^q-3$jgH05mB)_bXQp$kcLG-&D+aBcEXRi7 z_SAlLUlpddcP;2Wr0KzQS207XtbBT6^N>Al39C^4;F) zT@HxfF1_=g?=Vt7ml`gs_c zAjyA-D|goSfD`)d@j$xa=b+C+KUUgAA|YM8THV%oYc-^r1-LY}5G}PW=NMv|bv;cEcN$PS zoLc=9{qTOp?5jFN4(8-66s4H|bSsL=PyoqR9E#VdgJ@9HhKKwZU2o4@@Pj#RHHlEi zVJJ>@80GPNuP}`B%+5*m&TCN=NrpYSuH0_i(3!erJ|mX6NCVH_1+D7O)X0-lVN=7_ ze|atOV%1t4b@Kp2*#brX|NhfSW!cDcpBu3cKFe$Mfx)3hb9iJ{F?-J3dGi-6Ty)H_ zi9KR=XZZ^blKCMe!}wKKXJt~{@@Q!`lFSrPX6OlPCe~U{`8rv-Pr$l z*6C}`IPy(c_AtHJJ$#Cw`V|YBpBlgqb@sIu6 z`@`eO9*pmV$5jotkg9$b9#=NpQ+a&VLEr8lc_42Ok0&+U-f;Ve9uprAkAI-0rNrG8 z9-rYKKNTKVG~8#x?TH>oUks1G&zZxN`$~9R?#q2MJf7em9}168=aZde{$6-|nn&4B z!s9aEv59Ya&_{jd*M`U6^B8<{c>Gl^f z|MrvNagjbWoVd@1$A#KapSb(O;{r|(Qb{gEQ8cZbITPjv4Mk9A-6{o%3Z34L#PWM`uodtZ3W{Nsb+k~wL| z=I?l@P!JH*vU0R`qy@gLfJ-OLeOyGy4*E1uta+Knt zV69!jD=U+SmEPpW7ORv&({YTQuGu>c^8j;*X64ta5oXSbiF@p`1aa{?o5ti?p1=&3 zp3gMp7gU*f^epA;^&U9W3LpCs-Er6o#9Qd+S;aR0Rui9=E|y0?ZEF_~fa0?_|xT(%ar>5RX{<2H|N=C=rY&F9!V{ zKl-@l2>;7^Ck_1IKhW^G3GFh&<;Xe-d9$;a3S_8sTpi5lqgv@R_2A(F+PBqMMrRi~ zoK5Ufqx**=F2iuJ*ei=rHn^St+O@$S{sA2hi>@K?L28PvqPJ{u=@{`W@O4#R-P_77L=>94PR*&Chf=9rek~VILaKuySjSC^ zH(L%IL&aUvs}$;;6Kn>l1rjR$zN%w|cId@A?@<-zEQ@lT%-i*Ktz*lDGOt;$9VOI8 zp$MbNJr<9GhHuU~#*^b;SRy^KlqDZx<}~ zYl38FeL@bm;d3F*rV-yWqG+r3rothtpNtbw0B4K2LI_2~fjA z?dQe-v~@js3gsAE9z|4Q>#QiSQbFtT8!Ui#j^&^R?XEETRr^|Rf~t~ELDoQ2K`1zD z9gp7auz;!@@$h07?O3NfT8CRm)fhqi1CE96z*odE!B~Z2@jy>Yd89YR?U8NZ+U|g^ z#TJbi4OO9dj618`H|ngXsV6>3U*C)Fs}MPVESXlSD}~%FQakmM@!VCB2zx4dJd{bV z)!jjkR+S)ttl4Wo!r=^#e3J>(1ik1edalW!v^{5}G1RMIx*I}4C|0}V-xeN`#e9*$ z-RvK6!^Qf}=Faf8#v`-9yL&P-3%oZx=DcMV_+U?2W`U3Nyk$Icj5K~egam#|Me-+j zLuJ%_e!RTXe_ukZwAbHS!4iHcwpWFgw&sAC!P3l)QWD48yL^WLDuYO{Z>_KoixS56 zr|o1h=?8pzRN50lkTl64SW{DiMdw;PQ5#pp<$NknN1QzRhy_Ga4S^_%#+c)InYM<* z-5@smU8;lnFr

J*;+rgYLCa);IN5J-Q{ujk+=m?fpJvBSN6l%V@zqVd04cBS`KE zy(37R@_Rc8|2ZJwsTfwz++txhdw zrIXUP_?*)XNx3zl4(7>y+PX$%Vp7vi%s;}I?qx`2`0}j+I3D}{-XBl;v1V>MCEBNX zsPwUuQaJ9>Ggq6;xC$?%Ku>%IL3bFy{Aze^6;z5)lP8B?oH1CxCQd{}yJ^(sdPEL0 z7IP|Z`7a#U4BPv9poX2+X`^l7!KN)tczKo8oIUT(yNcOl4e3wzdukSvVJ?b&HFL#` zR8e5^ybx@ry*7klc;-~@Qmz&>x^iv^N|_UUC~QnUsLs$eD8CA~lGB86tKeoAYjq~{ zUl|^aaJGu=e0V823|SW8WbpejAe|{2#A+O1diFGMBRqB-@)|OA%9EI!2;}hC>u|Z} zVTEf2w0QzLXde%*Mu*phEkFb<4n=Q2TRqvr8L*~)0;QfNYb?lc-B%0WNF?)a+Zj{= zYMvqCp~o|%4wx@V>788%(1)CTaw{?7&D(5+%s1uTpo}Ir6_p4CUyIVI1vyg%XHC}R zU!p8%Jq)Plha@6d-3fSz92q+VL zqr?>Z@iKz;3DS5iEbPA>c(pI6Z|gwqdGD~zDIMOM30?(?6}wbU3VK-BFme*mhX|qX zC4ZP##Ezb9+G}vk8nM616ML^?HW0g^*aQzK4v+@w?qat`Oa$T%WaGs}P+a9m?Xz%NRHp~DskQ4O>-kC~H0a}f7 zN1jx;?EzRqSOii@e$zL0nsBM~am|&JgX2p<*#rlg74OmD$~KiFg5{zvQK=_;jHveX z64i1IafH3X91!~xPF-I7hpHjaGY%)8WB)MeYm)M7KT zB5Tc%)#4Ji8YTRGZNCLb>&KuaVV3dWHP+ZUmM$so-l7t8%W4lW_4T)s8SB&-#lvLOFcC z0ywQ(^!7rzE=H5{E32u@M$#mX=(E8A)~)MAZHTW@7n&#zY^G`txh}9m>WDMdO0b4X zUnDsnP7v}^?bzb9m3urin9>Ab#0C}t6_JP4f?_g8Ba)z}JPR2Z9d;^JXqF^8f^SJb zXM))LWyL`QgXi;=cwuqBo@EyLMp2Q~D0%S~XieUnF?P;+@ny?u@DakNURoJ$!sO4f zU(1r!tJ3qT_7&<^e99^eJq8=fKc&+FEdqiN-K84GsPV>rl1+WGi?pnhYKYjMDy;~L z0#_aMawIm@8F2j#3C|i5PJGbW7`UZ$lnauRqg{NkL9So}PBjX_2DquHOh9!A@<=^t zb~n^&hhP9pgX90osQ8k4tdW5O{#o~JtoIY+liT@vya}B4B00u(B&;~Q8xW_K>_p<3VAB3LGINY1h`TEA#aw-;z^A zh(C;#UdqN0ng%)YXxKe0=~8^zfMS1pNrYl_hB5T%-Ub;VYi)V7w1m(3llE^QK(xEeb2$HV_<3|LaWkxw0a88uI&u}jcG=#y#H>caGr#Ft$%qEHORTEke2|K+KPzawyv$ zG~nsA(Ril-h6LFESbTE}8M$XVDIV0l3V5MoAA9k95hGQq4c$~%lEqlPcu=#s@+ir| zB8qQTNhgqGR8}19OJDsP()PRHpHynE4NtnYTd zV-n)Y5fStQrQYwsZs9>|rNIJAxR=mzw|~j7!3qyJz_C0-(t#3_VshtH!oL4u$S zX)I7R)gmM%IT$r=i2G#46m7O-K|_*CqKmb-vx5;LDQOx|%w+mcl|jLhyccn#vX}7F zRl12<3>a|Pk!2lu=h25z{7X$4EQzVg_iJ>c#XJ=wu`VUvWL2)Yoaemw zaClOtI2?ly;+Zm|#_7HiR76z*udbyM-RO)7p#k}?j7U~KhuKpZS-TCH1rFUymju_$ z!6AB-3P|p+s&RLm=*YIG(v1lOSNE9l#6j|E(>-FrroZlzF~{yeBOPCWK9uVwl*w(i zxZ0n4oQMpgWs$6B$+e35#!kMbOvj-3&10k2Y|-t+qxH>Wi!7DH(PwQQ8@OhRUJPuN znM?xri*!#urH^t?aqdpux@F6j#w&XWV@1czq4PEyVY`DfPXv{}J%yK~=%Acw@}t>TQ8{Lc?m}T8<-7MPC%qb z#iU1JKq!ELJg+hy9g~l~_X#k`oDh&X9g`P#S$*n=YA0qGp(P=(HNo@!**|M#}=YWRD7_l`>{>}kRhby(I5sm7d}0ktY!q#s9p2% zyl~hl(Ho4rPl>kaitl(US353XNY>*}Hz2yD7Z0;)>h;}3cKgFhvy9!a>6({@RE?>v z!-~a=1RZMx$*TN4LDq@BuT-^@*i_`iu$cxCg|9kS4!sGUcdcp2Txz~BZR zY7;apxtXy#$hS#LdZ+_`XpokgBdD$JARtruQl0iwe0mGiPo`{nbP(xJ(dE&%WJME$ z7N9spzB7i0l}WCMA&7V=_u#Q>QQPM0^z`UtCy~93ae7 zAJW2omH9j3wh7R*DRGFjaK6cYy$9qe{p{=ILFGY3u#ClL)FlsV^K@aU%ubB|;MDlN za<_H}Rm#4^-u)e4$x`@8ip=YB*zkV+rM1oWXTd{eW(C50wquO~$w(B(v{%PiUyDN{aFa;HTJ7m( zcvmkTn9_4Y0CFv?)6Gj|RpzNf`nVpva$K#tSrPxC*u+pVCTbBvU_gD%!1#(nmT|_!r`I>eqjQwc}^*N)s`TFvd6E1Kd;(Oa#OGI}-&#Q?X|I zw2@IDB<+GTLsGLCgybzr)S#4RcJoOFfAj#s9JWbPB4$dI$7yS(cC0188O%U(Q&N-u~elsAP}rSeRYakST0{{l9I1kFz;b_OB%CC-HH7+JDo5rrQ+Jb z+qw7aV5$=W&d1Xf{c2~%mDyskt<#he6XnaB6c4gOdNc*%#1KyLC1An1t9{S$xr5Oe zP(zxm1`I*&gihjo`|++0$o;JD+1i!n#px(eF3kxBnUAt;Gi}lpkyGqD9EA>_E&2k+ zGQv)mrNf$0|4?>ey|YU)p))g*%oMOaR#sHzcm~UW?^2lE*NfSQ^OTRU`Y)U%j25_0 z+}}#0K(+|E68PipiuH=YH|I~f+7B)rmZJjFXxAp0x&2qc%5)vuvquwH^IS$m-7t_Lpe?1BUco81KXc}Woy80it3Qws=e+NQrP)^=tHe@Dv6yN zkNV2^>a0(8&nIIMwQ!UoVN|;Huh1*~t3gz@8I$YNVW0!G4xQHIC5_7=B}n_#AHeJY zhLI@g`4=<5L+qI`jHk zxY9eel!IG*+znQ~L_8}Jig6dG_&YiPQR46lRHcn0P+e^N%E&7+LS&>|pp}~_tW?0+ zURj_3l{ZfBMql8-iI)zRG?xQp84uo%^ing1l2y_m#ifkrU% z!9b9)t$0*pF{lugHSHmh40*~SBN-$XpIU>wr@;>-Da7dE$JsIy{Cv8JVtzsPBp$d~VOJ}LN(*#gNwA^c#MXa)Vhb}_XZA{)b+5D3CC>K6yWF3^UYI3852 zPtY1NX@#gm9t{+QcHSENFObKe$Yao?x0%;yNl=ZiFp!hc66_;dVmB7F1Q*N1M+M-< z9r|Fe0G^%#*}HozPqk>H$>u&wsTOXehWeB$k366c_tgybxh;Eo+j=s2hDB71&D+!P z#=_9iJJ?VM84)@dB*v!JP|1f0-6lx@6VL=7YMNWYg|l8qxeTpT@S&u3$<)J)r|`pu zbX#-{86vR0j1WEsx+=xo@gXXaI}IaGcC_Lsyv(1gNg!rsKuIeel^qf_z7&Tr30v&I zv&tN)us7&KJJR4IJn3kWw%S!DsA%nM(xG=)O{g7ef@IA!rpO;p3|b<=^G(|w%HeGr z%Y1{Ms#KA!hM~BUOfem?w87l-@&|~&i8gc1jXedl;vh}e7f4lrEORtZABiZ;T!%sI zr#8708Xrx%v8Y&eaZm`tBDY^X6>|V3O1{OSqR}P89lvhqJ4vx}L~UgQ54yLo3S6U| z4M;Z&k8M^|{~p>gd~2R%sDyKi6kV1q@~RLaLNN}6Wz~WaTc&g{h<_Gq+9|P7;Wusm zf9$;vlwVbq=X?MB>QCxdmE1spK%#x?XPmA)lSg`WhNOWtom&eLl$qxB^3AYjv0gLl zxmNoUrWYWO=FOv}fCLLow?U)Eo=j7A#|bJlvBe>3ltR%?Yg%KQ(X`_0h^SGcqNEi^ zl=u1Wea^l2SE)cmbY|9SBXxiG+--Mb%TEhgf~xKw~;O&UCWD^=ZPGg6U=u|L;CMK2V-d)NDft6|iH% zJyd{C)mZVfTbY1Xt@ejy;s#c;u~Qz@4a^?}aAV^FYODv^GxEtQBZ%Or5hXHp#05IM zAq$(%0tDk++^(Q=w=f`G*&B?q)NPz>YwMgfjp@<7C(Sy|>gB1l?X$x|L{Y9zt$iW~ zC$bHT&DlVvAA?z)=*d0SvsohUrDG4d@grEXVv9N>BCTiG^Z=(OzQ|0gYE8{luR#w_+mPnYyMak*W$OC8Il)X>TD zb~8`Q-^IC9VIY77H%?44Rcl^mr{3WTWX|8GK2%AC?Bb+zc0vd`IkC)NW$@kp=Ynrx z1D`{u02$`Hab!WqqN||8Y8G@u5ju6~R3OCmfE&mqodgK+jbZnx4f)TQXPvmG)5b^f zKPT^i@sbn!rD|OE19yej?a4kaCOd%^w4OTc^#swdE&^qmMo(ED`)*t1G|}ct4Fkk_5jtp&#;5otIr* zr63V-biiR2Lt!q5^6ZE%i)qXlK|k1#r1EksU%@~)pET~%BP!fB!uZMplZ`5ozssu* zC&;UImcUMgW@TP77S{Adw8t*F7)J?AX}-a^n|+Uj6A;B+rd*jMr&@_PTV2Y;D=uO> zV8!`>dtMD=!^YP8KITX+vA*!B#m=_tULu58=2-bJQUieJGiqC13l1|yh}ty0%=;kp z?RxvHkP7;=d~hWt5zRtqK%V_1QWlg_zf9&n?5XXG3^=VB)eWcPh(kLpEev$h{YKhw zmTj<>h6Ivosw_UHS=ck&OqUMPROxItr(aYyMRB#23Co+jN~kLU(frm@VJ~H(<-jQ| znKNl^2&OD(2I4|i%L$!Vx0D>MVO23iC?S^2#V9=wX%wWg=zXd)^^N+~E(b4^zWk3wn>g`*%N1I|_gndXw9ZsF@y~u;<)`wGZ};M!Ur@Il zDm?T@6nZke^B12MYvb*mq^Zu6G$Yv+DquD9m?349L~W;Ydv~}cQQHW&9}2f5YQq;? zeLUQfsBMVbzYez~YExC84!0y~djYqf54R+0Q&mrdTN1U6ar@J7OR}~_+`j&64hG5E zu&}DPhg*`h72Liv+^*5^KZ>?;Zl(6$ABsubrnmNmTN1Y|=Jr6iC2<=IdexW1Es5I* zyQ>}zw=eMqza4H#+@_~L3b!O~JB{0^uRC-kZqx0X!Yzs0y4>yxwaNF~mzZ`DIl_#%LeJ|YN6B9;%8g5D8CY=50HykPwxC#C53b!P1 z<5cMCz2TMwZhHCs;g$q$8s~?@EeYI&t1pCG61b@gN5d@%+|K0oc(^5j+v|^dn54!0z4dLHIlVX&Zb{zuYuvs!+(OU7(ZO(wnfaaYlf-Spz^&i%YDn3mQM)tTlCnpz?hLo2 z?9t2jg_W*vIg3DI1GcD*!cC1HUtg>I{@oRUAt%g>R)sLdKbKN;fd)()=>?k~`> za|Mt(Vy-1X++!f3(3Ct7&~Ng0lqqhh8LGTZvDU&%`=zw7><$pnstAqpd(;ctmbD|4 z`O16ddN`XC>Lz0QLI|xX=hcZ#%u}(dZ8@0sr6)%P+NBA;wD=1~tp;jUU*8Qg5g7G> zAteQeez}CJcHC*U10~>8hhUaGd$VIkT0PJk%Frq0VikgxHfW&>JoPvYm-;Q}?~r@U z<%X+y()EJL8x(yzcvcUw7lZ04(~M!R!ftQhl|nn{2O0{tx$rwEvl3TUWV#zN{hIJ? z*G{s6FQ#~F!;ecB6SQ%PLP6Dqw=3i|_am zpKz|w9^{zJ*^2SfzsZ0_;)@@{ly+bl(ecT zty*%OR)h+Z=z^4_5Z2}q0JN@wvqvbK)lyFAuBy{PVI| zU2RkCENP$KTO)_o*7W4EV9|so%x_28+Ho3etmLXJ?!BE(`7UY}M8rslI&>c#ouqQ= zttNu6)I?s!(l84E)I5}L;00_O9~x_2{ha6x<51DBRSNLH&ag1pxVV(dqi72w1Esu) z-B&Eblp{*L>ew%iX;s97NGiRQ7_+b@h5AcREG@X| zaT6W(f?lqWvrYYeYxDl2Cu6ttXecT${>h{yu%HxElPh?9&x` z5cC8O>X-bh3@Gt|+S;#P;q8^HwF6$?OKqA%hMMXgQ3S^vv?*Go0E$}_EtU^}PSL3K zOB#w^;S^L7p9DpJK-Gz&6-$l7CHWf_oM#0h@s-I#@eQ03q^}aHL^ZlH$g?_##L)x8 zHs>YRCG%1F9LR;y(5HiHqNZ}2xJOik>+Bi3smV((O}^Pt44^?C`N}r?a$Pka9CNC+ zPaL<$8#wG}2e{(uWR1-*q%tfs|Fmo zFej$Z4^-g%1EjX6q#;-9MjDr_sZfU~Lw5zyb3c4ExqyK(alM~Xee$rbR5eR`a#qqY z!g|cS1K-YmOvcOlQ^c~o^vvXH^N%$K_lrtgzjxv;VJYf0Rfc+8@TBPqGb7 zdEQhNX|=sog(MDh4>oARrun|Zk|f_l{m35wUQn{#Tg*be!3p6Jx>No=Zvhb4=GOmG$hBS{Azn<5d z$pLc;POd`)-InzRif~LW73H&?u;HggMY9B+3NPmvaSn(*7+fE^?IB1y4Tr>1R@49C z|0dkO-?@w4)faTnauw@0yyw5@X(KX@>XUgZJ9d)Fo>F$B7^}M19e?y zITUq&^fCOF)flK z(GS8s_IDcSpcFlrHcLbJck-aPft`Hql@T zeTxUYuta37h}XHx8`Px;8@Pmd%EBErqf2UOS@A+lJzZcYY+6aQ?4`P*GpGBK1PYQa zC&-xQRO#x?Ly}nddQ4CI>Sk`b*P!KTKG>X~E0X(8&DxgRXcCNI8ocek+J*xaTsWgh z9W<@f8iWo~-@02C#pR8CYGpt!@JbI8yz;%1eu-a(Zx>zO!MG@8-YN}7>!E*^H#=SP z>d^OWV#Q(oN}eu^3Mq;z=igT@zGyQ9_6E2Q#} z8kRQ{n`03>Iitb1icTU*r0c<^RAOtkY;{VNc&8%!wVZ*hhbb|Rf=f&;ETXc}kh>Wc zIVxr^mn}Q#$d;{bCMhhQRE=n8tmu-jhQ)3gA|wk~N;b<8#H7MaJ>tx4E!;EmK(NSN zc7Cw~jm;%mDCw4qIB1O57YPKdZi| z&(QwG(QR>$X{xDfq|NMQ=-J$Efh@jsEs|#jnX{XR^}ALk4q#rayGGxCMsSTgIaLt zYyAY|XtIXM>#3Ev*A@r|vc-XOg*@--pQS%IlO3@+J7V+K*0c3UT8|~8gCGIGvu&K_ zrdOj&oz=;-ZEq50@b?R)_K^>>oe*x3_)ao-aM{gvzG$-q7R|pZx5nc5nUrzdEk69bWdG|L@Kx-g@AX z2Od)yo0;kP<-Or5dl@{;dR%-;kQzy7VS(rBu!OZe5SxdrFT*F!d=Z*9yM6uAI zKoiQt-aY#UR!ltJKPP3eauKlIYfrkFpjdy`jvu1)KBVA^%#Gkd9~PfBpcWXqr4c5R zPp4aM>W$daWv@Fqb_eW>`uJdw^1&^=?oHy>u%|d>dQfWIi!ap;o;~_TY4jt=T7s8@9a@GJQ|@=Hrj2` zSGV(M@+JHp*<#_w>^y$wC#K)Af9LKWzrtzZgfafi$;Q|oJa1!s@Z@7`j|`VnmisDI zO1iOfa5vEfM1L>5)oU^Tja^%wCfVj0vCD-o3we|Z4jVYL z+V%J>lErh@AtFm&)a)61 zMZs*~u=vtW5-6AWwMnrEbCwmx0j1jKY%NkxT{$PIN2%LEdeF4P{BS?awoxr*xsq>t zIf=0lrn74E7jX*~U)1>a7D&nsmt4r? zPqefLJ^5km6r!L7BnX;?)pq;zOZrrT$;6gF+0{JhEzsgSq56Ekth(PGJYv+eRLodF zEUg~4;x9W8O2^$%thTDOtpPZj{LO{c<}V4{@TR=gfD4>utFrCwS7K#Sk~NlsZ)tVt zWbi%Kg3rJZd<(1NZTJLOt5sBjk}cbuRj7j_EIZc%RLCefBI`Q~IL$wyUempmSz+u7 zyo^FAT-vAyS)?joP%f@k6dyIKwRG;=LxWh$DA1+^ypQ27>v27X9S-EM`p&M$(2ZV= z0UrqmXH@swM>cx>WAv~+urXrq6*yBPXHe=N|MB_i zKd0KPqrKWA%M7uKQILrC7OR$BFb4USOC%)h2HAZUy>g^xoKMR}fs286>BVe3S=NIr zwn`+VsN&qZGq|Hf?^6^r19jZ{!i$%2J)IAU7u%e&yW&=}mlyjq;y9&p0rS;~=gjJm zO+rtNh*~g;ae!P~nO~ulFT^vu(joJ&$0(aZAWN@znlyj-SoMO9?9OLW=4>ESSq_F- z9ZaJ3)TzFUF~FEnrXOS>WY z=73SX*$dh~=J09J#w7v6s05sOxrhzo0!hs6ejBQ&*~U(r8sftwI#Rc7ma^eZ_{Qgj z!HtCNpze>54v@#Qx{eL(G~RS@h4_sxaR<=DC78db+=V( zFwxZYC&6b_JtiDfXNA|dOW&@ZGQ0$b$H#`UCFt8PGGIV>Z5)>pEy`~^ z8gCcTNw6$u0&pQOh&<)j2d9807dFnTxZuLSiVJQF1?Mnh&23oxX{=xgb~P0QySkJo zQbqY?e(>55^Z7V;X?_ z_7*t<%*4Wh1$a%;pPyVMig9n|qT>6S{knDgp{LWN3E~2#UJ)j=xht=f3E>|NAcKlq z1g1A;?EvFq)vKehDX@bnYzyr;yk>l{S}3j7CFP<(h^jZgWL;kJj0B&k%(3x$>e>T9 zIis8l%$gGZqke-tjLIvK2sy#Sxo8G#-Jvzl8Y;v9fOl|qldR@xJbLbCI5 zBEz*aqAdRdvFM8G>!5wG%R}5zy2tn;mTC;)&~(&H7E63DuD<&Hy~~v*4ViW|K*|m; z2a5NIs(TA9gxk?fy2=970djj}CA0=`%zzU|v?$6o6c3Z@&{>U+)0*|3U*!nw}j-RQ~lUWPK#yJEYV{UxuWHx@LtZxFK z)^h=`YyGl@3p&FpE+f8&hYdO_xMS6-7UG>6^ z)gyK@b3a9q*Zzkl8c;!Usdtjs!4utqCi?L-kqPZoUhFd+L*7Q-As{2%OO?7%Uhxly z=lpaxE8{8;d1xW&{v^+anwb|muCNpA55zw8_@ z1ZyY*d%m*_jvXce!y=tS4rEbHhjOzKA{FTPAkT&_69NewUtp=~{Td#z>`o7VnuVTY z9>N03lq34gAEnzFCZ=G5a_MpWrXs|?p!{qI6qZ#J z=$$#vyzI4u5NQ@&@9juZjfgla1FQ+#ag-Z@$Sn>{?7fvPj}J*2@SnEDI$p_%Eq!UA zcp&N!!?<9eNNiZw3I@q`6Tlk5*rF9aHAdKj4>OQjwNy9|dx{AH!a&DXQoI!5RCs}I z-ZH6OR@2*NW~XkxO=C4uUA=L9l;#Ob!hjw#BGn)lZ!o^Y4wIBm2Y9VFVsdB|X3GdK z02No0-(jANs?|-^)&IU)!rMy7?e*3&-bDDA)gsvq#jHX|M=48UL(woyP4WbWCV3*y zI~OeqaY5yhYN|b3R9$n8?i(d0f~I${k0jO`Ma<<_Y4xy^%7u^$Kii}NaW~WfvG*}D zbf=m?c*b2rBT!#WBjYBmmQ)}6)V$9wtCPRGV>$gD*m6l{q_QruX z>Ww-GZk{?GKdM&h7`A!d_=LgnOsza(aE#0Y$KI?F1_-ktvlg}V5O`&I3-+iGq)q! zl4NfjzFV?$o;S3bnbjh%yBSMPUzoh5d zExDvRe7m6ftY9O@Pz4sbAOhwfo4JbP*I32k%|>UohC>?)sj6#x$33DbESPz|SMx*> z*~_^GYZ<6m%fhq1(YzyV!^&)loB~Rcv&^`Rm602Eg`UCDc*GoCuXn+|XFVERos=k3 zl<^{`74Wg58Bw|Tg_bU>CjhOHLCL7@3UG3>wjpX~6CoifIHVGdea#KZr27ui-Si`V z4%Na_msBC?_lYzs5wEV}=i~?-k*nMmk&d0<;O(;2G-P^RKTwF*IISxTQ}W$_TcI*z z!X>{tCoo|gk@*H%3R1Ory#`L`;4EL`zSQg!&9Z}Q%3R3n#$DGlQT%mw$X9RC&*D>> zGv^pr)my~@-H&VPH7H8EFE_>7<}l;|K9=`*8=~V5BDURgWm;^NB+}wKZ*u!5P*v;p z36#^M`@Vrp$>IY4MPnOqDu;#!sSWam`ZQI2x~@(J8DL5W{IRC*P@IU+By-btHS($7 zh;oUQ(U5&yah?$W&SK^0XP~s9@MY6WfYPl>N z`vui<>_iD*Q0*#yS?XiXnUI)8y)#A?=@p9wS9^8bI0Mp>RHhBRdX6QXMuA=r7LoCi z#{<<N$nivMq zq)@2T5&EPg6ru)3Unvmf#);}DEaE?k+`Kdre@jY0zdpa6r1O`Ur{BSGV*Y(&)P; z3h5DiS{zl0Dc?3cyj%yb*D}6K?tmLq$t>}(e!|*1RZ7^uq7a9!dwJ z->J4{HvDY3u^$095S8}m79ZYHQv>Mq%DZa~<1#J@32ot1cI9W(i#|9VMkM!`Gd#YUYgKe85~d|BEQoEkp(o}9vwn6TPD!&P+QL(a z-l5M9I|8Z$R?9eJHj!P_W0AWVOtd(HeZjCfi|y#EW|s*390!WS~Xedkp`?r>b%rm>~+#1x}R^|>G!CLx|3jonLN%2iEJPeRZrD6S}`^?fm?)y zvq+8d4LcR~kM7#51K{0Nsv3uHQ#FGhNcq-)DcrR4RkEV4dmx$W8Zl-g4{nS>`^0Q9=Hk>C z^Ltw2z0Dweh}pG`o}l$KAA8zjzU+)FLyN6~N7PVMQ%WaN_#J_>WNmlg>`%YsI=LWfi&NQfco2prX2=JpUpE`X^v)rnjW)h-|La7!=O zcZt5E5;#D3l+!FfxA<3};|zZ1Te{1cRwXJ+bRi<%gZmI%w$ANf-18_HOppgQ92`)l z<^=bqn~-s;C=^#8;5}`2o5@_Qc1hVGMl!51D$Y2VJ^fQOauHmBSy&~7#9ECt^OD9) zHuW_oEzKLNo|5|~HrR4~_V;del32oOXik=?Ex$1Jjn3-(07AHLM=zdYe-E@~m9)~- z(Mv0?oJlK{HjBUDk#9fbS}9UbW`8QJbd|rk-Y+ZsLV^^2X!qh8jVr&Ghhx7PuUgkk ztK+J%U(w`U>l2$+YE_lWEC_{)il@a~G!ct;NTTyPQZB%pK}VXD_6OAw^HP777T?iF z-G_&A9bQ_GFA8hNzpTt_1E^Wmlb@pK4Mw{N!lXPk?jrZD2fO14utZryWn#G`NAy5cUN^dVz8J~C}I^wTMP-i>YMyqR-j&31eDIJ|vZ7*x#-jdKQYLd`#T&nWOa@q+M z5VlV!j8-9uQMqNRQ~X#qzro(YMyjS@l}uSOWa-bsO#)r)6X$Tr$qzXIYqN_kr5#Ph z1?Fn&Gz4tZdF2&WIGCce^&UP*g|~63-?OB~)q~(D#Epr!4r#O8&?XH*^r{LHC<$U< zfmtv&WMSd4ogUFi1#J|B@d4+QJc9fkUl@jCVJHrLI;Y3d^Xg>T?+`v`XLoKqpR`k> z6}dZ=mX!H5YN0NkC6(Z^MVbfz0Wq=quM<{s&cwxJFC&f6N8+u)=<4Jg+V(Ydyk-M2y!)9r`wT93t0k*gm+4grDQAFO2kH>W3w=#7n=#!Y z7Ucu%puB~-JRlF1zGsHt-3I9PY<>U^3tQ?dtyem)vpDJe?rri zCYj?=gf(DAXz{G>*c}>-E_N6+pA=u;%-i-LMBkgwlEoHr#*F&3 za#!#M=*_%t>O)FXVC_logl`%L)klkgc#3b{lQ%im+QQLM@95`S*W;-`Mn1|sc{lAD z)TwYNEtiFDz#Zg*@lgWPl;3b@JZFw@YJwtMZn?p$iNpd<6z6i^v%wQaomfd@>DlXMz@4Qrb<;l~_ zxx?(bb#K(LfEQOLGNXUj5if>aN7`?!MFYr>m0e%ovaN#}&3m@ZP8khIFXhE*>zx!- zzsV!E7|hzuQT>hDK^;K>EOD`val)_D=pb3c5*r-^Hc<<@W~^vOdNJe7wl&j@<&-u@ zy>Bq)g-ByiM7F_9lh*F46v1n`%%t%q-3w^M$GswnB=wdFX96iEfnQ~MO)uM20qwF9 z$I1I|r_Y+zzR|n;uNnZ6#7UU==SEphi+QXLo4OhJ!MRaAHSQ9Y#x(W&}a+V~Hs zFAI{LMO*bk+}3S&BT$AFRab$Poaw;9AY5(7x9oX{7Ouhne8+d7T`>+*i8TD^{O)>_ zsp^^7G*58j=@}T7Y*7xjX2`S1l9gk-x8yP+TgDBm_)YNU1}5C z5KTuUCYkJ0%+19-_~(3{^3`MJ!~aCuq(uTDX^miWkGWISXRbJdrI{7svY9R%9|o~I zp8{ZYPbnEY;{Y$n&0j2EDC7A9<7gUoqpq-57Y0D5osqzx!m=uyQEoqJh;&!pKm5m_ zO;rWuj@~tLU~YbgFs_bfsw&>4{@ZPRo^M0Lkmy1liWdFw*zV_s(qTx}JCy4(-0NJ& zm{8{Xz+sWB(FHG}v^Qf{Wja1=mL;)0n*Jn1m4S(Yl_YEV=HYei#nai(yZoJX~ERwG9@mO8_T8X7Uh7 zR2&Ad;NrzRBww>M-1kXb@F{7M{J}r3M$d#ykC$+S`zhb`?Nk3tUVA z^N{7v)y4C&cLX!#tY(x8J6V!u%-tcf4F$=HdU=D842=4PGH4{(i8!MnFs0O?!shq_ zz)+GxD3_3l?&My!HGlA6~M^f*eN4{Vu@A_V4x+fZh0$pa!qn$;G&|p?t zcnr@28%%kr2|!7^w~gh?FkkCjn2LW+Lr2XD)=W|{nvG{b6 zoLz z|22KcXXgMLiqa70UX;t(G}ciXfa%Hfw#&y-wh^79K(jM+87^NqK9Y+dMi{`;R5Vil z8n`FZ0hXsrSdr#$_GlECaRS9H*JoffkDh}s>JuA3t0$c|5A-f@20v%n~1Bk z8mYZYl@QiaQ1XIhV7xPa4w9f-p2_fRKK2mWW;B*%XK3eh;`WmMOM!9vCa+RK%YUz$5cq}bdn01OU(e$XV9Q9V&F%-2F;#im=4T4 zOk4X(XZ{iVR%@z*y4FL=NJwX4Mg%o{pZ8s{<;#mVX*8JP1e1y#5%a>dD3>dicSI6S z9E&CGAWue+w~R^!%+(QV89f|&NN!r{$2!x$UuhD)oVQPmK-KA1^ps`#( zOE4~CknrByXB*&Yd^@^tCisiHWSBBx&Ceyqq3u0y;*cOr2Ba;ux@$moNQhI-HF<_Y z1hAY5yr!~ZMs<-^9=`^fq+)RyY6Z=Zhs*=4Jq}eU=rBZtquQRVwAz_VOAc^R8CIQo zR=h(s+BA@t5{|`XSd&0ZF5sbtSlD<5hzA42IXZ=+p+I+otO@uPb(hLdM$dJYvd-=W z$UFo*nF1o9YE1%}3237Mg)lB0ehz|R2(Mr9=Yn5TOjQzusbD+8q9SGxX&QJCM9`sO z&G3{rsz~=tDJ-NR5=H12X%^T`*8SE1OUN&R%s@|H%4v{DP|5*4u&GSAW>MLh6sBSs zzRk3RV88*gn+u`CwBakgJ~f%2oG(#F(i@SBeT20S93Hq&V2>+omQ*eaN*Z)u}w%Ozrxfr zxL|Rcu$5g-Cr7tCzrt_!Oi}hjuctKAwSW1c9WVzo?5nxX9OrE2&g@H}EV= z!Y>uoc8bYkXZ|6C+cUpl;Ph21=14=vqoDwAOeN+xWMqv8$n9h_iEmwe(aWh#8)lu| zb^pC(*~~R$a5_0)x#&zcW}lL;&;#>)&_mN+JJlbuX|g&Ca;ZSd^~(0C?B^*oZo?ax z5%xz~QVAYfE*W;Ee6_!qrA?UC3C_IYP7OFNLHK+gP{IUPFqtt3O%$e8=t^)LVjG9P z;3D}A^WvG^02>H?GGSww$grp>9DI9Ae|USRqiEa~Sa_I%EP&s@EAcN%{A8d={}h)^ zM6@moP~CD(1jT%5#j@D1H=!V=5u4VM}eW5l}yA@IV|f4MQPW&VV7cA%w}?d?G4%Nxt;A^5IF- zGysKlX(6WeP;MS*2WmHDAuP=I&&^e2Zx{?2u|61}rFXHd%E54naj3qI34qbXrgJT1 zl9!sR7S6uJ6&F$U6Rz;~7SqGyl~*Gk>tUqkW7grIRz1)rXcepf#m6;`@J!e@-FYA3 zMoE0WGPNEzEi5noMpz@kDXYW9C-s{uIhcE%nialUfBwXr&r!DO&!;#$e4g*&waxcG zwC_80^XxmSzh^_>JfBMk4b5Ap;WL5N6OdU*kZ58CZ2Wb=hBndFFtZ8R_(-m`V{s_t z`bV5-L?|He(>2+-(U&V z1mQy88X7D+-G7#38$?oes-IRJQeF*whF=z!$aapmwH!x~YIH73+>3!%I?`Q4OXX5n ziq9DE)a7`9K_D{3w=#I1jxA65vof)Ss8%HC=|U{hrUR`Cr7M$kU9tci>aF7S5|FB- zo<)Dygfce_-yjiel_zReSj2oO=mZcHttF++x6V${T?0FBz{d3s`wL-!ycvZ-cRZo9 zd@DsquKNCLTLe;edyG3%w3pmF$*+6G{b^Eo8djEFU5g;oPYQ!dXoa4+enyv+JR=D1vC;2RA_%2)KxFxhtG9;#U)14_2W zbg{`;0mB|bX6)7UmjY+YzKoBl?yk<*BynQQu>@_K1uuI0g2AC+m<1Z}LAU$_RVaCa zURJp&FU}=&V?7E_fdlZ=NxqVGXa1zT+JWij>5rqaIb}9%baR+SiA%zh+(COFNZsbY z4xJMo%G^y(1e`1*OnXX&Eb=j{M{I*4YMT7uG=*p~wXywOr`hqc*+KbGN1hI>2$bz_I5vcpIXbH|E%BU(}N(<;GL67!X*L^$GQc?O<0R|=#M?HDHe|gitY(4@} zVd$S;O}%$NvEHcw9%On-{hArI*@n8A{vOKW4TElH@hN?e>S2W~5R#*cWhyKQ{t6v9 zCpO;O0M%q1weLb=f*ol(sBi%jmSD>2!MRKGS{UX;0Av)T;Sz!ub65y#4IZpd4~KZu za`PcL^nl89!5NaWisz^oE*^-ThBt%|5I7)B#Jv9|D5Pn+i`z|a4lfZcZXv1|&&A25k&%&@zZ*+h`U%>|i)|BuI@MD4e z7=u7EW0fqg?$#YGjYIbYd>S z`Nt}^dG}edw8#V&0p!u*@-mCCMA9vYQ2-VZrf&gkS`fwPN|g~u=_!d-qgvh+;{CjX z?Y{(VzKP?zhSTBU;cPe`^kcm!{WD4j1{N$>kfLyWSS`@2QJK#JTpl6JW4Ly(8pD2^_(;Yn*KtZb~+C~I=|?Qvv8sSIlWlB!V@ zLSP@-hMIK$ZJ(Kz1lpC`tr|uV^tna7uz$9GLyuM(W)47NsJ}^eCYsf>G@}S4ERX~k zq$T20DWbi+>dL!#{Bg**Dyzr8-zI0s5=>fE`sv%@SWlti+VyAqwKu$k=xq5s$pbZk)TNx)zC ze^C1a>22&kYZAPM0u}lvQ~_z-e_L~qei!>M*6j+v>wZKST##-v)j)%X0yy;p4bGZs zkFJq^>mi$MmwqQVwY*+0S<^5+c)kTLHgj6c?Z&;?dep7W7=%M{yABCvJ zUR-Dq=2^ZK<2SpwMy6KaYD{WQMKqdJpgFcIWvu&(4HF+Ft(?{Ka$t9L_6MfRfB=wx%M3f7{V zEeZN|x{MO6CAd*KKFSTT1_)hVV3drr7XQU4jF(0UFX1xGnMk}yevrxZ_Pz!ztr~Iw zDnjr{7>rur4^>Mo9V_0is#y1g$rC|`FIqB^E|6iN6`dv{+f+O9b#zL`QsXk%c+(yn z%DaZYusqpv_0bGuV*CZvYd0~xL>?OePHi-Lnp0vhRel3}W$0>dhcDGRQRxk~%r62_ zT%4&BLh|4%mKAp!4q$Uj=oFWtN9c<*YhHGj26B^X$IYCgi`CVhS}fl{%ZN1NbK;Go zbcmcu>X*?k(H&(jN(*`-6X>P5!Bum~o|Af?yBej`=+xCw4-pw<^OAxX33r#eq7`DJ zeaee>3F_Wh@ou{=WP^}R$wiuy3z>`M@U>_)8fhz9K;g}=vD{D#z4<}5>F{eJu~Ui` z+ME0d{!ez(_%HgWzJn?ys~R+Sk(6U1xssR3qoTRc8y-&$8z^!%Kv-K+v54UZ5U)rK z#d4}q81fH`7$_WHq;Kszyh@@_Gz~Id!E-8Y5<-(G6>}x%#|y~Z)NPon$|E9n_sIOV zfQVVBFJfh|T(IdiW#?Lpf8hyTR#?%va%H7rVA2fe7})Au3%LphD#|vXiao8l!cc1_ z(s!C>pOS*?+3>@-^afRvA|lb2HugrjQ)N`Gi{nhlQq8lx4wltxokdW}S-XdazB3zAUnVOx+Y1Q(By%>4quYR*p?R z{j3wLd~9$5 z=)>PJ(qRa)3L!XUd3jSa;c{%TYN0}zZsy_8AE0FX{tY5d#i&MTINw9FM1g-=X(*); zT1Gc&lnb)wkuSdRp`5$69D@8Lx0@Zb3_HWMgo}?$us_A5M7~HPoxou|pd)(ARx_e5 z$T2xS9Y`#xj+%I4P?9p+B;p0}K;RkzXJO3a4J)(V78yKXVnCvq4oDC}+@vB+_!)RM zeF;0I<=K!TCp>tdjGSkIA8T7r1dqj*Q{Kt3`O~v84A=G;xL=Jaazqc}PL8Jrf7#qx z-oIavTi^IRaqHG*e{t(59Zr>D-}{^xc7DA?#b98|EoN+igc|M>nen3enXz)+My@Vu zUL@+Gu#Xupl7C$DFcX_KW=xE0A2a4&JPXMBnK9)>=;ZF+pfO_^mysE#eazTcXw8fV z#f-Ir$7FG4%wh`A`J!HA#^Sp)yNRgX8`VW;#!$#Fz>KY(z>HPBckC2ct%2Of*BxXP z)vQ)q7Uq=HyD$uV&r??TPa?bo`e%Z&U@)c8U~=r>X|y53CU=8ra6W@+uun!~q_<== zn|MxYFwvVZ*X7#_22(&xV=%EJBbbr+T`-siYJ&;SkI85b?x8!;V3Mncm--DRC2w#@ z%!@8>v33fgLrej++2gzjsOol;AP4z<@Hc zh$ag|6QhYRpiU~)-8a@q^`47=3i!WGZ(Z3P9eKvZCv{lW3c|(R7tdD<7E9W)SS}__ z3Nx9)#vLIOr|p2URU%&!Tt$^-)_&N_a39IjL%F@k5)mei7M0$WHqL6CJvBGe$~_FI z*uEJf)24_RkVok7YdIESFps!fO4{zX=tZ$74#!huN)qf$NQ?N6V95~xg0E3&WudQlv#L(IBYfxaXav@`cG^>!@3imUJ(hJ~&%t*!+qdlx ztM?|_;&MHgql9*Mo9)+Ei!dg#SL4)5RwfU;9vh33x+}I{0u?7~CKJg=RHy@`ai*Wg z;dSc4dD;EC;(FS{wc5e)HV}i74wk0=eMmfz2U9$-$JJrgQhZB3>hOVWO5^t)dxtke zoQJ(%hxH!;-jN30S2?^_IlM;$yfz|La&Gdt3Upv~st}5KVP!_`5bVj?Y(dP+U*%P9 zB=E*qU}>GGhE>5qYnfEUgH1Jd90c3XyqY)1uZSn1nsbx4slZ3ap&EsWN5?kO0VZ~ujfC< z&tjk6JqH#UTqqp7L{&_Wow_nzW}Y9?D*HfNp&_tXK8@NfZ>UGj(Y-|lj&AlW*<=8+ zX5xyfEIh<_+Q1@=M6l4qj4u8`t3kT`#U};H-Q$tPlHZkAg#8FW%^HIpr-@{E3enD%Qo|aS3!B~hFG_OX+fr$ zaW5MoabFw6I6yQQ!nhKUqITiT-mW#JCU$UA%pQ-uP{rck0z_m%9H;%=$1#VNYGm6$9l0&qDKm9_mYJzdUwd(yd;S5cVM93d zP^K>*1GS}g?DH~*;o3y;#7tTRNdFbJsL!@1M5M|RP?=s5eW5r3_L}o}f@a384oymp zLI!5ePxi4KqsI5>ibwixu11%-(!m+7)j`_Lsu|M%eo!dRHZ=bfaCeY+JgL4}H4Rf^ z2G|!;M18f@%Y|9h1Rcb3DUS!CgK1&nAS#hJ@(vqERcsMntCP4pg7}sotM4JPMw@M#Qd$SUdXytv8s>HdJLe$tw)MCeayT zHUh=YbR1;Z3?P}t%4CP?L~CMUZOlaaJDUO~GH=Yp0z)A>(xj61a}uA%ZXZbxn5s@1 zaJ@soB?{OpbV4!vbp@?P5k?E9T-i9NZ}e)thpB24>yB*WB&VpTVv-yOiW6aNXPoqe zAQDz7&QCV$dh>bNaqG*I{52w3W%}ErP6_%vJ}EvJniU!k-%gh+0S0P|59>*FRAt3C z#2s9#E{Vl7rD1hK|>A>^>-Lc8f}<4k3cpH}E&nbxUEa#g znC84;*SB5>u)Qe(V+P_rHt*ret_ZiWM4j)m=^!H2R4o2Vx8&i|N3+U&$5o#QUSA4N zs-3q8UH&2K)^V>P>`B4mbE?u7$}pdVD51^9T_8FtNytN~BM+lOZyaK_299%3Q4C(H z?^Z>^sP^jt3##Efr|RM6o7wnH9;pZ#HKL5fsQH^-S3|>3MlkRq1UxuoZAifd78~ya zX6sA#Qn|o4{E9qw1g^cdF@q{>z_U=}>f{4nz8b1AY2p~M zPNXH0DG-)LOi7y8_lqP=7sY#GAz+v4cFn;&L>NO-Bgl~L)6-pwy9fFDy*=M3xuM61 zL(PtAha#tahE&8*>GwWHf+rAhm`VK3`Mo!cQ1Rb1Pa$FpqNjCU7V7WtNpAR~YQr7C z*p32F%LX>~hd*lEA;%R#OkUXV1i|tibDLAd9fdrE-n}Oi+2M}dF*InDeTp4BwD~!A zOk=AKeO9oF1o_Y8(r|U4HS^e{5#iNKbHCCS3MmJAMuo6G{vLzucijqPanqEOh4Z&O zH3`L=E|DxO#lt$pI6K!B9}`3jbJeNJ7$NI*>*)vd)NrX07PUWlJ55yvS(n_I%rJA6KFdN^CZ;)eq)mWJ5{`r#dXt{6f|k9er#PX5ulmD zU*Y_?joY`>Ip2R&f1C0KcKxY*r&bimU|sC1*muA|=|(rExoYsnc3VubLantko0Pjo z!C~T-Cj;~24kisLVB2K3Q;!DdZ#DTsL!Z=(K0Iu-67ILTY_vJIwc|N{TR=gJY)y4( zysXTgM zsBmja{#mZmX%G3gGT9p|?m|?u@@G|m+1XS_B~w%q4SYV{oRaZ~>r_e-WPtf-0EQJ; z2#-oW5h~$Rw$vAY;%tf2iwPHlmTn|dQdZ#`ichL1^_@$&N1C6AKq=P&*GgukuV3x@ zk!T#pgG#RQ5(zY$8G6(Rm>|+gYtnLfd07i2dw(L9Pc-FdcSZ?ZB}n1p`Qs)h zZ`D|22l*{%W~8P;`})0CGcxbPrGThUpRlY9wMP$>UP;m@E>}n)SefjPqca@5d7lZG zZfXQ8e!5)`J}FDaF8K1a;ou@JxG~UMl=nm#&xoJn00ynh` zs9Ra}F=H{c)H7{gWwqq9PwwH9v-xCPpWM^`iJ?zr^(U_IvZ-1|6=j4P?x{J>9+ zXj2&pvmH)6mjTZ2x8eMLf1?Jc%IZc9&M&s%{9^wn2B*sEPa>SVrW-i(lf&6{ILTZg ze6mOt;5?YO@QIBkdQ5BvTNEy>P*yi;aPH-k8lQ;!_9q6X%IZ%doX1;mc9~P*s6*qt z)f%@fAPt893IODUtXFb@3NGieSf@sFj{Uk^nk^&@g=oUj6+iD%-7yn~zp`dYr*}t< zmR^{!_cuzXXq)9ChKnAF@-$C$D?3@#W_B{=yTbiU$23Z0sW$lAOe`^|w1aR0O&N;R zMVdF0Vq4auT6mbrq>(Zye&n23kIb}$uVIEO#)LO%4ueBb2pIdG6*d$q3(#*MKWY2(t-WZ0QbhER6dk8lE+NGU)@=4c6% zmUm`ybkS$EpaRUf4p7{T*IYBfw@DKw&Hu~AluRXj7ZesgaaW#y9=tNH``SCzw4Bhv zJ5Li47T%Y!|79U*v@3Pa(ozoSU~)_n3rXy*l=&WXdl4=n(SDO>m{XopKiWTiKk!O9acywWw<*2(e zQ_w;+UOg$NMckvHil|TunS>}&erg7^h{~vQo2Dc0T-F1x^2zAt5*<%F-2u*#a#T_6 z%mT?4d||`0p**$TMQVb3SU#2HxJu zXhKQ+KhPD?;K;51NfEfG7)^Vh0_gSX_|Y2*rX?`AG=>R)c*8$wuNV?7?UBZ?ONPTy zc_bLJ;qr9*Wn+TgcDk@5=4Aa>8eJN2Ls3bON5?H+3~5x$1P4%~RuEtd47G8q-6uU5 ztQehQt(DrwynfnkOdXhDe4w8}sg36IBxe^+!>3U1zUo|Va+*P#!gyq~Kw+6|s+Rsi z@n3^7DwD+=7ec(eMTXG!6h*THxgE{C@^oj#@+3*6k>E0xto>HhdR}%9>?sV;2!8r{ zS{qMlP59;Y6AgDzfyLxn@3c6Y41sK8c^ZFKd*pLgo_21+E~#VDn5`M)i9HBR=7cuI z0G?x;W)0}uHrDvP7k7G#6zA>DN$}hN12;c)%xRk_Ygonx;{<{ZEf4B*?H)80og5Pk zu-g`Q8wpG>#7qTdh%CD!mts%;_M*7yghtwe$Vxg zSL4vV&~dgNf{n7oIOmhpG?6`(28V~WG9_7p%y>$zpcC;e)r3=?fdJ)KM*w8*Y4 zS)G;FYZFGkt@<+Ti#CGRYRW4q+p`Hf8Ezv=8-rFre!nKBXdGjGTcIE^wrXqb8=J>!uMXQ&*^QRs zK#pq-D1JAovEeT0c&7f5bZsA`So?cvu&O1lsm3t{iP64#RP*A26Lr1zpdQPOn55}X zWXE%|YWg}TcdJl@xlF+JSy8zi%F?S7rup<~OL$Ri0P$IvwnPt1TS65!ZHakSYfEuK z0F6#UGl}*$?}+>>7OP_z1Wm1Q5K19E(+_Xcep)^Sk8cbPUo2za$B>=OwpCD$55KnnbrHa zItx0qde3DkL;ji1r()LTi$2U3#&~t*%Y&*Ruof0YESSLBa=&21{CN$_l)ueVWE{*! zG-Q)k4lgM|RFpfN+@ zrYr-EFMG0VAyT&y!_!YU+tXNjBfx8KN}R@e8>uEb6YkNvOgx#HOzozVW#=Y)k*V*{ zGe=;MsD?FAOsS*ZXBJ~t&!+YOe2F(DP-@J}NAWp9P-FfJX+4#Mc@~+IJ7`wZYC4|c z#cH6fln4=!ZOx+9HCxZvW*rX;F}zfZr)t01B))u`;Z%&c7oi>o5ZYuZ$QG;l4%h<~ z(v0qzBh!|`NN4f2V2jD>4CYj(@zDn;zNFP;;wQh7E5vZm2 z22(zks_(F2>S%Ot98B4x%FBn-g7yK_?&7Bb?8r;D4QyP&ORPiOku?c>n;=Q)RgSi# zvd#8X9L{kS=|Ul%&0T2;w98ndvmD)FKpX6PtXh%lkA4hk8$JiT2ot$fLU521ep&q4 z7TTr(jJZ)#=_FN343loWUA6Ah8CFw5^^*>m_3Oe+`|L(u+U zxnUO%Xjb}OeStdwhWW;dvF13A$TsmI!W1#+r z*S(Se7fSs|+#a-~j!@tS*jhw-#gP)M_qy+i33Zto6Q2;hUZyE_5jXCG0$XBJOyz`} zI4gw~`c0mZI!kuHoh}mO%kDSRW}6=)*YSRUmH}#jMJVP#2dyaThr^O}+7Y4JARyF<#@~$!H`vsiB?eMtLp0m_ZUQaQHF|fKfTg$tEIBQNb8{W6_^RxzP1t z3PsT1Vt|9Wp0uXeth72A4M`RFIcD=;CVlcUv*oK)ikS#mel){k57Du_>QErcSW@kK z-9wN%-9rL1K^CLUO(lta?Jv|v)z5i>eC_RiJ`39JHnc5@`J5bW+fRkJmVNak!Iy!Yi%)4Bvkmc|q{ofuYcANUZG+|&l=Y&IS`I=MS$RgT6Opc- z@pHJXP2*R~ci=WqjW-dXq@U;s+XgfEtv-h1->JrxWK2XwQSq4OuEZMLB2)&ejMZ8@ zrWmO0mQN5ZXWQVq{6=ayVh&XRDh_zhq|IFA5xqe2su*!WytkPLyw8ui1&XZ!756uA zRd0ckF)rARGzdON32l_R-&mKI`o$pW8!bxxI(G;-t7~QQ>#ljDmR@3C*}F;5~9}#5tTSC zEbw#9y5z@UDiog$z&NN>P<%=)tIZolZK*yn%GZLQ=(TelKUk-ZZWDf5tb<2iT%aBw z^Mj7k+Msw9M3?*~^B+K4!04IsHa+`9k**siPo#A9=SGqAHj;DH zG);~V8PeZ2{O=qzd#izF`=G%2KTiP1f~M%Jt1CiPawpUADo{WGA$0fqYHfz3b7e@N zT&9ZjLfN7_x%Mpc{3@;QDjGxI|Gs*eNTIS-0i$+JZ>E^xQQeP-)NjM2K!1twc;Ott z*9z_zodCDqKQb8ArpZKPBUnz%XQnk=0yA8{MH!QlhsYu0BMJ&AW88tXd!6OoGA%{g z3BCP_h+PAcfW@N}8(`D5`EHYt+SJ@>d4pBcLMF&q-@MM*&nE0d>X7S8%HqwAyedzw{ zKBZzlUF8umFEju<{f)m+$zv)KgeO&2o?ZMNw`w)gQT$FRy7d`reP|>bI0f+=^tDqG zzw}|AS&h7nVws;YznJl_yVYl!0GJ5JS=k;)bT5RS?s9zaSPkr!0s$r7L*KYe5VIzY0MNnEirS zaQ6%1?~S%u=)sl+LsT59qU;zXBTgfvO*qZWS!8f+%;l<*>n7V#$ZkX-491PLzWH<} zm9wMWtF&yA9-@SfBF;Kx+Mua+Pf15a4@XzbrSX{}xyuaajwglBHb@J6azGXiep6eG zmR5sGiP>W{Ra?m_Bw=}(SB8ziQnJ4(Fxd4o*mim^$Nxm(Qn^xsU7&hUuQvmN1o@P% zti_T?SiW%SO?yqnR?kd*Qp}2z?yPIAdZDgh3{og`b3SRH`unY>C)rUv zk6C7_IR*q46#J6~ z@LAPI4`fDnFrxT548s%T5mNYhl1CVIZNpIeH|bw-GQ;qGQ33?HCs2eC!HBdC!?xY_ z^BaaI8gea@FoZ*3(Vv1zI2%CR7eL-CP$3}xYLaKDr~DCF_FIL#Qd@=k{mZioY1@>X zwpA!78CqF|GP?B>tMCH`dlUrfhs`em|4de)rpt4)3SpZ4R-w44w;P0!?T}IfC*yFe zP@l{ygr4DOClN-Q=URnN4fJSz9%008_M*Es;PkN_QFGb8*eEhk(AfFOlD5(>JHVEIcUq`6>;D{~P zI#ofNe$WjvCDupA@-tFL{O; z1wK!GQa#v=57whOG6bU3?$8#-(@ z6VOC1OJD$(ezG8JXCblK0e!Yd!eWkFRbCnf!LX@OezpEw9Rlx$s$JIYA>Q!4#`APr znU62=id>mfbB#7@iEm6csJtFuY>=q#iHtAlv2BF5D>gmxm#&TMX7TPX%uhS45a3~d z7$S@mfUk9a3ooM!-txpe4fn`C99uG2f;{5gnz#(B6Al1SdS{BSg+ZixN(8<4-lHJ2 zfK}5j@WwTXMEZnpj1{5MH+DTqhX$`@aj(@GZK6z(M8WxVGFHC*`C;W@h39{MRvwo} zpEp)+EWCJIls^B&xwS6(Y@B-?v^{46C>2a()|vyh{n}VI)4-Yc((Zky<;s^eSmy^B zp2KMQjP;5KgQUo~uRcphbG)1>zZsQg) zIky$jwpG88bkl=WpPMG4ufrO8IEGElT3Q0DxpSQ{bJY!pk;in#6j(XFX<^5pv0~V{ ztyQvWF)fk*uvs8{6i;VUXRgPxX0=m4$q$CrZ_wzLjM55KIc^2CLy)Nb1nB67?=v_!Dgbs3sgYLS85E)& zZG($Ci;(oeUD~swLNkfSgM6uxIiM?hX!ffnZ9z`C@2*9zf!ZCq8MM@5+xS`SuUmQ` z@N`-wsj+QUx-_4s+ z44k(3u8t|>iOWx3tTneeK93WSWhwj(1%RgUOq6{RlHPB&Ah=iw#$*-_5mM|h^265S zAbo9A*`q<4=HUoeA9e__28$;FEaZ9cwfLSAAAo1{&^!#8Ph|U}YX_BCPQH2sG;QY_ z0hP};0xItxf$2C`Z9AN5_7#8O|8k=a6ole4#<5rf=Ex`k^h!pbJ~b@Mif& z3xel5WLDS8tFS6^>vI=b?Wg80GKNZJ#{$%1qnele4O7s5A7xmhzlg!| zcWQqT@7Mk!2!N;iJ&NFRAA z2t)ROdu23c0#`$|gYQgk@OuxBzo~ABs$x8W1Fde3z#GuVv@g#E|Y05_W z)NiLxBk~U!PPV(phI7Z9))1qRVe&rA2LWp3to#~%HL%!Pf^j}0ao}o`xO2pwXh~1{ zsT`?KHxX%7z><7KSE=$V*||Kv1u1+m+kCLE{yPdB+$ibi+gN!l6bzCBTCOQ2F)vLcA=OfaB8jSgbP0?EfiZ-48x7&6E|wri@P#Y?QOid zoypj`Zl{*bz+qETxJldfUB_0fhRWdRzH|(#R0SGE?KHq+NA5FMKQs@s>OnTb9I`Av z_o=Hk%sg@b#ps9vln>ZrPm4BG(q!?dR2pKD%*Qe#(Gdo)3sQzy7_)3R8eh%w^qFQk zlEwEc1ST%Z7uEVS-=5kuU+mL-D-`-1=DDy#joNDXjPsoL`sO*-WOEwQqWu^mV-%Qt>mQ6{PL8=?iZF)a` z;`DwzOmEq(agH5NZM=bm3N((EYs~4JJ`6gE1G10k%8Z{-l$h#XW=d-&rhPMUZzlVb zsUoVIX=dU;@t1RF;$sjijRUaHZaMgjdi9r%%3Kkq-rheE**%$si8#@kh@S79JUiqY z85Jp|B?ob6{Kb)aNqab0#X^DYZHi^%_EsPi?9K0h{Fv z7S-k_oQQFbC>auPx@Q&I(5{z}-EoI=5PzJ#s1UY3e_3xDJkqoMJ&&D2O2aq7T1oW@KQ)5pSRtL;F5gupjYhT3=7 zVcL=5&&P3K6@lZBp>c5^$Dw_3;^MKub4Whnv}!y@$IOcQr6U+*J`L(#P8n&du!SYM zcQw7FcVJ3nydzteUqdZ;8QyAi_C^=OR?ZS3B>LTj6n)1k4vA;%C#x;fQVnz4 zhy~>j*(NDPY>qLex@02QAI-?G3^&5W9MZL>q-KsSzUv|VmW$r-z8ZG`w;CXqeGeq{p_6J7n(_J znrH>I#0tX;WRVcpk1x&v9pIH}#`ue&S`1@n)E){Y(KK8TO_5d`Xl0LDfq3o~=c${O zzi*zFmA8i$c>UqXoo4wS`#tqjwZgD7Mm@?64K3>(SQud)P#O?aQ-Gd8s#1TPYU2|P z;FEawW>lR-o>5q-NXuZe+YYg~y2Jx1330w880U>=UvpH(! zxvv9C$ZyOlMHnX`%#{fELXTxbNkABkX@TrVF`5FEi$SR{4BeUzNSKZ31mpypQTd4j zx+AmEg8YlGY5GX{B=G~4U!%%B|B1wOT3xRKt~co#Bbr2E&gh|Sx(Klko}AH7Iim;5 zJZzWtdIfFj3E?TRZkmAB{%CRxAglSIx1FAKqls$Vk{j{%nY2}}=Eq6ujoPs5 zd(X9|rAY}ICrC~f9ULJP;m=0X+T=Wvv`tRjNK<{`2&Ir>NB$BgK##OTYz0^5U{r}&9U zhkQ&OoA=eB>fqEVG&JB+i*4n$aN?Ce^=y?3gz8JD(h(@(mYc4vrdW;AY!RqcW@}b0 zt(_m8* zC%VM2(S1rV5i_X%b^L`<&bjuq61H*m0 zq;kl-P4PUzL!k*m9zxr76HKe6E{vI|O<>US5E$eVmzB9-U1}PZ=V?xh9T86=$+O-~ zU({-9w{i~wqAM{3=tvSBoWDp6&_Q*y`}2nG?ECpbcl`DLaYJ_u2^t482%FHIkG>9S zsBm?M(4Bd@EgRwzC`xwKQt{gT_9N=fjlHGv+O+zgGIYm#|H}#8d7eUa!Y;73dgIE6 zDHpYp^FMyHWy}%qPa!&eJoHx_TzQ4<5p~x5FL5&9vXEfG+R2v{@4sClg6u4)tR*r- z`dpdg;q?9AIb7pDy;A1bwEQjpN_R?^(vkO9Qs$_bZ=$=Dw>Rr~(!J~?@tElasX~Ae z4olUbhZ*mB_pIU@G1;nc z%SfxD?(!eWR9J4N;$i#6S(3kYgObB!8_JaTbGd&knF=VdbUBql2?|hHER%|~Ue(0A zWKuaMa4bcRn-aRwzVMH!6j!xjH~EEL3V(NLv_fq zN);wte@h_myx-CdCATd3*wWz$5n(GYsA0cxN!xRuP~cB^rNax&H*=rpzWaL&E5wOj zWAQ$$6lfTUyKziZ|1XEvWIEg-t^Oa*(X3KlRjiA-+x(Vv#in6cdr~+OZ`SHR(%QJ( zMBRtVS;Dc=F{;U(YU~&)Xa$p=HbpgdN_b5*xs6Sv8dGqfZKoP&J5mhM@AaCB=0=~1#~MWXfT431QiViG!XGCArX^SF)MubJ5ad`l(|5ZWb{Q_CXmZy<5#8?Jr|~J$+)|=kRc07l0Tf2sV^v_?g&_0 z9ih!%v+&-8ole?*?GEoh2eeH^^*+vxrWpE_(|1!el|}&xsURo-H42;-iD$Fn)}9zA zbe-8HUBEg#$K#nl=@0Qh_LaGUTf;Z#wJ%sL>w}en&>;34+!{mLv5^dq5^;crU&-6C zqzzpaeMR*djwvaj+yWtRbhfXh<7tJq@`aZ$*h+T((|Y(8ffg@h1q+BF3~2Vk=JQfj z&{p`Un}>M2)2W(5>QcFGgA|*&uy#M|W-1s3DP<0R(R`D_am^T?zdYT1XexK?oYDj# zaCb_|>;`>B*UM(O{bn8(2}c^Kas^(l=9YOdB|PnU|j!Gk>&oPdyxDPUhbLDXQ(-?#A912;3PjY8WGHD z6As~Q#}TRca!RH{Ia|2jPyV+*eKCK-pE((9t6=kTu#Hu_Rb1w4ks@P>qEiW--tBy? z9=cHr3~N)MIp^fQTTDuRJR5eQU8!BXuDwZ}L+Z6SsM_t^jO0elD5A?YJcFm=+*cln z=?tq|`4)w5nc>Se7-dVmBT)VhePgKO1O1pOJ3@=QovwIVZ>Ge|cv=sa zb#hG0npe`xfz(uJdkrL@ojg%%vKPs5(#1^R-hoq!zS|Be$WbFG+Z)H6`R2}LRc z$?eRRMiB%tuSy3$L@PchLVGHhjSe1YpI@x!;n(u1ThQVEWP`#JeTwb!Kd|0NNkRVY zc>f(?(FaDc43tCtQi}qew3_8e6~mzOm`hWZ_kBTZPW;N%S#%yjTuRJumCxWPE-j|G z6n05mTJR;f)bGrte3P}twRPfB-X|{QDRC(>DlS##;8Jym4gl5$lr5x|`Owo{=5weg zP;b&ZHfha{@PyFrvg1?fIa-se+qCilb3@fFwTm5AS*0!%KPn%d)sDIyUd=VmW_0vH zb+l}FmSjsmunfdage)zd1Pm{=Obz@D_IpUd0=I&w}X z?qa$|Mf3a}h$Sf8GwrkJ$Ls2`27{$o&p(SQycRQVO-@gDLcq$TA@FO=KZEr4S~&hI zJM;L2*W!Rtl`eE3S{{Dz_^+4bQv^z_6OQzaCswTsLj+puz5qA#U7q;P_<^xl<}i+n zGLJ=G6z1sPrO}ic*MWZ2jdj)Zkf+w_EqMeWx~%Xj6JM`#TF5XaL6crC4kZ+y#Ct*J z5D7ykWZ2{R+&W!gy{~H-EJVk}2@4G!=6{$*EQ{($I-%qt=^^A0!`CdD6ixjWC& z=s*3@OZ0|n@`l&2&hE*2L447miYZK*y9n0I1p}DJdX5oLJ#(RGzIA3Ux|zM6xoEe9 zD6(n_0S1xBQwU6qAX>K)?APgHn_6o$qL9v12P3;7Hv%3p?^forO|>|#a6Y@0M>-Cb zT;XFp6?UidxGzH#WNyAJCmefrurvInj4x8tq|^MD{*mWnK@$bKQc+9PM=UM#qdhtj zXH+T5pBHoNI^-UtdFe6Hx-53}o`O8W-CHILW4KTM&~d!jF(D%HUPfd#nE;mT6Xs{@ zc%u^-*ghGZU2Z5ho^w9ow!wvG*nle*x6!xU?6Q{~VBXepge%)r4bEY_>y_*a+csvu z?07T(N8lOsYHq!1O?Cu@Z5q8&Y%BDLk*uG& z@#Z0S{cyomCQ^Y3%2E-;<;7j}+!(B7XmFttmTJHH;&%>Vi2Q~*RnyExwtBEPMuoZH z6uFyL@@C6;h-@h{yV?yP4lJ&x-II7RVGjZGYFfU} z9Vs&6QB}&SN4*6w{E~N z74iC`D}-lnxWV5UAi~q|;;bE~c6StqOlo*DN|G?3Ys1q}RI5Av5uWw4 zIAPcQOft81%)2(XO>V60eyK$j&;d)B?L9AoujLp-B`psBTid&=#bjX*C)LX6JKE6C z@?NI-E2FM9WRp+IOm6+lud?V-KEQT3HhkgLgL+?!SlJuBM(nK;nq{?vIeQS@;6%W2 zUJ(K(-&3FxOSUv4NYIK~F}yL3brXhv8=+n-$oKdP3x0IfIP{MNje#bCM9h}19`fn= z@ku+|GzI+?j@OfAfU?4+As>Zz-=>W;D7W-Ng`owNWWWMc?1T0&rtYv^>pMQ6XB2bt z^HUnim{rdaNR{BX+@+z7rBq2T)whE1Wicfm4zF9+PZ887n`TKM8?&UiH;rff?0U86 zg-nQ~E#7E9$r#*37R+%F$!%vt^jMk%)kYp6?nwocXw7g%b_ohQuw>ZDFehs>U)l+K zL<4YPim}}kUtkL7v#OAGi4UJWr6dy{x%P^3V>S^@f`L_#_$j!p%n5OG>R37a(vgd=X#_HAP z@8QdyS{%iB&JB%CJawLP=Uz1ejOnOGF-k;F*49q#8|9feU1{@Z%>?>Y1nG3|1vdz1 zd$}#!(;;jjiQ?Po&+3b}T3u`Ne|4n^AlCRVu8msMCAuTvwEO@qn`BGP{~?^r@{C<-gMBY}AP_S5s}M z@meHt+todqV@O4#8XB*%G{pLLcD`r&UkH3r71|vvZco>%Bv#(C>BVBU-oy*hVsEJv zj5CMxREM2g=4#S2Kuf#YY;1*+VIAgIcw4#;l=S&P{Ltai(`q+|w4a*)60}y?8;T|z@HwB8m&JUl7lV6LLJOK@VZF4zekbHynKJJHTX(2|2n=k_CTvVAVe(y z_q_eFW|z0;w%4n`%VeOtcijT8gT{oYuMHqQ@&y|oG^aG{R8=;sTU0J7B9vYr<84p?#HH>bKp4mxjHz3tB-aVolI5|(jnhD;Lo%tQvgfnCe zb2~Z5G?{-66MP;y)4Lfnm#6n<6Z{CQU16pv(~)|4Up66t(ouRml#P#;2y)3QgPksj zn;bJfwqyY&`o!oRQ(YYTVypJS?ERr$@A4b$|L&E?j<;#_*n~99?A=?=v*!RIIF?{N zG-f(EA`{8L7#oo)fDuLV^hl2t=qyKJgV!}+WFF~~G2op}#HXX~$}~_AQ7KdSAnab| z0IF8D+BOR6{wt5>-?94doNc9AGTFXua$Gs1O#&RP*gHPHJkE!cF%9=lPAH+_4F09U zo~YyFmx$xkQfPFPFCH(@(aJ*4u_6Py3*7cxv6}+ zo@RXV__8x*~1EeAtgu~_x6oR#H9?hrks z>8U1Q8@bE8`oy(5-&z&8#70&B>?KZp@8tEpfBw0D>Ff4~(RkD1+z>Cf`U#_BvB`GU z5{BZKvst)hwL-z^5P^mFG*T8MRI$7-H=f)p=<{<`UiIsmYN}Y+h7W{l(56p5T*QZ{ zh>xsWsI=H2IjSUY0D4ack*)7+@D}saR30RUp(@B(-Tm*hwqYo})k($&*1Q!y-(2+; zrkfYj$=3L90P6ba6%q0~1 zJ{^&zd2>-mFs?N39Bu8xtdnik{5h}%6yQy9^YX$)lda3;xABO23>mXFlRZEDP*Y56w2BTKY=n-ja` z+vu`rIa~iy%j?9^@=@Dzu!+X0Xj7nW-U33wAR~%`t!6H$i=d2_6aHVs)Bur65mbbMuv^*!}PrP(EVivaPRdjd7v4PM7TC&aih9nrn)HZK}{JY z0F?JrOa1D`OVHP?GFcL1O2$(G{-gqaJr$sQ{I_yxSIuwa4P$zBUH5Giq|lbaLn$E~Kr9T--sq2HSb-aZ-z`Lcl2yth78=IWDZO`)&6eo^JtC5iE;zrMyFhF1 zZ_m!3oS=bSwt_y@cpvL!N?jc>F$5eizlOwg73J4$D;zk3R((i!egh~b`}G~BD5F`jw2?_-@5 z8c#wt3mJi$t;Ea%7La%Mci<~y<6INnii8b7Waj32MT5e?C+ zo-76)lqc*RZ>ye+>B{}R>iXRO%FTzYq|1KNKgYAmC;h_@JTuu`-J6MRtb~p~pX|Cs z8-Anoa1Td9))G<3$4f0yQmCclL2@&b2U!cpC%vTnVzqASwR&lDV=eThmvl!nCH>;w z>KIuB;Pl8Nz5V8oW8=k{$&}b!y#Z#QjhC13_(GJhh__8#4rZ*7nyC*%wDN>;32GW= zG2hBkRxrPhPa!uRmqKprNFg^)Oe{D_EI3Xq$Reh#X!Zu(nOO9edhtaUBjOQ8KuUQ5 zJr(?>63KyJ=piU+wq9={W=Di)n)<`C1Zz~}O7k*LP;S%}(>Pq~d0DZvM6#3jGACOK z1ABo?lZA2!gdU`}weBVOzMdRk|A+15n2Br%@aWBwa~6UgmUpw-T3sdITYWhkY4Ds> zZ`35V+B|xhb%Nr>8!;$ep)5bLTBBd*toH^DX2Z&tdJiB@a*n6P0=Uf4!Xzzr^ zGn&$_I8h+S^CpaUP|}nXwS!UEcyH?m9jlFbxUlQY!4lki{_DQ|UpT)S@S`&eFT^0|n zhtc}jh`@OaYDT12A=5o*rc)NNb zxgj+Q)X!47lzA}@vqO3f`&d7V=pi2p#+6Q5QMc5RzR^#QXy1-hf;$L79sQm-hEB{y zV$fr%ZI-y5`MEM;{YHAUe907I-{@N9P*M#B8Z6pU{Nna(?9cDdG<(vNlO1W-T;fcc z_R7!8T%Eo@4>WLL)_AG3pVP=gFbnVA<>9%BM>Uj{y|!*O*n=I*H*>6tVYJ0skF0R6 zp_Bos$%SVa>~KXPX>S{G14++duB8-(vL~M?3C6aOvA8|bTXk{VHmy43Ce5J`m;i3W zPmxg2devk`nnvqH%#^v}hIy^sMS?qCnsY6863T~+L1$eAr!J}T#6 z7AmoOM4EKcJ2aX1;E}77Fo;+!OYa9_C2<%-i8?l=`1Ll$raHyONJ0J=##bG1U>Mot z38(#QvUR7Rc|nt2JxWkKRsAX!MRhccT`?88pn5I)o4n>(Clm5K>mY}p<}Ot52%drF ztKA~hd{t_kn6Hjf)Ls(rIum=4p@7Hxn7w*sEB4yI?E{BadNxz?{Y$#xo-{JD+V@^@ zl>=pNANx$HWOJ#3i3j#}Fp8D4oWg|Av(2Pd;XSmUbdLm~UTER5R>U1QeZ@3Y{=v12 zEE2ZEEV96P?&#Ci&1bX=kLvW!E6pu6{8cM;93!3jtgiby%BtF3-KpPZU(AhK!LOcJ z-KF39t!YZBEB|r2yt@A`jV-!FSN7R8M&p|wkrOA`XN%0?@WIJN{mkJ?!3y??9v~_< zEMz<45%+r>kR-T7Tm~=H0Y*2=4-mo4*=B)F$%?Z~P0dXC{3rSx?iSKh&wZD?m-HI; zP){z+JP{Ui&w~!ily|6rOq)~|StRtPZGz|>q%f&&cBATtCCXGm(H7mOXm}Jp>y!yz zC^g(zxW;0TL(x}4xL(Z^)}uSz7!ohSeHhp@7*N{c;;fCSk1&u z2==jEF7S6s@QD+64c@C80Um16Rk89n;_=mB2~E@@7 z``l`)pPl?b8hEWH&0O7`L3Kfe8^#(o6q zPE8i}tNXW+*~7Odn5=-VW*Dl5YFK1gN7}{zC+4HJ7YWl&c85ioBC-m4dnbdnB-IIM3_gQu+-CIgF_p z7lgEGb#G4K4|JB6UD5yNmP&*M!{(=BMr|)l^}N@&2lZB5sSipySNR$o0VE8qK3Po; z2@S@XMWxk>7~wHg5cEv?{rjj^-1|LND{GKZe_k`}sTv^(Hna!h)WWn8<*}=I83{3; z(MlU}p&3(~lXLUKcP`9qW~)-cf7;)*`k!nd2|-qEkcEv!u4DA9z2PO);z9NTO`1}? zIi^Y^-_87rpZ)}6$dhj7Hn}Fb{K(w~3M|<+?lxvPENsdYs#ZQPo3UP9)5a|-mmS7o zFg>x(U0RF@7`v>QmD%Jp)!`v?i!Q7(F6gdm!r*ew$R$$s7*MMp{VuAwby zIlGM7=rn4h$2RltX#K~6D-Az$a?G~LOql6(pCaXAOk=PzRoA*Q6JN0lfi?Xr{fUS( zah|{eT36mY&P6c}RpjyzM#F(swqV(wJH)yW1dBAx{hr?Hs3T{W)YnuCC((KCU+7m? ztDdBK+vqGGil&=5Jh2g;Ic8~A>kS#}(K-3}M8os)m;i~rP75L`(a9N@Z@=`Jl0vy;a6VK$IA|tv)G*?^r@0@K=K?g`{OsEWZi9H2$ zi5z%R3nUiBsJmV|>#Uh^($Xv0T1dmuFt2>EW;XBjG1kn&aK(W@+VDyboXU%3o*`(N zu$wBp(ev#pncC$gO8BW>Fw?Qr!Ufr%;B{HP$-h^z!0mMXv$ts)-BVZeX{Xx{Q>j6` z(tJ{1ph1+*P#DC35!qX{LBvrCabhY$oH#sqL_WAUzbH*+b+|m=fw8w@dWmMM|9Nf| zQ(2~L;TP5xz(vsfI?LagUgDNU&S{n=xYxgkDSma#=sQ@>xT@HvZ5NADp_kRYQU<;1 zPN&Nv9WNJB_jNH);rOBS)1S<0p;~o#$lE(%4Tlw|5F9p0{`tjwH*D<}nf{ma-(bd% z`ZJgneG;Ba3D2us|0wET+N8}#brPM;nEpJ{y%IgPr^gD_#xi412sv`b?2`Rq2O1J; zoGIad%Ce&lx8P3g*NlXpS3+54r4*xffnr|xBfrT`=lw}Jal%IpJ~(!@U$hu~LD`o! zbv_hndoA-tQD3HEeJ;F+S!c&I+=RYS8%Mtt>*!@f{wL|b?D#%5fT zNjs{YKTADsf{|A%KQr5^V{lW?Y^$j&;xT{dL$iEOpkFfsC9h=$smxuy9p7hl=6+Wv zPNUbp==LtriQ+CayLgE&Y>L44Va$h*22#M2cE!`HLq+vkIaDhxbz=@%e^jg~il1t3 zKnscxi^N*583@O#Wnr3$mKc}1+-+RMCm|M*8@g@*9|9jgatJxfYdJEp7msuuVytQ2 z3$C*;O6K68!*QK_G`k;#>vq$HYHhl+?o^W7VmberOPd2j)T>tFR^f*g3Jo|AXBvP6 zsn^Ij=Ky~IE+Tj0q77@fXcOPoR2NM9{c@2QGniJgFDbG6y|)^nE^)w|GDo3h^Y|4`4aW}L}H(19;_Ax~w=4KP|U8*h}+U2~c%r_1g&PJ<+G z8#E}@NkUAE>N8G4=msg~rKIjGVd$f7Khx@GE=41X>h=hOQ0Hn&U0l_`KwZAXXD(@K zprPRNt}&^2_BRP5qzDJsX+`OT6hh02(Tm)&NTI=`E+K`INwp)tiA05B?^=x6MH-@8 zeGQ()@ou5k5as>q^=3b0ySkSItTK_Hkks2ZZ{?@UE{bV}UYeIR1?i-;W`@g5M6egx z08fD-!_?ci%E%}tTNR;-87tgRFWZ8VCarlSt;M8wLfJd&@t*+#CHZvwj8?41F2o7W^JFh?$$0 zAIUDGuyWz&(=Mt+e4C`B93|XraF8a1-?SyJvoE2nH!d7fFV>FnrvGckn^tjJSfgxu zu;#kIUy(Ub^8h>9#2UTPm)zlf(#};M6#0Zv>I|@{zA(kC4yID?#}F-2$|5n^ho>sh zs!N5Pp(fIO`oZ?;ycDE0&8D37k(D>x$bQ+#W^0m9SF1hmO74MQH05a#yB}jo%KA_< zhwTr4nxjeWf6VsyX*2F zEW`R>$LLEE^kKT<{1O94k_bm|eHbaNZTke$-G@1WbmyuQNRL+$=>*cdzwxaH?s&yp z|E@Y%=F9hg@~;kFdFR1T{<_Z}b#U?|JC5xnoH*KKY8vIFkvd_s-l%2`UyS8eQ|Sji zX?y1na?J6hH87Zo#{-MD3y=sdppuvyU4` zW-wm0o|lc@uXKd1v8m4DtgL^UakqO}*KnGrXrKof|ed5;=gH|_rGI}PTuQ5xMYWIAM- zO7+AZwMw2@E>7L94kzd6-H{JX_8vE9U(D5vj1sgOT>Y~x~#?)KJ z28U?j_kerpy{dv^uSs0bgR5u&h|MXQXtH3T9G(iJJEnH~vr;*Ebyc^VEXrxhTNTEq z*pX(0+G!wN+#GhyAXI(5NWuMl)#YLvsF7ApZ_TozmRJ@_`%w_hfF3cC!%94p*#Ru$ zE}x-%hn6WAjJ_@I@ZKZ2G)QkriWtIleGr;IFvzQoUqV ztInM|#o9}>*D7npxtI=TH7Mbo^lGO{Y^S#mEsIk2vPoFsGrz6x-k=djT4LAMH z!Zb`wm;~b~77XWGtvp@M`kJ$&G_Dg{B&G2L5p-H0MZPuCsGf`}t-i3_t-fUTutSD@ z<+XBBi`G+P*L?Vp73uKiby?cXD^g7O<9n!@?y9S!G<)5Ey~>NIAJl_=M$C zH9x2K8UQ`P5Sw-1X>#ayGH^AS^jO*DqyM8N0G&Oh3iC!)gTEpi@ne5v3iqzX18P=O zB&?DqDiR2@);#)_q?yMioWg{*2$!{{#8rQnWbhYSWIChDV;nb3C>bc7VWZnpH0R%S zx_ipd6ani#r;!tEyT-Mh<$KE99pP1VdNQlGG0=NejePWwR^cbHUQ4{Mkf3lw$A zGJ5A^eiT5Jnhhv`%m>=VRPkkY>Z(ni0wlVvu!B>R_kse|L(m>g7$>g_fW%- zC#unK?6)u$c`xMvN*&YduC8VDlg+TPehkTPiDojmB}3WhWe29fuZeoYKYa9l)c{fV zsd^cy(^?ORexE&xSgr2S)Q_nPQHEkEYAB))6L&<{DtAplTBd$^41N1{QSJNd+uOT+ zt57+n0t*!~u+8amajA!UO;B~_rG-WrMG8dF#s2F4-Y+X^!v)p#+NZsj1A$NP zF>7O^D;|$)FMhtFxjEtLBz+ybLt8ID^6rnF^1oox&Wy>YHAqM^a|6|Wx+i-v(D24t zhJdMhXCJKsilLxc`KVSEGP@dG*(j+RmM_suvoNTFSxS^c2VjsUdQ?xKlSlt7$e3`}4b-Ns2RZo*lGx z1yUt;TftWNQ1G4cvsKISHo-olmf^>n*R)!DJ?b4d8`Uu+?XzA#d(QV=0{fpl^QEK_ z>$&WfO;H3(g8OHn%^dV;z4B3U1A%>RqgG>SF73pM1LtaY>`p;VuJkmmW8_Ems@OH{ zA$_l0bX9Ula6~ptC>7q^LBNcroMapNc`xf>K@7&4viPhdy>}tS^24@D?&3pWgX}4W zEdAgnngh0IbLJGP3s}7DD5-;5PNB-SoT<)WvE7|P`nogBAz85}*D8-E#BAR>8+BUu z{o3M9r<90TK=q~)EVnq|2;H&2JbblyX#uA2JWW=lJwNidFr?I&3|~E?Kv5zl>$;pK z+CL$v4$cb>F>#t2a?OgeAWG3VKofu;gIW9D%14X&&T9pXQ8DZdnX9?kJ7hXQy~O@( zsh8$xn7CaVKPLlmdlXY=;u9^?F@b^~2YMDG>#!~SjuzU_p`VmkT1W>zP(&r~OP%e?FGP5mjHhD&Wlmab@(kP##hm;aeW z+z||kFbq%^>=NDQmZ6rU0_QH|cEN`SxP;=DYx7q6&#y)oGCrULbwmKEp;ZsFyFX92 zVc<-P1`u$fZos%lfqZZuvm|DOtYtpI((H8Cd+v9iZwqklgui#5f3lADhEk-PW0JFi}m^m7dzmJ_D^qp;@cm(=&WJ)pr2n;+Bp3t1rF+19$H(9q5X?TlyD5 z#qMkNr9mb1&Gc)n6#2TC>DOVPjaH{#aOy3qU(dsQ^uYQ51-&hMGOLDC!dbOY9e8iI z$!dvwIz`nxrFWG+$)+vbxLv(h>V?`!6x*js2Pp*l0zdgl+3ab4kMNlqb9+z8oHs{0 zgUpJFDZZ_)znx+#+#;)Yp$s=sG}{cTtY${P`H`&q=9Z#m@y_<9Dz;py0(kQpYcJ*x zQHAafSe(qZTX$hLMXVQcjgrzfhMqs zJDH|R`duZxYc!5L#Er%Q#g6# z>}5d4n8D}@v&D0Kyf8|Y4Nl>s z@y^~0sz<)_Z@;>?T*55DrqGw(^cNX5`_Hddu*ZH)!^RMHVM4SB{XKJ~mKrfwKy|Ro zJ}-y+Aj5b`n3{H-reet5e82mra@)+Z#SSJLLu| z;)6JH^}jOPuybZE{Vyx#=JFco{>};*P)k38m<}CQ56WKT%kTobTJnl5&ivPx>=l;4>SEGoxEnOX$uFqx zmVK(Rkv#11$j(CTWVka(qycV*U9j>ES=BtkE6r#arQmFI-aZTnelQ8>9Vr5TsRbR5 zF8RbyegRf^ThozTGOUlBMygI2=heq%ymhb|^Y8ud0iP!LAVS~ZN3I!(iN`|UK!I1m zn5cqI@mz4)+Yg4q1NDkc^@6?9d|+aPsgIW**_pAiKV9lhVmEP^FGmq zG0Q6kiuSt7$xrSC_s^*>+YR_U~)+>Z^aD7jMp^oZ;&iT02?( znwd0$aJonS8YT~nior<`_!6z(ph@G(z>|9`cF*zZ5$q26@E)-fj~D-*Ui^Fg;ydZZ zcl6?1tRu>1pMkE~W2hxyAdbts-VSbY9Eh1(=cBxuKFuA@;2x;-s_(!i%_%t-rVIG+ zE#oq(|G`7qIg?qq4so&&DCAZ2wzs_Too*@NNuMSnMu@~ra^LB+Q|wk`R}1brNu!O2V2?CkZwG-@MQk=RyH5saUK2mIs_8A`d?bz@rhIG&Mqu z+I-k&t|I(GLtM8~OCb|f0Q+A`j5;5G5}i2yB##7PJaM(^@Kf)6JpMsgsWH}sEA|QK z4KB+IlsAq;i6D7I^c1laJ1|{y6{+Gl)NFek3Z)i4bvez&H!c_+So`h0r zorE$faQRMkHLdlHjw~=~ay}yu;!O2L{Bvn;E%5$n@E*Y5uczuWK39%A^7{4-%ax~+ z?e2HL)|#l#)KmR)snQuVk=LU)@jtS%qEu;ZTa$|>Fcq;0JQ)cyp7#VP z2;@3caF#6aOQc+FDDyaNS!Hly zE3)QLWRQa+D{}~=8)*7awnho%!yFppTtzeE1nmW^fvAMd%uJ2Z+AP^(6R>P6CkBdG zDt8b*Kwd#-tq8FkLM6C`XwFpmGKfTxy3QbJGgBgrkQz{3^IrO>ws#)NvstaNq1`V) zVUl3w-&uU0WBrMi$=8AYYTYhi$L$xI#IqQT2AuG`h!W#j9x$R*^(bua9H_QP?jeYx zgLMWR*7cUd1Q_DBViYbtpzr%KpbE}Ei53rgcWhO8mk1dee*nblP? z9BM9C@##&ve@bm&Ljh$la>`AEDyAJa9T#%dFUQ3sJ2atG?abyxuvf@&I&jen{t{ei zki^GWGc+_=6@ye$;Ch3_0i#fh71+u%MPVlF3((3l<)ZNxq4y8pIX!XDL(I&w&PkXx6zA=HKO25KV_7&UhK|2edPeR=Q4V9DpY0PYEp;y&A4El#te ztjNr1MTX5G9sejyq=i6i4ez|sPCs>X$7zbRs;p_ZtFN>n)~e=Wciv)M+v^^NL1*`B zW~wzbNih@_`MLHj&VlEz-hajsSu`Q{7QY(_N-KYV*!N}=(^C;0pq5BlAaebD59DDI z0{fdywZBQiGkb{DXh+43>08aJ)4w$6dZC~!tdndgdRdOEPe+jB63UyK26O=uDkdwPOD-0&2ixD z*@OX@k-a#mPKd*2zF={{xrOSN&mso-T(#$?ohF_J(rg3m(=mK%%p zmLQ-YyR%|>vl=m3Q9u0mT7%Hy7t1eIhQ;BP*x?($SKRBx+5hp#e`fuK=gx=`k``)j z)%x?)l3%F#wtK#p_2;$yQ)&_SF)lzi9I>j(M_YjYzH77_^m|`{=K3+t3_XmFst=A2 zAMTjMtsSa?&0->N_90nRRTEvNU1S)0=$4nATwX+ZmFj;s@~Z!&5h2ge zn=<_-3_W222iCa*<~kGKbyjnD|EpWPm;VWolZNaQ& zDL6(#yrsI-%lMmGgQzC!6d!pBCyyl@F%n4KVpfV}oUF@A8peG=+F_YVGZ@QY?>tP9DVN{^h6#Z{va9-|r|V_0bxQ{o#pO&Ms=kId+}r%RlkrNpY|& zex1jQ|5G#Wy?@f13;c;-9r=Lh`e!hZ#reB|tHYErrCn?>$_e@5Z^; zYq2#gKqk&DK+1fZfl;gppaeY+F~nQ*tkbRKS(?)DEcv@UyEaG*y3Z+Uo?VkdQwGSAhMgP#VpK4(M0E z#vX2Mx1%R{mq7^pE37o=)^Qc8frOMX8PGY(#wuI;FnqFvTE_hPM=50oMoB8SH~in$ zRZ!-Lw|q=(T}LljBZfXw)Q_pbZuAX#Va9Z7cP0n_yU6#rNW!hHAs;Dv%WwbMhu{9D zZ@l{6^Wqf3W!Hb|Rj>HWAKm&Xds!X@(@%U-5ieY0%wn5KaO$=z+sGD1}&f%>kH1Le*P-$0h&r*-Kyb?RVUq zQ2ve2-*v^UufOWHCktiIf>&QvJx?~f;f4@;BY^CaZ1ifE`6yiS?Y|e%|GV<@Z{DRM zx2{7kx9#Tpu6pyAzIff$!{Cy8KY8UV{^8><`OwE}E_oDWKll-qym@WO-@owP>mqSQ ztS@}O|A`k}`j;=e_Mfjv9r5)~K5*4H-u~X#JXam@D45=3vTj&g?Dvo9=UpTY!+t!Z8nYZ2aAg+dGugpT9V4oHez& zA((mGGRW?T9`_GQ?XiVXDpZb@os!A1bRP1(gZKQD`ut3stzNq;(8*|c{%qYl`d4|~ zJ(|Ut6UMbg_{GKTjNB)alHH2AHc!4Gl5^y+`U5?VK5z+tkM%7DN;SGeu&b{R#g*Cc z<3luiJJd@^7!zj4d3F6ghec%%I+Wf;U78mDNjA^^dEiN)6e*^ zAODFx)$&h1ea^W*_0!M!nPIg7D!eJEuz23E+6Z`S0-qD$UnTITht(2a zKbpXw8dfFXrxSSYu-XoI**}_~i{}LR+5|p(Sg{~iy)%Jl53A!;R05whtd0WwS_01+ zR>uRr34F$orRBW(s|5b!uo?i~k-+7^`R@~01$bWq_Y5m` zdsSab;7<%I!e>_BO5l$Vs|CQ{xHr)Fv0-%t;8h7cV_1y$HB9hxNmYyzJcB>PGN zPl|@Ed@4}i8Hrz-z$XL+uTJ3OBk_$1d|XuYjs)(AynmX&6N3uxP9UomA54$qVfFXv zkwpsvu2vsU;0aOR7ZP}Uu=Bqs@VH>fm;O`Wx;^;l#sqE)8r_^gt|FCWygh-(#Mk#G zaOx9yP4C0)8%mM+V6*`E=B~C3ye06L`e1I+DaUCUEnxdRKbf z6zurk1dfK)F(mw80@*OaI(YS&1a1ffA4njP(ZtzbN#J4>wQ_%;z`~Mb<~I_!5GB7n zf!zKjwt74lSd<@s$!%Xg zgh`Rrqw1=?{J2t7GutRsv(^M{J8Qo^`>)y0>rMN*v3ArBW(+=mBC{)Jcw-QoXzoS{ z+y>@~xt51L2zs-x-P?|jxk07g@XkC>>wxx2sKLxjwMq5_%FU{Y*BYz&GkJbqIN9&* zoqax=TKHU)jwq*9M&0rQgOd} zmnqbq8({xstWPq|GptuPscaAJiaeq*`UchW)cg#PjtiJHezQ*mYMqV)iB*oOtZ!w& zArJZE{9yIqhbXGrUcKGu*6WF$B;9U1O$(u`=9uBpC5T^jxpSqfu|;Z4R}VEu1$x8( zo$x}z59)pS2>8+VGWylm=wxJwxjY}{CiE9mQtdZo!I}AHXPT(x0wk?Q_{J}21t}qX zX~sOKy8m91SWs(;GJNN3yW8u|RvMBN1WTEx#m{H#t@kp(23jpsG{7 zV!P!G6C4GXDTGcf2lwFS^rCsH@%E-hF(sT>-55-n4AkIA?IzLrn%rk-MyqgoW<<_z zT5)4rCSmGTW=)t?8Hv2u#pRaAnol9Q(QZwJw?6ia4hYj^yz{YVjMMNCvQ;AP!z9BJ z=OpL+h})95E2c1Swwrnzp(7O46(8sFgF1Xxnd_<>G~hCHU*Qot>+~o5#KUeflnvpx zCi657L?T*O|>E*C_J175x+yvz(e{Z2&3QB*Wm$)eV)WU1Px=o=VjhrE6cb2!=a8W-zliNLw}_mGQ#wY zIlYF}1!=K*4pRMY%2y!C7z(dWU>^`e;dKF)S{}zxxITTI1;kKzQztQM@sARy z#Hhx%b@HMf|E%-XYb8t|HG+&@4S?7#w)=%5r;FWB7rb%|^*WX?K^Y7e~LN zl`oIWbwJ&|e4(t)FaT#4NaG?S?2uv)xeu%OiG%Mt=`Oa-&n8(!SMUyxT$AptS{X;D zhTtN6vRYVoXZF2aY6i-&d5Z@EE44we*vbGUSANYjoXl=BNuXc^x}w?SA-cQ=avl&D zR+sc2IO$pnme&hyJke%}ob4wPAeOTHX(0VJs|`s{&9o!Msaf-8TbJdq{-lxC@!1m< zp|)t6V>d)63@@9{7HVRyWA07!ENDmySnv`LOdKOXeBu4=v;-5Nn?b2K(8*S%pg-10 zeY3}`z6@+J_=@fU!CWR-SZ6O0=R=#%S)DBBF3>fGBz0&vxI~mLWcIN)Y+DomDpwzs zbcw?6o<`?Tt@u>#kU+E;eN+xm^~6?c;isG^cuX4&ZZ?H^<6yrxwu%Gg4CiN{P5K!d zdlmu6%E4@G800P2Hl3LZp+*Et5Zd%&T`eSc4fjRWAVUzrz#}kmMSd({QtaA{3V86w z30LH|uo~|WLMc>fBZ8&qhrltqsf4X;1Pu`JD1oRQ>KHbNJjdfYCcYFehu`$0^Kpb3 zi2z~II45^|7->nS#Y{Q@s*6+RnExR)vb6aRzBEF*21O_}jS)Jw;pzQAz=cS(Iie@T zn*f^+|G}Y-);{$6K-IXq;)eC!UfX>eO}DWRnkmNFfF{kdZ#w!0MmPP`2HMM3AMeRW z&$s-_Mk^t!4Wl}&hf=U*inCm5W{cW&jzV&W(#c!17bCUC_WG$dyj@T=SKa2f2c$e1 zrLJ?!wpUkm<1tl-1XU+i*H6DqRJecYZC%10Q?=D^@0ogAWA??Vw{_Z^x^!$>aog0} zI_(|Zx3ID|8dqplO+?^TaWOlObM5xF9fILfJ)}&b71@p^10`j^{sm}_lr5MmGK4AQ zfE%0kiamSXb)sD2j!cZMK0x)b7BYeE(IRqZbkTlPB}!{!m;GN;WzFo6RwuKvO9W(F zN#p3vqyM9lLp>JBD$Y`P!x~dJZK!3nU#f$xc-nxb|HMh!mlw+S(Mx^wuhhxDvdM7^ zTZX;GqmJCTb*aemO&g9L9kXq2^Re4cnw=TUpVU9;q$5sR)qpVgXBFyv!%Vh2->sd) zv(?K57X4FBnK=b1&{=~|W8gnok8udI0b^10pX;x2!@`3CX@7t5i7ES6c(bd`-hh$) z3-#B?{yBko9{bflL&K(wZ}OUmcQp#C#9)hp!6-uro?J~pVP`_&UwHGRHoGb@7}-Bt zgDnbAs&<3ImxV&Nj3>5be2Pp4+cFGB8DG-Z>W3)fQ!3*L2@lcgq_zy9WiZP4*BXp6 zoEUzhkbhAjk9Yqmch7xR^q!PGDHW_HcaUqqmOdTiL_LEM@&2J2!~($euq%CxZRt%( zbN={1oz@5CXio&xN zaYNyfnP_IzXv1g7Zm{hWgVBbD$)isiFxp@ySE-(rK?c}qjV?6Umin> znfGyzG87islS6o4g(Ua$UAu~1!6r!Ar<0VaLW>86O#K-2m4ft_V3tP8T4wRrpl>5( zLEmrJd4pNh3?~i}G!+F2n!G^*SA^R?1}#?98VLpMPbIXK$byhtqWu_Xt8jy@iZvK$ zi~0rw?Iv-<7XBDmi@^*A)@p>oz`7|Zu=dDX9b0#eu&#&OMhJtAYsm?8RZK@D)h>fA zx&~V=HrSwRDA4sl-SU~x_1Bh*4F=nlV_7jKqh%xzR7!(^pfr=g zz)&4-FbE3zh5|u#xWSfd4L%mZb+xQ)^|2Kaf}xWG!6yjUKu~gJuw_t#fgl(e3jEYI zgMpw3YA_HK?-*>w%3x4Xtufe&)e~5@>odS61b3K%J!`1P3&B{iQKbfh0UEHSufGQR zVh@9Xegii2^~XTJDJjrbYy7pPufdjK4F>vZjlov!8Vtp#5ys#K+h-8b&_+XIXoDkz zP1;S<;AVpjQb!p4MxA$y!Mflh4K?jK%3y=y(FVm4u6C+nzPp_N>9SXAL$zYpCs6gKf_mY z%zTMqMzdPUstJFTEh|4p?>2q#SbEo-!3LrJ;t3YHD9yD;Y3gr-QJShX7`!5$G#I=h zPI_F0Ykl!}27jTf%X=P7C<`$s4g=kf|9^K^5@ge&?QVCrC8!~AE67e8og?Wp7@eb$ z-e7c&zp{xXnJdR4eRv?POl4c`&|}bF6AFVNZW3FAA#N(iV2GP^i@`?R428I9LSZn( zO`67Fh?^!921DG?S%yN|G#(lZX=`e2%~yX7X_GcL7~)o!6w)T9_Q#O628ocirk;>C zQP_!t{7v3aq+)-64f@yh1o@k+L4IjUrw#I(iq%sfzh@63|F|=(ofthKB`S&XN1pS_NpzMVB<48(q>A6J1jGLG*|elCwsaG-;ztq;fi4BK>4A)K!x>hBkLS zJH*mxwY}-EkyWgl8yxjj$}t$|OPUM@`YP67ps&^#Y&ptc!%>C;eObx|1O29?;3zSp zzXtkhy1_tS+;}4PXEH>Ee%aB&a+CDvqglq{7(yE2gg!Q5S`IYWa-hMM0}ZwuXt3cx zLoEjyY&p~15JsJAFbE^PW3VBNp&(3? zwq+uJ4Z^6c27`&3dV(+w$}JO3st?Iy#noQ4GiD8AJ+|{fgRKM_Y}J;*mUsqRwPmnT zTZUS-Ww4b%gRR;!*m9M@R&5z<)t13lZ5eEcXQ-7xgF!s?ioqbBMjeCgsADjQ*CY<& zNr(7rJL(v0Mjb;j>Zn5vwxf>07WZ!*zIVE3d{?3ksBq+)aO#AGBh|CfaHOUoJhbi922TE#gba!a^QsQyOcqh%l* z=-J|NopG-=M%0XyMV6T#gKZix*hb=c0v^mhmO14S@`v)GE|qb-9wVc;*8~L&jX*}R))Li;6l+DLVnb2ISZJ<@Vn2h4 zQBbEB)q-{^t88f}QW|V4HW(GF?FQS5%j$OZu_}cH%s4{6(~qLR!6;G{8jK>F{*NMM z3Z78?m5S6NsLMS}H>;pdH#fZ=<%(qf8s++H^#PUp*}7bDfiNys*~Z5=0pX+&7-5vz@z;?w zS!|sypb|sT0~*UZJ)m|O4E!3x27WTc{5244Bsvgm5(k1}lH;pW7=Vs6Ug0ry4+M`% za~cdxR`m~P`ePvC-csuV5z)7BF)!8L^F)zIP%e7+>$hk3Q`xpRF+i6Vv4oM z=aOmPb~s+?MDtc>xeKBJb$12+O}6OiMr5J^&DUsv+TQ8vhD)LWb-{sulQo9OhV^2I zl+3uK7$O^viXl>c;;*gcbpi*JlDBx&VVZ^!qNz2PL`yX#=rB#gCDBy(v}hVlZG<|S z+7ujp)qIVns^u=Z!!#-?+FD}~O%)S3Z8WthDVo}-me!U!zS>#KhniZO(+#IZQ$=5M zPt&W0qF2T82BWD>)@Z8c9{w6lZMZa=Dl++NG_|QGnyR^nzeZD=lB2B+4@X-egwsY- zo2=1PXRUsWrrKGeriRUzSu=85WR5wOKOJi*suu$pjOt}I z7>w$hlA?O`)wb#{RlPUV2#2lGwGct-*S_sFs@M2OXZf-1EQ5h$L$bEB{57y__^s_M ze+?{aRt+Q@b_>pJ*ey7>5sBbj4Z1FAUCwP1ugkd&$}vA_DvJ4uJCZ|v{l(3xmn43s zZ4jXDhiJdXG=Gfto6;g{v|sAF(@QG5(@Scx!Inu31_7FCg8)L)Ut29@FbL2T)o3Yy zjP^Hd7LwbP6zy+Nj`mBwwpCApRcujiHmiiRh#`+{*;TDE7?hB8V=yQoE6HF`0;(Ab zMiBQJ3`P(U4F)09K?Z{m8lnvbA)0D~5Dij62sO@$gAm#%VK6As)Eks&Drz~wiCa!M zw)zn`VU+Y*D={yr4Hit$MvMLrkrl*MJGiu0tQiRAJ;k&<1dSS$f=1?PbzI9VP8>99 z1R!W+ndKa4GW|Dp^p(b7^HoSf0|o=sf)V}SD5&WFMowBy;F5v?)Wrsa0UGrc4A5|B zG)}$d#L>8houhH)U$r$F*Ps!NbKdF>G$EZDTwQZ!w5j3ZXp=<8ED?=r!1b6~I>~9H zO$}p4n;N!_HZ`mlZBmP!H`=5|7>qVGiQ5kI*JzVVuI^NuHYBA!50`u;S{OSw)hPRzmg{vunVA@73u{un(5&Z@^?i?hKNXM-)y$8aLLzo^)nj6yDr zd&Fy}m>OlU9d!&ww}>DHqgzBhgV8PG7lSRY8Ei%!L(whjQG?MfO-ZdB`D-*$6fzi1 zR1X_$n`p3QHG`pRqz?^-u7T?eg{l$j7;N3r2E!>PKZ3z=-^ zd5w8q(DdkOni_0rYOtlL!Iq{5TbdedX=<>csiBsp23wjMY-wt+rK!P|rUqM@8f8rM?>1qlHo)oyu&)BT`zTtH+V@OL8eG z|X+T2;#6=*&BHjuOg|Qbaha+C|DQ)Maj|J*!8yE%RgK5K>20 ze=Sqkb2JrxL{dSrxKb`HXbY>=IaOweiv~Y`ZHGI9Aug^)i9=jup80Eti+JS7Y6m!Y zx7{2#Z0=5-DsL$59es3G(^9B)+PzD+LUgIu!BhIcVBo0^G8lNO`wRx2(j^81PdB-G zGKlFwLp4Zm%P20c3# zHn-#uYZ(l3D7V2NhlpjcC5OR=9EMtQ7z}cV0}Zz1Fxcw&&DGPuasdRxLg?XOKWk~z zG;Rh1H?`Yf;6`T{3e+TC1_L!U%V6LpcaOoqt*Iw)6Bqky;MUX=U8SkHzeZOzCAVGW zuhCUCQqfcD8h?zQY6^~?YQPwOnu25e5!-I6o(_eq)Q*5mM19c`MD(NDFq)>7!IoAA z8(JA^X=SjbmBE%)23uMgY-we%rIo>!Rt8&I8Ek1~u%VTqpp}|$FlZ$~G}v;r!IoAA zgH{qBgE3Y&q-n=$e~qzPy=^eYYUi!afX+ul;@Y}Y5gVteYp|uR!G^kqTIw2XscW#M zuECbN23zVHY^iIorLMu2x&~Y78f>U*D5$HoF@r%}5!+x;S7L53sM|C?s4JcCuR&eW zZ)5cn5X?G%3shV5U=(~Q*L=|%W%YDP8pXMTbWK%3x~A-)okYTkgLX~cpdG^Hk3qWT zW00;XI7lbabK)SKdf8x*u4!SAPO|2&K{~fktqIySB?s-AdV_W~QtOhgp>vR~Xx^jMw)|2qGKtfbfj zKFy2W!6{wN^_H9rj%x^rc+%4-Y=M!3gy0!2M9)Od@OydA2%F)GwJ1o;44(|p&KSywh$$x_CDpZ6>W@)@yxbVO1Q&3@Y4$j`z#zJV1 zU=O))y*O+P358Li_y_{gQ&fRPO1|d9hvGyzK`nGWcJA966+uJk9eaf%)?f$*gjmQ% zDT)G(AjrnIbf%lL<@7S~b0Q*zf*ZSu3R1w$IX%lvvUG|(0l@V>)^f`Ul2;j?4!^tx9fm?v4;|LtBrbAv=YCFNCmHgTm{soB&Qg? zPnm+Mhbta-4fe0D_$n=ysEpq2Y`!lX%v)K=i4zcq^@r~%viX{y2=G$G>k35xH$VkE zqw0DlBPCr9S-0{{S7AC@O1`Jq!!tMV@K+aM6>3Z&zNy2>5wR=6$>rmDg_v@1y7`!e zw|^s2+(Pvc#g!KBh{2hAHw-e}?7QeKH8kK28h!IQowp~LmYQ_pnbV}j=2zx<@ADMiYW2tL~N+PoL*jJ;g6xl_iOJxYu zLZ}R>Qk650)Hvu!bqTi?`b#*Sm%UWTHD zvUJ9C{5yPkzYWsV${2iXZh}V@H3jKKp2bwsD7vAhb1$a2iu4wX4kv}~q;Z7eA<_xA z|7hp}xq~3?F-qzw;^S1msMF+W4@FV^q@bSorqEus)J(`yRKF0=Rt0S-xOrRBg{r>i}3Cf zh=MUD+Q^SmA#~!8qWUqM9r~TdyNXsE(zUT-&kpLyN5leC|I^vr2%p0z6iFz_>;4XT zqq+3sP4%NMx^ko-H42WJ8QqiO>JS3)QVpI|Q5H|n2$`IQ6w!(P;;w0{F|BcTl+06z zNmUXI#$%w`0tQe78P3Q817&4z^sa*xOfg%z>s}-F@TpUgteTOvq-~2}>>^O3MgpY3TSNiWKfO3Z*J(&RJe-%@yRaJ+Q~<-@KE^Y2^x4}+A9Sfj zRa{V=zW?SI9hl6VR_vw(zMliN_;*r42)Ki%@wYenkW-uLXT&!r*v)6_eR_~Ph*cw{ zqhz@#Kv5PU0p&dhBBb(=)x9T47N^TCXH;EJrO{7>fa=?#f%fDts=@wA9teY@dIr1f zj3E~nKm|9OAa@{5ql@LH;o07&^Z?ij8CR_mbxEkGX$a-sy+6{EI20G${Gzgdz=J`4 zeo8u(?uVw+!C{1~oH6yG&?H+Py#zEtf9{2o>>%MQc^oOI6%Bgfq`zFgdlvr zd`V4G@)XNUFDd(EAtT>5y@d9g;mAY4@W;p=cdllSpUA`;)UKOo@;zl9Z3YEfBrv1Z z674#;{5IHrrMw6UWT;4ncJ&ln&7yy;Pz9)bD^u%}$6+h7v`fhQE!sfzIsPuKvjn-f`}aKTo4nkHDJr z$E+?xBqI;m1*5A~5()_wl2xx%Ye&CTSBGjM8Tidb2T{cwrQ}fx0pG9(6%1@33xSGd z_wa(SU`XAm+{?32_D;!8XJ;uj@ZTbGL8L9re0~@j)shd3CX=P7XS=yQlCIdm>r?mY zzRGfGzk}RDbn@wBoUWK-1^_ct83C-YqY2r?b@8FA^|ntw-sJoDmBan!XL3ae5i(a{ zxKsl9=bT^H%}Lxhmtr3;3UvZf-I4dgMTv84c z)byKrtv2~eqBvEDJ}zX&)%E(Vk@-r$Pc+DjvWtt0PBceX_qAbI#nHjf`Ong71<4IY z$@L?PTtYr6;4d@!NEYyqB~l?a!+(ee&gBd*vPX{K@@#<*R9X+-KE0tIS6q5K{zR zV1%uXHjS5|YGrBIz=%OYL((BG_Z#h5B z22yYFwJ(i1dk_^-SUD2cjqLik33VtHNhX5w`D0%n2L~r}Dz{Kh6ei(p(#N?M9-PcB zpK>{$$mdUk^l6qtxya_Aa-rf6E_vl5vUwA!1lf6T*6P|N;&HS!kkF4UGvdHBA1NtM!16-!_Qt|=<(qsrC@GE$yPnG2FcW@r0q(A(9{=5L%urLd+)ojp=vlIu^}_oO82-1O;<;0 zMk2Xv-BT9MXejRR&9FzC~n@!|eL3yLI*SRZE zI$Qs!5}~FIx%eGK;zsQFpgXbo!pr*lY28PiP2Gu|t-cdmPUEROy5f2&RZ~b^s&4np zbP4ugf4T?TXToe3)5bdLZfJ^P^qE#ubW}b@F0IzR2#Rki)3}RxRKfM#%~jl%Ma^32 ztiLyfEvO-S75m1ZcTzB;<}L`5An^1MeRb3`hP6dhNkNDX=*%64njwik!bdGR&aiUQN^&-GvJ%v!xz3%p&YO zUh=y^H5a`Kx=R@DgXCtn;6e<|{x_hH=;(pxLrdVL7gaXiz{`1xD!qC#*$CbFxD+2L zUL#4oo6eAxPMSs1T$pI2YLlweyxfR`qbkzZv}vbslTZa9_HP!a9B^vEz8 z{#bg%Nxxf<3?H>e{PnOs;;)D85q~{gj|``JBwN!XQ+@JN^0Tc&W~m!`sN%5FcMdUm zx7zz=hT^7?DUhOx>ue+ z-W0k*H`YYOpnkK;YufmO3ByhL|Ey^zC>7NkQ4&m7br><>hE^Ob_m+Qrxi|V-F|}p{ zVDq!`ePGey1(>^e`H}20CNkyx&$E*&hrE$rQLzWh8DGxBRS0Q)8!;lFtJ*=U`G%Zy zKb1(0Ttp}lyu`RLln`uP_}gDx ze6H4i9qwEzbAaQ6q;}(lMZw(^aeAhkYEIsP+!(A?Av6R74_L4EUcF-jy?&Z+(3_vr2_OUd@ zeGg2JEIRN&n<2gpah&d*8qN z-m6ORL^Xu=S!ws+U?ck*jj+7r1u@tl3ga9224 z0gaSiKC-bYAPVFd=FeGcL*b2KoUFO^NU(A1YrWPNKpCwsYn~MFCTlk}t2a&dzGiZQ zB^%~ZbHeqTG=^59MhLk`fHlQ209$F+G_uhffZR{#n!SLya)hItPq-c`SO)EGK!=1a zfb%FUQdto!Piivb~-|iGxQLx24i!wB6{Jw6%K(IH5|ypxcZn2(oz+>N#Emq$dv4&OscQ@ z0RgFRuaXR31#PZJc-X`9RS4+?N|vz)v#L5Z6ITGOhZrQAPXU)_JY8;%e>oMM_;N%T z#>JhrxTYov0F$3GHGCSwQMVs^r1&lq|5IN+S%&;qO#4p^WIZt={!eOP3gRK{Bh0#T z_f6oLyO(cn>}ht3C3ZLC;EX4Tbf3UP{qfC-mL>tSn{)&Su&-1A z9QwYX8Zf|-d$#k`?e^MBB^Og{vc&?o6oZLw){C}(!rNpe$uX-3iz*ANrhASjCk}6a z)8E2N`2)K`A_|y(`cxw9UE7Lkh^zLh!Da~FrXKzN!1kqPrgp@rG#b-?rXNo^Ge(xL z16>9ac@PlLV3T3ADM%yu75Wd;L^^1A7&%b45jXBN+B!NQJ58_1HxILOMm~TW9otF{0+Kf6Qa`pQe zyWwaQ{Tok)=Aoesj$wQE9-3cGLDK*sDlrlsCLGv*@SJzde=94boyy-=* z(`XPqmyVrM4SLKVw_h~5^LuQYU>F9geot1!)Fs+&rM=qFT&KUy^1gQ5p1>twb6#4r zMD`K*Mibh26N+TV!om}2DK0BwUxM@?OW~B2X7M{KbVIOpOqhBgisz2sCQn7}HY0FG zP7)u1y)k#HHb()Q;ppw7YH5a)%Am9<8TIef?II?_xXZzl31(YK3w3V{ZAM}LCU1hX zmrmsHoc7&c`ofc&#fzMd0|N+2#aczb7b6KVJpl)PLdR!^agpP@;xlICDsW5OI^lMl zu(=eYsW>*R-umCbxJ(kHEoec4F$%Io!9vzYXIdEJhulq_ zdh-R7=t2T?OmgR(-uy|QtJcT`RjtMNa{^$Ea}lZUJ@TXapHlZf`m-w4%^9)&4DNi; zAChF9;Ut7&ICEI@E3#bIcEu9UTqw|0wSPF%8G5TY7vTJzYIQ{zp-XFuI&s4&1KEz2 z?%rNWZe=Zja_N&fCwCZ;0dFabQx^;tB_aL`ddSyEP4y62%)l@z0X50K z7O-rRRdvm(J%=h5+7Bzb(%~Qv&}{GcFfb6kv!w+1Pzi%TYuv4(ejH~irviI%bQOYz zgB)GdvjX(Hsu5dyG9|2{!7Vpoy(`E#xP7X$W7o&fwjvet5+u`WV3ROKM6;PKs#t6vn86$@oRrxbAl@ujOW(#w{ zGC@juGL#826T=#2trKofFW>P6h{s_U!x~OwSknCyqI$6U7DWQ zVBk5M7qT`Tqhg$7ghbX2yqpXAIdP6uk4zCqxJ-5V4q`Dm4!6a(uH9WJzLhM&X%gl( zgnPUkV=_!;4nK-!WV&XZ|Npy)Tu$I~}xckW!KNo78ycuH0r&sl3$H{|DIezS>G zirxM#R6Nw4c>31q*6_s|;jT4iLP-Bh=1%v9V}Mz;q&Hfh(f{T+-t6`p4rkYte#tsh zLsYIE@8_K1ZifU{=u5%WCu&P7S-xRSWcc^G+#owHp;Ml-wpY74RZ3AP#t*B4JV=^h zI1tILs5AXKdHjzmV4k^NYPZzw(q#E?`MumPU%y^eHKfkD-W2~48MO_wtY$m@M3 z!%#rOtbo|>56C5+*;Xh+{-gwXnA_PT+^4nKxyT8r$jz_Q;0$x;PEhA^nT&vUxJ**& zLI6!|M?k;xvc~%Tr(-g^ucu$S!7MxcRsOf@d-+Z9c93F48i9x@Y~7}uEib@8M`;+}#{#A!%4B|hrf&BF1yu3@< ziCKXHs52LsF@kj#IOiw>NqRd=AU56TGomjHB~*C+r;4#1#1Y&rG3mu6Igknh*!E4{ z&P`ecGN>1AR~ewJf@FPea}8@5v@V2{##-2}$rkW1yZ6!U9c6~}3N*PEftY$Xi(z+s zI-*Nm@p?Y0>YgXntMoU`Q`un8C>#H?$;76h$x@jHx4CF%n^jtCXQE>6{i`m&5aEr$ zdH7V=3m}3g@TwGiKsU%CrY!e-kStmqeD+OeR?4J@Vc2eK&-SY8o@1|8()AMW(Dl|nhXwP!(45cuyZN*Sg=LhUGT*-!Vs(Tr3X^f+DN5FxC z?imi5uU_OM;~t|(nMP!_EDp7-pyt1Rnnt_&D@D8HY2LvO6L~OeA`kje zI`Ixsx|plVCNi-~naG}cVq$M*npX+on&!pikcrIvQWv4CHO)H^WBPkBcM7{nzxlR) zAsPU%gHBBx%!Xpf@ z1J3_w*7d5QJI06mv@pjxbEo}%ABY(c6xHrgX<$|{OfTvCdQohSdUO=qWC_e-CC@B9eiBhge| z6)1RH&|seT_M$}`K}<9yDiHMF7$9L_N$5s4i>Bgn#RWWcN3V_%#Avq#*?iioEtm(*Qie=4xCPAyl+)RO zP=0EzS?MML5YRCR(2FSzMmG;1tHu)#M1THY)O!R6w;Ov4m_Q88|L^r)$R(^Z@E#De3QPH5T`y9(q$9S;`ghOEvMaaCJv9_`s=FD9XEM%G?;ZFVRauzx z#P=}~iI_XbBLXCPDk%ZdW6B~H>86Pfet`cxM-%CI`X(E5S`i^Z;y|Wnbjs>bE~aYfod_k;Mf0+SAy-Tb7F#%dgYYA1y4wg-Vk};!X{YjF`nvjq(c*lG~8eDV@(iv^h;+w+m!Yc^xLH4#DBf znG!%3BO|FXimIH^7#h5(ux(M`euEC5lcT4M3N4k4h`KwY(*;yrkmA6spMa@_G?qsk;YJ_s`D$qy1tOK;E`h$gY?&P(TbGO6? zgUGpCQhr@|0RvJY7-Nw{tZz~)*cT2sTyBtT=#tVWr zI%u!A^f`>pM5 z!uWI*P_y8L&st(FF@JYn?l`)9p6VX8S9b_?bT7xRY&$xBvZwuKz*gnrtgAzFugTE>aG_)5?nVuBTpcJsCnvhsRt?5z9!-%tp-Qku6Xqo@)POiw(|ChB*J;Eh`8I==VdZ>;9so1bRmv0 z^XV685oOgZ-*ouY%bNju_^b7$Mc0H%US!HkS7sJ6(#RY za*S=eR!E^E2^{1#s}g4{9|sKqB11sWsPB@LB1y}04w8vum&DOA*idY=KR;W=fMiV_+J#7MiHn5M_4}ozM9Iw3s*emMml-ZBi0hBqKMiT_>e@R* zukF2$@OS(L3*Gn{aXkC=8u5df@m1eRslZps7@cX&LQ#;{Tm}Bd~NuFHz`m#YHJYfUIgynge`N<#vRRT>;*^;i^kqaW>QI2lR zV2NtX;wD6GIKa?Zrs?^=YRF%nGZ0F-O(Cpho@@*Ehm#kU8Jt{(STvZ|S@1{xot6Kj ziu8vng$Yw|NELvmh!#2~1WC*Oq9vJJi330d)Fhb&4O^adQeWV28?Rn;h|8og z!^{AKdJbu7EOEo(yy-vKKnuKO>k~DnCT^Hrl+dZNS69octL)V&H?T@x9i7w)7QV5J zs&nzd)CqJdVJcp$xXs$Zg-wl{czb*C^O!KV-7L8#dwY@f{pVo7K|cJqjB`{||6+T; z7Js@Wm8#ig0F%6B-$D-+B~g3u;ln&$WbXkzmIs1>D>dzmSt(I;ye`iycJq*&CfQ$- zIAWY(OPFEUC@}XLqW^(4PRivaoG;vf<@l$cS`P=*hPKRU>cFBJEU>3fvJ3aVRJj3Vi7(O<-yRcaVzT=uD;9?uk4A+kU zOF*@dp<*Q=7yzmP0QKq0gc5Xx=IWZMI;e`7P88}yVI-?~k&x_802MPo7$(#LXahhy zUI`pIws7C2@0oJbF`h!K?Um-xyfo>a|LeUl*@5=1$ME(1mLjc(jEAp9fzpkqg$6{L zUHMwLTk7#NX-D>5+~7iqXL;Qx78SeHX}K7=hYBE}*uXHVCo_{~kO+Hmvhan|wVRd|5l7M_ui{85TyHBJ zain@0M{+6RM-d>SMFNG-1#+a18xg?F0zMD1T(>_U6Q^#^v!xReECUvBtI=klGgGua zH1;p=)`*6a6mz-RUmAGwoN)Oia+QQrmQ`-Hmq?b1(KQ5GaQn;C2Pb(46Y;V%@t=cNAUnmapga9=;7ahOeToRvkfc4g1Gfs8 z*m?=-DjU=#nhH6{$JO|gihw!ko;RX9RYLgF)K7WDhct`AZ4t56ZBuMWu)OO0$#A2> zV8@q_u*UPmv3X^>e?)xx-52{uj($83a;G3v?`lx3vJz=6tUMC&HpMzvcl7}NGO28jDpZh-yU|aN%7xq`?VVVL*<)!JCXGx;yj=j~_taL7cwIPe zAN4Rx5EqCrEM=uUfc*H!SbC+Vj3e}V`@zVSWngM5R>(eorU?wUoU&_kTG{(lzYBRL zvc)NAZ`*>g<7)+Pni-epz(m=+fDCd@R=i3bKTVPy4JN9fE8XHY4alrt6%k^Fpck@8 zF3!o;|NcBB4AZ+AHz$@E)#2vUIUBZJNH8eV6)*@2+hOL@79B(2nF&6%S><3nXwH+saY&>&|mOW*aD^H z_>*!0^Ed`N4+xhBi*J-AphX4W=mF!&eq)&oUBcR+oukY&vfMSwGvdKS3tzkvkQLv0 zf{Bq-S(FDBg@qU;$$52HrB24krab0-XtbE7f|#;PqDlp?f@>vzvTv(L-jSBQFJr~2 zOW_{NB<(-4U)=4%NUMH%K>cJ-orb9<_)?$JtWc;BV|}} zhLA0Yv`RY>M9`Z9V{`-ILKHf`0&R2<@bKuScHGq>sO%L9*&v|3&Q#WA?&98sF)@dg ze#u31K5%FqLmA@4(nPaTVuV`ITdWLqNhw@joZZEsQZjXTok}K|GB1G5$(mK@7;*49 z(JoZ#9aLaB$jVBAcBdks$HOy;;gN5wl7Ruk=t_VQgd|a>t#-;LgdVa>T>{QyNqqNu*;kXW$f`86mO7bmlx1~aQtM=z zkfbROM1h8ZhsRa%5)?zg*pP$vBa*SiAv@1sVJ&J;uV-)%7j~m806(^+$G~ zu)s^|G8X!cb6?LRDkZb0{K>MDE;B8zpCGi_ps^_H7{` z#~=x(>24Cu9EAa1;X6+hJ%tayDAp-J<^5TU*3RORmb0kS;-RS|cyudS6~vLnr5+qcJnM|2j8_SK**ZIdDF zVr&VkXsjNK3`cJ`vD}@-Khro>@J^pGf>cef79HG8r&p+P0YS)oGiRx6h;(%W$uAMc z6Ul02ktU&KNHB04D|`V0HkQ?dv@)NpIC@wR5+iUS`=r>MC_7jK{qJHMDig4_QSo-x zBLxoDE+7+{F2>eW3|17sz}r@>L{yP2fJP2y^h<_lR+wQl4P{WbA`56)t%`DU8!Uek zEUGZzB!s1{pb8?_1j$zY7C05=(6%j#bFjZ>OLV%u;j6cAO?MF+YTu`Vu5zQvUM^%x z`ulJ`pD$sreT(&MeC5%tElRslVz_(kVXzc!ubjtbnV|)>%i1*!+ZuY|RtY%lr^!6m z!Qu&cd)?e^1?ja{yjGI<8vX6&Zr6Gf`mXJWh=U;}h@&yIQ>vi4o~#MEI?7aL-U=Oo zJLHD1om`ZW62KEU36!x3gf@j*VcQx@D9H}Co`g2|%=?e6^kP^Vb;Yop)ShEl?A0Pt z&@L1!5yM*7h_nCL3ZzU7Yi3Ka>HcFYdH=EX7<38~!UaLTJE?L>R@ zINHixbAdvWEe9T0CsM}VvQ8^UMJomvA9_i68J2kJ3VUFPAS-k=uX>M-4H;00xoTdhK|t)YxcNV->}IP6!o?L zHj9&0;GkLUTg7oYoEBf^{}mXMY;kqY8mz_O6T}tauM+x(W%=)3>E&+wJf4yh2hBhO z8!Ldq-nGpNn!t}E;6V()% zE(b-dG(iz63{GYW@1%%ji-NN_x!4pTnkMojiiY_D9Yy{hQdMGA$P!j2YmA@pVx}Oc zNOS^8p#l^stR#n<_;nH&)C~(0yra4O=GzBnuw8!D?)Mo`vSGcK`6ne0v=)_(Z;sP- z6?t?+;Fa5Gu*iv~PXb{UAJu4lsgPRmi5i7# z^kyOh)5roGwxtuA6hzWOYyisD7yuN*x?X!*I!0h+yKudMvN~CB^dEL|L;Ep2*nELsD}h`%SpK-45?D(t56dJa;N2HB(r=8Vv9$on>W44>5&k)!S??t2YQW z7qc{@tf95iEwVIQcGqS~4LotOJnfUjPSHLcq>IDMfbC!ZG6N5bz>Ph&O`=?)BS|bx z14@->%{rdO*Q@~XALYFTmU#Wx>dpMl-b&PK{H(U58CqyofE4~(F zpW4RP!R-&vJQd}Z{CE58Qy*t4@={$I)6e!LhXGk`G0L!%H;Nh-#{EuX%-KfFbgt$3 z*Ik;rT=UfBE_S9gb&wamrkPF|>FmAuRc&dRgtIi4ID;2VW@5A!@~xwlufGB8K8t)d z?{tM!mk1B)9I-#6jM#>M{p~TfuDb1FAmkY@&$<9)TOBdsIR3HMA_Vn7rf1slk)C^u zm~6rl$&!0@8`0q45E1AogBG`w6I-m*=be+%}72Xu~-0mT7?qS ziKZM-leR;UT&bpce9KJpFpP9_wY_m>m^HX1puBnJsrK9_x23(a-+ni7e2t%`11mtM zsrNQzgS5vrJ7!fzKgbCVjGO!+sZqL(XVsRT&*GuiQKWSYq*t7y846xIKB7H-({E^ zaq>cby{5bic@uoYYXK^ss$av-(;DI+q+TPB^Hho1Kpt(E37u90Le*e`4V|#bU58EP zo-!^qTo8wr`~uN-bi(kxxv4nIqrFF&tWf*sHG4HWgH!J`pf?@_L{w!-Yur)xM@VpPmZ<97Bi`+HPLbC{ zb;m412c~HM#7zGIg>Yzn{RUX84^@W%?#Dl5gHZFNDK=iVf9*#K8JW;XHv)5%)%LsY zjGHyr``%K(y+up`kIJm7B38pD_?K6Q?Re3JWWu zPtFN*r45_3i$rGYE~B2BdO8lcuMgt;OPDInzY`W4>{l1*ECAQ7kCNqjNSilH2AA#4 z;^lUKd(B*)zM}t>2rKi4=sOrEpZhS-Bm^n>{YR8@q+cOb*yw3>^D3xIALAGD5IQJc zbknPlI3Kzk*nEr{>Z^C)S%Eb|jSu|!2QItn?#urC)n0>j_&s0x$4}k$Q@{3yEi!5} zqQLlPB(Vyg!!%7fD5J|wDUFP7)}jI;Nq2op9px+ZSWEP2d`*0O!*SD-jkd}olZE)a zrR;&~Q(wXCgzpun^}P^jWD**Hq*`qLJ5)yTEX`^9M|^v`p8LzVqql< z>h=T_w}5pzWJT)VnZ*IWG{mR!gn8wwucZQR1+ewi2CRLsI3VNMCoL$yP^rUo;bcG5 zTO_8AA>uoZR6x5gYPP|th)z1AY(A1oEu&{;%9P``i;yTCH&axo>IF*Dlxk)Bbi7Ef z=1{FlT2%dNBpr06vfFE2*k0?Lf&1(fT?wrkI1mGNxiMmder0+c12boD!wm2-xEV8N z&tQf={EIR3{2iD<6$rs!H)ci|;jmZmiV2^ibaNsb?XGqsn1>r=8J3oagi$R>JU= zXWxdI5Uod~Tj?TMy%Yg8OrE#{U|CFg8o(hu7bTH6y(?iTcUNaaj;A8;G8Yc{IhBi- z9hH^FJVlc~_mPr^-}mMl-}xsG{NfuvROmYk-NT>%;Qhbw$p^1`-6sou#qnzZ_P|Zx zC01<0At|GRm5WN7Xoir&25Y5tA%ulkQ5qqQb!TtKh}{`NZLJvpmC&o8>4C}*B@|WM zKcLv4*~nG^9SScn>L70sM2PT237i$sK4`dXn=Il@@k*X3;=qWLAOaRf%IvhddDxke z3+=-U^&3K1ffbKDSz$L$pIrSm`g?jMiI>VD>Y}8jBe%~$rm=97JEcg%#N1itA(NG8 zDZxqNk6D_(@N*W&PJRjEk{}y~$QibX92kpb+0uq}5;;QdROIk0rvEbi)aj<9h7xit zE1i$&entBzv40TCMY1o`sgn}0FV)eM5_Y9p24`xDJR0CJj^V~$%lvZ7xk1iCwJen{ z)o-c%nk|V_9#>1^jf2INqM{9HQ8LQ>Bb3BEEqOF_m`0>0Y>%NOB|{Tx&YnRHgYvil z?g&|@+~XsIcG&&7QZM8CH5~LuEMOVvB5~)Q**;K)NHzXDmDPZXMbsB*%D;~BoTFiG zP#Sm?>~&hw?Pk5n3B0ax&ga+t>b%d7fwTFR#mh02B+N0R=`pZ`D7EAh9l^K^Ib^kh^t4Fdt+@yCXrVHUXXr)(Wh+~)o-VHHkiE8ThKsn+uJ`QTlA#%23@n}I;b@qGLFHP{yS%1C>VQY z^^vC9N6p1^5h2Cd`$qSbQ?r%akU_RuP3y|yf#p5XDOe{J+H2xdJ(zn{J*?7dmwb2e zD{xHo72T^KV&+NHk+n?bE6b2{Rn7B&89MLtYIP`cquO-XaXPPdfD&`t-1vkPIRSiN zZ(H370zhsTEEv*xwMs#Y$5xGMIcLC(j%L>lpfoh=71B>3%I=8NQqO@Yj!2ak3+)Xg z@%*mSfelD|`d%P- zqvg-w@!rk$Ars8Q9~GnLCCn9$r3S*4M31B4lY5H^{54AOlB@(psi7}v{%O@AAM@Vc z6t4+mO2;wq?VUeic>!3UQ_GVS@YI=KF%783J^N?)loqvba1MiK8plroqCSmpb%jo%i)$gH%qCq8tnt7MGS+MyqSD=xa{DnALNc&%4ZgzR(m(d)?AzM54_7;^_7c zNs7}EPTVJh^IF}*%k5p3BA-U7U~Z28L2?M$s!cD7@p~lRHZVRKz8=R#f&&9UpCcYo zKvhT@)rE3;+f+GGO0wrZ>Eov~Q1>mNITV3l%Lm6+{%5cmYuLRevP1rt(FiRars0 zE@c&8wKp$iO;qZ9^-@yBk|!+`nRj~nOQ-h0bZwIq1=x=%tx7h5x?2Ln>gMB z`_CXw3AeqXi5%M*6wRxUS}#FjZJZRo3JAwOmR)s@?+s+2y2O{Yz;AvGRX{Io|@GhR1GCqx@zH#6egJ&R90SKEyt#%1UTpE(lB_ZZcG_Gh~4 z?LGwQJ?83R6jd*hnhX84Q|N!~aX{}K05Ix7BEkN5s#3*%sSWPGC`!cNq)UH4QG7V!>t+ReM>C%yC6R$W8p?yCsV=@E3>lw(E3Mw(5JYa3ky86p^6Ng;htsZ?%;we+9)QHJ zWF~KLO8Jv^g}t_oBY$xW-s!q^=o68=@o(f`&!l8S7)vSw8kQSl!6sisnOcx&J5o%G zr!u@5H_FJ;Xh-c8UqDpm6WhPdg_Tvz#u$Iki}pbKu&&w5)==}=>baq)PW+nHU-NjX z-`iFH{Zls`l~H8phtX=6I6rm#MvPd&3=J&loUM48LLdOj0%dUHaLW}EQCU&2`4S<3 zArS+SbPwYM9tl4zM1=^M4(AFJR|)5e(nI}&_8JntN}A^kMUK`YNXVtqa;TCi>gqzx z$I9ZDyT5pZoAG<4-eqs6=Za{c`4DS9E*UOonwd&PcFaBtCg@31Z;`iu<<~>PK zZ=VA5UQu~^gD=6T5qK2{6vy0IgH)nP5%!>eipg+cYr^L8roQRu88F>fmIs`S@v7dr z7~1ir3i6#X5+-%~>dp0GSri2w&aaMrZR&MqTtuxNq+$`WA#l z^Oc{5jhTDk7M{^9Vv!#TP8{-`LK3XnwY&-|@EO^HD0PSyq={IKh{w+QZ*d|BlB|Khlo+(Ez6_rZNXVcTC~G;c?WDPbT=4!?vw{I7IlrZ(9F5A4mP!pL^Kz z@GB7FPJcK1a}TJgWB8!ipL@_{=KD|CpZjN*Q3Aluwz5BW`QNB5iP)WGvOo8Fmzl47 zvp@F+mzl3*vp@GHm)SM9t?bX;;4-9}&w(fVbMJ7O`F+QqGY5!Nkf#VFS^wYao*|2^`YB-UgXv2#M02eKz*KB2W7;cc1NYKDg|{*M!u^)uPz z!_P=3UA**#lLbyLZ?FAPq4_QP+fd|s-|)un=Si8@+oz=MhzIaz&u&L2-X9}`D!+Iv;ST=&IB&~(3(a`gQLB1Q4xkYlvr1A)0{ zofVO26i(WsjI~qx$t(UFbn8d>O+t}E+;o6}@E1}Emz1tl-ZD8+T{HSzIZ|Adw%=<) zsl{GYEIo}euToq(K=Nj3JwO#8Pui%iXZ`^l=`zLy#7?Htz2i{0+4D6vzI$4d!Y4_vLL!DZ|+q|Yr;AN z6#zz6e5S4G_zd$uLvnlXGefdhkesvw5=eJ^yU;OFZ!`|Ft$_@%Vt)#wLM_qLomf<} zd5b}Yk*WFiDmR_>uR2oo_S?h+PNNxpEXQv#s?@8E!T2ZjW5TT28F(uUf;lJP5mA~5 z!?L3Pgt?tOCHx14j6Sz8ol$^rri6XcWn)3L;;>ivZ9W1^fX01FK zf`^I!sF4!kyjOMTyFJ*PT%Ldc%hk* zFkZLp`;9*1Qi zq?OMvzTxIpZq(1Mo8Qf>qt3qkZq|6YqW!Aq{TaFYVOfy-jT;Eg@ns5u@wwO!xz|2v z4pv;po;fejyztdt@PvNluHlZI9rHeE*S=Zono{UJ!n0s_sC!^AcpUuW)r%Sx3U{5~ zA9>2Bl;5O2;}}OSElBY0674+bybUGzK=nlF6A7Fb!<9&jLtH_GGA}kn*a#4jxqJ#EA%!iWaHNy|tcKXokY`?RiqY9{ z8yK-XMpGb<&xuJ@K16y-WJoH<%6B;*g#uB?7A5);i;|Qf7*vk_%6`!fk4Vfs$=i58mLkZ5cX2HNp!L@k({D$tGjq5O>%6%Q7La^*Sg)@mYzg@*wa9 zyCX=kwKt32le+t=b5<;6!ah-g`1t=855g>bM84C7?Ss%EYvRa06h(TMJle;nlx~=2 zGF&Cy*)h^GN?^-R@+O8k zvd2<^g9VF;OS;WF94T-nbJ1856_Re~b3xEnta2tlh#R8FcUlYU4Zoq??Jx8=Tf(kNbr`UakwJAG>UcH$93$k|L)H^;|3V5!b@Savi!eH-5AF^votAmv* zo#{e=mAtZsrS`HRWg_x}9KqkWT7`6gq@pL>VGR>$B@d*QI_#DGP_Jycvur&&Y%z2g ze7u^qL&f)Ts0_#L$X}`7_1oEP+}gVMGVg1z+{lvlxe|aHa}oPmgeZ3pYV4 zf!LZTaR$7FjyvDispf&d&m+TMJCwUm%6JuoNiTf?vD$I>aLKfD+ebB;@ z;Wlaaz?a@Lm3CjQtKrOHl*7c#sV@43;LiW1J=BxvrKS9IoTtZKOngEZt_eLQfT^un z7Dy^#ycQJV9i06NC}BxkJ%|VfI`)`C#6)KcakTZ6m#^-_4)&m8k&4no$46yqZIlR0 zMMZ@$`2d)H!*=a!7Q+V17+x3~pK;bjefXNRnCpZWgUkAGTIO}v3I73dTyBT4-Egw= z>ccCqVHI{huZ*>*FS1nA8KV=9d-(TMu?WFQ`P~0`hN0bPZ<*=Rw$6i&DOh)l6#7E& zy8fq~XuPBUwD-9wN!aK_-gP9S`$&Pr(1@k&!*5x=ZJ=8}tPbfh{jqM=g6y(l9li*r zqeQiaEGx4t3p!F#`l<*MF=ioPS)@_ygp{XtNN^qdn3tIWEv4Q0bY0tp$VrJkmt&Nf z>zS!$8!_nHkhcN-(!@sIlzQz==Zcp^x$#M}0K9A+bc6+TPx-Idu;c)~LSA!QJWuw? z*{{Idkzl0^j`#L5XLn_$WVRTrEeST|+r{>S5LlsIITl+jCq%GUFv+6HZ1G0X*Robh zHp|zu8O2lnYrKZ5IAlm9wsQ6>7Tb3a?}4G8U8Mj0uWL1k$56CfYS%*(C;qj1 z63b%zFFgC&J3n*T7w-DYi{FA~7__&rCVk+k57u2=*gmXYZGLNAY-mRSb^v@H2qS1h zVF`2Yeqplkrqt|%7yoYnF+4_Vny+@GKou{LLGl^WTqA|1flQ|i^K#FKh=PJ8 zvW_c(Vn)j)8Sh<-(&&omsVj*)8FkPqI&Q9vw*=CeSt*+BPd_2Re+2Uhi4Wva6wjt=69>hqKGAk2Ffnt2AB(%Vn z$$|uk8||S&x_{UsrDQ-za&21~CDz+Bof#Wamch|0zQKf(4Kwo%U@;P7ZNpG@G>m8S zlTWFKm@b{&dKIhXk|~bGL}n*k*ufVlezd>x@XvD(xY1cmm2}amP07uvxd$<~eXzKI zcmh!pW{ul}I+3_;{}heKnG5YFr1`l1t;`^<4{=o#<;z@GxK2lo{e;_<9WB(J89Gq0 zx`&Z%Ibfqxd`fpqYN>1={Gyn=9{;YmUTN*aZKbEy18Dog_R`u$p z-HY2wE2NW33pq4Uj4uyTP#pHu!*zt|J&_OceoKKgnFC;zjoU3G+`M*0$u((k<@yWr zs*_sDn))5}52E3_Q(I!uuHiHyF~r%aiUT-)Tb1hvr_|^Ik1&}Zd0#3PIb3q>l!$=< zQ2bs=AF*8^U!2wh$iY>Jd4CQa)Y9}6-wzOup_w%H?ijdo8;+(ugS-{Tpljzg)nUS= zFNN7y2NhZFNFFwlITp2wDrKf{`95S`rRXCw5;IiE3L$Zi5yGCc7b2IcL-9}FeLn%9 zlOyEyXC_J?>%wBFMPadJwa2^)iBCm2xN&BvGf%1NQyrib(m~;cQhYr8HktKY{|yos zoW)rUf0lw&PuPJs?-CdzKK@7^Y^rV-JlJAn#5I7Ps%tmltj7+)^4KfN9Q!x*O|a|F zYZkBf1pPvaw4KJQ{Ze0oDn#lkB3wxKi5l?tVZ44ibHdL_@K z@!W=2I?y{Rq!bPTw0&+$0;0z8J;I+N(Jy1!+aUTcutd);F7ry0MhvP#UHcQ5ouJgX zy)+BK|Lks<;6!AxJgAvb=liCYj(NvBYt9)HWe&{S^=YDqc0#{51%oa-oWt#XW+N+RJ!`p6qC0-HG^U{e^`oU!dY(2}94 zdz=BbWhG{VN2miNU5s?qCT%B+XL)MztZuC6na(&{P8N^AqOxjAg{h-3vNbBfnx_@T z8HM!9F0CBiwb}iq39rwN_f<18RZCNx2aR)NEE!oV%E*G`qZJu0nVv<&nV=cLq>K(! zFEsT6SoDdVw_=vv!j$dtqn|Hfs(=zdfS3u=QUCG#u1|%ncIjD&^U2EiPLW+EjZ+Ck zCWGPWKyy&& z!QfdLFS8nVo64uyc}+<{jcB-TVc!HP{SdP+Vn6)rp3dL-#WW6rboHTtM#|2DVOhP5 zGW0(y`2(NX+MUUn*}kckTB*FNKiI6{cgC>?~}O1mZ0kQ9+k=nI^K4GJP>_s zr_++-w=ZK`QDmNo6FnSUU>0Fy&#v(y6`ZkAI98sB6 zNqa#pwGWz$^Pz}u&sd?6HZN}Q9LP5+`zP$41 zF&{mHkyj?MOD9-tuhxsa68=Nww7!|V6VE(@Uutk~>a-(E6{~GfMitf;jGd=hZ-|wU z0-Ez_966yE8ouZ{1tt8LT^ekZ>Dvhpze_mMl4Q`M*cJ)BC1G~mkpk6Qj;w?z>%hD` zsauNNOKy3Qhm`8ssF9fMze@e1i??X8)f_NC>T`l&qB14YQz=q3u!9f;Bj?u{eT(bH5uRm0GL9 zFXB_=(uJdVO1Xl{+Gob}L&e$QWZ^ym;x02n8aMBrA+pwJDSrBByJw^wf+(E_keH{b z+zS1$(NJ z2MDK%w$v%z3x&DK(dE@l_0zZ=jP$R+Goz!RfE_zCMi38_cAGacIK&<=YH#=6j`$U^ z5T#e-aqi5>h|%|$F}Y84BSPq~(4>77V+W?Zx=xf|LGTpQVEbTfNgaN~P8YUp#Gjch zUD_KGG7iuW`-*5Q5J)dJ0x1$1jQ;byyamaEJ?)L!AFD+$?8x(#Cc~)E_LUfdtHM=e zNpSM~moA;tr#F`DcUW_-^>l%_>1J=*gCl034?|{KV=cT?Pc431^5JidjaM*U%EKia zwY_kS)&)U&Mb-ff`8|`tzB8h1Q-f29E2G*ox@>8&)b7no(8nJW;)~J0NqFs$S|%xI zWT_2jphy&^jZ=0kpZbI0^z5}c3lKC8s=aogl3z7KLC&Z!4B)(!X7Et<5Zx`eV{3d{ z7syiO#p<(@WE>0O;QcTN+uFMG?nNbB);>@`)U+QbF`}lNo|x`_gMx6<$?8-DJk#=d z8%tiZrV!}!d5@)pDRa1qO(T$aSTs4xDAOgcZ;hO0%5SE9KSjrBD>dzP3g1g3?Kjcd zXra5!M!`s`ng;gIy9|gLWR9FF8n*4NKhH>~T$T0<4i?{`41$BjGd3L6Jx$3+?Nv94 zN~b3q$6OEQx>ny{r3vQ^b~{t$%1cJ z7IMNC_H~<38TO+VcgW%cO<=N*3oI@#j&*oXGJL3B3LbH)Pp>hb-F?M-=)s&7Y>{OR z#rPbx_5qjEej8YiZ+^W#x>0}gejB1IS$00GQPFG8!joG^UFmMP0pvGzX)< zDyI?wBd3?bqJi-)oW^4a6*g@lutIpfVyl*lOuRy{-efn*60e0= zGJee;5Tw)(>QuEkk>zj1qE@6ErErE%>*2EkhDf0A=&XbWJ7kuz8xujykdhs*=f&Uk z)Q)@W-f}JHHr>n|(IB*53{U*EAfUlP1mfu}cy-o!kZk+ljS!5K?@RRO#ViITWV9UR zqhP}$=vB55;cw+e$eCFt&hKwU#D1sIQGlHJZW~VRDVp%5!>9)1Pl&M)fo>RNm|rEy z#ihDJ$`quXS$r>TWAY!;T!&md02XDEt;wOLFXH+T+v<~f*S?9|xEhV7sMs&z5j;iY*XYk`$R9*`mm_$x}-vV!wBwb#?M_FPKm17rRC}iRjuXf(991^ zfd4@Cs^@Y(N~WV%qQP&Mxx2P3hjgYCDF}($rltJsWl_;ll$C$KR0X$Sh*Xu2n4hT% zB<-jwaeZfJE82})Z9aVdVzV{WFG|?dyRx^DC z5jJa?3~_Qqd5x;OO02>4>Jn0>o@+|Tn(K`vF)^+;mCU7ZeH&yCC#rTlvN@!!m9L55 zv%?F)X`5Kt5{~R;bv~a{Tx|w1k$to_TOTtxaEdvyodj4z3UL`u4sXl$>bD|Iv-*8}0AO07 zg=xw4ud9Bt8-Ndsdz(0MpUJpEGJ7D^0m){C`ihNReSA&UTb+xg$9he70#Pz1^dQI~ z?)kmc6_E7Q0}d6C0w^SK=_tuE&^31wHp~?u8Nrpl<4ZP)mrMjdn`h~mF6A5ql;Dz+ z6|&gZAaMK*$w}_Q)1P~RR~ma;2KMjwLrd@6_CoHIn{ffjqG6In?X{&8493gGF4>!d z^ne>kPpW5ENW)$G#2OSbZ}z{E7J9U=$nDuB6jvMGUs^N~jKqF%>tN;l$@*rqYtxP` zgF*d0rN+ZsRsw?KXIWaPtXn~`!7tqsv6H9`S8qyZ`i z4#whvzH=LBBj0L)4eXwCK1ZzN{*dYgV%C)2mC>PrLM5#3Qyv%y88Z^}kX7V>Z9CJQ zW6Y@UEZC)Zu8vbO;x|}<>7%0r(bw)3nAp)PgpqXo)g=UG3iq%so5<*;QIJU($bwQ8Q8)f8riboMe|sitNQ}ZuKRi6W*f{V8t2JPPSRz ztjIkoa06vpwO7h@O6HZn)-1w@VP2xaDr-hv3(y&QNf1F(IF0$lEZNZQSH6m~jE}wBVW~Ju zSa=SL(XFSpld>S|Y0%!Bqu0&)=_p_vSym!Yn0Rq%eX%MA#5QXPOnEMhhSOOFavkhRXy+Tw>E0N5KFhyg zXP=Ch+h~@0x?+VfW&9~(865_}q6Zpw2Yc%cho4o{G05NRx~&ecAr(N9^Wn7uSLg?7 z$1PCeJT|vnM6joT1*%YCu2OG(ZVCPhxsQr-2=U7?XIVmn%LtZscb>!agocO1#*>oZ z6eK^XVZjA3#*uAlrh&?HoQ!eO+9Yj;ikNL5=o=`_IxLIqXnb-`DWSpWt&9Vwi@r=PVCEy>4r1rf%$obj$?4T0VvAkQH)f z!HtSxu4AZ8$MEGzVrp|c?29)aW?}g9VG}Nd4IsubmLS{Gc-DwKlGFss3V~~ z8HU_RV`FM?;8{Wwh|)T_$uf@@F$~!nM}}b!Ybx1k>_utp{IYKtQjda8>Wt{f94Z(@ zwDD}pvCTq{=aW>Ed@|#v-|$h$I1xHBZV<+ynR@0E2I)~gK^jguU#n%Rb3&$JG@Xy6 z);bc4z$%s?60+co7A$Y!b+SZc4;;&qX1GJ>)CfiV46QS%^$=ApRKle$LKE_4#0oXx zQSt}WglY%Ds;$LA6svX;jFOxRQ#%s~8e9~*Ay+ablMuIkBr)y)Tz((i%dg;G_Y!HR zs5H}Yu$pE8u;UP5ayUu5lqkb64!NVehW4SpO@x)i2|xWOE_1X`&>t;}AXJ8$@4FrB zHTTCOh@hr1q0TN~-VU3hX}{Jm))anX)JkS!KXJ*{R$<$18oloqx237p_`p+2>I{~L zx`lb+g-r_fsl(GZJcu_GdGt3bIl84ThdE@oh4WbN$B@~g0hmXszlvlRA|VyD2oqO_ z;vesjQk(6oSm`d-qA*_ru0DlQuty}j6@Y_II+5MfPW$Ay<8=Q!np?u&#Zmn+*T&+f zuYCE3897*vBuXI_Vd6&+-Yc{``n8uFeWf;mQmlbc=|adENYN4uO{QEfK!EBjM`(ha z@qmcD4h9R(m#2;Jb5IQ$M+$0pjbhrx@w*i>nk>3ka%J_3-QMr=;{lK5AjuXJK~%kQ zq{nHSUIpmY0Qd~fP?gt){$ z4cKfH8EguQRrN+K(D=UbC*^Kt7f0s0UmX)>>`nGNqorfR+|9yPc{+AF5y}+cJ~#=P zGXqEhWAxeOdRKov*ZswGje`N^4=ckByz`I?(*nYB4|;0?Dnn>rJW3FDu5}mXDdRE z9RB#)O9tbAl&ce+JyW`)7T>CP*S8$867VzjM#6rjanZLf3Pos4Ijmb#P9Vld zo9j?chsb2OP;M>Cap}sfrA>UEuLCfL{*Yqj5uK>fc{-YQxgA%~BBlc1DUlNrds@{@ zc9Z*M$ai0FFt;?ZNe|>-`MHgtX_uZiDb%U&dI8xA5F&$fX7N0(D=$#;v>I!?Nqc4g%2-bD^+bQ}W}&Sf%dAx`)MezeQMIfe0*q zQZeLm>^h>@;Tm@Ds!U~xTl(8x^S;}OOr~7|MA7=Bz2g=={R!rt3U8QVU20^|EJb7< za(OP;;&Oyej(`EjF4!VQ|J_jjFy7Nx8eDv<-pE!|N5Xm`mTOk%>6yh-K*6oy#cR_u zWSFKWx$Nh1<41wZ^Rs$#G9Oj#Q!pnqg9{d4!iBup7c)N0?!J(Vv?#aC_bOPRR*Ycf z&gxc?fCGT0L2uH0CM2N<625Aj%Ns$AS%D!sKv?*dq)w&*R(09)EW}v%ciWQ65(w0e z+FSal9TedA{&Kn%0aKFIegR!nhXB{)(Pfq@jZ?_ zWkov0YBL=DZZ)Nx+k1*qd&%a*1R#4&+}|3(F!dLES4?yOTIiT)Ka3C){wH%MR#R@L zdF0(srag^VGkj-Kk+a1U+ENSh6|u85HV0D>Cle$+M1^PY|;@v_t5YgAmdyoqnZ^T}pKu!>cJi-b*Q18|rI#kZ`TaPfg%9#psuM zV-LV}^h2ia%}yx7^4(yOheBR{fc9ZX_cJ8e%hjP4G2jCg*;a;K0=4jH{8r~Sp}&=u zAM}I75&hITKSWuiUInHO!M0}>r*Ns;pda0x0_^(%Th=CY;-eC2G+gszv?;Snfc~l= zhcV>gB%r%4BSLF2FF6&NO|^%10`IzCajaM1u`85YetSf2M@3VNAC`$*jQ*e}X|bHk zz?lbmq9KM5MPBhw)Hcw$H*y&Dr^7G?^ZcLm5X`SCzI% zc&gP(+aqqd9l=gOr!Uk65ibc=*jiAJ30RaMiNMoGbkY@0krRJ(vI^vn60tnSur~ER zt=d0fgAt9B^oyRdtbw#QF`Va~C$d%zXP}6nzFVrbmunL=d8w43bl z$sA#G;H+|lZ12h^e5+0Rp_)0(TUZPQ2BGvhX!MI^RZp?f(@1l%LJKGlDkma7#R?Kr zPXj9{n^9OvGwh;{XjV!M|3vfa#)_XhEgP)NfGHQ08amZEp&PxU1D);HJ6@2il+kxh ziNMq~sgE??LRyF?z9HK83#PGkYazIz$jm zk#pV$V&}o-j`NDmIt-^hsk9S>Y!_8|>kK78&x zj2*Q~wy%a+dqlObJl}9k>>V0MQ%eHZTM;q-=^G+e(6}T|B)zJzWS#$$3BB1aD$H9R zIX|68HhPLaHd49JWNMI-Qsae>zH6(tq+^;ZW8USgeX3#KnZ?rRvK}Y(r3*^EeedrH zT{w@(Px!HiE?L6INIh;JQldTZ7VVw-e*CZlmweF_PcI8LUk8GF^(N*~WzLoDmA~IT z81wV?KS)2ZH0t)@RHG=eeMCR{mBxaivVG_eyDB8qAO0LaTP@;7`1d~QrABAzMXU!j z-B55|mPjKYifue(uxndf<)!RwZme-1CO_{>|qu zx#q4*QyuU5!}~t++dulnkL!z6~v!~rD}RyLL-1iG*cX6tg=1cIe;pqb?L# z!d*e`)4d_3stbv>_Gqn8pik}`!nR?RX^~5LDc6YAoqTk^1W|G#AaSwoS@W!-sVuqX zv+AO-jG1$teq=Mp$lY&G3<>ssOsna+Wl1DybLSky!C#QCapT_@62)`g6+xVnP4#J| zirbT8E~&3Sg!>rFe9j|3y7)mEU3>ElKa{S}wUfP#K$e+RZjd}tv@Da%0?nhmv zQS}SEkv5l{SEKLcP%5*;^cKU>7NZr)kKZP7IeOiqtmM`0SZ0Q z($#U>UQ8ljy6snXdUcCFtq&pVZq$21745aY5u8-P?`z^WIbley_PQvRe%+Ekx}jHy z)+LnA~;#z6m)hwg~%uY0pNI zGQUqXlxtds>jt<5 zC}RuUsojT+Ih$B3yj=k|=;-#^Ey&155oHE)@)wm6#e|7WGJ2tHRXKQB9rN1K30TKK z1a+zO1g>cK@0`hyBW^$vMKu@8Dn%QP)Vp^hNxD^1&%C(@4>{LFaG9siIg$QB5tt_G z(JEW_(X>{x#srkwr!0VIw+!WBvW-d&a71ecljWIm%YNG|C%7dj!HOn~+l$HXD%y8n ztT|QDI}n_Aehf>89)@8YFp_L#UMtPNeAoam4L3D%@q!EO}ax*eU zW(X_@C+JM^3lcI#INBwugKfg7SxwDyGEWf$t?~lIn>|6mPcnflA$Sq;LwqgNW@+a$ z5{yU*cu;OKU=umUDRD8knYY1|xZPVy2`CXuH^Q28+`P84A)?k94Dse)DkXWFJ>5+zyB{Ynwsh z{YF4k!nBiCB*aTTS~wDKPgIT)Pa*b;NnycpEii)+aV!!Lnd>zeBm zyqx;O86Q!nm?PauoPmDk@Z&-|FVHU#P9p9iNhd)E9Ws@n3p1Ex=z}%Tb)p}-2H3pv zFZvh%^kJCCPW0@k1aw0SI)78-F!7I|mXZ zZ?>pGcCx6I6RZt4lkYYi;bmaxjVwHd&Bn;;1d~KHnWo~ZfrEl{k_iNx z{hB|uL7?K20}@L?cNPnsU_vEmNbK0l_F81VBqu+(Tm`9Z=8`EEH5m-GZ95weWqInM zVA(=XXPwAj#@`#}%BnzL^Yz}8pz4ZfP4g#OP1G+t~lNt_oIm78W9lqrv zb?9aMN;#l%_~7-80vQ3vgF^Xb zBzxiFV%KkgY8mmA0{da)Pq2%zMP#*NIB7Kc&8hEd)zf>&5YQ}4k$}bx>jbpG4{;}U zXwT@0h;u?jw5`6tHHET?8Z5U@J(e`h(gCD&@d=sZEywWQDn+KvnjrG0Ma<_6rAY8w zv%h}LulZUMdbA>>@P5dy*0>r0S_LUf7#(5nSt-B3Dr^QN8gMq>OSIe3qB6%ti>R`W z77>6k*i%|00T^1;ZvMc=NOZI)#}_7&OxI?g$Rkl7A%l<(U_y?�%ySv?$@KDVgvv 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 literal 0 HcmV?d00001 From 07726ae4a8108422905d93e04eef43d2ccad9d08 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 22:43:05 +0530 Subject: [PATCH 07/10] fix: change corestorage db name in consumer to fix conflicts --- runtime/lite/src/consumer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index db794f08..9f2d6590 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -19,7 +19,7 @@ use dotenv::dotenv; #[tokio::main] async fn main() { dotenv().ok(); - let db = CoreStorage::new("runtime").unwrap(); + let db = CoreStorage::new("runtime-db").unwrap(); let logger = CoreLogger::new(Some("./ssb-consumer.log")); let state_manager = GlobalState::new(logger.clone()); From bca5c81eb01dc11139ffec19118304996d824f09 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 23:31:29 +0530 Subject: [PATCH 08/10] chore: remove event type in ssb client publish event --- .../modules/kuska_ssb_client/client/client.rs | 10 +++---- .../modules/kuska_ssb_client/client/types.rs | 27 ------------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs index 32c2f2cf..8f8c328a 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/client.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/client.rs @@ -187,14 +187,14 @@ impl Client { Ok(()) } - pub async fn publish_event(&mut self, event: Event) -> Result<()> { + pub async fn publish_event(&mut self, event: &str, section: &str, content: &str, mentions: Option>) -> Result<()> { let _req_id = self .api .publish_req_send(TypedMessage::Event { - event: event.event, - section: event.section, - content: event.content, - mentions: event.mentions, + event: event.to_string(), + section: section.to_string(), + content: content.to_string(), + mentions, }) .await?; diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs index b7762386..d8e495e8 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs @@ -1,6 +1,5 @@ use super::*; -use kuska_ssb::api::dto::content::Mention; use serde::{Deserialize, Serialize}; pub struct Client { @@ -9,32 +8,6 @@ pub struct Client { pub sk: SecretKey, } -#[derive(Debug, Serialize, Deserialize)] -pub struct Event { - pub event: String, - pub section: String, - pub content: String, - - #[serde(skip_serializing_if = "Option::is_none")] - pub mentions: Option>, -} - -impl Event { - pub fn new( - event: String, - section: String, - content: String, - mentions: Option>, - ) -> Self { - Self { - event, - section, - content, - mentions, - } - } -} - #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)] pub struct Content { #[serde(rename = "type")] From b4a9e05bc624954fcb574831b81140540e790d5a Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 23:37:14 +0530 Subject: [PATCH 09/10] fix: remove unwanted comments --- runtime/lite/src/modules/kuska_ssb_client/client/tests.rs | 2 -- runtime/lite/src/modules/kuska_ssb_client/client/types.rs | 1 - 2 files changed, 3 deletions(-) diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs index 77ba146c..baf1beea 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/tests.rs @@ -94,7 +94,6 @@ mod tests { #[ignore] // returns list of feeds posted by particular user async fn test_user_method() { - // use types::Event; dotenv().ok(); let secret = std::env::var("CONSUMER_SECRET").unwrap_or_else(|_| { @@ -136,7 +135,6 @@ mod tests { let feed_text: String = serde_json::from_value(feed_text.clone()).unwrap(); let new_event: Value = serde_json::from_str(&feed_text).unwrap(); - // let event = serde_json::from_value(event).unwrap(); assert_eq!(old_event, new_event); } diff --git a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs index d8e495e8..c0a02c68 100644 --- a/runtime/lite/src/modules/kuska_ssb_client/client/types.rs +++ b/runtime/lite/src/modules/kuska_ssb_client/client/types.rs @@ -13,5 +13,4 @@ pub struct Content { #[serde(rename = "type")] pub types: String, pub text: String, - // mentions: Option>, } From 9036afcfad3c5609e0ab97a4223458a7f4573d17 Mon Sep 17 00:00:00 2001 From: ajaykumargdr Date: Thu, 28 Mar 2024 23:47:30 +0530 Subject: [PATCH 10/10] fix: remove duplicate dependencies --- runtime/lite/src/consumer.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/lite/src/consumer.rs b/runtime/lite/src/consumer.rs index c549a327..827a8e7d 100644 --- a/runtime/lite/src/consumer.rs +++ b/runtime/lite/src/consumer.rs @@ -4,7 +4,6 @@ use runtime::{ logger::CoreLogger, state_manager::GlobalState, modules::kuska_ssb_client::client::Client, - state_manager::GlobalState, storage::{CoreStorage, Storage}, Ctx, Logger, };